/api/v1/assets/search
Search Assets: coverage summaries on q, full linked markets on reference
Resolve canonical underlying Assets with q, repeatable exact reference values, or material_only=true by itself. q searches UUID, assetKey, name, ticker, aliases, and platform identifiers; q=* returns the enriched filtered directory. reference exact-matches an Asset UUID/key, AssetIdentifier key/value, or an ACTIVE linked Market marketKey/native ID. Text (q) matches return market_summary — active linked-market count, forecast and published-signal coverage, and the count of markets mispriced by 7.5pp or more — with an empty linked_markets array; resolve an Asset by reference to hydrate every active, open market directly connected by HAS_MARKET with venue odds, Q's latest committed probability, and its paired thesis when available. material_only=true keeps Assets having at least one linked market with venue odds or latest Q. Materiality requires venue odds or latest Q on a linked market. AFFECTS-only markets are excluded. The asset-level stance is its own published, experimental product: GET /api/v1/assets/stance.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| q | query | string | Name, ticker, canonical identity, platform identifier, or keyword. Use '*' for all Assets. Mutually exclusive with reference. Minimum length: 1; Maximum length: 200 |
| reference | query | string[] | Repeat up to 50 exact references: Asset UUID/assetKey, AssetIdentifier key/value, or linked Market marketKey/native ID. Mutually exclusive with q. Maximum items: 50 |
| platform | query | string | Keep Assets having an identifier in this case-insensitive platform namespace. Minimum length: 1; Maximum length: 80 |
| asset_type | query | string | Case-insensitive canonical Asset type filter. Minimum length: 1; Maximum length: 80 |
| material_only | query | boolean | When true, return only Assets with at least one active direct market having non-null venue odds or latest Q. Other active direct linked markets remain in the Asset response. May be supplied alone as the enriched material-Asset directory. Default: false |
Responses
200: Ranked Asset matches: market_summary; full linked_markets in reference mode only
| Field | Type | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| query required | string | null | The supplied q value, '*' for the enriched directory, or null in reference mode. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| references required | string[] | Deduplicated exact references used for this search. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| material_only required | boolean | Whether Asset-level material-data filtering was requested. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| assets required | AssetSearchItem[] | assets fields
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| retrieval required | object | Graph is authoritative for identity and linked-market hydration. Optional Typesense lexical recall fails open to graph results.retrieval fields
|
401: Unauthorized
| Field | Type | Description |
|---|---|---|
| error required | string | Error code |
| message required | string | Human-readable message |
| retry_after | integer | Seconds to wait (only on 429) |
| retryAfter | integer | Seconds to wait for owner-scoped forecast-request quota errors. |
| limit_scope | string | Quota scope that rejected the request, such as standard or x_research. |
| quotaScope | string | Stable forecast-request quota scope, such as venue_market_daily. |
| limit | integer | Configured bound for the forecast-request quota that was exceeded. |
402: Payment Required
| Field | Type | Description |
|---|---|---|
| error required | string | Error code |
| message required | string | Human-readable message |
| retry_after | integer | Seconds to wait (only on 429) |
| retryAfter | integer | Seconds to wait for owner-scoped forecast-request quota errors. |
| limit_scope | string | Quota scope that rejected the request, such as standard or x_research. |
| quotaScope | string | Stable forecast-request quota scope, such as venue_market_daily. |
| limit | integer | Configured bound for the forecast-request quota that was exceeded. |
403: Insufficient credits for the requested route
| Field | Type | Description |
|---|---|---|
| error required | string | Error code |
| message required | string | Human-readable message |
| retry_after | integer | Seconds to wait (only on 429) |
| retryAfter | integer | Seconds to wait for owner-scoped forecast-request quota errors. |
| limit_scope | string | Quota scope that rejected the request, such as standard or x_research. |
| quotaScope | string | Stable forecast-request quota scope, such as venue_market_daily. |
| limit | integer | Configured bound for the forecast-request quota that was exceeded. |
422: Missing, conflicting, or invalid search inputs
| Field | Type | Description |
|---|---|---|
| error required | string | Error code |
| message required | string | Human-readable message |
| retry_after | integer | Seconds to wait (only on 429) |
| retryAfter | integer | Seconds to wait for owner-scoped forecast-request quota errors. |
| limit_scope | string | Quota scope that rejected the request, such as standard or x_research. |
| quotaScope | string | Stable forecast-request quota scope, such as venue_market_daily. |
| limit | integer | Configured bound for the forecast-request quota that was exceeded. |
429: The caller exceeded a per-second, per-minute, daily, or concurrency limit. No credits are debited and no x402 payment is settled for this response.
| Field | Type | Description |
|---|---|---|
| error required | string | Error code |
| message required | string | Human-readable message |
| retry_after | integer | Seconds to wait (only on 429) |
| retryAfter | integer | Seconds to wait for owner-scoped forecast-request quota errors. |
| limit_scope | string | Quota scope that rejected the request, such as standard or x_research. |
| quotaScope | string | Stable forecast-request quota scope, such as venue_market_daily. |
| limit | integer | Configured bound for the forecast-request quota that was exceeded. |
Set QUOTIENT_API_KEY in your shell and replace example identifiers with returned IDs before running a request.
curl --request GET \
--header "x-quotient-api-key: $QUOTIENT_API_KEY" \
'https://quotient-api-gateway.onrender.com/api/v1/assets/search'{
"query": null,
"references": [
"commodity:gold"
],
"material_only": false,
"assets": [
{
"id": "13fe79af-6d3f-47fd-8e67-f0eb23cab4f9",
"assetKey": "commodity:gold",
"name": "Gold",
"ticker": "GOLD",
"asset_type": "commodity",
"aliases": [
"XAU"
],
"identifiers": [
{
"platform": "hyperliquid",
"kind": "coin",
"value": "xyz:GOLD"
}
],
"linked_market_count": 1,
"linked_markets": [
{
"venue": "kalshi",
"nativeMarketId": "KXGOLD-26AUG-T2500",
"nativeEventId": "KXGOLD-26AUG",
"seriesTicker": "KXGOLD",
"marketKey": "kalshi:KXGOLD-26AUG-T2500",
"quotientMarketId": "kalshi:KXGOLD-26AUG-T2500",
"slug": null,
"marketUrl": null,
"sourceUrl": null,
"question": "Will gold settle above $2,500 in August?",
"event": {
"id": "KXGOLD-26AUG",
"title": "Gold price in August",
"slug": null
},
"tags": [
"gold"
],
"categories": [
"Commodities"
],
"end_date": "2026-08-31T20:00:00Z",
"market_odds": 0.87,
"venue_quote": {
"schema_version": "1",
"venue": "kalshi",
"market_id": "KXGOLD-26AUG-T2500",
"yes_bid": 0.87,
"yes_ask": 0.87,
"yes_last": null,
"selected_probability": 0.87,
"quote_method": "midpoint",
"venue_timestamp": "2026-08-31T12:00:00Z",
"observed_at": "2026-08-31T12:00:00Z",
"freshness": "verified"
},
"inDispute": false,
"clarifications": null,
"volume_24h": null,
"signal_count": 0,
"forecast_count": 1,
"latest_forecast_at": "2026-08-08T14:30:00Z",
"market_updated_at": "2026-08-08T15:02:11Z",
"latest_forecast_delta": 0.01,
"latest_forecast_refresh_reason": "price_move",
"quotientUrl": "https://quotient.social/markets/kalshi%3AKXGOLD-26AUG-T2500",
"polymarketUrl": null,
"has_forecast": true,
"latest_q_probability": 0.86,
"thesis": "Q expects gold to remain above the threshold through settlement.",
"forecast_at": "2026-08-08T14:30:00Z",
"market_odds_at_forecast": 0.84,
"has_published_signal": false,
"published_signal_count": 0
}
],
"market_summary": {
"active_market_count": 1,
"markets_with_forecast": 1,
"markets_with_published_signal": 0,
"mispriced_market_count": 0,
"mispricing_threshold_pp": 7.5
},
"relevance": {
"score": 0.018,
"matched_by": [
"graph"
],
"matched_fields": [
"asset_key"
]
}
}
],
"retrieval": {
"graph": "ok",
"typesense": "unconfigured"
}
}