Overview
All access to the Boomerang Developer API is via HTTPS at:https://gateway.bmrg.app/vN/
GET-only- JSON-only
- Versioned in the URL
- Designed for predictable, idempotent read operations
Transport and protocol
- Only HTTPS is supported; plain HTTP is not accepted.
- All requests must target a versioned path (for example,
/v1/,/v2/). - The API is stateless: each request is authenticated and processed independently.
Header requirements
Header requirements summary
Required headers:Authorization: Bearer [token]– Authentication credential for the server-scoped token.
Accept: application/json– Recommended for and future compatibility.User-Agent: ServerID-IntegrationName/Version (AuthorDiscordUserID)– Recommended for client identification, troubleshooting, and abuse detection.X-Request-Id– Client-provided , echoed in responses if supplied; otherwise server-generated.
Content-Type– Not applicable forGET-only endpoints.- If a client sends a
Content-Typeheader, the request is rejected with400 Bad RequestandVALIDATION_FAILED.
- If a client sends a
Request format
Key expectations for requests:- Only HTTP
GETis supported. - Request parameters are supplied via:
- Path segments (for identifiers); and
- Query parameters (for filtering, pagination, and options).
- Request bodies are not accepted and are ignored or rejected.
- Requests that use unsupported methods (such as
POST,PUT,DELETE) are rejected. - Requests with malformed query parameters are treated as validation failures, as described on the Errors page.
Response format
Content type and encoding
All successful responses:- Use content type:
application/json; charset=utf-8. - Are encoded as standard JSON objects or arrays.
- May be compressed with
gzipif the client sendsAccept-Encoding: gzip.
- Send
Accept-Encoding: gzipif they can handle compressed responses. - Always check the
Content-Typeheader before parsing the response body.
Envelope structure
Non-paginated endpoints return a wrapped response:- A top-level
itemsarray; and - A
paginationobject containing page metadata.
Timestamps and common fields
Across the API:- Timestamps are represented as Unix epoch timestamps in milliseconds.
- Identifier and field conventions are documented per endpoint.
Error responses
All non-2xx responses:- Use a standard JSON error format with fields such as
status,code,http_status,timestamp,trace_id, anddetails. - Use HTTP status codes consistent with the Errors documentation.
trace_id in the error body is the primary identifier for server-side investigation. X-Request-Id, where supplied, can be used as an additional reference in your own logs.
Example requests
The examples below illustrate a typical authenticatedGET request using the required headers and JSON response format.
Client behaviour expectations
To ensure stable and predictable integrations:- Check HTTP status first Always inspect the status code before using the response body. Treat 4xx and 5xx responses as failures that require handling.
-
Treat requests as idempotent
All
GETendpoints are designed to be . Do not rely on undocumented side effects. -
Use back-off and retry responsibly
- Retry only idempotent
GETrequests, and only when appropriate (for example, transient network issues or 5xx errors). - Respect rate limits and error guidance. Do not retry in tight loops.
- Retry only idempotent
-
Log identifiers
Log
X-Request-Id(your ID) andtrace_id(server ID from error responses) for all calls. This enables reliable troubleshooting and correlation with Boomerang’s logs if needed. - Stay within documented patterns Avoid sending unsupported headers, HTTP methods, or bodies. Behaviour is only guaranteed for documented usage.