Sendbird Users API

Operations for managing Sendbird users.

OpenAPI Specification

sendbird-users-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Sendbird Platform Channels Users API
  description: The Sendbird Platform API provides server-side access to manage users, channels, messages, and moderation for in-app chat applications built on Sendbird. Supports group channels, open channels, direct messages, push notifications, and webhooks for real-time communication features.
  version: 3.0.0
  termsOfService: https://sendbird.com/terms-of-service/
  contact:
    name: Sendbird Support
    url: https://sendbird.com/contact-us/
  license:
    name: Proprietary
    url: https://sendbird.com/terms-of-service/
servers:
- url: https://api-{application_id}.sendbird.com/v3
  description: Sendbird Platform API (replace {application_id} with your app ID)
  variables:
    application_id:
      default: YOUR_APP_ID
      description: Your Sendbird application ID
security:
- apiTokenAuth: []
tags:
- name: Users
  description: Operations for managing Sendbird users.
paths:
  /users:
    get:
      operationId: listUsers
      summary: List Users
      description: Retrieves a list of users registered in the Sendbird application. Supports pagination and filtering by nickname.
      tags:
      - Users
      parameters:
      - name: token
        in: query
        description: Pagination token for the next page.
        schema:
          type: string
      - name: limit
        in: query
        description: Maximum number of users to return (1-100).
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 100
      - name: active_mode
        in: query
        description: Filter by user active mode.
        schema:
          type: string
          enum:
          - activated
          - deactivated
          - all
          default: all
      - name: show_bot
        in: query
        description: Whether to include bot users in results.
        schema:
          type: boolean
          default: false
      - name: user_ids
        in: query
        description: Comma-separated list of user IDs to filter.
        schema:
          type: string
      - name: nickname
        in: query
        description: Filter users by nickname (partial match).
        schema:
          type: string
      - name: nickname_startswith
        in: query
        description: Filter users whose nickname starts with this value.
        schema:
          type: string
      responses:
        '200':
          description: A list of users.
          content:
            application/json:
              schema:
                type: object
                properties:
                  users:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
                  next:
                    type: string
                    description: Pagination token for the next page.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createUser
      summary: Create a User
      description: Creates a new user in the Sendbird application. The user_id must be unique within the application.
      tags:
      - Users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - user_id
              - nickname
              - profile_url
              properties:
                user_id:
                  type: string
                  description: Unique user ID.
                nickname:
                  type: string
                  description: Display nickname of the user.
                profile_url:
                  type: string
                  description: URL of the user profile image.
                issue_access_token:
                  type: boolean
                  description: Whether to generate an access token for the user.
                  default: false
                metadata:
                  type: object
                  description: Custom metadata key-value pairs.
                  additionalProperties:
                    type: string
      responses:
        '200':
          description: User created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /users/{user_id}:
    get:
      operationId: getUser
      summary: Get a User
      description: Retrieves information about a specific user.
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/user_id'
      responses:
        '200':
          description: User details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      operationId: updateUser
      summary: Update a User
      description: Updates information of a specific user.
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/user_id'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                nickname:
                  type: string
                  description: Updated nickname.
                profile_url:
                  type: string
                  description: Updated profile image URL.
                metadata:
                  type: object
                  description: Updated metadata.
                  additionalProperties:
                    type: string
      responses:
        '200':
          description: User updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteUser
      summary: Delete a User
      description: Deletes a specific user from the Sendbird application.
      tags:
      - Users
      parameters:
      - $ref: '#/components/parameters/user_id'
      responses:
        '200':
          description: User deleted successfully.
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    User:
      type: object
      properties:
        user_id:
          type: string
          description: Unique identifier of the user.
        nickname:
          type: string
          description: Display nickname.
        profile_url:
          type: string
          description: Profile image URL.
        is_online:
          type: boolean
          description: Whether the user is currently online.
        is_active:
          type: boolean
          description: Whether the user account is active.
        last_seen_at:
          type: integer
          description: Unix timestamp of last activity.
        access_token:
          type: string
          description: Access token for the user (returned when issue_access_token is true).
        metadata:
          type: object
          description: Custom metadata.
          additionalProperties:
            type: string
        created_at:
          type: integer
          description: Unix timestamp when the user was created.
    Error:
      type: object
      properties:
        error:
          type: boolean
          description: Indicates an error occurred.
        code:
          type: integer
          description: Sendbird error code.
        message:
          type: string
          description: Human-readable error message.
  parameters:
    user_id:
      name: user_id
      in: path
      required: true
      description: Unique identifier of the user.
      schema:
        type: string
  responses:
    NotFound:
      description: Not found. The requested resource does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Unauthorized. API token is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Bad request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    apiTokenAuth:
      type: apiKey
      in: header
      name: Api-Token
      description: Sendbird API token obtained from the Sendbird Dashboard.