# Exa API Proxies the Exa API. Ephemeral tenants get the Exa core retrieval surface, Claimed Free adds research plus deep search and deep-reasoning search, and Plus/Pro unlock websets and monitors. No Exa API key is needed. ## Prerequisites Edge calls require this resource to be provisioned first; unprovisioned calls return an error. ### Provision curl -s -X POST https://cohesivity.ai/api/resources/exa-api \ -H "Authorization: Bearer " ### Delete curl -s -X DELETE https://cohesivity.ai/api/resources/exa-api \ -H "Authorization: Bearer " Provisioning happens once, before the application runs; the running application does not provision its own resources. ## Official Docs https://exa.ai/docs/reference covers full request and response details. > **Server-side only.** `coh_application_key` is a secret; browser JS, mobile bundles, and other client-side code cannot hold it safely. This call belongs in a Railway-hosted server, `cloudflare-workers`, or your own server tier. See the canonical key-secrecy directive in `.cohesivity` for details. ## Edge Usage - **Base URL:** https://cohesivity.ai/edge/exa-api - **Auth:** `coh_application_key` as the **key** query parameter - **Method:** mostly POST with JSON body; Plus/Pro may also use Exa's webset and monitor endpoints through the same proxy - **Format:** matches Exa's API: same paths, same request/response shapes ## Launch Access Policy - **Ephemeral core surface:** `POST /search`, `POST /contents`, `POST /findSimilar`, `POST /answer`, and `POST /context` - **Ephemeral search-type restriction:** `/search` only allows `instant`, `fast`, `auto`, and `neural` - **Blocked on Ephemeral:** `/research*`, `/websets*`, `/monitors*`, and `/search` types `deep-lite`, `deep`, `deep-reasoning` - **Claimed Free:** core retrieval, `/research*`, and deep search types including `deep-lite`, `deep`, and `deep-reasoning`; websets and monitors require Plus or Pro - **Claimed Plus and Claimed Pro:** claimed search types plus websets and monitors ## Products - **Search** (`POST /search`): find web pages matching a query. Claimed tenants can use deep search types, including `deep-reasoning`, through the same endpoint. Returns titles, URLs, dates, and optionally text/summaries. - **Contents** (`POST /contents`): extract text, highlights, or summaries from a list of URLs. - **Find Similar** (`POST /findSimilar`): find pages similar to a URL or document. - **Context** (`POST /context`): return compact context payloads for downstream reasoning. - **Answer** (`POST /answer`): ask a question and get the final synthesized answer with citations. This is the LLM answer surface, not just raw retrieval. - **Research** (`/research*`): claimed tenants can use Exa research surfaces. Ephemeral tenants must claim first. - **Monitors** (`/monitors*`): watch topics or pages over time. Plus/Pro only. - **Websets** (`/websets/v0/websets*`): build structured datasets from web data asynchronously. Plus/Pro only. ## Examples - Search: `POST https://cohesivity.ai/edge/exa-api/search?key=` with body `{ "query": "...", "numResults": 10, "type": "auto" }` - Contents: `POST https://cohesivity.ai/edge/exa-api/contents?key=` with body `{ "urls": ["https://example.com"], "text": true }` - Answer: `POST https://cohesivity.ai/edge/exa-api/answer?key=` with body `{ "query": "..." }` - Context: `POST https://cohesivity.ai/edge/exa-api/context?key=` with body `{ "query": "..." }` - Research (claimed tiers): `POST https://cohesivity.ai/edge/exa-api/research?key=` with the body shape from Exa's current docs - Deep reasoning search (claimed tiers): `POST https://cohesivity.ai/edge/exa-api/search?key=` with body `{ "query": "...", "numResults": 1, "type": "deep-reasoning" }` - Websets (Plus/Pro): `POST https://cohesivity.ai/edge/exa-api/websets/v0/websets?key=` with body `{ "search": { "query": "...", "count": 10 }, "enrichments": [{ "description": "...", "format": "text" }] }` ## Response Format Search and deep-reasoning search: `{ results: [{ title, url, publishedDate?, author?, text?, summary? }], requestId?, autopromptString? }` Contents: `{ results: [{ title, url, text, highlights?, summary? }] }` Answer: `{ answer: "...", citations: [{ url, title, text? }] }` Websets: `{ id: "...", status: "...", dashboardUrl: "..." }` (async: results require polling) ## Billing and Usage - Claimed Exa usage is fluid-only. Successful usage is billed at provider cost plus 10%, rounded up to the nearest cent per settled charge. - Failed upstream responses do not burn quota or fluid; Cohesivity revokes the preflight counters before returning the failure. ## Rate Limits Ephemeral tenants pause as a whole if any authoritative hard cap below is exceeded. Claimed tiers use account-scoped buckets shared across every project owned by the Cohesivity user; OpenAI, AI Gateway, Deepgram, and Exa are fluid-only after tier, rate, and concurrency checks; AI Gateway and Deepgram have no fixed monthly usage bucket for claimed tiers. **Ephemeral** - requests: 50 per ephemeral tenant lifetime before claim or expiry - requests: 5 per minute **Claimed Free** - requests: 15 per minute **Claimed Plus** - requests: 60 per minute **Claimed Pro** - requests: 300 per minute ### Notes - Exa is fluid-only for claimed accounts. Ephemeral tenants get core retrieval only, Claimed Free adds research plus deep search and deep-reasoning search, and Plus/Pro unlock websets and monitors.