Skip to content
Republic Developer Platform

Documentation

Fundamentals

Limits and Errors

Recover from failures without duplicating registrations.

Account Limits

Registration and verification may perform multiple account operations. HTTP 429 includes Retry-After: 60. Emergency pause, removal, and revocation can remain available after the normal budget is exhausted.

  • Five active API keys per account.
  • Ten webhook destinations per account.
  • 100 subscriptions per webhook.
  • 60 API operations per minute, shared by the account's keys and console.
  • 16 KB maximum JSON body; destination names are 1 to 80 characters.
  • Delivery history returns the 30 most recently updated records, without pagination.

Response Format

Successful JSON responses wrap their result in data. Errors contain error.code and error.message. DELETE returns HTTP 204 without a body; do not parse that response as JSON.

json
{
  "error": {
    "code": "not_found",
    "message": "Webhook not found."
  }
}

HTTP Status Codes

400Bad Request
Invalid input or JSON.
401Unauthorized
Missing, invalid, or revoked key.
403Forbidden
Account permission or restriction.
404Not Found
Missing or unowned resource.
405Method Not Allowed
Unsupported route method.
409Conflict
Duplicate destination or account limit.
413Content Too Large
Body exceeds 16 KB.
415Unsupported Media Type
Use Content-Type: application/json.
429Too Many Requests
Wait before making more operations.
503Service Unavailable
Temporary service, database, or verification failure.

Recovering Safely

Retry reads with increasing delays and random jitter. Honor Retry-After. Do not continuously retry bad credentials or invalid input.

A timed-out write may have completed. List registrations or subscriptions before repeating it. Match destinations by their Discord webhook and thread IDs. Subscription PUT replaces filters; repeated DELETE may return 404 if the first request succeeded. Idempotency keys are not supported.