Cloakup API

Authentication

API keys, middleware, scopes, and rate limits

API key format

ItemValue
Prefixck_
Secret64 hex characters
HeaderAuthorization: Bearer ck_<secret>
Content-Typeapplication/json

Example:

GET /v1/campaigns?page=1&limit=10 HTTP/1.1
Host: api.cloakup.me
Authorization: Bearer ck_0123456789abcdef...
Accept: application/json

Create keys in the dashboard. Keys are shown only once at creation.

Prerequisites (every /v1 request)

Middleware applied to all /v1 routes:

  1. Valid API key (Authorization: Bearer ck_...)
  2. Plan must have API keys enabled (plan.api_keys_enabled)
  3. Active cloakup subscription
  4. Route-specific scope (see each endpoint)
  5. Rate limit (see below)

Failure at any step returns 401 or 403. See Errors.

Rate limits

Every /v1 route enforces a global limit of 120 requests/minute per API key. Responses include standard RateLimit-* headers when applicable.

Some endpoints apply stricter limits on top of the global one.

Endpoint-specific limits

EndpointLimit
All /v1/*120 req/min per API key
PATCH /v1/domains/:id/verify1 req per domain ID per 30 seconds

When you exceed a limit, the API returns 429 with code TOO_MANY_REQUESTS. See Errors.

Scopes

Each key has one or more scopes. The endpoint rejects requests when the key lacks the required scope.

ScopeDescription
campaigns:listList campaigns
campaigns:createCreate campaign
campaigns:showGet campaign by ID
campaigns:updateUpdate campaign
campaigns:deleteDelete campaign
campaigns:cloneClone campaign
campaigns:toggleToggle campaign active status
domains:listList domains
domains:createRegister domain
domains:verifyVerify domain DNS/certificate
domains:deleteDelete domain

Presets in the dashboard:

  • Read only — campaigns:list, campaigns:show, domains:list
  • Full access — all scopes above

IDs

Resource IDs are numeric (bigint). JSON may serialize them as numbers or strings depending on the serializer.

On this page