Kubeshop Users API

The Users API from Kubeshop — 2 operation(s) for users.

Operations 3

GET /users/{id}/settings User settings, global for Testkube Pro or Enterprise #
PATCH /users/{id}/settings Update setting for given parameter #
POST /users/preferences Create user preferences #

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

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

OpenAPI Specification

kubeshop-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Testkube Control Plane Users API
  description: API for Testkube Control Plane
  contact:
    email: info@testkube.io
  version: 1.0.0
servers:
- url: https://api.testkube.io
  description: Testkube Cloud Control Plane API Endpoint
- url: https://<your-testkube-api-host>
  description: Testkube On-Prem API Endpoint
tags:
- name: Users
paths:
  /users/{id}/settings:
    parameters:
    - $ref: '#/components/parameters/ID'
    get:
      summary: User settings, global for Testkube Pro or Enterprise
      description: Get API info like current version
      operationId: getUserSettings
      responses:
        '200':
          $ref: '#/components/responses/Settings'
        '500':
          $ref: '#/components/responses/InternalServerError'
      tags:
      - Users
    patch:
      summary: Update setting for given parameter
      description: Update setting for given user
      operationId: updateUserSettings
      requestBody:
        $ref: '#/components/requestBodies/SettingUpsert'
      responses:
        '200':
          $ref: '#/components/responses/Setting'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '405':
          $ref: '#/components/responses/MethodNotAllowedError'
        '500':
          $ref: '#/components/responses/InternalServerError'
      tags:
      - Users
  /users/preferences:
    post:
      summary: Create user preferences
      description: Create user preferences
      operationId: createUserPreferences
      requestBody:
        $ref: '#/components/requestBodies/Preferences'
      responses:
        '201':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
      security:
      - BearerAuth: []
      tags:
      - Users
components:
  schemas:
    Problem:
      description: problem response in case of error
      type: object
      properties:
        type:
          description: Type contains a URI that identifies the problem type.
          type: string
          example: https://kubeshop.io/testkube/problems/invalidtestname
        title:
          description: Title is a short, human-readable summary of the problem type. This title SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.
          type: string
          example: Invalid test name
        status:
          description: HTTP status code for this occurrence of the problem.
          type: integer
          example: 500
        errorCode:
          description: A more specific type of the error
          type: string
          example: user-limit
        detail:
          description: A human-readable explanation specific to this occurrence of the problem.
          type: string
          example: Your test name can't contain forbidden characters like "}}}" passed
        instance:
          description: A URI that identifies the specific occurrence of the problem. This URI may or may not yield further information if de-referenced.
          type: string
          example: http://10.23.23.123:8088/tests
      required:
      - type
      - title
      - status
      - detail
      - instance
    Setting:
      description: Generic Settings
      type: object
      properties:
        key:
          type: string
          enum:
          - aiCopilotEnabled
          - aiCopilotPrompted
          - logsSearchKeywords
          - logsSearchKeywordsVersion
          - webhookUrlMaskEnabled
          - agentTokenMaskEnabled
          - insightsEnabled
          - currentOnboardingStep
          - salesOnboardingStatus
          - hostedRunnerEligibility
          - pinnedEnvironments
          - pinnedAgents
          - scimEnabled
          - scimManagePermissionsInTestkube
          - scimRolesEntitlementsFormat
          - eventsEnabled
        valueType:
          description: value type for given settings
          type: string
          enum:
          - boolean
          - string
          - number
          - logsSearchKeywords
          - array
        value:
          $ref: '#/components/schemas/Any'
        organizationId:
          type: string
        environmentId:
          type: string
        userId:
          type: string
        updatedAt:
          type: string
          format: date-time
        metadata:
          description: Additional metadata for the specific setting
          type: object
          additionalProperties:
            type: string
      required:
      - key
      - valueType
    Any: {}
    Settings:
      type: object
      properties:
        elements:
          type: array
          items:
            $ref: '#/components/schemas/Setting'
      required:
      - elements
    UserPreferences:
      type: object
      properties:
        id:
          description: preference id
          type: string
        values:
          type: array
          items:
            type: string
      required:
      - id
      - values
  requestBodies:
    Preferences:
      description: User preferences upsert
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UserPreferences'
    SettingUpsert:
      description: Settings upsert request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Setting'
      required: true
  responses:
    BadRequestError:
      description: 400 Bad Request
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    Settings:
      description: Settings for organization/environment/user
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Settings'
    UnauthorizedError:
      description: 401 Unauthorized
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    InternalServerError:
      description: 500 Internal Server Error
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    NoContent:
      description: No content after resource created
    Setting:
      description: Setting for organization/environment/user
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Setting'
    MethodNotAllowedError:
      description: 405 Method Not Allowed
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
    ForbiddenError:
      description: 403 Forbidden
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'
  parameters:
    ID:
      name: id
      in: path
      description: unique id of the object
      required: true
      schema:
        type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer