Base URL
There are two, and which one you use depends on where your code runs.
The proxy path is not a convenience wrapper. In the Compose stack the API stays on a private network and is never published, so the web origin is the only way in from outside the host. The proxy forwards your
Authorization header unchanged.
Authentication
Send a personal API token as a bearer header on every request. See Authenticate API requests.Content type
JSON in, JSON out. SendContent-Type: application/json on any request with a body. Errors are JSON too, in a consistent envelope. See Error responses.
The OpenAPI document
Your own instance serves it at/docs-json, with human readable documentation at /docs.
Both are gated by API_DOCS, which defaults to owner. An unauthenticated request answers 404 rather than 401, because the surface does not confirm it exists. See The queue dashboard and the OpenAPI surface.
The copy powering the endpoint pages in this tab is committed in the repository, so this documentation site never needs a running instance to build.
A worked example
Authenticate, list apps, pull a ranking history and write it out. Every step uses the same bearer header.null means the keyword was checked and the app was not found within that row’s depth, so never read it as zero. Every daily value is a UTC date string, so compare the strings rather than parsing them into local time. See API conventions.
Export formats
The API speaks JSON only, which is what a script should read. CSV is a dashboard feature: the keyword monitor and the rankings view export the table you are looking at, with the filters you applied. See Export data. ReadRateLimit-Remaining on the way through if the instance is metered, and honour Retry-After on a 429. See Rate limits and quotas.
Generate a client
Any OpenAPI generator works against the document.@asobeast/shared directly instead. It holds the same contract types the API and the dashboard are built from, which is what the MCP server does.
Related
API conventions
UTC dates, 1 based positions, 202 for queued work.
Rate limits and quotas
What a metered instance allows and what a 429 means.