Query a profile
Search within a single public Orbit profile. Use a profile ID from Search or Profile Read, ask a plain-English question, and receive matching public fun facts with sources.
POST
The profile query endpoint semantically searches indexed public fun facts for one Orbit profile and returns the matching fun facts with their public sources when available. Use it after Search returns a profile, or after Profile read confirms the profile you want to inspect. Each successful request costs 1 credit. Requests that fail validation, hit a rate limit, have insufficient credits, or target a missing profile do not consume credits.
Requests authenticate with a developer API key that has the
Empty matches on an existing profile are a successful request and consume credits. A missing or private profile returns
search:read scope. See Authentication.
Headers
Bearer sk_orb_... with the search:read scope.A UUID or client-generated key for safe retries.
Path parameters
The profile ID to search. This is the
id value returned in the payload.users array from a Search response or the payload.id value from a Profile read response.Body parameters
Plain-English question or topic to search for inside this profile. The value is trimmed before searching and must be 1,000 characters or fewer.Example:
"founder experience", "music credits", "publications about machine learning"Maximum number of matching facts to return. Must be a positive integer. Defaults to
10. Maximum value is 50.Response
Always
"success" for a 200 response.Profile query returns only public fun facts and their public sources. It does not expose raw contact details, private profile-owner data, internal moderation metadata, raw enrichment records, or Sendit identifiers.
Empty matches
A successful profile query can return an emptymatches array when the profile exists but no public fun fact matches the query:
developer_profile_not_found and is refunded.
Credits
Each successful profile query costs 1 credit. Validation failures, authentication failures, rate-limit failures, insufficient-credit responses, anddeveloper_profile_not_found responses do not consume credits.
Rate limits
25 requests per second per API key, with bursts up to 100 requests. Profile query shares the Search rate-limit bucket withPOST /v2/developer/search and POST /v2/developer/search/sse. A 429 response does not consume credits.
Error responses
| Status | Code | Description |
|---|---|---|
400 | developer_profile_query_required | query is missing, empty, or not a string |
400 | developer_profile_query_too_long | query is longer than 1,000 characters |
400 | developer_profile_query_limit_invalid | limit is not a positive integer |
400 | developer_profile_query_limit_exceeded | limit is greater than 50 |
401 | missing_api_key | No Authorization: Bearer sk_orb_... header was provided |
402 | developer_api_credits_insufficient | Your remaining credits are lower than the cost of a profile query |
403 | invalid_api_key | The key is malformed, revoked, expired, or unknown |
403 | missing_api_key_scope | The key does not have the search:read scope |
404 | developer_profile_not_found | The profile ID does not resolve to a public Orbit profile. The request is refunded. |
409 | developer_api_idempotency_key_conflict | The idempotency key was reused with different request parameters |
409 | developer_api_idempotency_key_refunded | The idempotency key belongs to a previously refunded request |
429 | developer_api_key_rate_limited | You have exceeded the Search rate limit for this API key |
