{"openapi":"3.1.0","info":{"title":"Exa (BYOK) API","version":"0.1.0","description":"Exa (BYOK) lets an AI assistant read your own Exa data through the Exa API with a key you supply (API key). Read-only: 8 tools (list_websets, get_webset, list_webset_items, get_webset_item, list_monitors, list_imports, list_events, list_webhooks). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to api.exa.ai....\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-exa.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-exa/docs"},"termsOfService":"https://connectorbay.com/byok-exa/terms"},"servers":[{"url":"https://byok-exa.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-exa/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_websets":{"post":{"operationId":"list_websets","summary":"List your Websets (saved Exa searches that collect and enrich web entities) with status, title, the searches that were r","description":"List your Websets (saved Exa searches that collect and enrich web entities) with status, title, the searches that were run and timestamps. Use for \"Which Exa Websets do I have and are any still running\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer (leave empty for the first page).","title":"Cursor"}},"title":"list_websetsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_webset":{"post":{"operationId":"get_webset","summary":"Get one Webset: status, title, its searches with progress, imports, enrichments and monitors. Use for \"Show the status a","description":"Get one Webset: status, title, its searches with progress, imports, enrichments and monitors. Use for \"Show the status and searches of one Exa Webset\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"webset_id":{"description":"Webset ID or your own externalId, as returned by list_websets (id).","maxLength":100,"title":"Webset Id","type":"string"}},"required":["webset_id"],"title":"get_websetArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_webset_items":{"post":{"operationId":"list_webset_items","summary":"List the items (people, companies, articles, papers) a Webset collected, with their properties and how well each satisfi","description":"List the items (people, companies, articles, papers) a Webset collected, with their properties and how well each satisfies the search criteria. Use for \"Show the companies found by my Exa Webset\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"webset_id":{"description":"Webset ID or your own externalId, as returned by list_websets (id).","maxLength":100,"title":"Webset Id","type":"string"},"source_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only items found by this search or import ID.","title":"Source Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer (leave empty for the first page).","title":"Cursor"}},"required":["webset_id"],"title":"list_webset_itemsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_webset_item":{"post":{"operationId":"get_webset_item","summary":"Get one item of a Webset with its properties and criteria evaluations. Use for \"Show one specific result item of my Exa ","description":"Get one item of a Webset with its properties and criteria evaluations. Use for \"Show one specific result item of my Exa Webset\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"webset_id":{"description":"Webset ID or your own externalId, as returned by list_websets (id).","maxLength":100,"title":"Webset Id","type":"string"},"item_id":{"description":"Item ID as returned by list_webset_items (id).","maxLength":100,"title":"Item Id","type":"string"}},"required":["webset_id","item_id"],"title":"get_webset_itemArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_monitors":{"post":{"operationId":"list_monitors","summary":"List monitors that re-run a Webset search or refresh on a schedule, with status, cron cadence, last run and next run tim","description":"List monitors that re-run a Webset search or refresh on a schedule, with status, cron cadence, last run and next run time. Use for \"Which Exa monitors are enabled and when do they run next\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"webset_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only monitors of this Webset ID.","title":"Webset Id"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 200).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer (leave empty for the first page).","title":"Cursor"}},"title":"list_monitorsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_imports":{"post":{"operationId":"list_imports","summary":"List imports (CSV or Webset data brought in as a source) with status, format, row count and any failure message. Use for","description":"List imports (CSV or Webset data brought in as a source) with status, format, row count and any failure message. Use for \"Which data imports exist in my Exa account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 200).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer (leave empty for the first page).","title":"Cursor"}},"title":"list_importsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_events":{"post":{"operationId":"list_events","summary":"List recent Webset events (created, item added, search completed, import completed and so on), newest first, optionally ","description":"List recent Webset events (created, item added, search completed, import completed and so on), newest first, optionally by time window. Use for \"What happened in my Exa Websets in the last day\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"created_after":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only events at or after this ISO 8601 time.","title":"Created After"},"created_before":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only events at or before this ISO 8601 time.","title":"Created Before"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 200).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer (leave empty for the first page).","title":"Cursor"}},"title":"list_eventsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_webhooks":{"post":{"operationId":"list_webhooks","summary":"List webhooks registered for Webset events with URL, subscribed event types and status (signing secrets are not returned","description":"List webhooks registered for Webset events with URL, subscribed event types and status (signing secrets are not returned). Use for \"Which Exa webhooks are registered\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 200).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"The nextCursor value of the previous answer (leave empty for the first page).","title":"Cursor"}},"title":"list_webhooksArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}