Braze · Authentication Profile
Braze Authentication
Authentication
Braze secures its APIs with http and oauth2 across 3 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the authorizationCode flow(s).
Customer EngagementMarketing AutomationMessagingPush NotificationsEmailSMSMobile
Methods: http, oauth2
Schemes: 3
OAuth flows: authorizationCode
API key in: header
Security Schemes
BearerAuth http
scheme: bearer
ScimBearer http
scheme: bearer
BrazeMcpOAuth oauth2
Source
Authentication Profile
generated: '2026-08-13'
method: searched
source: openapi/ (24 specs, 95 operations) + the Braze docs auth pages
docs:
api_basics: https://www.braze.com/docs/api/basics/
api_keys: https://www.braze.com/docs/api/api_key/
mcp_setup: https://www.braze.com/docs/user_guide/brazeai/mcp_server/setup
scim: https://www.braze.com/docs/api/endpoints/scim/
summary:
types: [http, oauth2]
http_schemes: [bearer]
api_key_in: [header]
oauth2_flows: [authorizationCode]
note: >-
Two distinct authentication models. The REST API uses a workspace-scoped REST API key
presented as an HTTP Bearer token — a static key, not an OAuth token, despite the
Bearer framing. The Braze MCP server uses real OAuth 2.0 with PKCE against the Braze
dashboard. Nothing in the REST surface uses OAuth, and nothing in MCP uses an API key.
schemes:
- name: BearerAuth
type: http
scheme: bearer
surface: rest
credential: Braze REST API key
header: 'Authorization: Bearer YOUR_REST_API_KEY'
scope_model: >-
Per-key endpoint permissions granted in the Braze dashboard (Settings > API Keys), plus
optional IP allowlisting. A key that lacks a permission returns 401/403 rather than a
scope error, so permissions are not discoverable from the API.
host_binding: >-
Keys are bound to one workspace on one Braze instance; calling the wrong regional REST
host with a valid key returns 401 Unauthorized.
sources:
- openapi/braze-catalogs-catalog-items-asynchronous-api-openapi.yml
- openapi/braze-catalogs-catalog-items-synchronous-api-openapi.yml
- openapi/braze-catalogs-catalog-management-synchronous-api-openapi.yml
- openapi/braze-email-lists-addresses-api-openapi.yml
- openapi/braze-export-campaign-api-openapi.yml
- openapi/braze-export-canvas-api-openapi.yml
- openapi/braze-export-custom-events-api-openapi.yml
- openapi/braze-export-kpi-api-openapi.yml
- openapi/braze-export-news-feed-api-openapi.yml
- openapi/braze-export-purchases-api-openapi.yml
- openapi/braze-export-segment-api-openapi.yml
- openapi/braze-export-session-analytics-api-openapi.yml
- openapi/braze-export-users-api-openapi.yml
- openapi/braze-messaging-live-activities-api-openapi.yml
- openapi/braze-messaging-schedule-mesages-api-openapi.yml
- openapi/braze-messaging-send-messages-api-openapi.yml
- openapi/braze-preference-center-api-openapi.yml
- openapi/braze-scim-api-openapi.yml
- openapi/braze-sms-api-openapi.yml
- openapi/braze-subscription-groups-sms-and-whatsapp-api-openapi.yml
- openapi/braze-templates-content-blocks-api-openapi.yml
- openapi/braze-templates-email-templates-api-openapi.yml
- openapi/braze-user-data-api-openapi.yml
- openapi/braze-user-data-external-id-migration-api-openapi.yml
- name: ScimBearer
type: http
scheme: bearer
surface: rest-scim
credential: SCIM token (separate from the REST API key)
note: >-
/scim/v2/Users is authorized by a dedicated SCIM token generated in the dashboard, not
by a REST API key. The harvested spec models it with the same BearerAuth scheme, which
understates the separation.
sources: [openapi/braze-scim-api-openapi.yml]
- name: BrazeMcpOAuth
type: oauth2
surface: mcp
flow: authorizationCode
authorizationUrl: https://dashboard.braze.com/oauth/authorize
tokenUrl: https://rest.iad-01.braze.com/oauth/token
registrationUrl: https://rest.iad-01.braze.com/oauth/register
pkce: [S256]
grant_types: [authorization_code, refresh_token]
token_endpoint_auth_methods: [none]
scopes: [mcp:tools, mcp:resources]
discovery:
protected_resource: https://mcp.braze.com/.well-known/oauth-protected-resource
authorization_server: https://dashboard.braze.com/.well-known/oauth-authorization-server
note: >-
Public client with dynamic registration (RFC 7591) and no client secret; the user
authorizes in a browser against their Braze dashboard session. Probed 2026-08-13.
sources: [scopes/braze-scopes.yml, mcp/braze-mcp.yml]
sdk_auth:
note: >-
The client-side SDKs (web/iOS/Android/etc.) authenticate with a public API key plus an
optional SDK Authentication JWT signed with a key pair configured in the dashboard —
a third credential type distinct from both models above.
docs: https://www.braze.com/docs/developer_guide/sdk_integration/authentication
key_management_api: https://www.braze.com/docs/api/endpoints/sdk_authentication/post_create_sdk_authentication_key
Work with this as data
Every security artifact here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for security posture
4 MCP tools reach this
find_securityBrowse and filter every security artifact in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This security artifact
curl "https://apis.io/api/v1/security/braze-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.