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

# Retrieve a response

> Returns a response your account created. Poll it until `status` is `completed`, `failed`, `cancelled` or `incomplete`.



## OpenAPI

````yaml /api-reference/openapi.yaml get /v1/responses/{response_id}
openapi: 3.1.0
info:
  title: Abstract API
  version: 1.0.0
  summary: Robot action models and LLMs behind one API key.
  description: >
    `POST /v1/chat/completions` serves the robot action models. `POST
    /v1/responses` and

    `GET /v1/responses/{response_id}` serve the LLM models through the OpenAI
    Responses API.

    `GET /v1/models` lists the LLM model ids.


    The robot models also run over a WebSocket at
    `wss://api.abstract.inc/v1/responses`.

    OpenAPI does not describe it. See [Sessions over
    WebSocket](/robots/sessions).


    `/v1/robot/runs` stores your robot runs (episode logs, the Rerun recording
    with the

    camera video) under your account, and lists, downloads and deletes them.
    Only the key's

    account reaches its runs. An account stores up to 100 GiB of runs;

    `GET /v1/robot/runs/usage` shows what it holds.
  contact:
    name: Abstract
    url: https://abstract.inc
servers:
  - url: https://api.abstract.inc
security:
  - bearerAuth: []
tags:
  - name: Robot models
  - name: Robot runs
  - name: LLM models
paths:
  /v1/responses/{response_id}:
    get:
      tags:
        - LLM models
      summary: Retrieve a response
      description: >-
        Returns a response your account created. Poll it until `status` is
        `completed`, `failed`, `cancelled` or `incomplete`.
      operationId: retrieveResponse
      parameters:
        - name: response_id
          in: path
          required: true
          description: The `id` from the POST answer.
          schema:
            type: string
            pattern: ^[A-Za-z0-9_-]{1,200}$
      responses:
        '200':
          description: The response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response'
              example:
                id: resp_abc123
                object: response
                created_at: 1790000000
                status: completed
                model: glm-5.3:async
                output:
                  - type: message
                    id: msg_abc123
                    role: assistant
                    status: completed
                    content:
                      - type: output_text
                        text: >-
                          RFC 8628 defines the OAuth 2.0 device authorization
                          grant.
                        annotations: []
                usage:
                  input_tokens: 14
                  input_tokens_details:
                    cached_tokens: 0
                  output_tokens: 96
                  total_tokens: 110
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          description: '`not_found`: no response with this id belongs to your account.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: '`invalid_id`: the id breaks its format.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: '`invalid_upstream_response`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          $ref: '#/components/responses/Unavailable'
components:
  schemas:
    Response:
      type: object
      required:
        - id
        - status
        - model
      properties:
        id:
          type: string
        object:
          type: string
          const: response
        created_at:
          type: integer
        status:
          type: string
          enum:
            - queued
            - in_progress
            - completed
            - failed
            - cancelled
            - incomplete
        model:
          type: string
          description: The public model id you sent.
        output:
          type: array
          items:
            type: object
        usage:
          oneOf:
            - $ref: '#/components/schemas/ResponseUsage'
            - type: 'null'
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - message
            - type
            - code
          properties:
            message:
              type: string
              description: For people. It can change.
            type:
              type: string
            param:
              type:
                - string
                - 'null'
              description: The request field at fault, when one is.
            code:
              type: string
              description: Branch on this. See [Errors and limits](/errors).
    ResponseUsage:
      type: object
      properties:
        input_tokens:
          type: integer
        input_tokens_details:
          type: object
          properties:
            cached_tokens:
              type: integer
        output_tokens:
          type: integer
        total_tokens:
          type: integer
  responses:
    Unauthorized:
      description: '`missing_api_key` or `invalid_api_key`.'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            error:
              message: Invalid API key.
              type: invalid_request_error
              code: invalid_api_key
    Unavailable:
      description: >-
        A dependency is down, for example `auth_unavailable`,
        `billing_unavailable`, `metering_unavailable` or `engine_unavailable`.
        Retry with backoff.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Your Abstract API key. Get it with `abstract login`, pass it as
        `$(abstract token)`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.