Kota requirements API

The requirements API from Kota — 1 operation(s) for requirements.

Operations 2

GET /requirements/{requirement_id} Get a requirement #
POST /requirements/{requirement_id} Submit answers #

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/kota-requirements-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

kota-requirements-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reference Requirements API
  version: 1.0.0
servers:
- url: https://test.api.kota.io
  description: test
- url: https://api.kota.io
  description: production
tags:
- name: requirements
paths:
  /requirements/{requirement_id}:
    get:
      operationId: get-requirement
      summary: Get a requirement
      description: Retrieve a requirement's current state and the schema of the fields it needs. The response reports whether the requirement has already been fulfilled (and when), and includes the JSON Schema describing the fields to collect.
      tags:
      - requirements
      parameters:
      - name: requirement_id
        in: path
        description: A requirement identifier in the format ar_ followed by 32 lowercase hex characters (e.g. ar_0a1b2c3d4e5f67890a1b2c3d4e5f6789).
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Authorization header using the Bearer scheme
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Requirements_get-requirement_Response_200'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Get-requirementRequestBadRequestError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Get-requirementRequestUnauthorizedError'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Get-requirementRequestNotFoundError'
        '500':
          description: An error occurred while processing your request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Get-requirementRequestInternalServerError'
    post:
      operationId: submit-answers
      summary: Submit answers
      description: 'Submit answers for a requirement. Answers are merged with any previously submitted and re-evaluated against the requirement''s schema: it becomes `fulfilled` once all required fields are satisfied, otherwise it stays `in_progress` and the response lists the fields still outstanding.'
      tags:
      - requirements
      parameters:
      - name: requirement_id
        in: path
        description: A requirement identifier in the format ar_ followed by 32 lowercase hex characters (e.g. ar_0a1b2c3d4e5f67890a1b2c3d4e5f6789).
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Authorization header using the Bearer scheme
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Requirements_submit-answers_Response_200'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Submit-answersRequestBadRequestError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Submit-answersRequestUnauthorizedError'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Submit-answersRequestNotFoundError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Submit-answersRequestConflictError'
        '500':
          description: An error occurred while processing your request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Submit-answersRequestInternalServerError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                answers:
                  $ref: '#/components/schemas/RequirementsRequirementIdPostRequestBodyContentApplicationJsonSchemaAnswers'
                  description: A key-value map of field IDs to answer values.
              required:
              - answers
components:
  schemas:
    Submit-answersRequestUnauthorizedError:
      type: object
      properties:
        type:
          type: string
          description: A URI reference identifying the problem type (RFC 9110 section URL).
        title:
          type: string
          description: A short human-readable summary of the problem type.
        status:
          type: integer
          description: The HTTP status code.
        detail:
          type: string
          description: The authentication token is invalid or missing.
        error_code:
          type: string
          description: Stable machine-readable error code. Use this for branching; detail is informational only.
        trace_id:
          type: string
          description: Trace identifier for correlating the error with server-side logs.
      required:
      - type
      - title
      - status
      - detail
      - error_code
      - trace_id
      title: Submit-answersRequestUnauthorizedError
    RequirementsRequirementIdPostResponsesContentApplicationJsonSchemaStatus:
      type: string
      enum:
      - pending
      - in_progress
      - fulfilled
      description: The derived submission status. "fulfilled" once the cumulative answers satisfy the whole schema; "in_progress" when answers are stored but the schema is not yet complete; "pending" when no answers are stored.
      title: RequirementsRequirementIdPostResponsesContentApplicationJsonSchemaStatus
    Get-requirementRequestBadRequestError:
      type: object
      properties:
        type:
          type: string
          description: A URI reference identifying the problem type (RFC 9110 section URL).
        title:
          type: string
          description: A short human-readable summary of the problem type.
        status:
          type: integer
          description: The HTTP status code.
        detail:
          type: string
          description: The request did not match the expected schema.
        error_code:
          type: string
          description: Stable machine-readable error code. Use this for branching; detail is informational only.
        trace_id:
          type: string
          description: Trace identifier for correlating the error with server-side logs.
      required:
      - type
      - title
      - status
      - detail
      - error_code
      - trace_id
      title: Get-requirementRequestBadRequestError
    Get-requirementRequestUnauthorizedError:
      type: object
      properties:
        type:
          type: string
          description: A URI reference identifying the problem type (RFC 9110 section URL).
        title:
          type: string
          description: A short human-readable summary of the problem type.
        status:
          type: integer
          description: The HTTP status code.
        detail:
          type: string
          description: The authentication token is invalid or missing.
        error_code:
          type: string
          description: Stable machine-readable error code. Use this for branching; detail is informational only.
        trace_id:
          type: string
          description: Trace identifier for correlating the error with server-side logs.
      required:
      - type
      - title
      - status
      - detail
      - error_code
      - trace_id
      title: Get-requirementRequestUnauthorizedError
    Get-requirementRequestNotFoundError:
      type: object
      properties:
        type:
          type: string
          description: A URI reference identifying the problem type (RFC 9110 section URL).
        title:
          type: string
          description: A short human-readable summary of the problem type.
        status:
          type: integer
          description: The HTTP status code.
        detail:
          type: string
          description: The requirement was not found.
        error_code:
          type: string
          description: Stable machine-readable error code. Use this for branching; detail is informational only.
        trace_id:
          type: string
          description: Trace identifier for correlating the error with server-side logs.
      required:
      - type
      - title
      - status
      - detail
      - error_code
      - trace_id
      title: Get-requirementRequestNotFoundError
    RequirementsRequirementIdPostResponsesContentApplicationJsonSchemaSchema:
      type: object
      properties: {}
      description: The requirement schema with the current cumulative answers injected as field defaults, so the client can render the next step (or confirm completion) without a follow-up GET.
      title: RequirementsRequirementIdPostResponsesContentApplicationJsonSchemaSchema
    Submit-answersRequestNotFoundError:
      type: object
      properties:
        type:
          type: string
          description: A URI reference identifying the problem type (RFC 9110 section URL).
        title:
          type: string
          description: A short human-readable summary of the problem type.
        status:
          type: integer
          description: The HTTP status code.
        detail:
          type: string
          description: The requirement was not found.
        error_code:
          type: string
          description: Stable machine-readable error code. Use this for branching; detail is informational only.
        trace_id:
          type: string
          description: Trace identifier for correlating the error with server-side logs.
      required:
      - type
      - title
      - status
      - detail
      - error_code
      - trace_id
      title: Submit-answersRequestNotFoundError
    Submit-answersRequestBadRequestError:
      type: object
      properties:
        type:
          type: string
          description: A URI reference identifying the problem type (RFC 9110 section URL).
        title:
          type: string
          description: A short human-readable summary.
        status:
          type: integer
          description: The HTTP status code.
        detail:
          type: string
          description: A human-readable explanation of the validation failure.
        error_code:
          type: string
          description: Stable machine-readable error code. Use this for branching; detail is informational only.
        trace_id:
          type: string
          description: Trace identifier for correlating the error with server-side logs.
        errors:
          type: array
          items:
            $ref: '#/components/schemas/RequirementsRequirementIdPostResponsesContentApplicationProblemJsonSchemaErrorsItems'
          description: Per-field validation errors. Present when error_code is invalid_request and the failure is a field-level validation error (AnswerValidationFailedError).
        unknown_fields:
          type: array
          items:
            type: string
          description: Submitted field IDs not present in the resolved schema. Present when error_code is invalid_request and the failure is UnknownFieldsError.
      required:
      - type
      - title
      - status
      - detail
      - error_code
      - trace_id
      title: Submit-answersRequestBadRequestError
    Requirements_get-requirement_Response_200:
      type: object
      properties:
        is_fulfilled:
          type: boolean
          description: Whether this requirement has already been fulfilled.
        fulfilled_at:
          type: string
          format: date-time
          description: When the requirement was fulfilled. Present only when fulfilled.
        schema:
          $ref: '#/components/schemas/RequirementsRequirementIdGetResponsesContentApplicationJsonSchemaSchema'
          description: A JSON Schema object describing the fields required for this requirement. Present for pending requirements and may also be returned for fulfilled requirements.
      required:
      - is_fulfilled
      title: Requirements_get-requirement_Response_200
    RequirementsRequirementIdPostRequestBodyContentApplicationJsonSchemaAnswers:
      type: object
      properties: {}
      description: A key-value map of field IDs to answer values.
      title: RequirementsRequirementIdPostRequestBodyContentApplicationJsonSchemaAnswers
    RequirementsRequirementIdPostResponsesContentApplicationProblemJsonSchemaErrorsItems:
      type: object
      properties:
        field_id:
          type: string
          description: The field that failed validation.
        error_type:
          type: string
          description: The type of validation error.
        message:
          type: string
          description: A human-readable error message.
      required:
      - field_id
      - error_type
      - message
      title: RequirementsRequirementIdPostResponsesContentApplicationProblemJsonSchemaErrorsItems
    RequirementsRequirementIdGetResponsesContentApplicationJsonSchemaSchema:
      type: object
      properties: {}
      description: A JSON Schema object describing the fields required for this requirement. Present for pending requirements and may also be returned for fulfilled requirements.
      title: RequirementsRequirementIdGetResponsesContentApplicationJsonSchemaSchema
    Requirements_submit-answers_Response_200:
      type: object
      properties:
        status:
          $ref: '#/components/schemas/RequirementsRequirementIdPostResponsesContentApplicationJsonSchemaStatus'
          description: The derived submission status. "fulfilled" once the cumulative answers satisfy the whole schema; "in_progress" when answers are stored but the schema is not yet complete; "pending" when no answers are stored.
        outstanding_fields:
          type: array
          items:
            type: string
          description: Field IDs still blocking fulfillment. Present only for an "in_progress" submission.
        schema:
          $ref: '#/components/schemas/RequirementsRequirementIdPostResponsesContentApplicationJsonSchemaSchema'
          description: The requirement schema with the current cumulative answers injected as field defaults, so the client can render the next step (or confirm completion) without a follow-up GET.
      required:
      - status
      - schema
      title: Requirements_submit-answers_Response_200
    Get-requirementRequestInternalServerError:
      type: object
      properties:
        type:
          type: string
          description: A URI reference identifying the problem type (RFC 9110 section URL).
        title:
          type: string
          description: A short human-readable summary of the problem type.
        status:
          type: integer
          description: The HTTP status code.
        detail:
          type: string
          description: An internal error occurred.
        error_code:
          type: string
          description: Stable machine-readable error code. Use this for branching; detail is informational only.
        trace_id:
          type: string
          description: Trace identifier for correlating the error with server-side logs.
      required:
      - type
      - title
      - status
      - detail
      - error_code
      - trace_id
      title: Get-requirementRequestInternalServerError
    Submit-answersRequestInternalServerError:
      type: object
      properties:
        type:
          type: string
          description: A URI reference identifying the problem type (RFC 9110 section URL).
        title:
          type: string
          description: A short human-readable summary of the problem type.
        status:
          type: integer
          description: The HTTP status code.
        detail:
          type: string
          description: An internal error occurred.
        error_code:
          type: string
          description: Stable machine-readable error code. Use this for branching; detail is informational only.
        trace_id:
          type: string
          description: Trace identifier for correlating the error with server-side logs.
      required:
      - type
      - title
      - status
      - detail
      - error_code
      - trace_id
      title: Submit-answersRequestInternalServerError
    Submit-answersRequestConflictError:
      type: object
      properties:
        type:
          type: string
          description: A URI reference identifying the problem type (RFC 9110 section URL).
        title:
          type: string
          description: A short human-readable summary of the problem type.
        status:
          type: integer
          description: The HTTP status code.
        detail:
          type: string
          description: The requirement has already been fulfilled.
        error_code:
          type: string
          description: Stable machine-readable error code. Use this for branching; detail is informational only.
        trace_id:
          type: string
          description: Trace identifier for correlating the error with server-side logs.
      required:
      - type
      - title
      - status
      - detail
      - error_code
      - trace_id
      title: Submit-answersRequestConflictError
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Authorization header using the Bearer scheme