Bernstein SCIM API

The scim API from Bernstein — 14 operation(s) for scim.

Operations 18

GET /scim/v2/ServiceProviderConfig SCIM 2.0 service provider configuration #
GET /scim/v2/Schemas SCIM 2.0 schema resources #
GET /scim/v2/Schemas/{schema_id} Fetch a single SCIM schema resource #
GET /scim/v2/ResourceTypes SCIM 2.0 resource types #
GET /scim/v2/ResourceTypes/{resource_type_id} Fetch a single SCIM resource type #
GET /scim/v2/Users List agent principals as SCIM users #
GET /scim/v2/Users/{user_id} Fetch one agent principal as a SCIM user #
DELETE /scim/v2/Users/{user_id} Delete a user (soft delete with history retention) #
PATCH /scim/v2/Users/{user_id} Update a user via PATCH operations #
GET /api/v1/scim/v2/ServiceProviderConfig SCIM 2.0 service provider configuration #
GET /api/v1/scim/v2/Schemas SCIM 2.0 schema resources #
GET /api/v1/scim/v2/Schemas/{schema_id} Fetch a single SCIM schema resource #
GET /api/v1/scim/v2/ResourceTypes SCIM 2.0 resource types #
GET /api/v1/scim/v2/ResourceTypes/{resource_type_id} Fetch a single SCIM resource type #
GET /api/v1/scim/v2/Users List agent principals as SCIM users #
GET /api/v1/scim/v2/Users/{user_id} Fetch one agent principal as a SCIM user #
DELETE /api/v1/scim/v2/Users/{user_id} Delete a user (soft delete with history retention) #
PATCH /api/v1/scim/v2/Users/{user_id} Update a user via PATCH operations #

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/bernstein-run:bernstein-run-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

bernstein-run-scim-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bernstein Task Server SCIM API
  description: 'Bernstein REST API - the open-source governance layer for AI agents, one git worktree per task.


    ## Authentication


    Authentication is ENABLED by default. Include a Bearer token in all requests:


    ```

    Authorization: Bearer

    ```


    To run without auth (development only), set `BERNSTEIN_AUTH_DISABLED=1` - this logs a loud warning and passes every request through.


    Public endpoints (no auth required): `/health`, `/health/ready`, `/health/live`, `/ready`, `/alive`, `/.well-known/agent.json`, `/docs`, `/openapi.json`, and the auth-flow endpoints (`/auth/login`, `/auth/oidc/callback`, etc.).


    Webhook and hook endpoints (`/webhook`, `/webhooks/*`, `/hooks/{session_id}`) authenticate via HMAC-SHA256 signatures - they do NOT accept Bearer tokens.


    ## Base URL


    Default: `http://127.0.0.1:8052`. Override with env vars `BERNSTEIN_HOST` and `BERNSTEIN_PORT`.


    ## Error Format


    All errors return JSON with a `detail` field:


    ```json

    {"detail": "Task not found: task-xyz"}

    ```


    | Status | Meaning |

    |--------|---------|

    | 400 | Bad request (validation error) |

    | 401 | Unauthorized (missing/invalid token) |

    | 403 | Forbidden (IP not in allowlist) |

    | 404 | Resource not found |

    | 409 | Conflict (task already in terminal state) |

    | 429 | Rate limited - respect the `Retry-After` header |

    | 500 | Internal server error |'
  version: 3.22.0
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
  contact:
    name: Alex Chernysh
    url: https://github.com/sipyourdrink-ltd/bernstein
servers:
- url: http://{host}:{port}
  description: Task server started by the Bernstein CLI on the operator's own machine. There is no hosted instance; substitute the host and port of your install.
  variables:
    host:
      default: 127.0.0.1
      description: Interface the task server binds to. Loopback by default.
    port:
      default: '8052'
      description: Task server port. Override with BERNSTEIN_PORT.
tags:
- name: SCIM
paths:
  /scim/v2/ServiceProviderConfig:
    get:
      tags:
      - SCIM
      summary: SCIM 2.0 service provider configuration
      description: 'Return the RFC 7643 §5 discovery document for this service provider.


        Everything reported here is what the mounted surface actually does. The

        write operations are absent rather than advertised-and-unimplemented, and

        the deletion semantics a client will eventually meet are stated now.'
      operationId: service_provider_config_scim_v2_ServiceProviderConfig_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
  /scim/v2/Schemas:
    get:
      tags:
      - SCIM
      summary: SCIM 2.0 schema resources
      description: List the schema resources this server serves (RFC 7643 §7).
      operationId: list_schemas_scim_v2_Schemas_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
  /scim/v2/Schemas/{schema_id}:
    get:
      tags:
      - SCIM
      summary: Fetch a single SCIM schema resource
      description: Fetch one schema resource by its URN.
      operationId: get_schema_scim_v2_Schemas__schema_id__get
      parameters:
      - name: schema_id
        in: path
        required: true
        schema:
          type: string
          title: Schema Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '404':
          description: Unknown schema URN
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /scim/v2/ResourceTypes:
    get:
      tags:
      - SCIM
      summary: SCIM 2.0 resource types
      description: List the resource types this server serves (RFC 7643 §6).
      operationId: list_resource_types_scim_v2_ResourceTypes_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
  /scim/v2/ResourceTypes/{resource_type_id}:
    get:
      tags:
      - SCIM
      summary: Fetch a single SCIM resource type
      description: Fetch one resource type by id.
      operationId: get_resource_type_scim_v2_ResourceTypes__resource_type_id__get
      parameters:
      - name: resource_type_id
        in: path
        required: true
        schema:
          type: string
          title: Resource Type Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '404':
          description: Unknown resource type
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /scim/v2/Users:
    get:
      tags:
      - SCIM
      summary: List agent principals as SCIM users
      description: 'Return the agent principals this orchestrator knows about.


        ``ServiceProviderConfig`` reports ``filter.supported = false``, so a

        ``filter`` query is refused rather than ignored: silently returning the

        unfiltered list would hand a client more principals than it asked for and

        look like a successful narrow query.'
      operationId: list_users_scim_v2_Users_get
      parameters:
      - name: startIndex
        in: query
        required: false
        schema:
          type: integer
          default: 1
          title: Startindex
      - name: count
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          title: Count
      - name: filter
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Filter
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '501':
          description: Filtering is not supported by this provider
  /scim/v2/Users/{user_id}:
    get:
      tags:
      - SCIM
      summary: Fetch one agent principal as a SCIM user
      description: Fetch a single agent principal by its SCIM ``id``.
      operationId: get_user_scim_v2_Users__user_id__get
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: string
          title: User Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '404':
          description: Unknown principal
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - SCIM
      summary: Delete a user (soft delete with history retention)
      description: 'Soft-delete a user per SCIM 2.0 DELETE semantics.


        SCIM clients expect DELETE to remove the resource. This server marks the

        principal inactive while retaining its history in the chain, as declared

        in ServiceProviderConfig. The 204 response signals successful removal to

        the client; the ledger records the deprovisioning event.'
      operationId: delete_user_scim_v2_Users__user_id__delete
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: string
          title: User Id
      responses:
        '204':
          description: Successful Response
        '404':
          description: Unknown principal
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - SCIM
      summary: Update a user via PATCH operations
      description: 'Apply RFC 7644 §3.5.2 PATCH operations to a user.


        This slice implements only the active=false deactivation path. Full PATCH

        support for arbitrary attribute updates belongs to a later slice.'
      operationId: patch_user_scim_v2_Users__user_id__patch
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: string
          title: User Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              title: Body
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid PATCH operation
        '404':
          description: Unknown principal
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/scim/v2/ServiceProviderConfig:
    get:
      tags:
      - SCIM
      summary: SCIM 2.0 service provider configuration
      description: 'Return the RFC 7643 §5 discovery document for this service provider.


        Everything reported here is what the mounted surface actually does. The

        write operations are absent rather than advertised-and-unimplemented, and

        the deletion semantics a client will eventually meet are stated now.'
      operationId: service_provider_config_api_v1_scim_v2_ServiceProviderConfig_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
  /api/v1/scim/v2/Schemas:
    get:
      tags:
      - SCIM
      summary: SCIM 2.0 schema resources
      description: List the schema resources this server serves (RFC 7643 §7).
      operationId: list_schemas_api_v1_scim_v2_Schemas_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
  /api/v1/scim/v2/Schemas/{schema_id}:
    get:
      tags:
      - SCIM
      summary: Fetch a single SCIM schema resource
      description: Fetch one schema resource by its URN.
      operationId: get_schema_api_v1_scim_v2_Schemas__schema_id__get
      parameters:
      - name: schema_id
        in: path
        required: true
        schema:
          type: string
          title: Schema Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '404':
          description: Unknown schema URN
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/scim/v2/ResourceTypes:
    get:
      tags:
      - SCIM
      summary: SCIM 2.0 resource types
      description: List the resource types this server serves (RFC 7643 §6).
      operationId: list_resource_types_api_v1_scim_v2_ResourceTypes_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
  /api/v1/scim/v2/ResourceTypes/{resource_type_id}:
    get:
      tags:
      - SCIM
      summary: Fetch a single SCIM resource type
      description: Fetch one resource type by id.
      operationId: get_resource_type_api_v1_scim_v2_ResourceTypes__resource_type_id__get
      parameters:
      - name: resource_type_id
        in: path
        required: true
        schema:
          type: string
          title: Resource Type Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '404':
          description: Unknown resource type
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/scim/v2/Users:
    get:
      tags:
      - SCIM
      summary: List agent principals as SCIM users
      description: 'Return the agent principals this orchestrator knows about.


        ``ServiceProviderConfig`` reports ``filter.supported = false``, so a

        ``filter`` query is refused rather than ignored: silently returning the

        unfiltered list would hand a client more principals than it asked for and

        look like a successful narrow query.'
      operationId: list_users_api_v1_scim_v2_Users_get
      parameters:
      - name: startIndex
        in: query
        required: false
        schema:
          type: integer
          default: 1
          title: Startindex
      - name: count
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          title: Count
      - name: filter
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Filter
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '501':
          description: Filtering is not supported by this provider
  /api/v1/scim/v2/Users/{user_id}:
    get:
      tags:
      - SCIM
      summary: Fetch one agent principal as a SCIM user
      description: Fetch a single agent principal by its SCIM ``id``.
      operationId: get_user_api_v1_scim_v2_Users__user_id__get
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: string
          title: User Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '404':
          description: Unknown principal
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - SCIM
      summary: Delete a user (soft delete with history retention)
      description: 'Soft-delete a user per SCIM 2.0 DELETE semantics.


        SCIM clients expect DELETE to remove the resource. This server marks the

        principal inactive while retaining its history in the chain, as declared

        in ServiceProviderConfig. The 204 response signals successful removal to

        the client; the ledger records the deprovisioning event.'
      operationId: delete_user_api_v1_scim_v2_Users__user_id__delete
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: string
          title: User Id
      responses:
        '204':
          description: Successful Response
        '404':
          description: Unknown principal
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - SCIM
      summary: Update a user via PATCH operations
      description: 'Apply RFC 7644 §3.5.2 PATCH operations to a user.


        This slice implements only the active=false deactivation path. Full PATCH

        support for arbitrary attribute updates belongs to a later slice.'
      operationId: patch_user_api_v1_scim_v2_Users__user_id__patch
      parameters:
      - name: user_id
        in: path
        required: true
        schema:
          type: string
          title: User Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              title: Body
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '400':
          description: Invalid PATCH operation
        '404':
          description: Unknown principal
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError