curl --request POST \
--url https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"agent_id": 574,
"params": {
"market_slug": "nba-",
"min_volume": "10000",
"closed": "False",
"end_date_min": "1600000000",
"end_date_max": "2200000000"
},
"pagination": { "limit": 10, "offset": 0 },
"formatter_config": { "format_type": "raw" }
}'import requests
response = requests.post(
"https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized",
headers={"Authorization": "Bearer YOUR_TOKEN"},
json={
"agent_id": 574,
"params": {
"market_slug": "nba-",
"min_volume": "10000",
"closed": "False",
"end_date_min": "1600000000",
"end_date_max": "2200000000"
},
"pagination": {"limit": 10, "offset": 0},
"formatter_config": {"format_type": "raw"},
},
)
print(response.json())const response = await fetch(
"https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized",
{
method: "POST",
headers: {
Authorization: "Bearer YOUR_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({
agent_id: 574,
params: {
market_slug: "nba-",
min_volume: "10000",
closed: "False",
end_date_min: "1600000000",
end_date_max: "2200000000",
},
pagination: { limit: 10, offset: 0 },
formatter_config: { format_type: "raw" },
}),
}
);
const data = await response.json();{
"timestamp": "<string>",
"params": {
"condition_id": "<string>",
"market_slug": "<string>",
"min_volume": "<string>",
"closed": "<string>",
"end_date_min": "<string>",
"end_date_max": "<string>"
},
"pagination": {
"limit": 123,
"offset": 123,
"has_more": true
},
"data": {
"results": [
{
"condition_id": "<string>",
"question": "<string>",
"slug": "<string>",
"end_date": "<string>",
"volume": "<string>",
"liquidity": "<string>",
"closed": true,
"side_a_token_id": "<string>",
"side_b_token_id": "<string>",
"outcome_a": "<string>",
"outcome_b": "<string>",
"current_price_a": "<string>",
"current_price_b": "<string>"
}
]
},
"request_id": "<string>"
}Polymarket Markets
Retrieve Polymarket market listings with filtering by condition ID, slug prefix, volume, or resolution status.
curl --request POST \
--url https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"agent_id": 574,
"params": {
"market_slug": "nba-",
"min_volume": "10000",
"closed": "False",
"end_date_min": "1600000000",
"end_date_max": "2200000000"
},
"pagination": { "limit": 10, "offset": 0 },
"formatter_config": { "format_type": "raw" }
}'import requests
response = requests.post(
"https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized",
headers={"Authorization": "Bearer YOUR_TOKEN"},
json={
"agent_id": 574,
"params": {
"market_slug": "nba-",
"min_volume": "10000",
"closed": "False",
"end_date_min": "1600000000",
"end_date_max": "2200000000"
},
"pagination": {"limit": 10, "offset": 0},
"formatter_config": {"format_type": "raw"},
},
)
print(response.json())const response = await fetch(
"https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized",
{
method: "POST",
headers: {
Authorization: "Bearer YOUR_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({
agent_id: 574,
params: {
market_slug: "nba-",
min_volume: "10000",
closed: "False",
end_date_min: "1600000000",
end_date_max: "2200000000",
},
pagination: { limit: 10, offset: 0 },
formatter_config: { format_type: "raw" },
}),
}
);
const data = await response.json();{
"timestamp": "<string>",
"params": {
"condition_id": "<string>",
"market_slug": "<string>",
"min_volume": "<string>",
"closed": "<string>",
"end_date_min": "<string>",
"end_date_max": "<string>"
},
"pagination": {
"limit": 123,
"offset": 123,
"has_more": true
},
"data": {
"results": [
{
"condition_id": "<string>",
"question": "<string>",
"slug": "<string>",
"end_date": "<string>",
"volume": "<string>",
"liquidity": "<string>",
"closed": true,
"side_a_token_id": "<string>",
"side_b_token_id": "<string>",
"outcome_a": "<string>",
"outcome_b": "<string>",
"current_price_a": "<string>",
"current_price_b": "<string>"
}
]
},
"request_id": "<string>"
}Endpoint:
POST /v2/semantic/retrieve/parameterizedAuthentication: Bearer token For sport markets, use slug prefixes: -
nba- → all NBA markets
-nfl- → all NFL markets
-epl- → all EPL markets
-mlb- → all MLB markets
-nhl- → all NHL markets
Query parameters
All requests useagent_id 574 (Polymarket Markets). Set filters inside params in the playground — all values must be strings.
| Parameter | Type | Description |
|---|---|---|
condition_id | String | Hex condition ID for an exact market lookup. |
market_slug | String | Slug or slug prefix (for example, "nba-" for all NBA markets). |
min_volume | String | Minimum traded volume in USD (for example, "10000"). |
closed | String | "True" for resolved markets, "False" for open. Omit for both. |
end_date_min | String | Earliest end date: Unix timestamp in seconds. |
end_date_max | String | Latest end date: Unix timestamp in seconds. |
Example Request
curl --request POST \
--url https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized \
--header 'Authorization: Bearer YOUR_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"agent_id": 574,
"params": {
"market_slug": "nba-",
"min_volume": "10000",
"closed": "False",
"end_date_min": "1600000000",
"end_date_max": "2200000000"
},
"pagination": {
"limit": 10,
"offset": 0
},
"formatter_config": {
"format_type": "raw"
}
}'
import requests
response = requests.post(
"https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized",
headers={"Authorization": "Bearer YOUR_TOKEN"},
json={
"agent_id": 574,
"params": {
"market_slug": "nba-",
"min_volume": "10000",
"closed": "False",
"end_date_min": "1600000000",
"end_date_max": "2200000000"
},
"pagination": {
"limit": 10,
"offset": 0
},
"formatter_config": {
"format_type": "raw"
}
}
)
print(response.json())
const response = await fetch("https://narrative.agent.heisenberg.so/api/v2/semantic/retrieve/parameterized", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_TOKEN",
"Content-Type": "application/json"
},
body: JSON.stringify({
"agent_id": 574,
"params": {
"market_slug": "nba-",
"min_volume": "10000",
"closed": "False",
"end_date_min": "1600000000",
"end_date_max": "2200000000"
},
"pagination": {
"limit": 10,
"offset": 0
},
"formatter_config": {
"format_type": "raw"
}
})
});
const data = await response.json();
Example Response
{
"timestamp": "",
"params": {
"market_slug": "nba-",
"min_volume": "10000",
"closed": "False",
"end_date_min": "1600000000",
"end_date_max": "2200000000"
},
"pagination": {
"limit": 20,
"offset": 0,
"has_more": true
},
"data": {
"results": [
{
"condition_id": "0xabc123def456...",
"question": "Cavaliers vs. Celtics",
"slug": "nba-cle-bos-2026-04-11",
"end_date": "2026-04-12T00:00:00Z",
"volume": "523890.44",
"liquidity": "842190.55",
"closed": false,
"side_a_token_id": "85953619064670985626771564660881103494957821937504170459975285010511861618293",
"side_b_token_id": "98765432109876543210",
"outcome_a": "Cavaliers",
"outcome_b": "Celtics",
"current_price_a": "0.4200",
"current_price_b": "0.5800"
}
]
}
}
Response fields
| Field | Type | Description |
|---|---|---|
condition_id | String | Market condition ID |
question | String | Market question |
slug | String | Market slug |
end_date | String (ISO 8601) | Market resolution date |
volume | String (Decimal) | Total traded volume (USD) |
liquidity | String (Decimal) | Current liquidity |
closed | Boolean | Whether market is resolved |
side_a_token_id | String | Token ID for outcome A (needed for candles, orderbook, and price jumps) |
side_b_token_id | String | Token ID for outcome B |
outcome_a | String | Label for outcome A |
outcome_b | String | Label for outcome B |
current_price_a | String (Decimal) | Current price for outcome A |
current_price_b | String (Decimal) | Current price for outcome B |
Notes
side_a_token_id / side_b_token_id needed by Price Jumps, Candlesticks, and Orderbookclosed: "False" to only see active marketsmin_volume to find liquid sport maketsAuthorizations
Your Falcon API key from the dashboard
Body
Polymarket Markets agent ID.
574 Filter parameters. All values must be strings.
Hide child attributes
Hide child attributes
Hex condition ID of a specific market. Use for an exact market lookup.
Slug or slug prefix (for example, "nba-" for all NBA markets).
Minimum traded volume in USD, passed as a string (for example, "10000").
"True" for resolved markets, "False" for open markets. Omit to return both.
True, False Earliest end date filter: Unix timestamp in seconds, as a string (for example, "1600000000").
Latest end date filter: Unix timestamp in seconds, as a string (for example, "2200000000").
Response
Success
Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
Market condition ID
Market question
Market slug
Market resolution date (ISO 8601)
Total traded volume (USD)
Current liquidity
Whether market is resolved
Token ID for outcome A (needed for candles, orderbook, and price jumps)
Token ID for outcome B
Label for outcome A
Label for outcome B
Current price for outcome A
Current price for outcome B