Skip to content

Public API

Programmatic access to Rip Packs City fair-market-value pricing.

Overview

RPC publishes FMV pricing as a free read-only API for partners. No API key required today. Rate-limited per-IP. Production base URL: https://www.rippackscity.com.

Endpoints

GET/api/fmv

Single-edition FMV lookup. The edition parameter is required and uses the setID:playID convention. The serial parameter is optional and applies a per-serial premium multiplier when supplied.

editionrequired
setID:playID — e.g. 219:7421. Required.
serial
Integer serial number. Optional. When supplied, the response carries the serial premium from our fitted model: serialMult, serialBasis (first, jersey, perfect or no_premium) and adjustedFmv.
POST/api/fmv

Batch FMV lookup. Accepts up to 100 editions per request. Each entry is either a bare edition string or an object with edition + optional serial.

editionsrequired
Array of editions. Each item is either "setID:playID" or { edition, serial? }. Maximum 100 entries.

Response shape

GET returns a single result object; POST returns a wrapped batch payload with per-edition results.

{
  "edition": "219:7421",
  "fmv": 77,
  "serialMult": 7.6,
  "serialBasis": "first",
  "adjustedFmv": 585.3,
  "updatedAt": "2026-10-10T19:15:51.049029+00:00",
  "fallbackTier": "rpc_fmv",
  "liquidityRating": 2,
  "aspUsd": 80.55,
  "aspClean": 80.55,
  "salesCount30d": 10,
  "daysSinceSale": 6
}

Per-result fields: edition, fmv, serialMult, serialBasis, adjustedFmv, updatedAt, fallbackTier, liquidityRating, aspUsd, aspClean, salesCount30d, daysSinceSale; an unknown edition or one with no FMV yet carries error. serialMult is null when no serial was asked for, or when the edition's circulation cannot place the serial (serialBasis: "circulation_unknown"). Batch wrapper adds count, successCount, errorCount, and results[].

Worked example

GET request:

curl "https://www.rippackscity.com/api/fmv?edition=219:7421&serial=1"

Batch POST request:

curl -X POST https://www.rippackscity.com/api/fmv \
  -H "Content-Type: application/json" \
  -d '{
    "editions": [
      "219:7421",
      { "edition": "219:7404", "serial": 7 }
    ]
  }'

Batch response:

{
  "count": 2,
  "successCount": 2,
  "errorCount": 0,
  "results": [
    {
      "edition": "219:7421",
      "fmv": 77,
      "serialMult": null,
      "serialBasis": null,
      "adjustedFmv": 77,
      "updatedAt": "2026-10-10T19:15:51.049029+00:00",
      "fallbackTier": "rpc_fmv",
      "liquidityRating": 2,
      "aspUsd": 80.55,
      "aspClean": 80.55,
      "salesCount30d": 10,
      "daysSinceSale": 6
    },
    {
      "edition": "219:7404",
      "fmv": 64,
      "serialMult": 1.83,
      "serialBasis": "jersey",
      "adjustedFmv": 116.82,
      "updatedAt": "2026-10-10T17:48:13.645186+00:00",
      "fallbackTier": "rpc_fmv",
      "liquidityRating": 2,
      "aspUsd": 63.42,
      "aspClean": 63.42,
      "salesCount30d": 7,
      "daysSinceSale": 1
    }
  ]
}

Methodology

See the FMV methodology page for the algorithm — outlier-filtered weighted average price, serial multipliers, and badge premiums.

Read the FMV methodology →

Rate limits

Soft: 60 requests per minute per IP. Burst tolerated. Contact for higher quotas.

Roadmap

  • Per-collection slugs in batch payloads (today the endpoint is Top Shot first).
  • Listings depth API — per-edition orderbook snapshot.
  • Sales feed websocket — live event stream filtered by collection / edition.