Skip to Content
Track your Telegram conversions with Meta Ads - Get started in minutes!
API ReferenceErrors & Rate Limits

Errors & Rate Limits

Response shape

Every error response has the same shape:

{ "error": { "code": "INVALID_PAYLOAD", "message": "channelId is required." } }

Error codes

CodeStatusMeaning
AUTH_REQUIRED401No Authorization header or malformed Bearer token
INVALID_KEY401Token doesn’t match a known key
REVOKED_KEY401Token was revoked. Create a new one
RATE_LIMITED429See Retry-After header. 300 req/min per key
SUBSCRIPTION_INACTIVE402Site’s subscription is paused. Events will resume when billing is current
INVALID_PAYLOAD400Body validation failed. Message has details
CHANNEL_NOT_FOUND404The supplied channelId is not assigned to this site
CONVERSION_NOT_FOUND404The conversion doesn’t exist or belongs to a different site
LEAD_NOT_FOUND404No conversion for this telegramUserId on this site
IDEMPOTENT_REPLAY200Returned with header X-Idempotent-Replay: true
API_DISABLED503The public API is paused on the deployment. Contact support
INTERNAL_ERROR500Unexpected server-side error. Safe to retry

Rate limits

  • 300 requests per minute per API key, with a burst capacity of 50.
  • Returns 429 RATE_LIMITED with header Retry-After: <seconds> when exceeded.
  • Different API keys have independent buckets.

Retry guidance

  • 429 — wait Retry-After seconds, then retry.
  • 5xx — exponential backoff (start 1s, double up to 60s). Use Idempotency-Key to avoid duplicates.
  • 401 / 402 / 403 / 404 / 400 — do not retry; fix the request.

All endpoints support CORS preflight (OPTIONS). Origin is * so the API is reachable from any reverse proxy or backend.

Last updated on