Amazon Rank Tracking API
Stop tracking keyword positions
Stop tracking keywords by id, or every keyword (or one) of an ASIN.
https://api.screamingdata.dev/v1/amazon/rank_tracking/delete- Authentication
- API key (HTTP Basic)
- Cost
- Free
- Body
- Array of up to 100 tasks
Overview
Stops tracking, each element identified by id, or by asin and marketplace — every keyword of that ASIN, or only keyword when it is given. Positions already recorded stay readable with rank_tracking/history and rank_tracking/daily.
When nothing matches, the task fails with 40400.
Cost
Request
POST /v1/amazon/rank_tracking/delete with Content-Type: application/json.
Body fields
The request body is a JSON array of 1–100 task objects. Each object has these fields:
idTracking id. Required unless asin and marketplace are given.
- Range≥ 1
- Example
5120
asinASIN. Required together with marketplace when id is not given.
- Pattern
^[A-Z0-9]{10}$ - Example
B0EXAMPLE2
marketplaceMarketplace. Required together with asin when id is not given.
- Allowed
comukdefresitnlcaaujpmxin - Example
uk
keywordOnly this keyword of the ASIN; every keyword of it when absent.
- Max length200 characters
- Example
bluetooth speaker
Request example
The examples read your credentials from the API_LOGIN and API_KEY environment variables.
curl --request POST \
--url "https://api.screamingdata.dev/ v1/ amazon/ rank_tracking/ delete" \
--user "$API_LOGIN:$API_KEY" \
--header "Content-Type: application/json" \
--data '[
{
"id": 5120
},
{
"asin": "B0EXAMPLE2",
"marketplace": "uk",
"keyword": "bluetooth speaker"
}
]'import os
import requests
response = requests.post(
"https://api.screamingdata.dev/ v1/ amazon/ rank_tracking/ delete",
auth=(os.environ["API_LOGIN"], os.environ["API_KEY"]),
json=[
{"id": 5120},
{
"asin": "B0EXAMPLE2",
"marketplace": "uk",
"keyword": "bluetooth speaker",
},
],
timeout=30,
)
data = response.json()
print(data["status_code"], data["status_message"], "cost:", data["cost"])
for task in data["tasks"]:
print(task["id"], task["status_code"], task["status_message"])const auth = Buffer.from(`${process.env.API_LOGIN}:${process.env.API_KEY}`).toString("base64");
const response = await fetch("https://api.screamingdata.dev/ v1/ amazon/ rank_tracking/ delete", {
method: "POST",
headers: {
Authorization: `Basic ${auth}`,
"Content-Type": "application/json",
},
body: JSON.stringify([
{ id: 5120 },
{
asin: "B0EXAMPLE2",
marketplace: "uk",
keyword: "bluetooth speaker",
},
]),
});
const data = await response.json();
console.log(data.status_code, data.status_message, "cost:", data.cost);
for (const task of data.tasks) {
console.log(task.id, task.status_code, task.status_message);
}Response
HTTP 200. The body is the standard response envelope; check status_code at the top level and in every task.
{
"version": "1.0.0",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0191 sec.",
"cost": 0,
"tasks_count": 2,
"tasks_error": 0,
"tasks": [
{
"id": "10030915-2a7c-4f0e-b3d1-9c6e8a4f2d57",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0049 sec.",
"cost": 0,
"result_count": 1,
"path": [
"v1",
"amazon",
"rank_tracking",
"delete"
],
"data": {
"api": "amazon",
"function": "rank_tracking",
"id": 5120
},
"result": [
{
"id": 5120,
"asin": "B0EXAMPLE1",
"marketplace": "com",
"keyword": "wireless earbuds",
"status": "deleted",
"deleted_at": "2026-10-03T09:15:02Z"
}
]
},
{
"id": "10030915-6d3b-4a8c-91e2-5f7b0c3e1a46",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0049 sec.",
"cost": 0,
"result_count": 1,
"path": [
"v1",
"amazon",
"rank_tracking",
"delete"
],
"data": {
"api": "amazon",
"function": "rank_tracking",
"asin": "B0EXAMPLE2",
"marketplace": "uk",
"keyword": "bluetooth speaker"
},
"result": [
{
"id": 5122,
"asin": "B0EXAMPLE2",
"marketplace": "uk",
"keyword": "bluetooth speaker",
"status": "deleted",
"deleted_at": "2026-10-03T09:15:02Z"
}
]
}
]
}Result fields
Each element of tasks[].result is a keyword no longer tracked. Confirmation for one keyword that is no longer tracked.
idTracking id.
asinASIN.
marketplaceMarketplace code.
keywordKeyword.
statusAlways deleted.
deleted_atWhen tracking stopped, ISO 8601 in UTC.
Status codes
Codes this endpoint can return, at the request or task level. See Status codes for handling advice.
| Code | Message | HTTP | Level | When |
|---|---|---|---|---|
| 20000 | Ok. | 200 | Request / task | The request, or the individual task, was processed successfully. |
| 40000 | Bad Request. | 400 / 200 | Request / task | The body is not valid JSON or does not have the expected shape (for example, not an array of task objects, or more than one task for live). Also returned with HTTP 413 for bodies larger than 1 MiB and with HTTP 405 for a wrong HTTP method. As a task-level code (HTTP 200) it means the task cannot be carried out as asked, for example because the account already has the maximum number of API keys or monitored products. |
| 40001 | Too many tasks in one request (max 100). | 400 | Request | A POST body contains more task objects than allowed. |
| 40100 | Authentication failed. | 401 | Request | The Authorization header is missing or malformed, or the login and API key do not match. |
| 40101 | API key revoked. | 401 | Request | The API key was revoked. Use another active key or create a new one. |
| 40102 | Account disabled. | 401 | Request | The account is disabled. Contact support. |
| 40202 | Rate limit exceeded. | 429 | Request | Too many requests or tasks per minute for this account, or too many access requests from one IP address. The Retry-After header says how many seconds to wait. |
| 40400 | Not Found. | 404 / 200 | Request / task | Unknown endpoint, or an unknown task, key or subscription id. |
| 40501 | Invalid field: `<name>`. | 400 / 200 | Request / task | A field has a wrong type, format or value; the message names the field, for example "Invalid field: `priority`." |
| 40502 | Unknown marketplace. | 200 | Task | The marketplace is not one of the 12 supported codes or their aliases. |
| 40503 | Invalid ASIN. | 200 | Task | The ASIN does not match ^[A-Z0-9]{10}$ after uppercasing. |
| 40600 | Feature not available on your plan. | 403 | Request | The requested feature is not enabled for this account. |
| 50000 | Internal error. | 500 | Request | Unexpected server error. The request can be retried; contact support if it persists. |