Cardinal Public Pricing API Base URL: https://api.onelab.im No API key or account is required. This public API has three jobs: 1. Find the exact card and grade. 2. Get its current Cardinal price. 3. Get its historical price series. CATALOG Search for a card: GET /api/catalog/search?search={text} Read items[].product and keep product_id. Resolve the requested grade: GET /api/skus?product_id={product_id}&grading_authority={grader}&grade_label={grade} For PSA 10: GET /api/skus?product_id={product_id}&grading_authority=PSA&grade_label=10 Select the exact unqualified SKU unless the user requested a qualifier. Keep sku_id. Already have a sku_id: GET /api/skus/{sku_id} CURRENT CARDINAL PRICE GET /api/skus/{sku_id}/prices Read latest_close. latest_close contains: reference_on source_through closing_price_major currency is returned separately. This endpoint is only for the latest published Cardinal price. HISTORICAL PRICES Cardinal history: GET /api/products/{product_id}/history.json?source=cardinal Card Ladder history: GET /api/products/{product_id}/history.json?source=card_ladder Read series[] and select entries whose sku_id matches the requested grade. Card Ladder returns separate series for native history, collected values, and published estimates. Keep each price_basis separate. Each series contains points[]. Each point contains: date price_major price_basis Never combine Cardinal and Card Ladder into one price series. Use Cardinal history when the user asks for Cardinal pricing. Use Card Ladder history when the user explicitly asks for Card Ladder or provider history. Do not use sales as prices. Use only the public endpoints documented above.