Skip to content

GET /api/v1/developer/pricing/

Returns a full pricing bundle: ungraded NM price plus a PSA / BGS / CGC / SGC x grades 7-10 slab matrix for a given catalog key.


Request

http
GET /api/v1/developer/pricing/{product_key}
X-API-Key: your_api_key

Path parameters

ParameterDescription
product_keyCoda catalog key (URL-encoded). Example: pokemon-sws07-umbreon-vmax-alt-art-secret

Query parameters

NameTypeDefaultRangeDescription
window_hoursint241-72TWAP lookback window in hours
outlier_stddevsint21-10Drop observations beyond this many standard deviations

Example

bash
curl "https://api.coda-tech.net/api/v1/developer/pricing/pokemon-sws07-umbreon-vmax-alt-art-secret?window_hours=24" \
  -H "X-API-Key: your_api_key"

Response 200

json
{
  "product_key": "pokemon-sws07-umbreon-vmax-alt-art-secret",
  "window_hours": 24,
  "outlier_stddevs": 2,
  "ungraded": {
    "price_minor": 178015,
    "currency": "USD",
    "condition_key": "ungraded",
    "methodology": "twap_24h_outlier_v3_floor_q20",
    "window_start": "2026-04-14T22:11:35+00:00",
    "window_end": "2026-04-15T22:11:35+00:00",
    "included_points": 43,
    "excluded_points": 0,
    "meta": { "source_counts": { "ebay": 99, "pricecharting": 17 } },
    "error": null
  },
  "graded": {
    "PSA": {
      "10": {
        "company": "PSA", "grade": 10, "condition_key": "psa10",
        "price_minor": 438365, "included_points": 16, "meta": {}, "error": null
      },
      "9": {
        "company": "PSA", "grade": 9, "condition_key": "psa9",
        "price_minor": 285000, "included_points": 8,
        "meta": {
          "developer_band_primary_applied": true,
          "developer_composite_band_minor": 270000
        },
        "error": null
      },
      "8": { "price_minor": 198000, "grade": 8, "error": null },
      "7": {
        "grade": 7, "price_minor": 118200,
        "meta": {
          "developer_gem10_anchor_minor": 438365,
          "developer_gem10_ratio_era": "modern"
        },
        "error": null
      }
    },
    "BGS": { "10": {}, "9": {}, "8": {}, "7": {} },
    "CGC": { "10": {}, "9": {}, "8": {}, "7": {} },
    "SGC": { "10": {}, "9": {}, "8": {}, "7": {} }
  },
  "metadata": {
    "product_name": "Umbreon VMAX Alt Art",
    "subtitle": "Evolving Skies #215 - Moonbreon",
    "set_name": "Sword & Shield: Evolving Skies",
    "image_url": "https://product-images.tcgplayer.com/fit-in/437x437/246723.jpg",
    "product_type": "single_card",
    "era": "modern"
  }
}

How grades 7-9 are priced

Pass 1 - base TWAP + band blend

A card-specific TWAP and a composite band TWAP (computed over a 30-day rolling window) are combined. Weighting is proprietary.

Pass 2 - band-primary blend

The composite band TWAP serves as the primary reference price. Grader-specific observation data is a secondary differentiator. Weighting is proprietary.

Prices are clamped so grade 7 <= grade 8 <= grade 9 <= grade 10 per grader.

Era-aware gem-10 ratios

When grader-specific data is thin, the grader slice is anchored to the grade-10 price using era-calibrated ratios. Modern and vintage cards use separate tables. metadata.era controls which applies.


meta diagnostic fields

KeyWhenMeaning
source_countsAlways{ebay, pricecharting} observation counts
developer_band_primary_appliedGrades 7-9true when band-primary blend ran
developer_composite_band_minorGrades 7-9Raw 30-day composite band TWAP (cents)
developer_band_blend_weightsGrades 7-9Blend weights applied
developer_gem10_anchor_minorGrades 7-9Grade-10 reference used for ratio anchor
developer_anchor_ratio_vs_gem10Grades 7-9price / gem10 as string
developer_gem10_ratio_eraGrades 7-9"modern" or "vintage"
twap_sparse_window_extendedSparsetrue when 30-day fallback triggered
oracle_fallback_tierFallbackWhich fallback tier provided the price

Errors

HTTPWhen
401Missing or invalid API key
400Unknown or invalid product_key
500Oracle computation failure
503Database unreachable

Coda - price settlement infrastructure.