UserClouds Purposes API

The Purposes API from UserClouds — 3 operation(s) for purposes.

Operations 6

POST /userstore/api/consentedpurposes List Purposes for User #
GET /userstore/config/purposes List Purposes #
POST /userstore/config/purposes Create Purpose #
DELETE /userstore/config/purposes/{id} Delete Purpose #
GET /userstore/config/purposes/{id} Get Purpose #
PUT /userstore/config/purposes/{id} Update Purpose #

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-purposes-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-purposes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: User Store OpenAPI Spec
  title: User Store Purposes API
  version: 1.0.0
servers:
- url: https://your-tenant-name.tenant.userclouds.com
tags:
- name: Purposes
paths:
  /userstore/api/consentedpurposes:
    post:
      description: This endpoint lists all consented purposes for a specified user.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdpGetConsentedPurposesForUserRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdpGetConsentedPurposesForUserResponse'
          description: OK
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
      summary: List Purposes for User
      tags:
      - Purposes
      operationId: postUserstoreApiConsentedpurposes
      x-operation-id-source: derived
  /userstore/config/purposes:
    get:
      description: This endpoint returns a paginated list of all purposes 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'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdpListPurposesResponse'
          description: OK
        '400':
          description: Bad Request
        '500':
          description: Internal Server Error
      summary: List Purposes
      tags:
      - Purposes
      operationId: getUserstoreConfigPurposes
      x-operation-id-source: derived
    post:
      description: This endpoint creates a purpose.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdpCreatePurposeRequest'
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserstorePurpose'
          description: Created
        '400':
          description: Bad Request
        '409':
          description: Conflict
        '500':
          description: Internal Server Error
      summary: Create Purpose
      tags:
      - Purposes
      operationId: postUserstoreConfigPurposes
      x-operation-id-source: derived
  /userstore/config/purposes/{id}:
    delete:
      description: This endpoint deletes a purpose 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
        '409':
          description: Conflict
        '500':
          description: Internal Server Error
      summary: Delete Purpose
      tags:
      - Purposes
      operationId: deleteUserstoreConfigPurposesById
      x-operation-id-source: derived
    get:
      description: This endpoint gets a purpose by ID.
      parameters:
      - in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/UuidUUID'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserstorePurpose'
          description: OK
        '404':
          description: Not Found
        '500':
          description: Internal Server Error
      summary: Get Purpose
      tags:
      - Purposes
      operationId: getUserstoreConfigPurposesById
      x-operation-id-source: derived
    put:
      description: This endpoint updates a specified purpose.
      parameters:
      - in: path
        name: id
        required: true
        schema:
          $ref: '#/components/schemas/UuidUUID'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserstoreUpdatePurposeRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserstorePurpose'
          description: OK
        '400':
          description: Bad Request
        '404':
          description: Not Found
        '409':
          description: Conflict
        '500':
          description: Internal Server Error
      summary: Update Purpose
      tags:
      - Purposes
      operationId: putUserstoreConfigPurposesById
      x-operation-id-source: derived
components:
  schemas:
    UuidUUID:
      example: 248df4b7-aa70-47b8-a036-33ac447e668d
      format: uuid
      type: string
    UserstorePurpose:
      properties:
        description:
          type: string
        id:
          $ref: '#/components/schemas/UuidUUID'
        is_system:
          description: Whether this purpose is a system purpose. System purposes cannot be deleted or modified. This property cannot be changed.
          type: boolean
        name:
          type: string
      required:
      - name
      type: object
    IdpListPurposesResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/UserstorePurpose'
          type:
          - array
          - 'null'
        has_next:
          type: boolean
        has_prev:
          type: boolean
        next:
          type: string
        prev:
          $ref: '#/components/schemas/PaginationCursor'
      type: object
    IdpCreatePurposeRequest:
      properties:
        purpose:
          $ref: '#/components/schemas/UserstorePurpose'
      type: object
    UserstoreResourceID:
      properties:
        id:
          $ref: '#/components/schemas/UuidUUID'
        name:
          type: string
      type: object
    IdpColumnConsentedPurposes:
      properties:
        column:
          $ref: '#/components/schemas/UserstoreResourceID'
        consented_purposes:
          items:
            $ref: '#/components/schemas/UserstoreResourceID'
          type:
          - array
          - 'null'
      type: object
    UserstoreUpdatePurposeRequest:
      properties:
        purpose:
          $ref: '#/components/schemas/UserstorePurpose'
      type: object
    IdpGetConsentedPurposesForUserRequest:
      properties:
        columns:
          items:
            $ref: '#/components/schemas/UserstoreResourceID'
          type:
          - array
          - 'null'
        user_id:
          $ref: '#/components/schemas/UuidUUID'
      type: object
    PaginationCursor: {}
    IdpGetConsentedPurposesForUserResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/IdpColumnConsentedPurposes'
          type:
          - array
          - 'null'
      type: object
x-readme:
  explorer-enabled: false