Skip to main content

Catalog Feeds

Overview

Catalog feeds are bulk downloads of Tradepost's product catalog — one gzip JSON file per asset type, regenerated daily. Use them to sync our catalog into your own systems instead of paginating through the API.

Requires a partner API key via the X-API-Key header — see Authentication.

Get Catalog Feeds

Returns the latest feed per asset type with a presigned download URL.

query GetCatalogFeeds($input: GetCatalogFeedsInput!) {
getCatalogFeeds(input: $input) {
feeds {
assetTypeId
assetType
format
schemaVersion
uri
uriExpiresAt
compressedSizeBytes
compressedMd5
recordCount
lastUpdated
}
error { message code }
}
}

Input Fields

FieldTypeRequiredDescription
assetTypes[String!]NoRestrict to specific asset types by name (e.g., ["SEALED_TCG"]). Omit to list every available feed
assetTypeIdUUIDNoRestrict by asset type ID instead of name
{ "input": { "assetTypes": ["SEALED_TCG"] } }

Response Fields

FieldDescription
uriPresigned download link for the feed file. Expires at uriExpiresAt — request a fresh descriptor rather than storing the URL
compressedMd5MD5 of the gzip file, for integrity checks after download
compressedSizeBytesDownload size
recordCountNumber of product records in the file
schemaVersionVersion of the feed file schema
lastUpdatedWhen the file was generated. Compare against your last sync to skip unchanged feeds

Downloading

curl -s https://platform-api.tradepost.co/graphql \
-H "Content-Type: application/json" \
-H "X-API-Key: tp_live_your_key_here" \
-d '{"query":"query($input: GetCatalogFeedsInput!){ getCatalogFeeds(input:$input){ feeds { assetType uri compressedMd5 recordCount lastUpdated } error { message code } } }","variables":{"input":{}}}'

Then download and decompress the uri:

curl -s "<uri>" | gunzip > catalog.json

Feed File Format

Each file is a gzip-compressed JSON document. Products are grouped by asset — for sealed TCG, an asset is the set (e.g., a Pokemon expansion) and its configurations are the individual sealed products:

{
"schemaVersion": 1,
"assetType": "SEALED_TCG",
"generatedAt": "2026-07-08T06:00:00Z",
"keys": [
{ "keyId": "29ac7644-e506-4a42-9b74-1681da3ae7b1", "keyType": "SEALED_TCG_CONDITION", "value": "UNOPENED", "displayName": "Unopened", "ancestors": [] }
],
"assets": [
{
"assetId": "3aa2f9e1-6f36-40e5-a4b7-8de55c9ac2f1",
"name": "Scarlet & Violet: Prismatic Evolutions",
"slug": "pokemon-scarlet-and-violet-prismatic-evolutions",
"configurations": [
{
"assetConfigurationId": "72786f31-2001-48a0-9408-6a30c6e14388",
"name": "Greninja ex Ultra-Premium Collection",
"slug": "pokemon-greninja-ex-ultra-premium-collection",
"externalIds": { "TCG_PLAYER_ID": "477236" },
"imageUrl": "https://cdn.tradepost.co/media/asset-configurations/72786f31-2001-48a0-9408-6a30c6e14388/image/1000x1000.webp",
"imageVariants": {
"200x200": "https://cdn.tradepost.co/media/asset-configurations/72786f31-2001-48a0-9408-6a30c6e14388/image/200x200.webp"
},
"data": {
"description": null,
"brand": "Pokemon",
"productType": "BOX",
"format": "Collection",
"packCount": null,
"cardsPerPack": null,
"language": "English",
"retailPriceUsdCents": 12999,
"releaseDate": "2024-11-08T00:00:00Z"
}
}
]
}
]
}
FieldDescription
keysThe asset type's shared key set, when one applies to every record (e.g., sealed TCG condition keys). Use these key IDs with Key Fair Values and keyCriteria
assets[]One entry per asset (the set for sealed TCG), with its products nested
configurations[].assetConfigurationIdPass to Key Fair Values and other configuration-scoped queries
configurations[].externalIdsSource-system identifiers for matching against your own catalog
configurations[].dataAsset-type-specific fields. The set of fields is fixed per asset type within a schemaVersion — e.g., sealed TCG carries brand, productType, format, packCount, cardsPerPack, language, retailPriceUsdCents, releaseDate

Identity and media fields (name, slug, externalIds, imageUrl, imageVariants) are the same for every asset type; only the contents of data vary by type. The manifest's recordCount is the total number of configurations across all assets.

Fields may be null when unknown. New fields may be added within a schemaVersion; breaking changes increment it.

Available Feeds

Asset TypeCadence
SEALED_TCGDaily

More asset types will be added over time — poll the descriptor rather than hardcoding the list.


← Keys | Key Fair Values →

© 2026 Tradepost Markets Inc. All rights reserved.