Skip to main content

API Overview

The Convertly API lets you programmatically access your brand’s data — creators, campaigns, discounts, orders, and more. Use it to build custom integrations, dashboards, or automation workflows.

Base URL

All API requests use the following base URL:
https://api.convertlyhq.com/v1
Every endpoint is prefixed with /v1 to indicate the API version.

Authentication

All requests require a valid JWT Bearer token in the Authorization header:
curl https://api.convertlyhq.com/v1/affiliates \
  -H "Authorization: Bearer YOUR_TOKEN_HERE"
See Authentication for how to obtain a token.

Rate Limits

To ensure platform stability, the API enforces rate limits:
PlanLimit
Growth100 requests/minute
Scale500 requests/minute
The Starter plan does not include API access. Upgrade to Growth or Scale to use the API.
When you exceed the rate limit, the API returns a 429 Too Many Requests response with a Retry-After header indicating how many seconds to wait.

Response Format

All responses return JSON with a consistent structure.

Success Response

{
  "data": {
    "id": "abc123",
    "name": "Sarah Johnson",
    "email": "sarah@example.com"
  }
}

List Response

{
  "data": [
    { "id": "abc123", "name": "Sarah Johnson" },
    { "id": "def456", "name": "Mike Chen" }
  ],
  "meta": {
    "total": 42,
    "cursor": "eyJpZCI6ImRlZjQ1NiJ9"
  }
}

Error Response

{
  "statusCode": 400,
  "message": "Validation failed",
  "error": "Bad Request"
}

Pagination

List endpoints use cursor-based pagination:
ParameterDescription
limitNumber of items to return (default: 20, max: 100)
cursorCursor from the previous response’s meta.cursor
Example:
# First page
GET /v1/affiliates?limit=20

# Next page (use cursor from previous response)
GET /v1/affiliates?limit=20&cursor=eyJpZCI6ImRlZjQ1NiJ9
When meta.cursor is null, you have reached the last page.

Common HTTP Status Codes

CodeMeaning
200Success
201Created
400Bad request (validation error)
401Unauthorized (missing or invalid token)
403Forbidden (insufficient permissions)
404Not found
429Rate limit exceeded
500Server error