Intelligence API
READ: feed, views, datasets, markets under /api/v1/intelligence/*. sk_live_… server-side (Authentication). Read-only. Execution → Actions API, chat → Assistant API. Aliases → API Layout.
At a Glance
| Base URL | https://app.torque.fi/api/v1 |
| Primary Route | GET /api/v1/intelligence/feed |
| Auth | Authorization: Bearer sk_live_… (business API key) |
| Manifest | 7: probe GET /api/v1/capabilities |
| Canonical item | IntelligenceItemV1 |
Read Profiles
| Profile | Prefix | Use when |
|---|---|---|
| feed | /intelligence/feed, /intelligence/views/* | Editorial carousel: IntelligenceItemV1 |
| dataset | /intelligence/datasets/* | Pipeline DTOs (events, funding, earnings) |
| market | /intelligence/markets/* | Yield & lend/borrow rate tiles |
Get Started
# sk_live_… → app.torque.fi → API Integration (server only)
curl -sS "https://app.torque.fi/api/v1/capabilities" | jq '.manifestVersion, .intelligence.primary'
export TORQUE_KEY="sk_live_…"
curl -sS "https://app.torque.fi/api/v1/intelligence/feed?chainId=8453&includeBrief=1&walletAddress=0x…" \
-H "Authorization: Bearer $TORQUE_KEY" \
| jq '.meta.manifestVersion, (.items | length), .brief.summary'Primary Feed
GET https://app.torque.fi/api/v1/intelligence/feed
Query Parameters
| Param | Default | Description |
|---|---|---|
| walletAddress | n/a | Personalize trade angles & outlook context |
| chainId | 8453 (Base) | Chain for action deep links in items |
| lanes | all | Comma-separated: timely, desk, outlook |
| kinds | signal,angle | Comma-separated: signal, angle, brief, outlook |
| limit | 12 (max 24) | Max items in flat items[] |
| includeBrief | 0 | Set 1 to include brief object |
| force | 0 | Set 1 to force live angle reroll (cooldown applies) |
Response Shape
{
"meta": {
"manifestVersion": 7,
"generatedAtMs": 1710000000000,
"bundleIngestedAtMs": 1710000004500,
"personalized": true,
"walletAddress": "0x892e…",
"chainId": 8453,
"resolution": {
"angles": { "tier": "pool", "ageMs": 120000 },
"signals": { "tier": "live", "bundleAgeMs": 45000 }
},
"dedupedCount": 2
},
"brief": { "id": "…", "kind": "brief", "title": "…", "summary": "…", "symbols": ["ETH"] },
"lanes": {
"timely": { "id": "timely", "label": "Happening now", "items": [/* signal */] },
"desk": { "id": "desk", "label": "Trade angles", "items": [/* angle */] }
},
"items": [/* flat, deduped, server-ranked list */]
}Render items[] or pre-partitioned lanes.desk / lanes.timely. includeBrief=1 → hero brief.summary.
Data Model: IntelligenceItemV1
One IntelligenceItemV1 shape across v7: single list/carousel; branch on kind; ignore unknown kinds.
| kind | Meaning | Typical Lane |
|---|---|---|
| signal | Proactive / happening-now market event | timely |
| angle | Desk trade read with bias & levels | desk |
| brief | Hero one-liner for home / notification surfaces | n/a (top-level brief field) |
| outlook | Stored market outlook synthesis per wallet | outlook |
{
"id": "desk_ETH_watch_gmq2sjj9i",
"kind": "angle",
"title": "ETH tokenization megatrend, short squeeze potential",
"summary": "Ethereum looks constructive toward $1,600…",
"horizon": "swing",
"symbols": ["ETH"],
"bias": "Watch",
"relevanceScore": 4,
"levels": { "last": 1554.71, "invalidation": 1530, "target": 1600 },
"source": { "type": "desk", "label": "Torque desk synthesis" },
"actions": [
{ "label": "Buy ETH", "href": "/trade?sell=usd&buy=eth", "chainId": 8453, "iconSymbol": "ETH" }
],
"dedupeKey": "eth-tokenization-megatrend",
"ingestedAtMs": 1710000000000,
"resolution": { "tier": "pool", "ageMs": 312564 }
}Display body is summary. Server dedupes via dedupeKey; no client merge.
Enriched Action Tiles
Optional actions[] deep links per item. Live rate tables → Markets.
| Field | Example | Use |
|---|---|---|
| label | "Lend USD" | Primary tile title |
| subtitle | "Earn 23.45% APY on USD via Aave." | Secondary line |
| href | /lend?supply=usd | Torque app path |
| torqueUrl | https://app.torque.fi/lend?… | Absolute link for partners |
| apyPercent / aprPercent | 23.45 / 3.35 | Supply yield / borrow rate |
| opportunityType | lend | borrow | trade | perp | other | Tile category |
| protocol | "Aave" | Venue label |
| idleUsd / estimatedAnnualUsd | n/a | Personalized yield only |
Specialized Views
Prefer /feed; views for smaller payloads or legacy keys.
| Route | Equivalent Feed Filter | Response |
|---|---|---|
| GET …/trade-angles | kinds=angle, lanes=desk | { ideas: IntelligenceItemV1[], meta } |
| GET …/happening-now | kinds=signal, lanes=timely | { items, ingestedAtMs, meta } |
| GET …/brief | includeBrief=1 | { brief: IntelligenceItemV1 } |
| GET …/market-outlook | kinds=outlook, wallet required | { item, meta }: 404 when none stored |
SDK Methods
| Endpoint | torque-node / torque-intelligence | Returns |
|---|---|---|
| GET …/intelligence/feed | getFeed() | Signals, angles, brief, lanes |
| GET …/intelligence/views/trade-angles | getTradeAngles() / getView() | Desk trade angles |
| GET …/intelligence/views/happening-now | getHappeningNow() / getView() | Timely macro & market signals |
| GET …/intelligence/views/brief | getView('brief') | Single brief item |
| GET …/intelligence/views/market-outlook | getView('market-outlook') | Stored outlook for wallet |
| GET …/intelligence/markets/yield | getYieldOpportunities() | Idle cash APY tiles |
| GET …/intelligence/markets/lending | getLendingOpportunities() | Lend/borrow catalog rates |
| GET …/intelligence/datasets/* | getDataset(id, params?) | Pipeline DTOs (Pro SKUs) |
Datasets (read profile dataset)
Pipeline DTOs: GET /intelligence/datasets/* (aliases /data/*, /widgets/*). Pro SKUs need Platform Data Pro on your account.
| SKU | Route | Status | Tier | SDK |
|---|---|---|---|---|
| funding-radar | GET /api/v1/intelligence/datasets/funding-radar | Shipped | Pro | getDataset('funding-radar') |
| earnings-spotlight | GET /api/v1/intelligence/datasets/earnings-spotlight | Shipped | Pro | getDataset('earnings-spotlight') |
| events | GET /api/v1/intelligence/datasets/events | Shipped | Pro | getDataset('events', { days }) |
| movers | GET /api/v1/data/movers | Planned | Pro | n/a |
| flight-radar | GET /api/v1/data/flight-radar | Planned | Pro | n/a |
| marine-traffic | GET /api/v1/data/marine-traffic | Planned | Pro | n/a |
| allocation | GET /api/v1/data/allocation?walletAddress= | Planned | Pro | n/a |
GET /api/v1/intelligence/datasets/events
FOMC schedule, curated US macro, tracked earnings. Query days (default 90, max 365). Legacy alias /data/events.
curl -sS "https://app.torque.fi/api/v1/intelligence/datasets/events?days=30" \
-H "Authorization: Bearer sk_live_…"GET /api/v1/intelligence/datasets/funding-radar
Hyperliquid perp funding long/short bias. Legacy aliases /data/funding-radar, /widgets/funding-radar.
curl -sS "https://app.torque.fi/api/v1/intelligence/datasets/funding-radar" \
-H "Authorization: Bearer sk_live_…"GET /api/v1/intelligence/datasets/earnings-spotlight
Upcoming earnings (~14 days), estimates, perp/spot flags. Legacy alias /data/earnings-spotlight.
curl -sS "https://app.torque.fi/api/v1/intelligence/datasets/earnings-spotlight" \
-H "Authorization: Bearer sk_live_…"Dataset response meta
interface PlatformDataMetaV1 {
generatedAtMs: number
pipelineId: string // SKU, e.g. "events"
homeWidgetId?: string // optional Torque UI trace
integratorTier: 'standard' | 'pro'
}Use dedicated dataset DTOs; do not force pipeline rows into IntelligenceItemV1 when a pipeline shape exists.
Markets (read profile market)
Yield & lending rate tiles: /intelligence/markets/* (alias /opportunities/*).
| GET /api/v1/intelligence/markets/yield | Idle cash APY; alias /opportunities/yield |
| GET /api/v1/intelligence/markets/lending | Supply APY + borrow APR; alias /opportunities/lending |
curl -sS "https://app.torque.fi/api/v1/intelligence/markets/yield?walletAddress=0x…" \
-H "Authorization: Bearer sk_live_…" | jq '.meta, (.markets | length)'Errors
| Status | Code | When |
|---|---|---|
| 401 | UNAUTHORIZED / INVALID_API_KEY | Missing or invalid business key |
| 429 | RATE_LIMIT_EXCEEDED | Business key exceeded 100 req/min — Retry-After header; see Errors guide |
| 429 | COOLDOWN | force=1 within reroll cooldown: retryAfterMs in body |
| 503 | INTELLIGENCE_UNAVAILABLE | Bundle temporarily unavailable |
See Also
- Authentication :
sk_live_…&walletAddress - API Layout ; aliases & manifest
- React SDK : BFF hooks for feed & markets
- Live capabilities JSON