UserClouds Accessors API

The Accessors API from UserClouds — 3 operation(s) for accessors.

Operations 6

POST /userstore/api/accessors Execute Accessor #
GET /userstore/config/accessors List Accessors #
POST /userstore/config/accessors Create Accessor #
DELETE /userstore/config/accessors/{id} Delete Accessor #
GET /userstore/config/accessors/{id} Get Accessor #
PUT /userstore/config/accessors/{id} Update Accessor #

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/userclouds:userclouds-accessors-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

userclouds-accessors-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: User Store OpenAPI Spec
  title: User Store Accessors API
  version: 1.0.0
servers:
- url: https://your-tenant-name.tenant.userclouds.com
tags:
- name: Accessors
paths:
  /userstore/api/accessors:
    post:
      description: This endpoint executes a specified accessor (custom read API).
      parameters:
      - description: A cursor value after which the returned list will start
        in: query
        name: starting_after
        schema:
          description: A cursor value after which the returned list will start
          type:
          - string
          - 'null'
      - description: A cursor value before which the returned list will end
        in: query
        name: ending_before
        schema:
          description: A cursor value before which the returned list will end
          type:
          - string
          - 'null'
      - description: The maximum number of results to be returned per page
        in: query
        name: limit
        schema:
          description: The maximum number of results to be returned per page
          type:
          - string
          - 'null'
      - description: A comma-delimited list of column names to sort the results by - the last column name must be 'id'
        in: query
        name: sort_key
        schema:
          description: A comma-delimited list of column names to sort the results by - the last column name must be 'id'
          type:
          - string
          - 'null'
      - description: The order in which results should be sorted (ascending or descending)
        in: query
        name: sort_order
        schema:
          description: The order in which results should be sorted (ascending or descending)
          type:
          - string
          - 'null'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserstoreExecuteAccessorHandlerRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdpExecuteAccessorResponse'
          description: OK
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '429':
          description: Too Many Requests
        '500':
          description: Internal Server Error
      summary: Execute Accessor
      tags:
      - Accessors
      operationId: postUserstoreApiAccessors
      x-operation-id-source: derived
  /userstore/config/accessors:
    get:
      description: This endpoint lists all accessors in a tenant.
      parameters:
      - description: A cursor value after which the returned list will start
        in: query
        name: starting_after
        schema:
          description: A cursor value after which the returned list will start
          type:
          - string
          - 'null'
      - description: A cursor value before which the returned list will end
        in: query
        name: ending_before
        schema:
          description: A cursor value before which the returned list will end
          type:
          - string
          - 'null'
      - description: The maximum number of results to be returned per page
        in: query
        name: limit
        schema:
          description: The maximum number of results to be returned per page
          type:
          - string
          - 'null'
      - description: A filter clause to use in the pagination query
        in: query
        name: filter
        schema:
          description: A filter clause to use in the pagination query
          type:
          - string
          - 'null'
      - description: A comma-delimited list of field names to sort the returned results by - the last field name must be 'id'
        in: query
        name: sort_key
        schema:
          description: A comma-delimited list of field names to sort the returned results by - the last field name must be 'id'
          type:
          - string
          - 'null'
      - description: The order in which results should be sorted (ascending or descending)
        in: query
        name: sort_order
        schema:
          description: The order in which results should be sorted (ascending or descending)
          type:
          - string
          - 'null'
      - description: The version of the API to be called
        in: query
        name: version
        schema:
          description: The version of the API to be called
          type:
          - string
          - 'null'
      - description: Optional - if versioned is true, endpoint will return all versions of each accessor in the response. Otherwise, only the latest version of each accessor will be returned.
        in: query
        name: versioned
        schema:
          description: Optional - if versioned is true, endpoint will return all versions of each accessor in the response. Otherwise, only the latest version of each accessor will be returned.
          type:
          - string
          - 'null'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdpListAccessorsResponse'
          description: OK
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
      summary: List Accessors
      tags:
      - Accessors
      operationId: getUserstoreConfigAccessors
      x-operation-id-source: derived
    post:
      description: This endpoint creates an accessor - a custom read API.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdpCreateAccessorRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserstoreAccessor'
          description: Created
        '400':
          description: Bad Request
        '409':
          description: Conflict
        '500':
          description: Internal Server Error
      summary: Create Accessor
      tags:
      - Accessors
      operationId: postUserstoreConfigAccessors
      x-operation-id-source: derived
  /userstore/config/accessors/{id}:
    delete:
      description: This endpoint deletes an accessor by ID.
      parameters:
      - in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/UuidUUID'
      responses:
        '204':
          description: No Content
        '400':
          description: Bad Request
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      summary: Delete Accessor
      tags:
      - Accessors
      operationId: deleteUserstoreConfigAccessorsById
      x-operation-id-source: derived
    get:
      description: This endpoint gets an existing accessor's configuration by ID.
      parameters:
      - description: Optional - if not specified, the latest accessor will be returned
        in: query
        name: accessor_version
        schema:
          description: Optional - if not specified, the latest accessor will be returned
          type:
          - string
          - 'null'
      - in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/UuidUUID'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserstoreAccessor'
          description: OK
        '400':
          description: Bad Request
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      summary: Get Accessor
      tags:
      - Accessors
      operationId: getUserstoreConfigAccessorsById
      x-operation-id-source: derived
    put:
      description: This endpoint updates a specified accessor.
      parameters:
      - in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/UuidUUID'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserstoreUpdateAccessorRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserstoreAccessor'
          description: OK
        '400':
          description: Bad Request
        '404':
          description: Not Found
        '409':
          description: Conflict
        '500':
          description: Internal Server Error
      summary: Update Accessor
      tags:
      - Accessors
      operationId: putUserstoreConfigAccessorsById
      x-operation-id-source: derived
components:
  schemas:
    PolicyClientContext:
      additionalProperties: {}
      type: object
    UuidUUID:
      example: 248df4b7-aa70-47b8-a036-33ac447e668d
      format: uuid
      type: string
    UserstoreUpdateAccessorRequest:
      properties:
        accessor:
          $ref: '#/components/schemas/UserstoreAccessor'
      type: object
    UserstoreResourceID:
      properties:
        id:
          $ref: '#/components/schemas/UuidUUID'
        name:
          type: string
      type: object
    UserstoreColumnOutputConfig:
      properties:
        column:
          $ref: '#/components/schemas/UserstoreResourceID'
        token_access_policy:
          $ref: '#/components/schemas/UserstoreResourceID'
        transformer:
          $ref: '#/components/schemas/UserstoreResourceID'
      type: object
    IdpExecuteAccessorResponse:
      properties:
        data:
          items:
            type: string
          type:
          - array
          - 'null'
        debug:
          additionalProperties: {}
          type: object
        has_next:
          type: boolean
        has_prev:
          type: boolean
        next:
          type: string
        prev:
          $ref: '#/components/schemas/PaginationCursor'
        truncated:
          description: Will be true if an incomplete set of results could be returned for the query
          type: boolean
      type: object
    IdpCreateAccessorRequest:
      properties:
        accessor:
          $ref: '#/components/schemas/UserstoreAccessor'
      type: object
    UserstoreAccessor:
      properties:
        access_policy:
          $ref: '#/components/schemas/UserstoreResourceID'
        are_column_access_policies_overridden:
          description: Whether to column access policies are overridden for this accessor.
          type: boolean
        columns:
          items:
            $ref: '#/components/schemas/UserstoreColumnOutputConfig'
          type:
          - array
          - 'null'
        data_life_cycle_state:
          $ref: '#/components/schemas/UserstoreDataLifeCycleState'
        description:
          type: string
        id:
          $ref: '#/components/schemas/UuidUUID'
        is_audit_logged:
          description: Whether this accessor is audit logged each time it is executed.
          type: boolean
        is_autogenerated:
          description: Whether this accessor is autogenerated.
          type: boolean
        is_system:
          description: Whether this accessor is a system accessor. System accessors cannot be deleted or modified. This property cannot be changed.
          type: boolean
        name:
          type: string
        purposes:
          items:
            $ref: '#/components/schemas/UserstoreResourceID'
          type:
          - array
          - 'null'
        selector_config:
          $ref: '#/components/schemas/UserstoreUserSelectorConfig'
        token_access_policy:
          $ref: '#/components/schemas/UserstoreResourceID'
        use_search_index:
          description: If true, the accessor will use a search index to look up the users that match the selector. This can only be true if the selector refers to a single column with a concrete data type of string and uses the LIKE or ILIKE operator, and the column has the SearchIndexed flag set.
          type: boolean
        version:
          type: integer
      required:
      - name
      - selector_config
      - purposes
      - columns
      - access_policy
      type: object
    UserstoreDataLifeCycleState:
      enum:
      - ''
      - live
      - postdelete
      - predelete
      - softdeleted
      type: string
    UserstoreExecuteAccessorHandlerRequest:
      properties:
        access_primary_db_only:
          type: boolean
        accessor_id:
          $ref: '#/components/schemas/UuidUUID'
        context:
          $ref: '#/components/schemas/PolicyClientContext'
        debug:
          type: boolean
        region:
          type: string
        selector_values:
          $ref: '#/components/schemas/UserstoreUserSelectorValues'
      type: object
    PaginationCursor: {}
    UserstoreUserSelectorConfig:
      properties:
        where_clause:
          example: '{id} = ANY (?)'
          type: string
      type: object
    UserstoreUserSelectorValues:
      items: {}
      type:
      - array
      - 'null'
    IdpListAccessorsResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/UserstoreAccessor'
          type:
          - array
          - 'null'
        has_next:
          type: boolean
        has_prev:
          type: boolean
        next:
          type: string
        prev:
          $ref: '#/components/schemas/PaginationCursor'
      type: object
x-readme:
  explorer-enabled: false