Valimail SCIM API

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

Operations 4

GET /accounts/{slug}/scim/v2/Users Returns a list of users in SCIM format according to RFC 7644
POST /accounts/{slug}/scim/v2/Users Creates a new user in SCIM format
GET /accounts/{slug}/scim/v2/Users/{id} Returns a single user in SCIM format
PATCH /accounts/{slug}/scim/v2/Users/{id} Updates a user's attributes using SCIM PATCH operation

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/valimail-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

valimail-scim-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Configuration SCIM API
  description: ValiMail Configuration API
  version: 1.1.0
servers:
- url: https://api.valimail.com
  description: API services
- url: https://api.valimail-staging.com
  description: Stage test server
- url: http://localhost:7001
  description: Local development server
security:
- bearerAuth: []
tags:
- name: SCIM
paths:
  /accounts/{slug}/scim/v2/Users:
    get:
      summary: Returns a list of users in SCIM format according to RFC 7644
      description: Retrieves all users from the specified account in SCIM format. Supports filtering by various user attributes.
      tags:
      - SCIM
      parameters:
      - name: slug
        in: path
        description: Account slug to be queried.
        required: true
        schema:
          type: string
        example: valimail
      - name: filter
        in: query
        description: 'SCIM filter expression to filter users. Supports the following operators:

          - `eq` (equals): Checks if attribute equals value (e.g., `userName eq "foo@example.com"`)

          - `ne` (not equals): Checks if attribute is not equal to value (e.g., `active ne true`)

          - `co` (contains): Checks if attribute contains substring (e.g., `userName co "example"`)

          - `sw` (starts with): Checks if attribute starts with substring (e.g., `name.givenName sw "J"`)

          - `ew` (ends with): Checks if attribute ends with substring (e.g., `name.familyName ew "son"`)

          - `gt` (greater than): For numeric/date values (e.g., `meta.lastModified gt "2023-01-01T00:00:00Z"`)

          - `lt` (less than): For numeric/date values (e.g., `meta.lastModified lt "2024-01-01T00:00:00Z"`)

          - `ge` (greater or equal): For numeric/date values

          - `le` (less or equal): For numeric/date values


          Logical operators: `and`, `or`, `not` can be used to combine conditions.

          '
        required: false
        schema:
          type: string
        examples:
          emailFilter:
            value: userName eq "foo@somedomain.com"
            summary: Filter by email address
          memberTypeFilter:
            value: urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User.memberType eq "owner"
            summary: Filter by member type
          activeAndNameFilter:
            value: active eq true and name.givenName co "J"
            summary: Filter by active status and name
      responses:
        '200':
          description: Ok - List of users in SCIM format
          content:
            application/scim+json:
              schema:
                type: object
                properties:
                  schemas:
                    type: array
                    items:
                      type: string
                  totalResults:
                    type: integer
                  Resources:
                    type: array
                    items:
                      $ref: '#/components/schemas/ScimUser'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:ListResponse
                totalResults: 2
                Resources:
                - schemas:
                  - urn:ietf:params:scim:schemas:core:2.0:User
                  - urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User
                  id: 49c398b12b
                  userName: foo@somedomain.com
                  externalId: string
                  name:
                    familyName: bar
                    givenName: foo
                  active: false
                  urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User:
                    memberType: owner
                  meta:
                    resourceType: User
                    created: '2026-03-16T14:13:09.867Z'
                    lastModified: '2026-03-25T13:22:47.26Z'
                    location: https://api.valimail.com/account/valimail/scim/v2/users/49c398b12b
                - schemas:
                  - urn:ietf:params:scim:schemas:core:2.0:User
                  - urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User
                  id: 1234c223-7f76-453a-919d-413861904648
                  userName: bar@somedomain.com
                  externalId: another-string
                  name:
                    familyName: baz
                    givenName: bar
                  active: false
                  urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User:
                    memberType: member
                  meta:
                    resourceType: User
                    created: '2026-03-17T10:00:00.000Z'
                    lastModified: '2026-03-25T13:22:47.26Z'
                    location: https://api.valimail.com/account/valimail/scim/v2/users/1234c223-7f76-453a-919d-413861904648
        '400':
          description: Bad Request - Invalid input data or filter syntax
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '400'
                scimType: invalidFilter
                detail: 'The specified filter syntax was invalid: Unexpected token in filter expression'
        '401':
          description: Unauthorized - Authentication failed
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '401'
                scimType: unauthorized
                detail: Unauthorized
        '403':
          description: Forbidden - Authorization failed
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '403'
                detail: Not authorized to access this account
        '500':
          description: Internal Server Error
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '500'
                detail: 'An internal error occurred. Please contact support with reference: a1b2c3d4'
    post:
      summary: Creates a new user in SCIM format
      description: Creates a new SCIM user in the specified account (RFC 7643/7644). Requires the core User schema and the ValiMail user extension schema. Supports userName, name.givenName, name.familyName, optional externalId, and extension memberType. Allowed memberType values are 'owner' and 'member'; 'marketer' is accepted only when enabled for the account. Returns 409 when userName already exists and 400 for invalid or missing fields.
      tags:
      - SCIM
      parameters:
      - name: slug
        in: path
        description: Account slug to create a user in.
        required: true
        schema:
          type: string
        example: valimail
      requestBody:
        required: true
        content:
          application/scim+json:
            schema:
              $ref: '#/components/schemas/ScimUserCreate'
            example:
              schemas:
              - urn:ietf:params:scim:schemas:core:2.0:User
              - urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User
              userName: foo@somedomain.com
              externalId: string
              name:
                givenName: foo
                familyName: bar
              urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User:
                memberType: owner
      responses:
        '201':
          description: Created - User created successfully
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimUser'
              example:
                schemas:
                - urn:ietf:params:scim:schemas:core:2.0:User
                - urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User
                id: 49c398b12b
                userName: foo@somedomain.com
                externalId: string
                name:
                  givenName: foo
                  familyName: bar
                active: true
                urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User:
                  memberType: owner
                meta:
                  resourceType: User
                  created: '2026-03-16T14:13:09.867Z'
                  lastModified: '2026-03-16T14:13:09.867Z'
                  location: https://api.valimail.com/account/valimail/scim/v2/users/49c398b12b
        '400':
          description: Bad Request - Invalid input data
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '400'
                scimType: invalidValue
                detail: Request is unparsable, syntactically incorrect, or violates schema
        '401':
          description: Unauthorized - Authentication failed
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '401'
                scimType: unauthorized
                detail: Unauthorized
        '403':
          description: Forbidden - Authorization failed
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '403'
                detail: Not authorized to access this account
        '409':
          description: Conflict - User already exists
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '409'
                detail: User with email foo@somedomain.com already exists
        '500':
          description: Internal Server Error
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '500'
                detail: 'An internal error occurred. Please contact support with reference: a1b2c3d4'
  /accounts/{slug}/scim/v2/Users/{id}:
    get:
      summary: Returns a single user in SCIM format
      description: Retrieves a specific user by ID from the specified account in SCIM format, including all user attributes and ValiMail-specific extensions.
      tags:
      - SCIM
      parameters:
      - name: slug
        in: path
        description: Account slug to be queried.
        required: true
        schema:
          type: string
        example: valimail
      - name: id
        in: path
        description: User ID to retrieve.
        required: true
        schema:
          type: string
        example: 49c398b12b
      responses:
        '200':
          description: Ok - User found and returned in SCIM format
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimUser'
              example:
                schemas:
                - urn:ietf:params:scim:schemas:core:2.0:User
                - urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User
                id: 2906d4927bf178077519
                userName: emailscimtest1@somedomain.com
                externalId: 684f7728-1f8c-44da-aefa-21b27dc602cf
                name:
                  familyName: qqqq
                  givenName: tttttt
                active: true
                urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User:
                  memberType: member
                meta:
                  resourceType: User
                  created: '2025-09-11T14:42:59Z'
                  lastModified: '2025-09-11T14:42:59Z'
                  location: https://api.valimail.com/account/valimail/scim/v2/users/2906d4927bf178077519
        '400':
          description: Bad Request - Invalid input data
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '400'
                detail: Invalid input data
        '401':
          description: Unauthorized - Authentication failed
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '401'
                scimType: unauthorized
                detail: Unauthorized
        '403':
          description: Forbidden - Authorization failed
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '403'
                detail: Not authorized to access this account
        '404':
          description: Not Found - User not found
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '404'
                detail: User with ID 2906d4927bf9 not found
        '500':
          description: Internal Server Error
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '500'
                detail: 'An internal error occurred. Please contact support with reference: a1b2c3d4'
    patch:
      summary: Updates a user's attributes using SCIM PATCH operation
      description: "Partially updates an existing SCIM user (RFC 7644 PatchOp).\n\nSupported operations:\n- op: \"replace\" only\n\nSupported paths:\n- active (boolean: true/false)\n- urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User.memberType\n  (owner, member, or marketer when enabled for the account)\n\nRequirements:\n- schemas must include \"urn:ietf:params:scim:api:messages:2.0:PatchOp\"\n\nNotes:\n- PUT is not supported for this endpoint.\n- Unsupported op/path/value returns 400.\n"
      tags:
      - SCIM
      parameters:
      - name: slug
        in: path
        description: Account slug of the user to update.
        required: true
        schema:
          type: string
        example: valimail
      - name: id
        in: path
        description: User ID to update.
        required: true
        schema:
          type: string
        example: 49c398b12b
      requestBody:
        required: true
        content:
          application/scim+json:
            schema:
              $ref: '#/components/schemas/ScimPatchRequest'
            example:
              schemas:
              - urn:ietf:params:scim:api:messages:2.0:PatchOp
              Operations:
              - op: replace
                path: active
                value: false
              - op: replace
                path: urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User.memberType
                value: owner
      responses:
        '200':
          description: Ok - User updated successfully
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimUser'
              example:
                schemas:
                - urn:ietf:params:scim:schemas:core:2.0:User
                - urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User
                id: 49c398b12b
                userName: foo@somedomain.com
                externalId: string
                name:
                  givenName: Johnny
                  familyName: bar
                active: false
                urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User:
                  memberType: owner
                meta:
                  resourceType: User
                  created: '2026-03-16T14:13:09.867Z'
                  lastModified: '2026-03-25T13:22:47.26Z'
                  location: https://api.valimail.com/account/valimail/scim/v2/users/49c398b12b
        '400':
          description: Bad Request - Invalid PATCH operation
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '400'
                detail: 'Invalid PATCH operation: Unsupported operation type'
        '403':
          description: Forbidden - Authorization failed
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '403'
                detail: Not authorized to access this account
        '404':
          description: Not Found - User not found
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '404'
                detail: User with ID 49c398b12b not found
        '500':
          description: Internal Server Error
          content:
            application/scim+json:
              schema:
                $ref: '#/components/schemas/ScimError'
              example:
                schemas:
                - urn:ietf:params:scim:api:messages:2.0:Error
                status: '500'
                detail: 'An internal error occurred. Please contact support with reference: a1b2c3d4'
components:
  schemas:
    ScimPatchRequest:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
            - urn:ietf:params:scim:api:messages:2.0:PatchOp
        Operations:
          type: array
          items:
            type: object
            properties:
              op:
                type: string
                enum:
                - add
                - replace
                - remove
              path:
                type: string
                description: JSON path to the attribute to modify
              value:
                type: object
                description: Value to set for the attribute
      required:
      - schemas
      - Operations
      example:
        schemas:
        - urn:ietf:params:scim:api:messages:2.0:PatchOp
        Operations:
        - op: replace
          path: active
          value: false
        - op: replace
          path: urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User:memberType
          value: owner
    ScimUserCreate:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
        userName:
          type: string
          format: email
          description: Email address used as the username
        name:
          type: object
          properties:
            givenName:
              type: string
              description: First name
            familyName:
              type: string
              description: Last name
        active:
          type: boolean
          description: Whether the user account is active
      required:
      - schemas
      - userName
      - name
      example:
        schemas:
        - urn:ietf:params:scim:schemas:core:2.0:User
        userName: foo@somedomain.com
        name:
          givenName: John
          familyName: Doe
        active: true
    ScimError:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
            enum:
            - urn:ietf:params:scim:api:messages:2.0:Error
        status:
          type: string
          description: HTTP status code as a string
        scimType:
          type: string
          description: SCIM error type identifier
        detail:
          type: string
          description: Detailed error message
      example:
        schemas:
        - urn:ietf:params:scim:api:messages:2.0:Error
        status: '400'
        scimType: invalidFilter
        detail: The specified filter syntax was invalid
    ScimUser:
      type: object
      properties:
        schemas:
          type: array
          items:
            type: string
        id:
          type: string
          description: Unique identifier for the user (slug column in the users table)
        userName:
          type: string
          description: Email address used as the username
        externalId:
          type: string
          description: External identifier provided by the identity provider
        name:
          type: object
          properties:
            givenName:
              type: string
              description: First name
            familyName:
              type: string
              description: Last name
        active:
          type: boolean
          description: Whether the user account is active
        urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User:
          type: object
          properties:
            memberType:
              type: string
              enum:
              - owner
              - member
              description: Role of the user in the account
        meta:
          type: object
          properties:
            resourceType:
              type: string
              description: Type of resource
            created:
              type: string
              format: date-time
              description: Timestamp when the user was created
            lastModified:
              type: string
              format: date-time
              description: Timestamp when the user was last modified
            location:
              type: string
              format: uri
              description: Full URI to the user resource
      required:
      - id
      - userName
      - schemas
      example:
        schemas:
        - urn:ietf:params:scim:schemas:core:2.0:User
        - urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User
        id: 49c398b12b
        userName: foo@somedomain.com
        externalId: string
        name:
          givenName: foo
          familyName: bar
        active: false
        urn:ietf:params:scim:schemas:extension:valimailuserextension:2.0:User:
          memberType: owner
        meta:
          resourceType: User
          created: '2026-03-16T14:13:09.867Z'
          lastModified: '2026-03-25T13:22:47.26Z'
          location: https://api.valimail.com/account/valimail/scim/v2/users/49c398b12b
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT