Get a tracked keyword's ranking history (or one app's rank over time with app=).
Request
curl "https://api.appgoat.ai/v1/tracked-keywords/123/ranks?app=324684580" \
-H "x-api-key: $APPGOAT_API_KEY"const res = await fetch("https://api.appgoat.ai/v1/tracked-keywords/123/ranks?app=324684580", {
headers: {
"x-api-key": process.env.APPGOAT_API_KEY,
},
});
const { data, meta } = await res.json();import os, requests
res = requests.get(
"https://api.appgoat.ai/v1/tracked-keywords/123/ranks?app=324684580",
headers={"x-api-key": os.environ["APPGOAT_API_KEY"]}
)
body = res.json()Path parameters
idintegerrequiredQuery parameters
fromstringDefault 90 days ago.
tostringappstringStore app id; returns
rank per point instead of the full id list.Response
200 with data: object[]. See the envelope for meta.
atstringchangedbooleanrankinteger | nullappIdsstring[]Example
{
"data": [
{
"at": "2026-10-22T10:00:00Z",
"changed": false,
"rank": 1,
"appIds": [
"string"
]
}
],
"meta": {
"credits_used": 1,
"credits_remaining": 9981,
"request_id": "req_123"
}
}Status codes
200
One point per capture.
Missing or invalid API key.
404
not_foundNot found.
429
rate_limitedToo many requests per second for your plan.