Braze SCIM API

The SCIM API from Braze — 2 operation(s) for scim.

Business capability
Identity & Access Management BC-620.20

Operations 5

DELETE /scim/v2/Users/{id} Remove Dashboard User Account #
GET /scim/v2/Users/{id} Look Up an Existing Dashboard User Account #
PUT /scim/v2/Users/{id} Update Dashboard User Account #
GET /scim/v2/Users Search Existing Dashboard User by Email #
POST /scim/v2/Users Create New Dashboard User Account #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/braze-scim-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

braze-scim-api-openapi.yml Raw ↑
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