The smart search endpoint accepts a plain English query and returns a ranked list of matching profiles. Orbit resolves your query through structured, semantic, and agentic search modes automatically — you don’t need to specify a mode. Each successful request costs credits; requests that return no results or fail validation are refunded.Documentation Index
Fetch the complete documentation index at: https://docs.orbitsearch.com/llms.txt
Use this file to discover all available pages before exploring further.
Authentication
Include your developer API key in every request. The key must have thesearch:read scope.
Request
Headers
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Bearer sk_orb_... with search:read scope |
Content-Type | Yes | application/json |
Idempotency-Key | No | A UUID or client-generated key for safe retries |
Body parameters
Natural language description of the people you’re searching for. Cannot be empty.Example:
"founders in sf", "machine learning engineers at Series B startups"Number of results to return. Must be a positive integer. Maximum value is
100.Scope of the search. Omit this field or set
{"type":"global"} to search the full Orbit index. Use a directory-scoped value to restrict results to one or more directories.userIdis not accepted in the request body.searchId(search replay) is not accepted in the request body.- Personal API keys can only use global search. To use a directory scope, you must use an organization API key.
Search scope examples
- Global
- Single directory
- Multiple directories
Omit
searchScope entirely, or pass {"type":"global"}, to search the full Orbit index.Response
200 Success
Always
"success" for a 200 response.Unique identifier for this search request. Useful for support and debugging.
Response headers
| Header | Description |
|---|---|
X-Developer-API-Credits-Remaining | Your remaining credit balance after this request was charged |
Credits
Each successful smart search costs 2 credits by default, regardless ofnumUsers. Credits are reserved before the search runs, so out-of-credit requests fail immediately without consuming search resources. If a search returns no results or fails, the reservation is refunded.
Rate limits
60 requests per 60 seconds per API key. Rate limits are tracked per key, not per IP address. A429 response does not consume credits.
Error responses
400 — Bad request
400 — Bad request
| Code | Description |
|---|---|
developer_query_required | query is missing or empty |
developer_num_users_required | numUsers is missing or not a valid positive integer |
developer_num_users_limit_exceeded | numUsers exceeds the maximum of 100 |
developer_user_id_override_forbidden | Request body includes a userId field, which is not permitted |
developer_search_replay_unsupported | Request body includes a searchId field; search replay is not supported for developer API keys |
401 — Unauthorized
401 — Unauthorized
402 — Payment required
402 — Payment required
| Code | Description |
|---|---|
developer_api_credits_insufficient | Your remaining credits are lower than the cost of this search |
403 — Forbidden
403 — Forbidden
| Code | Description |
|---|---|
invalid_api_key | The key is malformed, revoked, expired, or unknown |
missing_api_key_scope | The key does not have the search:read scope |
developer_api_key_organization_required | A directory scope was requested, but the key is a personal API key |
developer_api_key_organization_forbidden | The organization API key is not authorized for the requested organization search scope |
search_directory_access_api_key_forbidden | The organization API key does not have a matching directory search grant |
404 — Not found
404 — Not found
| Code | Description |
|---|---|
search_directory_not_found | One or more requested directories do not exist, are archived, or are unavailable for search. Also returned when a search runs successfully but no profiles matched — in this case, no credits are consumed. |
409 — Conflict
409 — Conflict
| Code | Description |
|---|---|
developer_api_idempotency_key_conflict | The idempotency key was reused with different request parameters. Use a different key. |
developer_api_idempotency_key_refunded | The idempotency key belongs to a previously refunded request. Send a fresh idempotency key to retry. |
429 — Rate limited
429 — Rate limited
| Code | Description |
|---|---|
developer_api_key_rate_limited | You have exceeded 60 requests per 60 seconds for this API key |