HUD

HUD Checks API

The checks API from HUD — 4 operation(s) for checks.

Operations 5

GET /v2/checks/pipelines List Team Qc Pipelines #
POST /v2/checks/pipelines Create Team Qc Pipeline #
GET /v2/checks List Platform Checks #
GET /v2/checks/runs List Platform Check Runs #
POST /v2/checks/{check_key}/runs Run Platform Check #

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/hud-ai:hud-ai-checks-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

hud-ai-checks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: HUD Platform Checks API
  version: 2.0.0
tags:
- name: Checks
paths:
  /v2/checks/pipelines:
    get:
      tags:
      - Checks
      summary: List Team Qc Pipelines
      description: List QC pipelines registered by the caller's team.
      operationId: list_team_qc_pipelines_v2_checks_pipelines_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/QcPipelineRegistrationResponse'
                type: array
                title: Response List Team Qc Pipelines V2 Checks Pipelines Get
        '400':
          description: Invalid or malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Caller may not access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Referenced entity does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Resource already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded; wait at least Retry-After seconds
          headers:
            Retry-After:
              description: Seconds until the request budget has room
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: The server is at capacity; retry after Retry-After seconds
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Checks
      summary: Create Team Qc Pipeline
      description: Register a team environment scenario as a private DataVendor QC pipeline.
      operationId: create_team_qc_pipeline_v2_checks_pipelines_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/QcPipelineCreateRequest'
        required: true
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QcPipelineRegistrationResponse'
        '400':
          description: Invalid or malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Caller may not access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Referenced entity does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Resource already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded; wait at least Retry-After seconds
          headers:
            Retry-After:
              description: Seconds until the request budget has room
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: The server is at capacity; retry after Retry-After seconds
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/checks:
    get:
      tags:
      - Checks
      summary: List Platform Checks
      description: List available checks and their supported resource types.
      operationId: list_platform_checks_v2_checks_get
      parameters:
      - name: subject_type
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/CheckSubjectType'
          - type: 'null'
          title: Subject Type
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CheckDefinitionResponse'
                title: Response List Platform Checks V2 Checks Get
        '400':
          description: Invalid or malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Caller may not access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Referenced entity does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Resource already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded; wait at least Retry-After seconds
          headers:
            Retry-After:
              description: Seconds until the request budget has room
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: The server is at capacity; retry after Retry-After seconds
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/checks/runs:
    get:
      tags:
      - Checks
      summary: List Platform Check Runs
      description: List recent check attempts for one authorized resource.
      operationId: list_platform_check_runs_v2_checks_runs_get
      parameters:
      - name: subject_type
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/CheckSubjectType'
      - name: subject_id
        in: query
        required: true
        schema:
          type: string
          format: uuid
          title: Subject Id
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          minimum: 1
          default: 50
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CheckRunResponse'
                title: Response List Platform Check Runs V2 Checks Runs Get
        '400':
          description: Invalid or malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Caller may not access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Referenced entity does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Resource already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded; wait at least Retry-After seconds
          headers:
            Retry-After:
              description: Seconds until the request budget has room
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: The server is at capacity; retry after Retry-After seconds
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /v2/checks/{check_key}/runs:
    post:
      tags:
      - Checks
      summary: Run Platform Check
      description: Run one check against an authorized resource snapshot.
      operationId: run_platform_check_v2_checks__check_key__runs_post
      parameters:
      - name: check_key
        in: path
        required: true
        schema:
          type: string
          title: Check Key
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CheckRunRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckRunResponse'
        '400':
          description: Invalid or malformed request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing or invalid credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Caller may not access this resource
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Referenced entity does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: Resource already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '429':
          description: Rate limit exceeded; wait at least Retry-After seconds
          headers:
            Retry-After:
              description: Seconds until the request budget has room
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: The server is at capacity; retry after Retry-After seconds
          headers:
            Retry-After:
              description: Seconds to wait before retrying
              schema:
                type: integer
                minimum: 0
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    CheckExecutorType:
      type: string
      enum:
      - deterministic
      - scenario_agent
      title: CheckExecutorType
      description: Execution mechanisms supported by a check definition.
    CheckDefinitionResponse:
      properties:
        key:
          type: string
          title: Key
        label:
          type: string
          title: Label
        description:
          type: string
          title: Description
        definition_version:
          type: integer
          title: Definition Version
        subject_types:
          items:
            $ref: '#/components/schemas/CheckSubjectType'
          type: array
          title: Subject Types
        executor_type:
          $ref: '#/components/schemas/CheckExecutorType'
      type: object
      required:
      - key
      - label
      - description
      - definition_version
      - subject_types
      - executor_type
      title: CheckDefinitionResponse
      description: A discoverable platform check definition.
    CheckRunResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        check_key:
          type: string
          title: Check Key
        definition_version:
          type: integer
          title: Definition Version
        definition_snapshot:
          additionalProperties: true
          type: object
          title: Definition Snapshot
        definition_hash:
          type: string
          title: Definition Hash
        executor_type:
          $ref: '#/components/schemas/CheckExecutorType'
        subject_type:
          $ref: '#/components/schemas/CheckSubjectType'
        subject_id:
          type: string
          format: uuid
          title: Subject Id
        subject_snapshot:
          additionalProperties: true
          type: object
          title: Subject Snapshot
        snapshot_hash:
          type: string
          title: Snapshot Hash
        status:
          $ref: '#/components/schemas/CheckRunStatus'
        result:
          additionalProperties: true
          type: object
          title: Result
        summary:
          anyOf:
          - type: string
          - type: 'null'
          title: Summary
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
        execution_trace_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Execution Trace Id
        attempt:
          type: integer
          title: Attempt
        created_at:
          type: string
          format: date-time
          title: Created At
        completed_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Completed At
      type: object
      required:
      - id
      - check_key
      - definition_version
      - definition_snapshot
      - definition_hash
      - executor_type
      - subject_type
      - subject_id
      - subject_snapshot
      - snapshot_hash
      - status
      - summary
      - error
      - execution_trace_id
      - attempt
      - created_at
      - completed_at
      title: CheckRunResponse
      description: One immutable check execution and its subject snapshot.
    QcPipelineRegistrationResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        owner_team_id:
          type: string
          format: uuid
          title: Owner Team Id
        asset_type:
          type: string
          title: Asset Type
        kind:
          type: string
          const: environment
          title: Kind
          default: environment
        scope:
          type: string
          enum:
          - asset
          - task
          title: Scope
        key:
          type: string
          title: Key
        label:
          type: string
          title: Label
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        registry_id:
          type: string
          format: uuid
          title: Registry Id
        scenario_name:
          type: string
          title: Scenario Name
        model:
          type: string
          title: Model
        pass_threshold:
          type: number
          title: Pass Threshold
        credit_price:
          type: number
          title: Credit Price
        enabled:
          type: boolean
          title: Enabled
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
      type: object
      required:
      - id
      - owner_team_id
      - asset_type
      - scope
      - key
      - label
      - description
      - registry_id
      - scenario_name
      - model
      - pass_threshold
      - credit_price
      - enabled
      - created_at
      - updated_at
      title: QcPipelineRegistrationResponse
      description: A team-owned environment pipeline available to DataVendor.
    QcPipelineCreateRequest:
      properties:
        asset_type:
          type: string
          maxLength: 100
          minLength: 1
          title: Asset Type
        scope:
          type: string
          enum:
          - asset
          - task
          title: Scope
          default: asset
        key:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^[a-z0-9]+(?:_[a-z0-9]+)*$
          title: Key
        label:
          type: string
          maxLength: 120
          minLength: 1
          title: Label
        description:
          anyOf:
          - type: string
            maxLength: 500
          - type: 'null'
          title: Description
        registry_id:
          type: string
          format: uuid
          title: Registry Id
        scenario_name:
          type: string
          maxLength: 200
          minLength: 1
          title: Scenario Name
        model:
          anyOf:
          - type: string
            maxLength: 200
            minLength: 1
          - type: 'null'
          title: Model
        pass_threshold:
          anyOf:
          - type: number
            maximum: 100.0
            minimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Pass Threshold
          default: '60'
        credit_price:
          anyOf:
          - type: number
            minimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*(?:\d{0,10}|(?=[\d.]{1,13}0*$)\d{0,10}\.\d{0,2}0*$)
          title: Credit Price
          default: '0'
      additionalProperties: false
      type: object
      required:
      - asset_type
      - key
      - label
      - registry_id
      - scenario_name
      title: QcPipelineCreateRequest
      description: Register a team environment as a private DataVendor QC pipeline.
    CheckSubjectType:
      type: string
      enum:
      - environment
      - taskset
      - task
      - trace
      title: CheckSubjectType
      description: Platform resources supported by the check framework.
    ErrorResponse:
      properties:
        error:
          type: string
          title: Error
        source:
          $ref: '#/components/schemas/ErrorSource'
        detail:
          type: string
          title: Detail
      type: object
      required:
      - error
      - source
      - detail
      title: ErrorResponse
      description: The uniform `{error, source, detail}` envelope returned for every 4xx/5xx.
    CheckRunRequest:
      properties:
        subject_type:
          $ref: '#/components/schemas/CheckSubjectType'
        subject_id:
          type: string
          format: uuid
          title: Subject Id
        overwrite:
          type: boolean
          title: Overwrite
          default: false
      type: object
      required:
      - subject_type
      - subject_id
      title: CheckRunRequest
      description: Request to execute one check against one resource.
    ErrorSource:
      type: string
      enum:
      - user
      - platform
      - provider
      title: ErrorSource
      description: 'Who is at fault for a failure.


        ``user``: the customer''s input, account, environment, or agent code.

        ``platform``: HUD infrastructure or a broken platform invariant.

        ``provider``: a third-party dependency (cloud runtime, upstream LLM API).'
    CheckRunStatus:
      type: string
      enum:
      - running
      - passed
      - failed
      - error
      title: CheckRunStatus
      description: Lifecycle states for a platform check run.
    HTTPValidationError:
      title: HTTPValidationError
      type: object
      properties:
        error:
          type: string
          const: validation_error
          title: Error
        source:
          type: string
          enum:
          - user
          - platform
          - provider
          title: Source
        detail:
          type: string
          title: Detail
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
          title: Errors
      required:
      - error
      - source
      - detail
      - errors
    ValidationError:
      title: ValidationError
      type: object
      properties:
        type:
          type: string
          title: Error Type
        loc:
          type: array
          items:
            anyOf:
            - type: string
            - type: integer
          title: Location
        msg:
          type: string
          title: Message
      required:
      - type
      - loc
      - msg
x-hud-contract-scope: platform_public