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

# RespondAttentionItemAPI mirrors erdo_respond_attention_item: answer a choice


> or escalation, acknowledge (mark read), or dismiss. Answers route through the same service method the web feed uses, so a choice answer lands as human comparison observations (judge\_slug human:\<user\_id>) in the calibration ledger, and any flagged-broken variants land as 'defect' observations.




## OpenAPI

````yaml /api/openapi.json post /v1/attention/{itemID}/respond
openapi: 3.0.0
info:
  title: Erdo API
  description: >-
    Erdo's REST API: query and write datasets, run agents, manage threads,
    integrations, pages, evals, workstreams, and experiments. Authenticate with
    a Bearer API key (erdo_api_...) or scoped token (erdo_token_...).
  version: '2026-07-25'
servers:
  - url: https://api.erdo.ai
    description: Production
security:
  - bearerAuth: []
paths:
  /v1/attention/{itemID}/respond:
    post:
      summary: >
        RespondAttentionItemAPI mirrors erdo_respond_attention_item: answer a
        choice
      description: >
        or escalation, acknowledge (mark read), or dismiss. Answers route
        through the same service method the web feed uses, so a choice answer
        lands as human comparison observations (judge\_slug human:\<user\_id>)
        in the calibration ledger, and any flagged-broken variants land as
        'defect' observations.
      operationId: POST:mcp.RespondAttentionItemAPI
      parameters:
        - allowEmptyValue: true
          explode: false
          in: path
          name: itemID
          required: true
          schema:
            type: string
          style: simple
      requestBody:
        content:
          application/json:
            schema:
              properties:
                action:
                  type: string
                answer:
                  type: object
                defects:
                  items:
                    $ref: '#/components/schemas/mcp.AttentionDefectInput'
                  type: array
              type: object
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  item:
                    $ref: '#/components/schemas/types.AttentionItem'
                type: object
          description: Success response
        default:
          $ref: '#/components/responses/APIError'
components:
  schemas:
    mcp.AttentionDefectInput:
      properties:
        reason:
          type: string
        variant_key:
          type: string
      title: >
        AttentionDefectInput is one "this variant is broken" flag on a choice
        answer.
      type: object
    types.AttentionItem:
      description: >
        surfaced in the Activity feed. See
        migrations/008\_create\_attention\_item.
      properties:
        answer:
          type: object
        answered_at:
          format: date-time
          type: string
        answered_by_user_id:
          format: uuid
          type: string
        body_markdown:
          type: string
        created_at:
          format: date-time
          type: string
        expires_at:
          format: date-time
          type: string
        id:
          format: uuid
          type: string
        kind:
          title: |
            digest | choice | escalation | judge_rescreen
          type: string
        organization_id:
          format: uuid
          type: string
        payload:
          description: >
            {title, questions\[]} plus optional experiment mapping; for
            escalation {proposed\_answer, safe\_default}.
          title: |
            Payload carries the kind-specific shape: for choice the ask_user
          type: object
        read_at:
          format: date-time
          type: string
        severity:
          title: |
            info | attention | urgent
          type: string
        slug:
          type: string
        status:
          title: |
            open | answered | dismissed | expired
          type: string
        title:
          type: string
        workstream_id:
          format: uuid
          type: string
      title: |
        AttentionItem is one thing the engine wants a human to see or answer,
      type: object
  responses:
    APIError:
      content:
        application/json:
          schema:
            externalDocs:
              url: https://pkg.go.dev/encore.dev/beta/errs#Error
            properties:
              code:
                description: Error code
                example: not_found
                externalDocs:
                  url: https://pkg.go.dev/encore.dev/beta/errs#ErrCode
                type: string
              details:
                description: Error details
                type: object
              message:
                description: Error message
                type: string
            title: APIError
            type: object
      description: Error response
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An Erdo API key (erdo_api_...) or scoped token (erdo_token_...).

````