Strata for agents
Get started
Documentation topics

Recipes

Photo

Let the calling agent read the image using its existing vision capability. Extract a short string with the printed name, collector number, game, set, language and visible variant clues. Send one blob per card with shape:"ocr"; this shape also covers model-read text. Put only clearly read numbers in hints.number. Do not confuse names in rules text with the card title.

Use the reusable skill for the full workflow. Review extracted text before any lookup; tiny, stylized or obscured text may need manual correction. Photos stay with the calling agent. Send only the reviewed identifying text to Strata; image reading alone does not establish a catalog match.

Bulk list

Split into identification batches of at most 25. Processing is bounded to four concurrent items per request. Monthly credits charge successful confident identities and usable selected-market prices; ambiguous identities are not charged. On 429 stop and honor Retry-After. Price confirmed products in batches of at most ten and choose their printing/language/condition.

Slab identity and graded prices

Use POST /api/v1/slabs/identify with {"cert":"149085863","grader":"PSA","enrich":true}. A recognized cert returns its ALT identity, grade, optional population report and graded quote even when no raw catalog match exists. Barcode URLs and readable cert-label text are alternative inputs. TAG is explicitly unsupported. shape:"cert" on /identify searches the underlying raw catalog; it does not resolve the physical slab.

To price more grades, call POST /api/v1/graded/prices with the returned strataProductId, or its identityRef as ref, and up to four markets, for example [{"grader":"PSA","grade":"9"},{"grader":"PSA","grade":"10"}]. Each distinct grader, numeric grade, and tier is one market operation. Repeated equivalent selections are normalized and requested once, so "10" and "10.0" for PSA do not produce duplicate quotes or charges. ALT uses 10.5 to distinguish BGS Black Label and CGC Pristine; this is not a PSA grade. Grade/tier identities must remain separate.

Verified raw comparison and registry progress

Read GET /api/v1/products/{strataProductId}. rawMatch.status may be queued, resolving, verified, review_required, unmapped, unsupported or unavailable. Only verified supplies a cross-market price. A raw-match proposal never changes the graded identity or its quote.

For a verified match, call /enrich with the same strataProductId and condition:"NM". The API enforces the mapping's printing and language; conflicting selections return 409. Label this Raw · NM reference; a slab grade does not establish its raw condition. Preserve mappingRevision and revalidate it before reusing a cached cross-market comparison. A raw and graded price request can run concurrently once the identity and exact mapping are known.

A raw caller normally uses /identify with enrich:true; use a separate /enrich only when pricing was not already returned or a new selection is requested. To request graded prices, pass its strataProductId, the matched TCGplayer ID as rawProductId, and rawSelection:{"printing":"Foil","language":"English"} to /graded/prices. A scoped mapping requires matching selectors. The broad catalog UUID is retained even when different finishes link to different graded identities.

Poll only an open detail while matching is queued/resolving, honor retryAfterSeconds, and stop after a bounded interval or when the view closes/backgrounds. A later detail open can reread the mapping. No match is normal; unavailable means retryable failure, not absence from the catalog.

App authentication and contributions

Connector customers use their own API keys. Strata app users use the app's existing session; they do not need connector keys. The first-party backend calls private, separately budgeted catalog operations. Service credentials never ship in the app and discovery does not consume another user scan.

Optional app feedback uses the first-party POST /api/v1/products/{id}/raw-match-feedback with a signed-in app session and either {"action":"propose","productId":123} or {"action":"report"}. This creates review evidence only. It is not a public connector approval endpoint. Operator approval verifies all relevant identity axes; sports and foreign-language graded results remain independent of catalog coverage.

CardLadder data is not scraped. A generated cardLadderUrl is a search link, not a verified card permalink.

Partial outage

Keep a successful identification even if its market.status is unavailable. For partial pricing, show which sources failed and the observation timestamp. Never replace an unavailable observation with zero or infer no sales occurred.