REST API v1 · Read-only · Agency plan required
All API requests must include your API key in the Authorization header. Generate keys in Settings → API Keys (Agency plan required).
Authorization: Bearer sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Keys begin with sk_ and are 50 characters long. The full key is shown only once on creation — store it securely.
120 requests per minute per API key. Exceeding this returns HTTP 429. All responses include standard X-RateLimit-* headers.
Returns plan info, feature flags, and usage summary for the authenticated workspace.
{
"id": 42,
"name": "Acme SEO Agency",
"plan": "agency",
"plan_features": {
"plan": "agency",
"limits": { "clients": 100, "seats": 15, "ai_calls_per_month": 5000 },
"features": { "api_access": true, "webhooks": true, "white_label": true }
},
"usage": {
"clients": 18,
"ai_calls": 342,
"serp_calls": 87
}
}
Returns all active clients in the workspace.
{
"clients": [
{
"id": 7,
"name": "Example Corp",
"domain": "example.com",
"location": "New York, US",
"created_at": "2026-03-01T10:00:00Z"
}
]
}
Returns all tracked keywords and their current rankings for a client.
| Param | Type | Description |
|---|---|---|
| id | integer · path | Client ID from /api/v1/clients |
{
"client_id": 7,
"keywords": [
{
"id": 101,
"keyword": "seo agency new york",
"position": 4,
"prev_position": 6,
"search_volume": 1200,
"updated_at": "2026-05-25T08:00:00Z"
}
]
}
Returns the last 50 performance reports for a client.
{
"client_id": 7,
"reports": [
{
"id": 55,
"title": "May 2026 Report",
"traffic": 4820,
"impressions": 38500,
"position": 8.4,
"ctr": 1.25,
"domain_rating": 42,
"ref_domains": 310,
"created_at": "2026-05-01T09:00:00Z"
}
]
}
Returns the last 200 rank check results for a client (across all keywords).
{
"client_id": 7,
"rankings": [
{
"id": 881,
"keyword": "seo agency nyc",
"position": 3,
"url": "https://example.com/seo-services/",
"device": "desktop",
"location": "New York, US",
"checked_at": "2026-05-26T10:00:00Z"
}
]
}
Configure webhook endpoints in Settings → Webhooks. Rankrop will POST signed JSON to your URL when events occur. Verify authenticity using the X-Rankrop-Signature header.
$secret = 'your_webhook_secret'; // shown once in Settings
$body = file_get_contents('php://input');
$sig = $_SERVER['HTTP_X_SKYVISTA_SIGNATURE'];
$expected = 'sha256=' . hash_hmac('sha256', $body, $secret);
$valid = hash_equals($expected, $sig);