Rankrop™ — API Reference

REST API v1 · Read-only · Agency plan required

Endpoints

🔑 Authentication

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.

Rate Limits

120 requests per minute per API key. Exceeding this returns HTTP 429. All responses include standard X-RateLimit-* headers.

Endpoints

GET /api/v1/workspace

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
  }
}
GET /api/v1/clients

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"
    }
  ]
}
GET /api/v1/clients/{id}/keywords

Returns all tracked keywords and their current rankings for a client.

ParamTypeDescription
idinteger · pathClient 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"
    }
  ]
}
GET /api/v1/clients/{id}/reports

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"
    }
  ]
}
GET /api/v1/clients/{id}/rankings

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"
    }
  ]
}

Webhook Events Growth+

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.

Signature verification
$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);
EventWhen it firesKey payload fields
rank_dropKeyword falls in rankingkeyword, prev_rank, new_rank, drop, severity
audit_completeSite crawl finishescrawl_id, pages_crawled, issues_found, overall_score, grade
new_reviewNew Google review syncedrating, reviewer_name, sentiment, platform
report_readyScheduled report emailedschedule_id, frequency, period
anomaly_detectedTraffic/CTR anomaly foundcount, types[ ]
Skyvista Consulting · hello@skyvistaconsulting.com · Dashboard