API & AI tools

Use RPO Archive in your AI tools.

Every code on this site — with its confidence grade and GM Heritage citations — is available to AI assistants through the DecodeThis MCP server. Free tier included: any DecodeThis API key can call these tools; calls count toward that plan's normal quota.

DecodeThis also decodes the VIN, so one server can answer “the VIN says 1969 Camaro — was Z28 a real option for this car?” in a single call.

The four tools

  • lookup_rpo(code, division?, year?, model?) — Every documented meaning of a code, with its applications, confidence tier and factory citations. Codes with different meanings across divisions or car lines are all returned and flagged ambiguous. Each application carries the label printed for that model and year range, so a 2023 Corvette gets "Z51 Performance Package" and not a 1974 Nova's "Spirit of America package" (descriptions_scope: application).
  • search_rpo(query, division?, year?, model?, limit?) — Fuzzy search over codes, descriptions and model names — "cowl induction", "Z/28", "posi". Exact code matches rank first. Search results carry the code's labels across every model that used it (descriptions_scope: code_level); call lookup_rpo with a model and year for the label that applies to one car.
  • list_rpo_for_vehicle(year, division, model, compact?) — Every code the archive documents for one car, grouped by confidence tier. A code with any disputed record for that car is grouped as disputed. A well-covered car is very large (a 1970 Chevelle SS is about 80,000 characters), so pass compact: true for broad listings: each code then carries only its code and the label for this car (tier is the group it sits in), and lookup_rpo gives the full detail for the ones you need.
  • verify_rpo_codes(codes[], vin | year + division + model) — Check codes read off a window sheet, cowl tag, trim tag or build sheet against a VIN (decoded by DecodeThis) — a classic pre-1981 GM VIN or a 17-character GM VIN — or an explicit year, division and model. The answer gives the code's labels across all models plus this car's application; use lookup_rpo for the label that applies to the car.

Example: verify codes against a VIN

Call:

{
  "name": "verify_rpo_codes",
  "arguments": {
    "vin": "124379N634767",
    "codes": [
      "Z28",
      "LS6",
      "X99"
    ]
  }
}

Response (abbreviated):

{
  "dataset_version": "2026.11.07-711aeca",
  "attribution": "RPO data: RPO Archive (rpoarchive.com)",
  "coverage": { "status": "covered", "note": null },
  "vehicle": { "vin": "124379N634767", "year": 1969, "division": "chevrolet",
               "model": "Camaro", "matched_models": ["camaro"], "model_unmatched": false },
  "results": [
    { "input": "Z28", "status": "offered", "code": "Z28", "division": "chevrolet",
      "descriptions": ["Special Performance Package (302ci V8)"], "descriptions_scope": "application",
      "tier": "factory-verified", "confidence": "verified",
      "rpoarchive_url": "https://rpoarchive.com/code/chevrolet/z28/",
      "application": { "model": "camaro", "year_start": 1967, "year_end": 1969,
        "notes": "coupe only; requires 4-speed + power disc brakes; 602/7,199/20,302 built",
        "kind": "orderable", "tier": "factory-verified", "confidence": "verified",
        "citations": [{ "kit": "chevrolet/1967-Chevrolet-Camaro.txt", "pages": [54],
                        "label": "GM Heritage factory kit — 1967 Chevrolet Camaro, p.54" }, …] } },
    { "input": "LS6", "status": "not_offered_for_vehicle", "code": "LS6", "division": "chevrolet",
      "note": "The archive documents this code, but not for this model and year.",
      "documented_for": [{ "division": "cadillac", "model": "cts-sigma", "year_start": 2005, "year_end": 2005 }, …] },
    { "input": "X99", "status": "unknown_to_archive",
      "note": "Not in the RPO Archive. This does not mean the option did not exist …" }
  ]
}

How to read the answers

  • offered — the archive documents the code for this model and year. confidence is verified (factory-verified or confirmed) or likely (single source).
  • disputed — sources conflict; the notes show both readings. If any record for the car is disputed, the answer is disputed, never offered. Disputed applications carry confidence: "unconfirmed".
  • not_offered_for_vehicle — the code is documented, but not for this car.
  • unknown_to_archive — not in the archive. That is not proof the option never existed.
  • Requests outside GM or the model years the server holds come back out_of_coverage. It holds the classic years (1960–1982) and the 1983–MY2027 models documented on this site; each data update adds models as they are documented. A model the archive does not have comes back model_unmatched with the closest model names. Thinly sourced divisions and models come back thin with a note explaining why.
  • A VIN that fails its check digit comes back as the error vin_undecodable.

Which label applies to my car?

One code can mean different things on different cars: Z51 was the “Spirit of America” package on a 1974 Nova and the Z51 Performance Package on a 2023 Corvette. Every application in the archive carries the label printed in its own source documents.

  • lookup_rpo and list_rpo_for_vehicle return the label for the car you asked about (descriptions_scope: "application"), with a description_citation pointing at the source that carried it.
  • search_rpo and verify_rpo_codes return the code's labels across every model that used it (descriptions_scope: "code_level" where marked). Treat those as a list of meanings, then call lookup_rpo with a model and year for the one that applies.
  • The same code can also be spelled two ways when the factory changed its style, for example the classic G-80 (1982 and earlier) and the modern G80. They are separate entries, and the years tell them apart.

Connect

Create a free DecodeThis account, copy an API key, then add the server to your MCP client. For Claude Code:

claude mcp add decodethis https://decodethis.com/mcp --transport http \
  --header "Authorization: Bearer ak_<your_key>"

Clients that use OAuth connectors (Claude.ai, ChatGPT) can add https://decodethis.com/mcp as a custom connector and sign in instead of pasting a key.