Skip to main content
Use the Onsomble API to pull discoverability results into your own reporting tools or start a Scan from another system. The API is served at https://api.onsomble.ai/v1.

Before you begin

Your account needs a plan that includes API access. If it does not, requests return a feature_not_in_plan error with a link to the available plans.

Create an API key

  1. In Onsomble, open Settings → Account.
  2. In API Keys, select Create key.
  3. Give the key a name that identifies the integration.
  4. Agency accounts can choose Account scope or restrict the key to one Client. Business accounts use account scope.
  5. Copy the key when it is shown, then store it in your integration’s secret manager. Onsomble does not show the full key again.
Treat an API key like a password. Do not put it in browser code, source control, logs, or a client-side application.

Make your first call

List the Sites visible to the key. Replace ons_your_api_key with the key you copied.
The response contains Sites in newest-first order. Use nextCursor as the cursor query parameter on the next request until it is null.

Authenticate requests

Send the key with every request using the HTTP Authorization header:
An account-scoped key can access the account’s data. A client-scoped key can access only the selected Client and its Sites. Revoking a key immediately prevents it from being used.

Filter reports by platform

Report endpoints use stable platform IDs. Each ID tells you which AI product answered and whether Onsomble collected that answer from the web or an API. Provider implementation details stay internal. For example, chatgpt_app means ChatGPT on the web, while chatgpt_api means ChatGPT through its API. Repeat the platform query parameter to include more than one:
Each Prompt Result names the platform directly:
The API reference lists every accepted platform ID.

Work within rate limits

Rate limits apply to the account, not to an individual key. Keys belonging to the same account share one request bucket. Every response includes these headers: When a request returns 429, wait until X-RateLimit-Reset before retrying. Do not create extra keys to increase throughput: they share the same account limit.

Handle errors by code

Every non-success response has a stable JSON envelope with statusCode, code, and message. Your integration should branch on code, not on the message text.

Explore the reference

Open Sites, Clients, Scans, or Reports in the sidebar for every endpoint, query parameter, and response field. Check the API changelog before moving an integration to a new major version.