API
The Asky API lets you pull your AI-search visibility data into your own systems: a data warehouse, a BI tool, an internal dashboard, or any automation you run.
It is a REST API over HTTPS. It returns JSON, uses standard HTTP status codes, and authenticates with a workspace API key you create in Settings.
The API is available on request while we onboard the first workspaces. If you do not see the API keys tab in Settings, contact us and we will enable it for your workspace.
Base URL
https://api.askylabs.com/v1Every request must use HTTPS. Requests over plain HTTP are refused rather than redirected, because a redirect would send your API key over an unencrypted connection first.
Reads and writes
Almost everything in v1 is a GET. The write surface is deliberately small and, for now, covers topics only: creating, renaming and deleting them.
Writes are off unless your workspace is explicitly enabled for them. Every key is minted read-only, and a key can only carry a write permission if the workspace holds the write entitlement at the moment the key is created. If yours does not, a write returns 403 plan_required and a leaked key cannot alter anything.
Every write also requires an Idempotency-Key, so a retried request cannot apply twice.
What you can read
| Area | Examples |
|---|---|
| Visibility | Daily visibility and mention rate, per engine, per topic, per country |
| Competitors | Share of voice, rankings, and per-competitor profiles |
| Prompts | Tracked prompts, their metrics over time, individual executions, and the AI answers behind them |
| Citations | Cited domains and URLs, earned mentions, and per-domain drill-downs |
| Website | Indexed pages and how they perform as citation sources |
The full endpoint list lives in the OpenAPI specification , which is generated from the same definitions that serve the API, so it never drifts from the implementation.
Your first request
curl https://api.askylabs.com/v1/me \
-H "Authorization: Bearer asky_sk_..."{
"data": {
"workspace_id": "8f14e45f-...",
"scopes": ["read:basic", "read:visibility", "read:citations", "read:prompts",
"read:opportunities", "read:website", "read:content"],
"brand_access": "all",
"created_by": "8f14e45f-..."
},
"request_id": "req_01J8Z3K9QW"
}See the quickstart for a complete walkthrough.
Response shape
Every successful response is a JSON object with the same top-level keys.
{
"data": [ ... ],
"pagination": { "limit": 20, "has_more": true, "next_cursor": "eyJrIjoi..." },
"meta": { "period": { "start_date": "2026-07-15", "end_date": "2026-08-14" } },
"request_id": "req_01J8Z3K9QW"
}dataholds the result. It is an object for single resources and an array for lists.paginationappears only on list endpoints. See pagination.metadescribes the result set rather than any row in it, most often the date window actually used. It appears only where an endpoint has something to say.request_ididentifies this exact request in our logs. Include it in any support conversation.
Errors use a different envelope, described in error handling.
Treat response objects as open. We add fields within a version, so your client must ignore properties it does not recognise. See versioning.
Where to go next
- Quickstart creates a key and walks through a first integration.
- API keys explains how authentication works and what a key can reach.
- Manage API keys covers rotation, revocation, and storage.
- Pagination, filtering and expanding responses cover reading data at scale.
- Common integrations shows the patterns most people build.
- Error handling covers what to retry, and testing covers how to prove it works.
If you want your AI assistant to query Asky conversationally rather than writing an integration, use the MCP server instead. It reads the same data through a different door.