Sendoso Users API

Read the authorized user, list organization users, invite new users.

Operations 6

GET /api/v3/me Get Current User #
GET /api/v3/users Get All Users #
POST /api/v3/users Invite New User #
GET /api/scim/v2/Users Get All Users #
POST /api/scim/v2/Users Create User #
PUT /api/scim/v2/Users/{user_id} Update User #

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/sendoso-users-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

sendoso-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sendoso Users API
  contact:
    name: Sendoso Developer Support
    email: developers@sendoso.com
    url: https://developer.sendoso.com/
  x-generated-by: API Evangelist enrichment pipeline (local-v1)
  x-generated-from: documentation
  x-generated-on: '2026-08-13'
  x-refined-note:
  - x-source-docs differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged Users across 2 of this provider''s published API definitions: sendoso-core-api-openapi.yml, sendoso-scim-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://app.sendoso.com
  description: Production
- url: https://app.staging.sendo.so
  description: Sandbox / staging (declared in Sendoso's own reference-page code samples)
tags:
- name: Users
  description: Read the authorized user, list organization users, invite new users.
paths:
  /api/v3/me:
    get:
      operationId: getCurrentUser
      summary: Get Current User
      description: Get information about the current authorized user.
      tags:
      - Users
      externalDocs:
        url: https://developer.sendoso.com/rest-api/reference/users/get-current-user
      responses:
        '200':
          description: The authorized user.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrentUser'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - OAuth2: []
    servers:
    - url: https://app.sendoso.com
      description: Production
    - url: https://app.staging.sendo.so
      description: Sandbox / staging (declared in Sendoso's own reference-page code samples)
  /api/v3/users:
    get:
      operationId: getUsers
      summary: Get All Users
      description: Retrieve a paginated list of all active users associated to the organization.
      tags:
      - Users
      externalDocs:
        url: https://developer.sendoso.com/rest-api/reference/users/get-users
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PerPage'
      responses:
        '200':
          description: A page of users.
          content:
            application/json:
              schema:
                type: object
                required:
                - current_page
                - per_page
                - total_users
                - users
                properties:
                  current_page:
                    type: integer
                    description: The current page being returned.
                  per_page:
                    type: integer
                    description: The number of results being returned per page.
                  total_users:
                    type: integer
                    description: The total number of users.
                  users:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - OAuth2: []
    post:
      operationId: inviteUser
      summary: Invite New User
      description: Create a new user invitation for a specific team group.
      tags:
      - Users
      externalDocs:
        url: https://developer.sendoso.com/rest-api/reference/users/invite-user
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - user
              properties:
                user:
                  type: object
                  required:
                  - first_name
                  - last_name
                  - email
                  - role
                  - team_group_id
                  properties:
                    first_name:
                      type: string
                      description: The new user's first name.
                    last_name:
                      type: string
                      description: The new user's last name.
                    email:
                      type: string
                      description: The new user's email address.
                    role:
                      type: string
                      enum:
                      - regular
                      - manager
                      description: The new user's role.
                    team_group_id:
                      type: integer
                      description: The ID of the team to invite the user to. Obtain it from GET /api/v3/groups.
      responses:
        '201':
          description: Invitation created.
          content:
            application/json:
              schema:
                type: object
                required:
                - success
                - message
                - receiver_email
                - team_group_id
                - user_role
                - invitation_status
                - expires_at
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  receiver_email:
                    type: string
                  team_group_id:
                    type: integer
                  user_role:
                    type: string
                  invitation_status:
                    type: string
                    enum:
                    - pending
                    - accepted
                    - expired
                  expires_at:
                    type: string
                    description: When the invitation expires, in ISO 8601 format.
        '400':
          description: 'Bad request. Documented messages include "Please enter a valid team group" and "Role can be one of these: manager,regular".'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
      - OAuth2: []
    servers:
    - url: https://app.sendoso.com
      description: Production
    - url: https://app.staging.sendo.so
      description: Sandbox / staging (declared in Sendoso's own reference-page code samples)
  /api/scim/v2/Users:
    get:
      operationId: scimGetUsers
      summary: Get All Users
      description: Get all users, as a SCIM 2.0 ListResponse.
      tags:
      - Users
      externalDocs:
        url: https://developer.sendoso.com/scim/reference/get-users
      parameters:
      - name: startIndex
        in: query
        required: false
        description: The 1-based index of the first query result. A value less than 1 is interpreted as 1. Defaults to 1.
        schema:
          type: integer
      - name: count
        in: query
        required: false
        description: Desired maximum number of query results per page. If unspecified, the maximum is 100.
        schema:
          type: integer
      responses:
        '200':
          description: SCIM ListResponse.
          content:
            application/json:
              schema:
                type: object
                required:
                - schemas
                - itemsPerPage
                - startIndex
                - totalResults
                - Resources
                properties:
                  schemas:
                    type: array
                    description: Always `urn:ietf:params:scim:api:messages:2.0:ListResponse`.
                    items:
                      type: string
                  itemsPerPage:
                    type: integer
                  startIndex:
                    type: integer
                  totalResults:
                    type: integer
                  Resources:
                    type: array
                    items:
                      $ref: '#/components/schemas/ScimUser'
        '401':
          $ref: '#/components/responses/Unauthorized_2'
        '429':
          $ref: '#/components/responses/TooManyRequests_2'
      security:
      - OAuth2:
        - scim
    post:
      operationId: scimCreateUser
      summary: Create User
      description: Create a new user and assign them a role and a team.
      tags:
      - Users
      externalDocs:
        url: https://developer.sendoso.com/scim/reference/create-users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScimUserWrite'
      responses:
        '201':
          description: User created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScimUser'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
        '401':
          $ref: '#/components/responses/Unauthorized_2'
        '429':
          $ref: '#/components/responses/TooManyRequests_2'
      security:
      - OAuth2:
        - scim
    servers:
    - url: https://app.sendoso.com
      description: Production
  /api/scim/v2/Users/{user_id}:
    put:
      operationId: scimUpdateUser
      summary: Update User
      description: Updates a user.
      tags:
      - Users
      externalDocs:
        url: https://developer.sendoso.com/scim/reference/update-user
      parameters:
      - name: user_id
        in: path
        required: true
        description: The user's identifier.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScimUserWrite'
      responses:
        '200':
          description: User updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScimUser'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
        '401':
          $ref: '#/components/responses/Unauthorized_2'
        '404':
          description: User not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error_2'
        '429':
          $ref: '#/components/responses/TooManyRequests_2'
      security:
      - OAuth2:
        - scim
    servers:
    - url: https://app.sendoso.com
      description: Production
components:
  responses:
    Unauthorized:
      description: 'Unauthorized. Documented message: "The access token is invalid".'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Too Many Requests. Sendoso throttles application clients sending more than 10 requests/second; the client is temporarily blocked from making further requests.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized_2:
      description: Unauthorized.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error_2'
    TooManyRequests_2:
      description: Too Many Requests. Sendoso does not publish a numeric SCIM limit; the documentation states only that exceeding it returns 429 and temporarily blocks further requests.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error_2'
  schemas:
    User:
      type: object
      required:
      - id
      - first_name
      - last_name
      - email
      - team_group_id
      properties:
        id:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
        team_group_id:
          type: number
    Error:
      type: object
      description: Sendoso's error envelope. Not RFC 9457 problem+json — errors are returned as `application/json` with a `success` flag and a human-readable `message`. Some documented 401 bodies use `description` and `expired` instead of `message`.
      properties:
        success:
          type: boolean
        message:
          type: string
        description:
          type: string
        expired:
          type: boolean
    CurrentUser:
      type: object
      required:
      - id
      - first_name
      - last_name
      - email
      - role
      - balance
      - team_balance
      properties:
        id:
          type: integer
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
        role:
          type: string
        balance:
          type: string
          description: The user's personal balance.
        team_balance:
          type: integer
          description: The sum of all the users' balance.
    Error_2:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
    ScimName:
      type: object
      required:
      - givenName
      - familyName
      properties:
        givenName:
          type: string
        familyName:
          type: string
    ScimUserWrite:
      type: object
      required:
      - userName
      - name
      - userType
      - division
      properties:
        userName:
          type: string
          description: The user's email address.
        name:
          $ref: '#/components/schemas/ScimName'
        userType:
          type: string
          enum:
          - sender
          - manager
          - admin
          description: The user's role.
        division:
          type: string
          description: The user's team. Must match the exact team group name in Sendoso — read them from GET /api/v3/groups on the Core API.
    ScimUser:
      type: object
      required:
      - schemas
      - id
      - userName
      - active
      - name
      - emails
      properties:
        schemas:
          type: array
          description: Always `urn:ietf:params:scim:schemas:core:2.0:User`.
          items:
            type: string
        id:
          type: string
        userName:
          type: string
          description: The user's email address.
        active:
          type: boolean
          description: Whether the user is active in the Sendoso platform.
        name:
          $ref: '#/components/schemas/ScimName'
        emails:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
  parameters:
    PerPage:
      name: per_page
      in: query
      required: false
      description: The number of results to be returned per page. Max is 100.
      schema:
        type: integer
        maximum: 100
    Page:
      name: page
      in: query
      required: false
      description: The page number of the results you want to retrieve. The first page is 1.
      schema:
        type: integer
        minimum: 1
  securitySchemes:
    OAuth2:
      type: oauth2
      description: 'OAuth 2.0 Authorization Code grant. Register your application by contacting developers@sendoso.com to receive a client ID and client secret. Access tokens live 7200 seconds (2 hours) and are refreshed at the same token endpoint. Tokens are sent as `Authorization: Bearer <token>`.'
      flows:
        authorizationCode:
          authorizationUrl: https://app.sendoso.com/oauth/authorize
          tokenUrl: https://app.sendoso.com/oauth/token
          refreshUrl: https://app.sendoso.com/oauth/token
          scopes:
            public: Access the user's basic information.
            write: Send gifts on the user's behalf.
            update: Update the user's account details.
            marketplace: Access the marketplace API.
            smartsend: Access the smartsend API.
x-refined-from:
- sendoso-core-api-openapi.yml
- sendoso-scim-api-openapi.yml