Error codes

Every error is { "error": { code, message, hint, docs } } with the matching HTTP status. docs links to the code's entry on this page. Failed requests never cost credits.

400

invalid_param

A parameter is missing or invalid
Why
A query, path or body parameter has the wrong type, is out of range (for example limit above the maximum) or is required and missing. error.param names it.
Fix
Fix the parameter named in error.param and send the request again. The API reference lists every parameter with its type and range.
Retry
Yes, after fixing the request
401

invalid_api_key

Missing or invalid API key
Why
The x-api-key header is missing, the key is mistyped, or it was revoked.
Fix
Send your key in the x-api-key header. Create or copy a key in the dashboard at dash.appgoat.ai under API keys.
Retry
Yes, after fixing the request
401

unauthorized

Not authorized
Why
The request reached a service without valid credentials (for example an internal route, or a key the data service did not accept).
Fix
Call the public API at https://api.appgoat.ai/v1 with your key in x-api-key. Contact support@appgoat.ai if a valid key gets this.
Retry
No
402

insufficient_credits

Not enough credits
Why
The call costs more credits than you have left: your monthly plan credits and any credit packs are used up. Nothing was done and nothing was charged.
Fix
Upgrade your plan in the dashboard under Settings > Billing, or, on Indie and Studio, buy a credit pack there (packs never expire). Plan credits also reset at the start of your next billing cycle.
Retry
No
402

plan_limit

Not included in your plan
Why
The request needs a feature or allowance of a higher plan: more tracked keywords or watched apps than your plan holds, several countries in one call, country=all, or a Studio-only endpoint such as developer lead lists.
Fix
Upgrade in the dashboard under Settings > Billing, or stay within your plan (untrack keywords, ask for one country). error.hint names the limit you hit.
Retry
No
404

not_found

Not found
Why
No such endpoint, or the resource (for example a tracked keyword id or a chart for that store, country and category) does not exist.
Fix
Check the path against the API reference or https://api.appgoat.ai/v1/openapi.json, and the id you passed.
Retry
No
404

app_not_found

App not found
Why
Nothing matches {app}: the id, bundle id, package or URL is unknown to the store, the app was removed, or a name search found no match.
Fix
Pass the store URL or numeric id, URL-encode it, and add store=apple or store=play when an identifier could belong to either store.
Retry
Yes, after fixing the request
404

developer_not_found

Developer not found
Why
Nothing matches {dev}.
Fix
Pass apple:<artist id>, play:<developer id>, a numeric id or the website domain, and add store=apple|play.
Retry
Yes, after fixing the request
404

job_not_found

Job not found
Why
The job id is unknown or has expired.
Fix
Use meta.freshness.job_id from the response that started the refresh, then repeat the original call.
Retry
No
405

method_not_allowed

Method not allowed
Why
The endpoint exists but not with this HTTP method (for example POST on a read-only endpoint).
Fix
Use the method listed in the API reference.
Retry
Yes, after fixing the request
409

conflict

Conflict
Why
The request conflicts with the current state of the resource, for example an action that was already applied.
Fix
Read the resource again and decide whether the request is still needed.
Retry
Yes, after fixing the request
4xx

not_ready

Not ready yet
Why
The data you asked for is still being prepared.
Fix
Wait, poll the job in meta.freshness.job_id if there is one, and call again.
Retry
Yes, after a wait
429

rate_limited

Too many requests
Why
More requests per second than your plan allows. Rate limits are per organization.
Fix
Wait for the number of seconds in the Retry-After header, then retry. Spread bursts out or upgrade for a higher limit.
Retry
Yes, after a wait
500

internal_error

Internal error
Why
Something failed on our side. Failed requests are never charged.
Fix
Retry with backoff. If it persists, email support@appgoat.ai with the endpoint and the time of the request.
Retry
Yes
502

upstream_unavailable

Data service unavailable
Why
The gateway could not reach the AppGoat data service, usually during a deploy or a short outage.
Fix
Retry in a few seconds with backoff.
Retry
Yes