Skip to main content

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.

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.

Authentication

Include your developer API key in every request. The key must have the search:read scope.
Authorization: Bearer sk_orb_...

Request

POST /v2/social/profiles/searches/smart

Headers

HeaderRequiredDescription
AuthorizationYesBearer sk_orb_... with search:read scope
Content-TypeYesapplication/json
Idempotency-KeyNoA UUID or client-generated key for safe retries
Always send an Idempotency-Key header. If you omit it, the server uses the request ID, which prevents duplicate charges within a single request but cannot deduplicate a client-side retry. Use a fresh idempotency key for every new request attempt.

Body parameters

query
string
required
Natural language description of the people you’re searching for. Cannot be empty.Example: "founders in sf", "machine learning engineers at Series B startups"
numUsers
number
required
Number of results to return. Must be a positive integer. Maximum value is 100.
searchScope
object
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.
  • userId is 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

Omit searchScope entirely, or pass {"type":"global"}, to search the full Orbit index.
{
  "query": "founders in sf",
  "numUsers": 10
}

Response

200 Success

{
  "status": "success",
  "searchId": "uuid",
  "payload": {
    "users": []
  }
}
status
string
required
Always "success" for a 200 response.
searchId
string
required
Unique identifier for this search request. Useful for support and debugging.
payload
object
required

Response headers

HeaderDescription
X-Developer-API-Credits-RemainingYour remaining credit balance after this request was charged

Credits

Each successful smart search costs 2 credits by default, regardless of numUsers. 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. A 429 response does not consume credits.

Error responses

CodeDescription
developer_query_requiredquery is missing or empty
developer_num_users_requirednumUsers is missing or not a valid positive integer
developer_num_users_limit_exceedednumUsers exceeds the maximum of 100
developer_user_id_override_forbiddenRequest body includes a userId field, which is not permitted
developer_search_replay_unsupportedRequest body includes a searchId field; search replay is not supported for developer API keys
CodeDescription
missing_api_keyNo Authorization: Bearer sk_orb_... header was provided
CodeDescription
developer_api_credits_insufficientYour remaining credits are lower than the cost of this search
CodeDescription
invalid_api_keyThe key is malformed, revoked, expired, or unknown
missing_api_key_scopeThe key does not have the search:read scope
developer_api_key_organization_requiredA directory scope was requested, but the key is a personal API key
developer_api_key_organization_forbiddenThe organization API key is not authorized for the requested organization search scope
search_directory_access_api_key_forbiddenThe organization API key does not have a matching directory search grant
CodeDescription
search_directory_not_foundOne 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.
CodeDescription
developer_api_idempotency_key_conflictThe idempotency key was reused with different request parameters. Use a different key.
developer_api_idempotency_key_refundedThe idempotency key belongs to a previously refunded request. Send a fresh idempotency key to retry.
CodeDescription
developer_api_key_rate_limitedYou have exceeded 60 requests per 60 seconds for this API key

Code examples

curl -X POST "$API_BASE/v2/social/profiles/searches/smart" \
  -H "Authorization: Bearer sk_orb_REDACTED" \
  -H "Idempotency-Key: request-uuid-or-client-retry-key" \
  -H "Content-Type: application/json" \
  -d '{"query":"founders in sf","numUsers":10}'