> ## Documentation Index
> Fetch the complete documentation index at: https://docs.valyu.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Respond to HITL Checkpoint

> Reference for responding to a human-in-the-loop checkpoint via POST /v1/deepresearch/tasks/\{id\}/respond.



## OpenAPI

````yaml POST /v1/deepresearch/tasks/{id}/respond
openapi: 3.0.3
info:
  title: Valyu API
  version: 2.2.0
  description: >
    The search API built for AI agents. One API that gives your AI unified
    access to web search, academic papers, financial data, SEC filings, clinical
    trials, patents, and 36+ proprietary data sources.


    ## Products


    | Product | Endpoint | Description |

    | --- | --- | --- |

    | **Search** | `POST /v1/search` | Multi-source search across web and
    proprietary datasets |

    | **Contents** | `POST /v1/contents` | Extract clean, structured content
    from URLs |

    | **Answer** | `POST /v1/answer` | AI-powered answers with real-time search
    |

    | **DeepResearch** | `POST /v1/deepresearch/tasks` | Async research agents
    for comprehensive analysis |

    | **Datasources** | `GET /v1/datasources` | Discover available data sources
    and their schemas |


    ## Authentication


    All endpoints require an API key passed via the `X-API-Key` header. Get your
    key at [platform.valyu.ai](https://platform.valyu.ai).


    ```

    X-API-Key: your_api_key_here

    ```


    ## Pricing


    Valyu uses transparent, pay-per-use pricing:

    - **Search**: CPM-based (cost per mille tokens retrieved)

    - **Contents**: $0.001 per URL extracted, +$0.001 with AI features

    - **Answer**: $0.10 per request + variable search and AI costs

    - **DeepResearch**: Fixed per-task pricing by mode ($0.10 - $15.00)


    See [docs.valyu.ai](https://docs.valyu.ai) for full pricing details.


    ## SDKs


    - [Python SDK](https://pypi.org/project/valyu/) - `pip install valyu`

    - [TypeScript SDK](https://www.npmjs.com/package/valyu) - `npm install
    valyu`
  contact:
    name: Valyu Support
    url: https://valyu.ai
    email: support@valyu.ai
  x-logo:
    url: https://valyu.ai/logo.png
    altText: Valyu
servers:
  - url: https://api.valyu.ai
    description: Production
security:
  - ApiKeyAuth: []
tags:
  - name: Search
    description: >-
      Search across web, academic, financial, and proprietary data sources.
      Returns results ready for RAG pipelines, AI agents, and applications.
    externalDocs:
      description: Search API Guide
      url: https://docs.valyu.ai/search/quickstart
  - name: Contents
    description: >-
      Extract clean, structured content from web pages at scale. Supports batch
      processing, AI-powered summaries, structured extraction via JSON schemas,
      and async jobs for large URL sets.
    externalDocs:
      description: Contents API Guide
      url: https://docs.valyu.ai/guides/content-extraction
  - name: Answer
    description: >-
      Get AI-powered answers grounded in real-time search results. The Answer
      API searches across web, academic, and financial sources, then uses AI to
      generate a readable response via Server-Sent Events streaming.
    externalDocs:
      description: Answer API Guide
      url: https://docs.valyu.ai/guides/answer-api
  - name: DeepResearch
    description: >-
      Async research agents that perform comprehensive, multi-step research.
      DeepResearch searches multiple sources, analyzes content, and generates
      detailed reports with citations. Tasks run in the background and can take
      minutes to complete.
    externalDocs:
      description: DeepResearch Guide
      url: https://docs.valyu.ai/guides/deepresearch
  - name: Batches
    description: >-
      Run multiple DeepResearch tasks in parallel with shared configuration,
      unified monitoring, and aggregated cost tracking.
    externalDocs:
      description: Batch API Guide
      url: https://docs.valyu.ai/guides/deepresearch-batch-quickstart
  - name: Datasources
    description: >-
      Discover available data sources and their schemas. A tool manifest for AI
      agents - instead of hardcoding knowledge of available datasets, agents can
      query this API to discover sources, filter by category, and use
      `example_queries` for few-shot prompting.
    externalDocs:
      description: Datasources Guide
      url: https://docs.valyu.ai/guides/datasources
externalDocs:
  description: Complete API Documentation
  url: https://docs.valyu.ai
paths:
  /v1/deepresearch/tasks/{id}/respond:
    post:
      tags:
        - DeepResearch
      summary: Respond to a HITL checkpoint
      description: >-
        Respond to a human-in-the-loop checkpoint. The task must be in
        `awaiting_input` or `paused` status. Pass the `interaction_id` from the
        task's `interaction` field along with the response data matching the
        checkpoint type.
      operationId: respondToDeepResearch
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
          description: DeepResearch task ID.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - interaction_id
                - response
              properties:
                interaction_id:
                  type: string
                  description: The interaction_id from the task's interaction field.
                response:
                  description: >-
                    Response data — shape depends on the checkpoint type
                    (`interaction.type`).
                  oneOf:
                    - $ref: '#/components/schemas/HitlPlanningQuestionsResponse'
                    - $ref: '#/components/schemas/HitlPlanReviewResponse'
                    - $ref: '#/components/schemas/HitlSourceReviewResponse'
                    - $ref: '#/components/schemas/HitlOutlineReviewResponse'
            examples:
              Planning Questions:
                summary: Answer planning questions
                value:
                  interaction_id: int_abc123
                  response:
                    answers:
                      - question: What geographic regions?
                        answer: North America and EU
                      - question: Specific competitors?
                        answer: Tesla, BYD, Rivian
              Plan Review:
                summary: Approve research plan
                value:
                  interaction_id: int_abc123
                  response:
                    approved: true
              Source Review:
                summary: Filter sources by domain
                value:
                  interaction_id: int_abc123
                  response:
                    included_domains:
                      - sec.gov
                      - plos.org
                    excluded_domains:
                      - example.com
      responses:
        '200':
          description: Response accepted. Task resumes processing.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  status:
                    type: string
                    description: >-
                      `running` if container was still alive, `queued` if task
                      was re-enqueued from paused state.
                    enum:
                      - running
                      - queued
                    example: running
                  deepresearch_id:
                    type: string
                    example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
        '400':
          description: Validation error in response data.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: response.answers must be an array
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: >-
            Task is not in awaiting_input or paused status, or interaction_id
            mismatch.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    example: >-
                      Cannot respond to task with status: running. Task must be
                      in 'awaiting_input' or 'paused' status.
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    HitlPlanningQuestionsResponse:
      type: object
      title: Planning Questions Response
      description: >-
        Response shape for the `planning_questions` checkpoint. Provide answers
        to each clarifying question.
      required:
        - answers
      properties:
        answers:
          type: array
          description: Answers to each question.
          items:
            type: object
            required:
              - question
              - answer
            properties:
              question:
                type: string
                description: The original question text.
                example: What geographic regions should the research focus on?
              answer:
                type: string
                description: Your answer.
                example: North America and EU
    HitlPlanReviewResponse:
      type: object
      title: Plan Review Response
      description: >-
        Response shape for the `plan_review` checkpoint. Approve the plan or
        request modifications.
      required:
        - approved
      properties:
        approved:
          type: boolean
          description: Whether to approve the plan.
          example: true
        modifications:
          type: string
          description: >-
            Free-text guidance for the model. Only used when `approved` is
            `false`.
          example: Focus more on battery supply chains and less on historical context
    HitlSourceReviewResponse:
      type: object
      title: Source Review Response
      description: >-
        Response shape for the `source_review` checkpoint. Specify which domains
        to include or exclude. Domains not listed in either array fall back to
        the AI recommendation.
      required:
        - included_domains
        - excluded_domains
      properties:
        included_domains:
          type: array
          description: >-
            Domains to include. Pass empty `[]` to accept all AI
            recommendations.
          items:
            type: string
          example:
            - sec.gov
            - plos.org
        excluded_domains:
          type: array
          description: Domains to exclude. Pass empty `[]` to not exclude any.
          items:
            type: string
          example:
            - example.com
    HitlOutlineReviewResponse:
      type: object
      title: Outline Review Response
      description: >-
        Response shape for the `outline_review` checkpoint. Approve the outline
        or request modifications.
      required:
        - approved
      properties:
        approved:
          type: boolean
          description: Whether to approve the outline.
          example: true
        modifications:
          type: string
          description: >-
            Free-text guidance for the model. Only used when `approved` is
            `false`.
          example: >-
            Add a section on regulatory risks between Market Analysis and
            Competitive Landscape
    Error:
      type: object
      description: Standard error response.
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          description: Always `false` for error responses.
          example: false
        error:
          type: string
          description: Human-readable error message describing what went wrong.
          example: Invalid request parameters
  responses:
    Unauthorized:
      description: Missing or invalid API key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            example:
              summary: Invalid API key
              value:
                success: false
                error: Invalid API key
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            example:
              summary: Resource not found
              value:
                success: false
                error: Task not found
    InternalServerError:
      description: An unexpected error occurred on the server.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            example:
              summary: Internal error
              value:
                success: false
                error: Internal server error. Please try again later.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        API key for authentication. Get yours at
        [platform.valyu.ai](https://platform.valyu.ai).

````