Braze SCIM API

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

OpenAPI Specification

braze-scim-api-openapi.yml Raw ↑
openapi: 3.0.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. When Radar geofence or trip tracking events are generated, custom events and user attributes are sent to Braze in real-time. These events and attributes can then be used to trigger location-based campaigns, power last-mile pickup and delivery operations, monitor fleet and shipping logistics, or build user segments based on location patterns. '
  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`](https://www.braze.com/docs/scim/post_create_user_account/) method.  \n \n  \n\nThis 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](https://www.braze.com/docs/scim/automated_user_provisioning/).\n\n## Rate limit\n\nThis 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](https://www.braze.com/docs/api/api_limits/).\n\n## Path parameters\n\n| Parameter | Required | Data type | Description |\n| --- | --- | --- | --- |\n| `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](mailto:user@test.com)\"` methods. |\n\n## Request parameters\n\nThere is no request body for this endpoint.\n\n## Response\n\n### Example error response\n\n``` json\nHTTP/1.1 204 Not Found\nContent-Type: text/html; charset=UTF-8\n\n```\n\nIf a developer with this ID doesnt exist in Braze, the endpoint will respond with:\n\n``` json\nHTTP/1.1 404 Not Found Content-Type: text/html; charset=UTF-8\n{ \"schemas\": [\"urn:ietf:params:scim:api:messages:2.0:Error\"], \"detail\": \"User not found\", \"status\": 404 }\n\n```"
      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'
    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`](https://www.braze.com/docs/scim/post_create_user_account/) method.  \n \n  \n\nFor information on how to obtain a SCIM token, visit [Automated user provisioning](https://www.braze.com/docs/scim/automated_user_provisioning/).\n\n## Rate limit\n\nThis 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](https://www.braze.com/docs/api/api_limits/).\n\n## Path parameters\n\n| Parameter | Required | Data Type | Description |\n| --- | --- | --- | --- |\n| `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. |\n\n## Request parameters\n\nThere is no request body for this endpoint.\n\n## Response\n\n``` json\n{\n    \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n    \"id\": \"dfa245b7-24195aec-887bb3ad-602b3340\",\n    \"userName\": \"user@test.com\",\n    \"name\": {\n        \"givenName\": \"Test\",\n        \"familyName\": \"User\"\n    },\n    \"department\": \"finance\",\n    \"lastSignInAt\": \"Thursday, January 1, 1970 12:00:00 AM\",\n    \"permissions\": {\n        \"companyPermissions\": [\"manage_company_settings\"],\n        \"appGroup\": [\n            {\n                \"appGroupId\": \"241adcd25789fabcded\",\n                \"appGroupName\": \"Test App Group\",\n                \"appGroupPermissions\": [\"basic_access\",\"send_campaigns_canvases\"],\n                \"team\": [\n                    {\n                         \"teamId\": \"241adcd25789fabcded\",\n                         \"teamName\": \"Test Team\",                  \n                         \"teamPermissions\": [\"admin\"]\n                    }\n                ]\n            } \n        ]\n    }\n}\n\n```"
      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'
    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`](https://www.braze.com/docs/scim/post_create_user_account/) method.  \n \n  \n\nIt 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](https://www.braze.com/docs/scim/automated_user_provisioning/).\n\nFor 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](https://www.braze.com/docs/support_contact/).\n\n## Rate limit\n\nThis 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](https://www.braze.com/docs/api/api_limits/).\n\n## Path parameters\n\n| Parameter | Required | Data Type | Description |\n| --- | --- | --- | --- |\n| `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. |\n\n## Request parameters\n\n| Parameter | Required | Data type | Description |\n| --- | --- | --- | --- |\n| `schemas` | Required | Array of strings | Expected SCIM 2.0 schema name for user object. |\n| `name` | Required | JSON object | This object contains the user's given name and family name. |\n| `department` | Required | String | Valid department string from the [department string documentation]({{site.baseurl}}/scim_api_appendix/#department-strings). |\n| `permissions` | Required | JSON object | Permissions object as described in the [permissions object documentation]({{site.baseurl}}/scim_api_appendix/#permissions-object). |\n\n## Response\n\n``` json\n{\n    \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n    \"id\": \"dfa245b7-24195aec-887bb3ad-602b3340\",\n    \"userName\": \"user@test.com\",\n    \"name\": {\n        \"givenName\": \"Test\",\n        \"familyName\": \"User\"\n    },\n    \"department\": \"finance\",\n    \"lastSignInAt\": \"Thursday, January 1, 1970 12:00:00 AM\",\n    \"permissions\": {\n        \"companyPermissions\": [\"manage_company_settings\"],\n        \"appGroup\": [\n            {\n                \"appGroupId\": \"241adcd25789fabcded\",\n                \"appGroupName\": \"Test App Group\",\n                \"appGroupPermissions\": [\"basic_access\",\"send_campaigns_canvases\"],\n                \"team\": [\n                    {\n                         \"teamId\": \"2519dafcdba238ae7\",\n                         \"teamName\": \"Test Team\",                  \n                         \"teamPermissions\": [\"admin\"]\n                    }\n                ]\n            } \n        ]\n    }\n}\n\n```\n\n### Error states\n\nIf a user with this ID doesnt exist in Braze, the endpoint will respond with:\n\n``` json\nHTTP/1.1 404 Not Found\nContent-Type: text/html; charset=UTF-8\n{\n    \"schemas\": [\"urn:ietf:params:scim:api:messages:2.0:Error\"],\n    \"detail\": \"User not found\",\n    \"status\": 404\n}\n\n```"
      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'
  /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.  \n \n  \n\nNote that when the query parameter is URL encoded it will read like this:\n\n`/scim/v2/Users?filter=userName eq \"user@test.com\"`\n\nFor information on how to obtain a SCIM token, visit [Automated user provisioning](https://www.braze.com/docs/scim/automated_user_provisioning/).\n\n## Rate limit\n\nThis 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](https://www.braze.com/docs/api/api_limits/).\n\n## Path parameters\n\n| Parameter | Required | Data Type | Description |\n| --- | --- | --- | --- |\n| `userName@example.com` | Required | String | The user's email. |\n\n## Request parameters\n\nThere is no request body for this endpoint.\n\n## Response\n\n``` json\nContent-Type: application/json\nX-Request-Origin: YOUR-REQUEST-ORIGIN-HERE\nAuthorization: Bearer YOUR-SCIM-TOKEN-HERE\n{\n    \"schemas\": [\"urn:ietf:params:scim:api:messages:2.0:ListResponse\"],\n    \"totalResults\": 1,\n    \"Resources\": [\n        {\n            \"userName\": \"user@test.com\",\n            \"id\": \"dfa245b7-24195aec-887bb3ad-602b3340\",\n            \"name\": {\n                \"givenName\": \"Test\",\n                \"familyName\": \"User\"\n            },\n            \"department\": \"finance\",\n            \"lastSignInAt\": \"Thursday, January 1, 1970 12:00:00 AM\",\n            \"permissions\": {\n                \"companyPermissions\": [\"manage_company_settings\"],\n                \"appGroup\": [\n                    {\n                        \"appGroupId\": \"241adcd25789fabcded\",\n                        \"appGroupName\": \"Test App Group\",\n                        \"appGroupPermissions\": [\"basic_access\",\"send_campaigns_canvases\"],\n                        \"team\": [\n                            {\n                                \"teamId\": \"241adcd25789fabcded\",\n                                \"teamName\": \"Test Team\",                  \n                                \"teamPermissions\": [\"admin\"]\n                            }\n                        ]\n                    } \n                ]\n            }\n        }\n    ]\n}\n\n```"
      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'
    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).  \n \n  \n\nFor information on how to obtain a SCIM token, visit [Automated user provisioning](https://www.braze.com/docs/scim/automated_user_provisioning/).\n\n## Rate limit\n\nThis 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](https://www.braze.com/docs/api/api_limits/).\n\n## Request parameters\n\n| Parameter | Required | Data type | Description |\n| --- | --- | --- | --- |\n| `schemas` | Required | Array of strings | Expected SCIM 2.0 schema name for user object. |\n| `userName` | Required | String | The users email address. |\n| `name` | Required | JSON object | This object contains the user's given name and family name. |\n| `department` | Required | String | Valid department string from the [department string documentation]({{site.baseurl}}/scim_api_appendix/#department-strings). |\n| `permissions` | Required | JSON object | Permissions object as described in the [permissions object documentation]({{site.baseurl}}/scim_api_appendix/#permissions-object). |\n\n## Response\n\n``` json\n{\n    \"schemas\": [\"urn:ietf:params:scim:schemas:core:2.0:User\"],\n    \"id\": \"dfa245b7-24195aec-887bb3ad-602b3340\",\n    \"userName\": \"user@test.com\",\n    \"name\": {\n        \"givenName\": \"Test\",\n        \"familyName\": \"User\"\n    },\n    \"department\": \"finance\",\n    \"lastSignInAt\": \"Thursday, January 1, 1970 12:00:00 AM\",\n    \"permissions\": {\n        \"companyPermissions\": [\"manage_company_settings\"],\n        \"appGroup\": [\n            {\n                \"appGroupId\": \"241adcd25789fabcded\",\n                \"appGroupName\": \"Test App Group\",\n                \"appGroupPermissions\": [\"basic_access\",\"send_campaigns_canvases\"],\n                \"team\": [\n                    {\n                         \"teamId\": \"2519dafcdba238ae7\",\n                         \"teamName\": \"Test Team\",                  \n                         \"teamPermissions\": [\"basic_access\",\"export_user_data\"]\n                    }\n                ]\n            } \n        ]\n    }\n}\n\n```\n\n### Error states\n\nIf a user with this email address already exists in Braze, the endpoint will respond with:\n\n``` json\nHTTP/1.1 409 Conflict\nDate: Tue, 10 Sep 2019 02:22:30 GMT\nContent-Type: text/json;charset=UTF-8\n{\n  \"schemas\": [\"urn:ietf:params:scim:api:messages:2.0:Error\"],\n  \"detail\": \"User already exists in the database.\",\n  \"status\": 409\n}\n\n```"
      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'
components:
  responses:
    Forbidden:
      description: 403 Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: 401 Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: 429 Rate Limited
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: 404 Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: 400 Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InternalServerError:
      description: 500 Internal Server Error
      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