API Reference/REST API

REST API Reference

Complete REST API reference for programmatic access to Rampify's SEO intelligence.

Quick Start#

1. Generate API Key#

Get your API key from Settings → API Keys:

# Your key will look like this
sk_live_abc123def456...

2. Set Environment Variable#

export RAMPIFY_API_KEY=sk_live_abc123...

3. Make Your First Request#

curl -X POST https://www.rampify.dev/api/clients/{clientId}/analyze \
  -H "Authorization: Bearer $RAMPIFY_API_KEY"

Authentication#

All endpoints require API key authentication. Include your API key in the Authorization header:

curl https://www.rampify.dev/api/sites/{siteId}/feature-specs \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -H "Content-Type: application/json"

Get your API key: Settings → API Keys

Sites#

POST /clients/{clientId}/analyze#

Triggers a full site crawl and analysis. This is an asynchronous operation that returns immediately with a siteCheckId for polling.

Workflow:

  1. Call this endpoint (no request body)
  2. Poll /api/site-checks/{siteCheckId}/status every 10s until status === "completed"
  3. Fetch the generated specs with /api/sites/{siteId}/feature-specs

Parameters#

ParameterLocationTypeRequiredDescription
clientIdpathstring✓Client ID

Responses#

200 Analysis started successfully#

{
  "success": true,
  "siteId": "303fe31c-963c-45dd-a35d-49460e71b16b",
  "siteCheckId": "0af7de47-8fff-4a89-83bc-002436ef2a8b",
  "backgroundJob": "in_progress",
  "summary": {
    "totalUrls": 28,
    "urlsChecked": 0,
    "issuesFound": 0,
    "criticalIssues": 0,
    "warnings": 0,
    "duration": 2907
  },
  "issues": [],
  "message": "Found 28 URLs. Checking URLs in background..."
}

401 Unauthorized - Missing or invalid API key#

{
  "error": "Unauthorized"
}

404 Resource not found#

GET /site-checks/{siteCheckId}/status#

Check the status of a background site analysis.

Poll every 10 seconds until status === "completed"

Parameters#

ParameterLocationTypeRequiredDescription
siteCheckIdpathstring✓Site check ID from analyze endpoint

Responses#

200 Status retrieved#

{
  "urls_checked": 28,
  "total_urls": 28,
  "status": "completed"
}

401 Unauthorized - Missing or invalid API key#

{
  "error": "Unauthorized"
}

404 Resource not found#

Limits#

API calls count against your plan's limits: projects, pages crawled per project, Discovery sessions and your data credits for keyword data. See pricing for the numbers on each plan, and Settings → Plan & billing for what you've used.

Calls your AI tools make through the MCP server also have per-connection limits (60 calls a minute and a daily cap by plan) so a runaway agent loop can't run up cost. The REST API doesn't send rate-limit headers.

Error Handling#

Errors come back as JSON with an HTTP status code:

{
  "error": "Invalid API key"
}
StatusMeaning
400Invalid parameters
401Missing or invalid API key
403Not available on this workspace or plan (the message says which)
404Resource not found
500Something went wrong on our side