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:
- Call this endpoint (no request body)
- Poll
/api/site-checks/{siteCheckId}/statusevery 10s untilstatus === "completed" - Fetch the generated specs with
/api/sites/{siteId}/feature-specs
Parameters#
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
clientId | path | string | ✓ | 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#
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
siteCheckId | path | string | ✓ | 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"
}
| Status | Meaning |
|---|---|
| 400 | Invalid parameters |
| 401 | Missing or invalid API key |
| 403 | Not available on this workspace or plan (the message says which) |
| 404 | Resource not found |
| 500 | Something went wrong on our side |