Look up tokens
Resolves token ids, or the tokens of conditions, to their condition, module, outcome, market, event and neg-risk question index in one call. Exactly one selector per request.
?token_id=: a comma-separated list of up to 50 decimal token ids (alias
token_ids); elements are trimmed, leading zeros stripped and duplicates
collapsed to their first position. data holds one row per known id in
request order; an unknown id is simply absent (never a 404), and an
all-unknown request returns an empty array.
?condition=: a comma-separated list of up to 10 condition selectors
(aliases condition_id, conditionId), each 0x plus 62 or 64 hex
digits, lower-cased and deduplicated. A ConditionalTokens condition id
returns the market’s tokens (for a market carried over to polymarket-v2,
its whole family: the ConditionalTokens pair, then the polymarket-v2
pair); a neg-risk market id returns every market of the structure; a
polymarket-v2 condition id (the value a combo leg carries as
leg_condition_id) returns that condition only; the 66-character
condition id of a native polymarket-v2 market returns that market; the
on-chain event id of a polymarket-v2 neg-risk structure returns every
question of it. data holds the rows grouped by selector in request
order, then by question index, market, module and outcome slot; an
unknown value contributes nothing.
A malformed value, more values than the cap, both selectors or neither is
a 400. condition_id is the market’s condition id in its 66-character
form, the value the other routes carry; structural_condition_id is the
on-chain polymarket-v2 condition id in the same 66-character form, filled
on every polymarket-v2 token, null on v1_ctf, and accepted back as a
condition selector. module names the contract family: v1_ctf is the
ConditionalTokens market (module 0) and every other value is a
polymarket-v2 module. Reference fields never change; closed,
resolved, final_price and outcome may lag by up to a minute. Not
paginated: data is the row array with no pagination.
Query Parameters
Token id(s), comma-separated (at most 50 distinct values): decimal
ERC-1155 ids as they appear on receipts and on the token_id and
asset fields of the other routes. Elements are trimmed, leading zeros
stripped and duplicates collapsed to their first position. token_ids
is an accepted alias. Exactly one of token_id and condition is
required.
Condition selector(s), comma-separated (at most 10 distinct values),
each 0x followed by 62 or 64 hex digits: a ConditionalTokens
condition id (for a market carried over to polymarket-v2, its whole
family), a neg-risk market id (every market of the structure), a
polymarket-v2 condition id (that condition only), the 66-character
condition id of a native polymarket-v2 market, or the on-chain event
id of a polymarket-v2 neg-risk structure (every question of it).
Elements are trimmed, lower-cased and duplicates collapsed to their
first position. condition_id and conditionId are accepted aliases.
Exactly one of token_id and condition is required.
Response
One row per token, in request order of the selector
{ "data": T }; the envelope for endpoints that don't paginate.
There is no pagination key: an aggregate or bounded list has no next page.
Paginated feeds return a *Page shape ({ data, pagination }) instead.