Skip to main content

Base URL

All API requests should be made to:
https://api.stover.app

API Versioning

The API uses URL versioning. The current version is v1:
https://api.stover.app/v1/contacts
https://api.stover.app/v1/posts/{platform}
https://api.stover.app/v1/webhooks/receive/{webhook_key}

Authentication

Most endpoints require authentication via API key. See the Authentication guide for details.
Authorization: Bearer stover_pk_your_api_key

Request Format

All request bodies should be JSON with the Content-Type header:
Content-Type: application/json

Response Format

All responses are JSON. Successful responses follow this structure:
{
  "success": true,
  "data": {
    // Response data
  }
}

Error Handling

Error responses include an error message and optional details:
{
  "status": 400,
  "error": "Validation failed",
  "message": "first_name is required",
  "details": {}
}

HTTP Status Codes

CodeDescription
200Success
201Created
400Bad Request - Validation error
401Unauthorized - Missing or invalid API key
403Forbidden - Insufficient permissions
404Not Found
405Method Not Allowed
413Payload Too Large
429Too Many Requests - Rate limit exceeded
500Internal Server Error

Rate Limiting

ModeLimit
Authenticated100 requests/minute
Public (Contacts only)20 requests/minute per IP
When rate limited, you’ll receive a 429 response:
{
  "error": "Rate limit exceeded",
  "message": "Too many requests. Please try again later."
}

Pagination

List endpoints support pagination with page and limit query parameters:
GET /v1/contacts?page=1&limit=20
Paginated responses include metadata:
{
  "success": true,
  "data": [...],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 150,
    "totalPages": 8
  }
}

Available Endpoints