uChecker · OpenAPI Overlay 1.0.0

API Evangelist enhancement overlay for uChecker Аутентификация API

5 actions 5 updates update extends openapi/uchecker-default-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for uChecker's API. It is a proposal applied on top of the contract, not a document uChecker publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-privilegedx-agent-guidancex-api-evangelistx-authx-versioningx-destructivex-conditional-accessx-error-semantics

Targets 5

$.info
$.paths['/auth/reset-api-key'].post
$.paths['/api/v1/referral/stats'].get
$.paths['/api/v1/referral/admin/payouts'].post
$.components.schemas.ErrorResponse

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancement overlay for uChecker Аутентификация API
  version: 1.0.0
extends: openapi/uchecker-default-api-openapi.yml
x-generated: '2026-08-16'
x-method: generated
x-source: >-
  openapi/uchecker-default-api-openapi.yml, authentication/uchecker-authentication.yml,
  conventions/uchecker-conventions.yml, errors/uchecker-problem-types.yml
x-rationale: >-
  This split carries three unrelated surfaces — authentication, billing and the affiliate
  programme — because uChecker tags them separately but serves them from one contract. The
  overlay records the token lifetimes and key format that live only in the prose
  description, marks the affiliate endpoints as conditionally gated (they 403 unless the
  programme is enabled on the account), and flags the referral admin operations as
  privileged so an agent does not treat them as ordinary account operations. The original
  spec is not mutated.
actions:
  - target: $.info
    description: Attach the cross-cutting artifact map and the auth facts held in prose.
    update:
      x-api-evangelist:
        authentication: authentication/uchecker-authentication.yml
        conventions: conventions/uchecker-conventions.yml
        errors: errors/uchecker-problem-types.yml
        lifecycle: lifecycle/uchecker-lifecycle.yml
      x-auth:
        schemes:
          - type: apiKey
            header: x-api-key
            key_prefix: uk_
            expiry: none
            rotate_operation: AuthController_resetApiKey
          - type: http-bearer
            format: JWT
            access_token_ttl_seconds: 3600
            refresh_token_ttl_days: 7
            refresh_operation: AuthController_refresh
        equivalent: true
        note: >-
          Both schemes grant full access to every endpoint. The provider recommends the API
          key for server-side integrations and the JWT for front-end applications.
      x-versioning:
        scheme: uri-path
        current: v1
        exception: >-
          The /auth/* endpoints carry NO version prefix, so the authentication surface
          versions independently of /api/v1.
  - target: $.paths['/auth/reset-api-key'].post
    description: Mark credential rotation as a destructive, non-idempotent operation.
    update:
      x-privileged: true
      x-destructive: true
      x-agent-guidance: >-
        Rotating the API key immediately invalidates the existing key. Never call this from
        an agent workflow — it will break every other integration on the account, including
        the MCP server connection.
  - target: $.paths['/api/v1/referral/stats'].get
    description: Record the conditional gate on the affiliate surface.
    update:
      x-conditional-access:
        gate: affiliate programme must be enabled on the account
        status_when_closed: 403
  - target: $.paths['/api/v1/referral/admin/payouts'].post
    description: Mark the referral admin surface as privileged.
    update:
      x-privileged: true
      x-agent-guidance: >-
        Administrative payout creation. Not part of the customer-facing surface and not
        exposed as an MCP tool; do not call it from an agent.
  - target: $.components.schemas.ErrorResponse
    description: State plainly that no machine-readable error code exists.
    update:
      x-error-semantics:
        rfc9457: false
        machine_readable_code: false
        branch_on: HTTP status code
        message_language: ru