API Reference
Every Elfa REST endpoint in one table. API v3 is the newest set of endpoints; API v2 keeps working alongside it. Click any endpoint for full parameters, responses, and an interactive "Try it" console.
| Version | Base | Auth | Start here |
|---|---|---|---|
| v3 | api.elfa.ai/v3 | x-elfa-api-key | API v3 overview |
| v2 | api.elfa.ai/v2 | x-elfa-api-key | API v2 overview |
| v2 x402 | api.elfa.ai/x402/v2 | No key. Pay per request in USDC | x402 Payments |
See Authentication for keys and access, and Rate Limits for limits, including x402.
| Method | Path | Version | Link |
|---|---|---|---|
| v3 · Events | |||
| GET | /v3/events | v3 | Events |
| GET | /v3/events/arcs | v3 | Arcs |
| GET | /v3/events/storylines | v3 | Storylines |
| v3 · Market | |||
| GET | /v3/market/crypto/call-book | v3 | Crypto call book |
| GET | /v3/market/crypto/mindshare | v3 | Crypto mindshare |
| GET | /v3/market/crypto/trending-contracts | v3 | Trending contracts |
| GET | /v3/market/equity/call-book | v3 | Equity call book |
| GET | /v3/market/equity/mindshare | v3 | Equity mindshare |
| v3 · Calls | |||
| GET | /v3/calls | v3 | Calls |
| GET | /v3/calls/episodes | v3 | Call episodes |
| GET | /v3/calls/positioning | v3 | Positioning |
| v3 · People | |||
| GET | /v3/people/accounts | v3 | Top accounts |
| v3 · Entities | |||
| GET | /v3/entities | v3 | Entities |
| v3 · Account | |||
| GET | /v3/key-status | v3 | Key status |
| v2 · Chat | |||
| POST | /v2/chat | v2 | AI chat |
| POST | /v2/chat/stream | v2 | AI chat stream |
| v2 · Mentions | |||
| GET | /v2/data/keyword-mentions | v2 | Multi keyword mentions search |
| GET | /v2/data/token-news | v2 | Token news mentions (tweet source only) |
| GET | /v2/data/top-mentions | v2 | Top mentions |
| v2 · Trending | |||
| GET | /v2/aggregations/trending-cas/telegram | v2 | Trending contract addresses on Telegram |
| GET | /v2/aggregations/trending-cas/twitter | v2 | Trending contract addresses on Twitter |
| GET | /v2/aggregations/trending-tokens | v2 | Trending tokens |
| v2 · Narratives | |||
| GET | /v2/data/event-summary | v2 | Event summary from keyword mentions (5 credits total) |
| GET | /v2/data/trending-narratives | v2 | Trending narratives (5 credits total) |
| v2 · Accounts | |||
| GET | /v2/account/smart-stats | v2 | Smart stats of accounts (legacy, removed 28 Oct 2026) |
| v2 · Account | |||
| GET | /v2/key-status | v2 | API key status |
| GET | /v2/ping | v2 | Health check endpoint |
| v2 x402 · Chat | |||
| POST | /x402/v2/chat | v2 x402 | AI chat |
| v2 x402 · Mentions | |||
| GET | /x402/v2/data/keyword-mentions | v2 x402 | Multi keyword mentions search |
| GET | /x402/v2/data/token-news | v2 x402 | Token news mentions (tweet source only) |
| GET | /x402/v2/data/top-mentions | v2 x402 | Top mentions |
| v2 x402 · Trending | |||
| GET | /x402/v2/aggregations/trending-cas/telegram | v2 x402 | Trending contract addresses on Telegram |
| GET | /x402/v2/aggregations/trending-cas/twitter | v2 x402 | Trending contract addresses on Twitter |
| GET | /x402/v2/aggregations/trending-tokens | v2 x402 | Trending tokens |
| v2 x402 · Narratives | |||
| GET | /x402/v2/data/event-summary | v2 x402 | Event summary from keyword mentions (5 credits total) |
| GET | /x402/v2/data/trending-narratives | v2 x402 | Trending narratives (5 credits total) |
| v2 x402 · Accounts | |||
| GET | /x402/v2/account/smart-stats | v2 x402 | Smart stats of accounts (legacy, removed 28 Oct 2026) |
| v2 Auto · Auto | |||
| DELETE | /v2/auto/queries/{queryId} | v2 Auto | Delete Query |
| DELETE | /v2/auto/queries/drafts/{draftId} | v2 Auto | Delete Query Draft |
| GET | /v2/auto/executions | v2 Auto | List Executions |
| GET | /v2/auto/executions/{executionId} | v2 Auto | Get Execution |
| GET | /v2/auto/queries | v2 Auto | List Queries |
| GET | /v2/auto/queries/{queryId} | v2 Auto | Poll Query |
| GET | /v2/auto/queries/{queryId}/sessions | v2 Auto | List LLM Sessions |
| GET | /v2/auto/queries/{queryId}/sessions/{sessionId} | v2 Auto | LLM Session Details |
| GET | /v2/auto/queries/{queryId}/stream | v2 Auto | Stream Notifications |
| GET | /v2/auto/queries/drafts | v2 Auto | List Query Drafts |
| GET | /v2/auto/queries/drafts/{draftId} | v2 Auto | Get Query Draft |
| GET | /v2/auto/queries/stream | v2 Auto | Stream All Notifications |
| GET | /v2/auto/validate-symbol/{exchange}/{symbol} | v2 Auto | Validate Symbol |
| POST | /v2/auto/chat | v2 Auto | Builder Chat |
| POST | /v2/auto/queries | v2 Auto | Create Query |
| POST | /v2/auto/queries/{queryId}/cancel | v2 Auto | Cancel Query |
| POST | /v2/auto/queries/drafts | v2 Auto | Upsert Query Draft |
| POST | /v2/auto/queries/drafts/{draftId}/convert | v2 Auto | Convert Query Draft |
| POST | /v2/auto/queries/drafts/{draftId}/validate | v2 Auto | Validate Query Draft |
| POST | /v2/auto/queries/validate | v2 Auto | Validate Query |
| v2 Auto x402 · Auto | |||
| GET | /x402/v2/auto/queries/{queryId}/stream | v2 Auto x402 | Stream Notifications |
| POST | /x402/v2/auto/chat | v2 Auto x402 | Builder Chat |
| POST | /x402/v2/auto/queries | v2 Auto x402 | Create Query |
| POST | /x402/v2/auto/queries/{queryId} | v2 Auto x402 | Poll Query |
| POST | /x402/v2/auto/queries/{queryId}/cancel | v2 Auto x402 | Cancel Query |
| POST | /x402/v2/auto/queries/{queryId}/sessions | v2 Auto x402 | List LLM Sessions |
| POST | /x402/v2/auto/queries/{queryId}/sessions/{sessionId} | v2 Auto x402 | LLM Session Details |
| POST | /x402/v2/auto/queries/validate | v2 Auto x402 | Validate Query |
Response Compatibility
Response bodies and headers are extensible. We add optional fields and response
headers without a version bump. That is a backwards-compatible change, and your
client should ignore what it does not recognise. Removals, renames, retypes and
semantic changes are not made this way: those get a deprecation window, Deprecation
/ Sunset headers on the affected routes, and an entry in the Changelog.
Practically, when integrating:
- Do not pin an Elfa response with an exact-shape assertion:
z.strictObject, Zod.strict(), JSON SchemaadditionalProperties: false, Pydanticextra="forbid", or an exhaustive discriminated union. The next additive field will break your client even though the API stayed compatible. - Do parse leniently and select the fields you use. The official
SDKs already behave this way:
@elfa-ai/sdktypes responses without validating them, andelfa-sdk(Python) setsextra="allow"on every model. - Subscribe to the Changelog for additions worth adopting, for
example the
creditsfield andx-elfa-creditsheader that report what a call cost.