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

Raw ↑
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.
All 92 tools →

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.