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

# List parked (async) interactions awaiting an answer

> A read-only admin audit of the parked async asks awaiting an answer — the native
surface a scheduled watchdog flow reads to spot parks nearing (or past) their
expiry.

An UNRESTRICTED operator sees the whole cross-audience set — exactly the reach the
operator inbox (``list_interactions``) already grants. A RESTRICTED caller sees ONLY
the parks addressed to its identity, the same audience filter the inbox applies —
never a 403: this operation is projected, and a projected route must agree with the
gate for every identity it is projected to (the owned-keys e2e pins that invariant).
Reads the ``pending:expiry`` index WITHOUT mutating it (no claim, no TTL change):
purely an audit. ``limit`` is clamped to ``1..``:data:`MAX_PENDING_INTERACTIONS_LIMIT`
(default :data:`DEFAULT_PENDING_INTERACTIONS_LIMIT`); it bounds the underlying index
scan, so a restricted caller's filtered slice may hold fewer items. Returns
``{"items", "count"}`` — each item carries ``interaction_id``, ``group_id``,
``question`` (truncated), ``channel``, ``recipient``, ``audience``, ``thread_id``
(when the park carries one), ``expiry_at``, ``created_at``, ``mode``.



## OpenAPI

````yaml /openapi.json get /api/interactions/pending
openapi: 3.1.0
info:
  description: The operator HTTP surface served under /api/*.
  title: tai42-skeleton API
  version: 14.0.2
servers: []
security: []
paths:
  /api/interactions/pending:
    get:
      tags:
        - interactions
      summary: List parked (async) interactions awaiting an answer
      description: >-
        A read-only admin audit of the parked async asks awaiting an answer —
        the native

        surface a scheduled watchdog flow reads to spot parks nearing (or past)
        their

        expiry.


        An UNRESTRICTED operator sees the whole cross-audience set — exactly the
        reach the

        operator inbox (``list_interactions``) already grants. A RESTRICTED
        caller sees ONLY

        the parks addressed to its identity, the same audience filter the inbox
        applies —

        never a 403: this operation is projected, and a projected route must
        agree with the

        gate for every identity it is projected to (the owned-keys e2e pins that
        invariant).

        Reads the ``pending:expiry`` index WITHOUT mutating it (no claim, no TTL
        change):

        purely an audit. ``limit`` is clamped to
        ``1..``:data:`MAX_PENDING_INTERACTIONS_LIMIT`

        (default :data:`DEFAULT_PENDING_INTERACTIONS_LIMIT`); it bounds the
        underlying index

        scan, so a restricted caller's filtered slice may hold fewer items.
        Returns

        ``{"items", "count"}`` — each item carries ``interaction_id``,
        ``group_id``,

        ``question`` (truncated), ``channel``, ``recipient``, ``audience``,
        ``thread_id``

        (when the park carries one), ``expiry_at``, ``created_at``, ``mode``.
      operationId: get_api_interactions_pending
      parameters:
        - description: >-
            Max parked asks to return, soonest-expiry first. Bounded to 1..1000;
            an out-of-range value is clamped, never refused.
          in: query
          name: limit
          required: false
          schema:
            default: 500
            title: Limit
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/PendingInteractionListing'
                required:
                  - data
                type: object
          description: Success.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Malformed request.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          description: Missing or invalid api key.
      security:
        - ApiKeyAuth: []
components:
  schemas:
    PendingInteractionListing:
      description: |-
        The parked-interactions audit body: the bounded (and, for a restricted
        caller, audience-filtered) slice plus its ``count``.
      properties:
        count:
          title: Count
          type: integer
        items:
          items:
            $ref: '#/components/schemas/PendingInteraction'
          title: Items
          type: array
      required:
        - items
        - count
      title: PendingInteractionListing
      type: object
    Error:
      properties:
        code:
          description: >-
            Stable machine-readable reason a client keys a dedicated error state
            on, present on refusals that opt in (e.g. a 501 not-configured
            refusal). Optional: absent when the error carries only a
            human-readable message.
          type: string
        error:
          type: string
      required:
        - error
      type: object
    PendingInteraction:
      description: >-
        One parked (async) ask on the audit surface. ``channel``/``recipient``/

        ``audience``/``thread_id``/``expiry_at`` are nullable (a park may carry
        none);

        ``question`` is truncated to a preview.
      properties:
        audience:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Audience
        channel:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Channel
        created_at:
          title: Created At
          type: string
        expiry_at:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Expiry At
        group_id:
          title: Group Id
          type: string
        interaction_id:
          title: Interaction Id
          type: string
        mode:
          title: Mode
          type: string
        question:
          title: Question
          type: string
        recipient:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Recipient
        thread_id:
          anyOf:
            - type: string
            - type: 'null'
          default: null
          title: Thread Id
      required:
        - interaction_id
        - group_id
        - question
        - created_at
        - mode
      title: PendingInteraction
      type: object
  securitySchemes:
    ApiKeyAuth:
      in: header
      name: x-api-key
      type: apiKey

````