Look up a graded certificate

GET /api/v1/grading/certs/{provider}/{certNumber} read:catalog 1 credit

Look up a slab using its grading provider and certificate number. The response separates the grader’s verified record from our catalog association and exact-grade pricing. An unresolved association returns card: null and gradedPrice: null; verified certificate metadata remains available.

Uses the existing API key and read:catalog scope. Costs 1 credit per successful request. Failed requests follow the standard credit-refund policy. Limit: 30 requests/minute per key, with 4 concurrent certificate lookups per server instance; overload returns 503.

Lookup suppliers, price provenance and internal matching evidence are not exposed. The named grading company and its public certificate report link remain certificate metadata.

Cold lookups depend on the grading service and may take over 60 seconds during recovery. Use a client timeout that accommodates the server’s grading budget (150 seconds by default). Warm lookups avoid fetching the same verified provider record again.

Provider records may be reused for five minutes. Overlapping requests for the same certificate share provider and matching work. Completed card/price responses are not cached; catalog identity is re-evaluated using the complete provider record; legacy cached card ids and base-printing stand-ins are not trusted. An image tiebreak must score every tied candidate before it can resolve the printing.

Close image rankings may use geometric image matching when all references are ready. Cold or inconclusive references leave the match unresolved. A missing card number requires a unique name within the verified set. Catalog images that explicitly reference another card are withheld.

A verified certificate describes the grader’s record; it does not authenticate a physical slab or prove that a photograph belongs to that certificate.

Treat unresolved and null prices as missing evidence. Never hydrate a different card or a raw price to fill them. Unrecognized language or variety information can leave a valid certificate unresolved.

Try it GET /api/v1/grading/certs/PSA/164066991

These inputs are shared across all docs pages, so an id entered here carries over.

response
200 3541ms preloaded server-side with the default context
object · 2 keys
{
  "success": true,
  "data": {
    "certificate": {
      "provider": "PSA",
      "certNumber": "164066991",
      "grade": "GEM MT 10",
      "gradeQualifier": null,
      "labelType": null,
      "autographGrade": null,
      "signers": null,
      "cardName": "SANJI",
      "cardSet": "ONE PIECE PREMIUM CARD COLLECTION 25TH EDITION",
      "cardNumber": "013",
      "cardYear": "2023",
      "cardVariety": null,
      "language": null,
      "imageUrl": "https://d1htnxwo4o0jhw.cloudfront.net/cert/213049068/small/WUaiPuclk0WkFjgWaQ5qnw.jpg",
      "imageUrls": {
        "front": "https://d1htnxwo4o0jhw.cloudfront.net/cert/213049068/small/WUaiPuclk0WkFjgWaQ5qnw.jpg",
        "back": "https://d1htnxwo4o0jhw.cloudfront.net/cert/213049068/small/EKbeCJvD4UKPH8ka2ufUlA.jpg",
        "slabFront": "https://d1htnxwo4o0jhw.cloudfront.net/cert/213049068/small/WUaiPuclk0WkFjgWaQ5qnw.jpg",
        "slabBack": "https://d1htnxwo4o0jhw.cloudfront.net/cert/213049068/small/EKbeCJvD4UKPH8ka2ufUlA.jpg"
      },
      "population": {
        "total": 1554
      },
      "providerReportUrl": "https://www.psacard.com/cert/164066991/psa",
      "verificationStatus": "verified",
      "verificationConfidence": "high"
    },
    "match": {
      "status": "exact",
      "reason": null
    },
    "card": {
      "id": "oppr-485263",
      "name": "Sanji - OP01-013 (Alternate Art)",
      "number": "OP01-013",
      "setId": "OPPR",
      "setName": "One Piece Promotion Cards",
      "language": "en",
      "game": "onepiece",
      "type": "Character",
      "cost": "2",
      "power": "3000",
      "attribute": "Strike",
      "colors": [
        "Red"
      ],
      "rules": [
        "[Activate:Main] [Once Per Turn] You may add 1 card from your Life area to your hand: This Character gains +2000 power during this turn. Then, give this Character up to 2 rested DON!! cards."
      ],
      "subtypes": [
        "Straw Hat Crew"
      ],
      "rarity": "PR",
      "images": {
        "small": "https://api.rip.fun/storage/v1/object/public/tcg/cards/oppr-485263.large.webp",
        "large": "https://api.rip.fun/storage/v1/object/public/tcg/cards/oppr-485263.large.webp"
      },
      "isHolo": false,
      "isReverse": false,
      "isNonFoil": true,
      "isFirstEdition": false
    },
    "gradedPrice": {
      "cardId": "oppr-485263",
      "company": "PSA",
      "grade": "10",
      "price": 78.5,
      "low": 66,
      "mid": null,
      "high": 176.6,
      "currency": "USD",
      "timestamp": "2026-09-05T01:51:00.000Z"
    }
  }
}
curl (tracks the inputs above)
curl -X GET 'https://service.rip.fun/api/v1/grading/certs/PSA/164066991' \
  -H 'X-API-Key: rip_…'

Request fields

FieldTypeRequiredDescription
providerstringyesPath parameter: PSA, BGS (BECKETT is accepted), CGC or TAG. A provider is required; the API never tries another grader.
certNumberstringyesPath parameter: the certificate number as a string. Preserve leading zeroes. Spaces and hyphens are normalized; full report URLs are not accepted.

Response fields (data)

FieldDescription
data.certificateVerified provider and certNumber; grade, gradeQualifier, labelType, autographGrade and signers; cardName, cardSet, cardNumber, cardYear, cardVariety and language; imageUrl/imageUrls, population, providerReportUrl and verificationConfidence. Missing provider fields are null.
data.matchstatus: exact or unresolved; reason: null for an exact match, otherwise a machine-readable explanation. This describes catalog matching, separately from certificate verification.
data.cardExact catalog id, name, number, setId, setName, game, language, small/large images and finish/edition flags. Available card facts include artist, rarity, subtypes, abilities, attacks (moves), weaknesses and resistances. Pokémon adds supertype, types and HP; One Piece adds type, cost, power, attribute, colors, rules, block, counter and life. Missing card facts are omitted; the existing images object and identity fields keep their shape. Null for unresolved language, set, number, name, edition or printing. Contains no raw prices.
data.gradedPriceNull when exact-card, exact-provider, exact-grade pricing is unavailable. Otherwise cardId, company, grade, price/low/mid/high in currency units (USD means dollars), currency and timestamp. No raw-card price, other grade or other grader is substituted. Specialty labels and qualified/autographed slabs without an exact supported price remain null.

Errors

StatusCodeWhen
400invalid_certificateMissing, malformed or overlong certificate number.
400unsupported_providerProvider is unsupported; SGC lookup is not integrated.
404certificate_not_foundThe specified grader has no record for this certificate.
502provider_identity_mismatchThe provider returned a different provider/certificate identity; its data is withheld.
503provider_unavailableProvider lookup failed. Retry with backoff; do not substitute another provider.
503certificate_unverifiedThe provider could not verify the certificate.

See Errors for the response envelope and the full code list.