Keys
Overview
A key identifies a specific product variant within an asset type — for example, a "PSA 10" vs "PSA 9" grade of the same card, or a particular section/row combo for tickets. Keys exist so a single asset configuration can hold multiple priceable variants, each with its own fair value.
You'll need key IDs when building an Advanced Strategy:
filterCriteria.keyCriteriatells the matcher which variants to price against and, optionally, which additional keys the item must also carry (AND gate). Without at least one criterion, the strategy won't fill anything.
This page documents how to discover the keys for an asset type so you can pick the right key IDs.
List Key Configurations
Returns every key configuration for an asset type, with each configuration's keyData.keys array listing the available variants (PSA grades, section/row combos, etc.).
query ListKeyConfigurations($input: ListKeyConfigurationsInput!) {
listKeyConfigurations(input: $input) {
keyConfigurations {
id
assetTypeId
keyData {
keys {
keyId
keyType
value
displayName
ancestors
}
}
createdAt
updatedAt
}
pagination {
totalCount
limit
offset
}
error { message code }
}
}
Input Fields
| Field | Type | Required | Description |
|---|---|---|---|
| assetTypeId | UUID | No | Restrict to one asset type — see Asset Types → List Asset Types for IDs |
| ids | [UUID!] | No | Restrict to specific key configuration IDs |
| pagination | SimplePaginationInput | No | { limit, offset } — defaults to limit: 20, offset: 0 |
List Keys for an Asset Type
{
"query": "query ListKeyConfigurations($input: ListKeyConfigurationsInput!) { listKeyConfigurations(input: $input) { keyConfigurations { id keyData { keys { keyId value displayName } } } error { message code } } }",
"variables": {
"input": {
"assetTypeId": "485d9367-c9cd-435b-a77a-535cb35a1431"
}
}
}
KeyConfiguration Type
| Field | Type | Description |
|---|---|---|
id | UUID! | Key configuration identifier |
assetTypeId | UUID! | Asset type this configuration applies to |
keyData.keys | [KeyOption!]! | The variants available under this configuration |
createdAt | DateTime! | Created timestamp |
updatedAt | DateTime! | Last modified timestamp |
KeyOption
| Field | Type | Description |
|---|---|---|
keyId | UUID! | Pass this ID into keyCriteria when building an Advanced Strategy |
keyType | KeyType! | Category of variant — see Key Types |
value | String! | Raw value (e.g. "10" for PSA 10, "FLOOR" for a section) |
displayName | String | Human-readable label (e.g. "PSA 10") |
ancestors | [UUID!]! | Parent key IDs in the hierarchy. Empty for top-level keys |
Key Types
keyType | Description |
|---|---|
CARD_GRADE | Graded card variant — e.g. PSA 10, PSA 9, CGC 9.5 |
CARD_AUTO_GRADE | Autograph grade attached to a graded card — e.g. "PSA Auto 10". Each auto grade key has a corresponding CARD_GRADE key in the same key configuration |
CONDITION | Condition variant for ungraded items |
SECTION | Venue section for tickets |
ROW | Venue row within a section |
COIN_GRADE | Graded coin variant |
Using Key IDs with Advanced Strategies
filterCriteria.keyCriteria is an array of targeting groups. The matcher evaluates them with OR across groups, AND within each group — an item satisfies the strategy if it matches any single group in full.
Each group has two arrays:
| Field | Description |
|---|---|
fvKeyIds | Keys the item must carry for the matcher to price this group. The bid is computed from the highest fair value across these keys |
requiredKeyIds | Additional keys the item must also carry. If any are missing the group fails (AND gate). Use this for auto grade targeting |
Bidding on PSA 9 and PSA 10
Two separate criteria — an item matching either grade is eligible:
{
"filterCriteria": {
"fvModelConfigId": "c3eabc66-9ccd-430f-acaf-c8d712c294ab",
"keyCriteria": [
{ "fvKeyIds": ["<PSA 10 keyId>"], "requiredKeyIds": [] },
{ "fvKeyIds": ["<PSA 9 keyId>"], "requiredKeyIds": [] }
],
"fvMinCents": 5000,
"fvMaxCents": 50000
},
"variance": { "belowFv": { "unit": "PCT", "value": 0.20 } },
"targetQuantity": 100
}
Requiring an auto grade (AND gate)
To bid only on PSA 9s that also carry a specific autograph grade, put the grade in fvKeyIds and the auto grade in requiredKeyIds. An item that has the PSA 9 but not the auto grade is rejected:
{
"filterCriteria": {
"fvModelConfigId": "c3eabc66-9ccd-430f-acaf-c8d712c294ab",
"keyCriteria": [
{
"fvKeyIds": ["<PSA 9 keyId>"],
"requiredKeyIds": ["<PSA Auto 9 keyId>"]
}
]
},
"variance": { "belowFv": { "unit": "PCT", "value": 0.20 } }
}
To find CARD_AUTO_GRADE key IDs, call listKeyConfigurations for the asset type and filter the response for keyType: "CARD_AUTO_GRADE". Each auto grade key has a corresponding CARD_GRADE key in the same key configuration — use both together when targeting specific autographed grades.
See Advanced Strategies for the full GroupedStrategyConfig reference.
← Filter Builder | Advanced Strategies →
© 2026 Tradepost Markets Inc. All rights reserved.