generated: '2026-07-18' method: searched source: https://developers.getbyrd.com/docs/how-to-call-bryd-apis docs: - https://developers.getbyrd.com/docs/how-to-call-bryd-apis - https://developers.getbyrd.com/docs/authentication - https://developers.getbyrd.com/docs/frequency-of-calls-to-the-api authentication: style: JWT bearer token in the Authorization header detail: authentication/byrd-authentication.yml transport: tls: TLS v1.2 or above required content_type: application/json user_agent_required: true user_agent_format: " (tech-contact-email) - " parameter_passing: get_delete: query string post_patch_put: JSON body (application/json) versioning: scheme: uri-path current: v3.1 notes: >- Resources are versioned in the path (e.g. /v2/login, /v3/shipments). The shipment surface is on v3; auth/user endpoints are on v2. Documented API version is 3.1. pagination: supported: true detail: >- List endpoints are paginated; malformed pagination parameters return the `Request.InvalidPagination` error code. Exact cursor/offset parameter names are documented per endpoint in the API reference. idempotency: supported: false notes: >- byrd does not document an Idempotency-Key header; the OpenAPI definition does not declare one. Shipment creation instead offers a `validate_only` query parameter to dry-run a request without creating the shipment. error_envelope: format: custom-json content_type: application/json shape: '{ code, message, errors: [ { code, message, errors, extra } ] }' detail: errors/byrd-error-codes.yml rate_limiting: detail: rate-limits/byrd-rate-limits.yml notes: >- Login limited to 5 calls/min per IP or User-Agent; contact byrd for sustained volumes above ~10 calls/second. Polling of tracking data and stock is recommended hourly (5-minute minimum interval). request_tracing: request_id_header: null notes: No request-id / trace header is documented.