Braze SCIM API
The SCIM API from Braze — 2 operation(s) for scim.
The SCIM API from Braze — 2 operation(s) for scim.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/braze-scim-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
title: Braze SCIM API
description: The Braze and Radar integration allows you to access sophisticated location-based campaign triggers and user profile enrichment with rich, first-party location data.
version: 1.0.0
servers:
- url: https://rest.iad-01.braze.com
description: REST endpoint for instance US-01
- url: https://rest.iad-01.braze.com
description: REST endpoint for instance US-01
- url: https://rest.iad-02.braze.com
description: REST endpoint for instance US-02
- url: https://rest.iad-03.braze.com
description: REST endpoint for instance US-03
- url: https://rest.iad-04.braze.com
description: REST endpoint for instance US-04
- url: https://rest.iad-05.braze.com
description: REST endpoint for instance US-05
- url: https://rest.iad-06.braze.com
description: REST endpoint for instance US-06
- url: https://rest.iad-08.braze.com
description: REST endpoint for instance US-08
- url: https://rest.fra-01.braze.eu
description: REST endpoint for instance EU-01
- url: https://rest.fra-02.braze.eu
description: REST endpoint for instance EU-02
security:
- BearerAuth: []
tags:
- name: SCIM
paths:
/scim/v2/Users/{id}:
delete:
tags:
- SCIM
summary: Remove Dashboard User Account
description: '> This endpoint allows you to permanently delete an existing dashboard user by specifying the resource `id` returned by the SCIM `POST` method.
This is similar to deleting a user in the **Manage Users** section of the Braze dashboard. For information on how to obtain a SCIM token, visit Automated user provisioning.
## Rate limit
This endpoint has a rate limit of 5000 requests per day, per company. This rate limit is shared with the `/scim/v2/Users/` PUT, GET, and POST endpoints as documented in API rate limits.
## Path parameters
| Parameter | Required | Data type | Description |
| --- | --- | --- | --- |
| `id` | Required | String | The users resource ID. This parameter is returned by the `POST` `/scim/v2/Users/` or `GET` `/scim/v2/Users?filter=userName eq "user@test.com"` methods. |
## Request parameters
There is no request body for this endpoint.
## Response
### Example error response
``` json
HTTP/1.1 204 Not Found
Content-Type: text/html; charset=UTF-8
```
If a developer with this ID doesnt exist in Braze, the endpoint will respond with:
``` json
HTTP/1.1 404 Not Found Content-Type: text/html; charset=UTF-8
{ "schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"], "detail": "User not found", "status": 404 }
```'
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: X-Request-Origin
in: header
schema:
type: string
example: YOUR-REQUEST-ORIGIN-HERE
- name: Authorization
in: header
schema:
type: string
example: Bearer YOUR-SCIM-TOKEN-HERE
- name: id
in: path
schema:
type: string
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
operationId: deleteScimV2UsersById
x-operation-id-source: derived
get:
tags:
- SCIM
summary: Look Up an Existing Dashboard User Account
description: '> This endpoint allows you to look up an existing dashboard user account by specifying the resource `id` returned by the SCIM `POST` method.
For information on how to obtain a SCIM token, visit Automated user provisioning.
## Rate limit
This endpoint has a rate limit of 5000 requests per day, per company. This rate limit is shared with the `/scim/v2/Users/` PUT, GET, DELETE, and POST endpoints as documented in API rate limits.
## Path parameters
| Parameter | Required | Data Type | Description |
| --- | --- | --- | --- |
| `id` | Required | String | The user''s resource ID. This parameter is returned by the `POST` `/scim/v2/Users/` or `GET` `/scim/v2/Users?filter=userName eq "user@test.com"` methods. |
## Request parameters
There is no request body for this endpoint.
## Response
``` json
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"id": "dfa245b7-24195aec-887bb3ad-602b3340",
"userName": "user@test.com",
"name": {
"givenName": "Test",
"familyName": "User"
},
"department": "finance",
"lastSignInAt": "Thursday, January 1, 1970 12:00:00 AM",
"permissions": {
"companyPermissions": ["manage_company_settings"],
"appGroup": [
{
"appGroupId": "241adcd25789fabcded",
"appGroupName": "Test App Group",
"appGroupPermissions": ["basic_access","send_campaigns_canvases"],
"team": [
{
"teamId": "241adcd25789fabcded",
"teamName": "Test Team",
"teamPermissions": ["admin"]
}
]
}
]
}
}
```'
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: X-Request-Origin
in: header
schema:
type: string
example: YOUR-REQUEST-ORIGIN-HERE
- name: Authorization
in: header
schema:
type: string
example: Bearer YOUR-SCIM-TOKEN-HERE
- name: id
in: path
schema:
type: string
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
operationId: getScimV2UsersById
x-operation-id-source: derived
put:
tags:
- SCIM
summary: Update Dashboard User Account
description: '> This endpoint allows you to update an existing dashboard user account by specifying the resource `id` returned by the SCIM `POST` method.
It allows you to update of given and family names, permissions (for setting permissions at the company, app group, and team level) and department. For information on how to obtain a SCIM token, visit Automated user provisioning.
For security reasons, `userName` (email address) cannot be updated through this endpoint. If you would like to change the `userName` (email address) for a user, contact Support.
## Rate limit
This endpoint has a rate limit of 5000 requests per day, per company. This rate limit is shared with the `/scim/v2/Users/` GET, DELETE, and POST endpoints as documented in API rate limits.
## Path parameters
| Parameter | Required | Data Type | Description |
| --- | --- | --- | --- |
| `id` | Required | String | The user''s resource ID. This parameter is returned by the `POST` `/scim/v2/Users/` or `GET` `/scim/v2/Users?filter=userName eq "user@test.com"` methods. |
## Request parameters
| Parameter | Required | Data type | Description |
| --- | --- | --- | --- |
| `schemas` | Required | Array of strings | Expected SCIM 2.0 schema name for user object. |
| `name` | Required | JSON object | This object contains the user''s given name and family name. |
| `department` | Required | String | Valid department string from the department string documentation. |
| `permissions` | Required | JSON object | Permissions object as described in the permissions object documentation. |
## Response
``` json
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"id": "dfa245b7-24195aec-887bb3ad-602b3340",
"userName": "user@test.com",
"name": {
"givenName": "Test",
"familyName": "User"
},
"department": "finance",
"lastSignInAt": "Thursday, January 1, 1970 12:00:00 AM",
"permissions": {
"companyPermissions": ["manage_company_settings"],
"appGroup": [
{
"appGroupId": "241adcd25789fabcded",
"appGroupName": "Test App Group",
"appGroupPermissions": ["basic_access","send_campaigns_canvases"],
"team": [
{
"teamId": "2519dafcdba238ae7",
"teamName": "Test Team",
"teamPermissions": ["admin"]
}
]
}
]
}
}
```
### Error states
If a user with this ID doesnt exist in Braze, the endpoint will respond with:
``` json
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=UTF-8
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],
"detail": "User not found",
"status": 404
}
```'
requestBody:
content:
application/json:
schema:
type: object
example:
schemas:
- urn:ietf:params:scim:schemas:core:2.0:User
name:
givenName: Test
familyName: User
department: finance
permissions:
companyPermissions:
- manage_company_settings
appGroup:
- appGroupName: Test App Group
appGroupPermissions:
- basic_access
- send_campaigns_canvases
team:
- teamName: Test Team
teamPermissions:
- admin
properties:
schemas:
type: array
items:
type: string
name:
type: object
properties:
givenName:
type: string
familyName:
type: string
department:
type: string
permissions:
type: object
properties:
companyPermissions:
type: array
items:
type: string
appGroup:
type: array
items:
type: object
properties:
appGroupName:
type: string
appGroupPermissions:
type: array
items:
type: string
team:
type: array
items:
type: object
properties:
teamName:
type: string
teamPermissions:
type: array
items:
type: string
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: X-Request-Origin
in: header
schema:
type: string
example: YOUR-REQUEST-ORIGIN-HERE
- name: Authorization
in: header
schema:
type: string
example: Bearer YOUR-SCIM-TOKEN-HERE
- name: id
in: path
schema:
type: string
required: true
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
operationId: putScimV2UsersById
x-operation-id-source: derived
/scim/v2/Users:
get:
tags:
- SCIM
summary: Search Existing Dashboard User by Email
description: '> This endpoint allows you to look up an existing dashboard user account by specifying their email in the filter query parameter.
Note that when the query parameter is URL encoded it will read like this:
`/scim/v2/Users?filter=userName eq "user@test.com"`
For information on how to obtain a SCIM token, visit Automated user provisioning.
## Rate limit
This endpoint has a rate limit of 5000 requests per day, per company. This rate limit is shared with the `/scim/v2/Users/` PUT, GET, DELETE, and POST endpoints as documented in API rate limits.
## Path parameters
| Parameter | Required | Data Type | Description |
| --- | --- | --- | --- |
| `userName@example.com` | Required | String | The user''s email. |
## Request parameters
There is no request body for this endpoint.
## Response
``` json
Content-Type: application/json
X-Request-Origin: YOUR-REQUEST-ORIGIN-HERE
Authorization: Bearer YOUR-SCIM-TOKEN-HERE
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"userName": "user@test.com",
"id": "dfa245b7-24195aec-887bb3ad-602b3340",
"name": {
"givenName": "Test",
"familyName": "User"
},
"department": "finance",
"lastSignInAt": "Thursday, January 1, 1970 12:00:00 AM",
"permissions": {
"companyPermissions": ["manage_company_settings"],
"appGroup": [
{
"appGroupId": "241adcd25789fabcded",
"appGroupName": "Test App Group",
"appGroupPermissions": ["basic_access","send_campaigns_canvases"],
"team": [
{
"teamId": "241adcd25789fabcded",
"teamName": "Test Team",
"teamPermissions": ["admin"]
}
]
}
]
}
}
]
}
```'
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: X-Request-Origin
in: header
schema:
type: string
example: YOUR-REQUEST-ORIGIN-HERE
- name: Authorization
in: header
schema:
type: string
example: Bearer YOUR-SCIM-TOKEN-HERE
- name: filter
in: query
schema:
type: string
example: '{userName@example.com}'
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
operationId: getScimV2Users
x-operation-id-source: derived
post:
tags:
- SCIM
summary: Create New Dashboard User Account
description: '> This endpoint allows you to create a new dashboard user account by specifying email, given and family names, permissions (for setting permissions at the company, app group, and team level).
For information on how to obtain a SCIM token, visit Automated user provisioning.
## Rate limit
This endpoint has a rate limit of 5000 requests per day, per company. This rate limit is shared with the `/scim/v2/Users/` PUT, GET, and DELETE endpoints as documented in API rate limits.
## Request parameters
| Parameter | Required | Data type | Description |
| --- | --- | --- | --- |
| `schemas` | Required | Array of strings | Expected SCIM 2.0 schema name for user object. |
| `userName` | Required | String | The users email address. |
| `name` | Required | JSON object | This object contains the user''s given name and family name. |
| `department` | Required | String | Valid department string from the department string documentation. |
| `permissions` | Required | JSON object | Permissions object as described in the permissions object documentation. |
## Response
``` json
{
"schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
"id": "dfa245b7-24195aec-887bb3ad-602b3340",
"userName": "user@test.com",
"name": {
"givenName": "Test",
"familyName": "User"
},
"department": "finance",
"lastSignInAt": "Thursday, January 1, 1970 12:00:00 AM",
"permissions": {
"companyPermissions": ["manage_company_settings"],
"appGroup": [
{
"appGroupId": "241adcd25789fabcded",
"appGroupName": "Test App Group",
"appGroupPermissions": ["basic_access","send_campaigns_canvases"],
"team": [
{
"teamId": "2519dafcdba238ae7",
"teamName": "Test Team",
"teamPermissions": ["basic_access","export_user_data"]
}
]
}
]
}
}
```
### Error states
If a user with this email address already exists in Braze, the endpoint will respond with:
``` json
HTTP/1.1 409 Conflict
Date: Tue, 10 Sep 2019 02:22:30 GMT
Content-Type: text/json;charset=UTF-8
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"],
"detail": "User already exists in the database.",
"status": 409
}
```'
requestBody:
content:
application/json:
schema:
type: object
example:
schemas:
- urn:ietf:params:scim:schemas:core:2.0:User
userName: user@test.com
name:
givenName: Test
familyName: User
department: finance
permissions:
companyPermissions:
- manage_company_settings
appGroup:
- appGroupName: Test App Group
appGroupPermissions:
- basic_access
- send_campaigns_canvases
team:
- teamName: Test Team
teamPermissions:
- basic_access
- export_user_data
properties:
schemas:
type: array
items:
type: string
userName:
type: string
format: email
name:
type: object
properties:
givenName:
type: string
familyName:
type: string
department:
type: string
permissions:
type: object
properties:
companyPermissions:
type: array
items:
type: string
appGroup:
type: array
items:
type: object
properties:
appGroupName:
type: string
appGroupPermissions:
type: array
items:
type: string
team:
type: array
items:
type: object
properties:
teamName:
type: string
teamPermissions:
type: array
items:
type: string
parameters:
- name: Content-Type
in: header
schema:
type: string
example: application/json
- name: X-Request-Origin
in: header
schema:
type: string
example: YOUR-REQUEST-ORIGIN-HERE
- name: Authorization
in: header
schema:
type: string
example: Bearer YOUR-SCIM-TOKEN-HERE
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
'201':
description: Successful response
content:
application/json:
schema:
type: object
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
'404':
$ref: '#/components/responses/NotFound'
'429':
$ref: '#/components/responses/TooManyRequests'
'500':
$ref: '#/components/responses/InternalServerError'
operationId: postScimV2Users
x-operation-id-source: derived
components:
responses:
Unauthorized:
description: 401 Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: 400 Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: 404 Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Forbidden:
description: 403 Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
InternalServerError:
description: 500 Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
TooManyRequests:
description: 429 Rate Limited
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Error:
type: object
properties:
message:
type: string
errors:
type: array
items:
type: string
securitySchemes:
BearerAuth:
type: http
scheme: bearer