Skip to main content
The key or token is missing, mistyped, expired or revoked. Check that the header is Authorization: Bearer bg_live_…. For OAuth, refresh the access token (it lasts 1 hour). If the key was revoked in Settings → Developers, create a new one.
The key can only do what its scopes allow. The error names the missing scope. Create a new key with that scope, or ask the company to approve it again. A write scope never includes the matching read scope.
Objects from another company look like they do not exist. Check that the key belongs to the right company. Draft orders are never returned by the API.
An ERP connected inside BrandGate already controls stock. Only one system can own it. The company can turn that import off in Settings → ERP.
Wait for Retry-After seconds. Use webhooks and updated_since instead of polling. See rate limits.
Check that the endpoint is https:// on port 443 with a public address, that it answers 200 quickly, and that it subscribed to the event. Verify the signature with the raw request body, not re-serialised JSON. Run a catch-up sweep so nothing depends on a single delivery.
That is a temporary problem. Retry with backoff. The public API can also be switched off for a company or for the whole platform; if it stays unavailable, contact us.
Check the URL https://api.brandgate.dev/mcp. Signing in with OAuth needs a company admin to approve the access. Clients that cannot do OAuth can use an API key as a header. See MCP server.

Still stuck?

Write to us through brandgate.dev/contact and include the request_id from the error response. It lets us find your exact request.