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

# Get Request

> One request by id, owner-only. Same item shape (and the same `billingStatus` failure semantics) as the list.



## OpenAPI

````yaml /openapi.json get /requests/{requestId}
openapi: 3.1.0
info:
  title: ModelRunner Requests API
  version: 1.0.0
  description: >-
    Endpoints to create, track, retrieve, and cancel inference requests on
    ModelRunner.
servers:
  - url: https://queue.modelrunner.run
security:
  - apiKeyAuth: []
paths:
  /requests/{requestId}:
    get:
      summary: Get Request
      description: >-
        One request by id, owner-only. Same item shape (and the same
        `billingStatus` failure semantics) as the list.
      parameters:
        - name: requestId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: The request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestItem'
        '401':
          description: Missing or invalid credentials.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Authenticated, but not allowed for this caller.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Unknown request id, or not the caller's request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - apiKeyAuth: []
components:
  schemas:
    RequestItem:
      type: object
      description: >-
        One inference request as returned by the list/detail/stream surfaces.
        IMPORTANT: `status` alone does not signal success — a failed generation
        is normalized to `status: COMPLETED` with `billingStatus: 'failed'`.
        Always read `billingStatus` (and `error`) on these surfaces.
      properties:
        id:
          type: string
        modelEndpoint:
          type: string
          description: >-
            The `owner/alias` endpoint that served the request (after any
            provider fallback).
        targetKind:
          type: string
          enum:
            - model
            - wrapper
            - deployment
          description: >-
            What the request ran against. Absent on older cached payloads; treat
            a missing value as `model`.
        deploymentId:
          type:
            - string
            - 'null'
          format: uuid
          description: >-
            The Serverless GPU deployment this job ran on. Null unless
            `targetKind` is `deployment`.
        requestedModelEndpoint:
          type:
            - string
            - 'null'
          description: >-
            The endpoint originally requested, when a fallback served it.
            Null/absent otherwise.
        status:
          type: string
          enum:
            - IN_QUEUE
            - IN_PROGRESS
            - COMPLETED
            - FAILED
            - CANCELLED
        billingStatus:
          type: string
          enum:
            - pending
            - partial
            - charged
            - failed
          description: >-
            The success discriminator: 'failed' marks a failed generation even
            when `status` is COMPLETED.
        error:
          type: string
          description: Failure detail, when the generation failed.
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        inferenceTime:
          type: number
        delayTime:
          type: number
        input:
          description: >-
            The stored client input. `{}` after payload retention removed it —
            see `payloadsPurgedAt`.
        output:
          description: >-
            The model output. `{}` after payload retention removed it — see
            `payloadsPurgedAt`.
        payloadsPurgedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Set when input/output are empty because retention removed them, not
            because the model returned nothing.
        totalPrice:
          type: string
          description: What this request actually charged, as a decimal string.
        public:
          type: boolean
          description: Owner-controlled publication state; requests default to private.
        metadata:
          type: object
          additionalProperties:
            type: string
          description: The caller-supplied metadata tags from submit time.
        thumbnails:
          type: array
          items:
            type: object
            additionalProperties: true
        wrapperId:
          type:
            - string
            - 'null'
        baseModelId:
          type:
            - string
            - 'null'
        baseModelEndpoint:
          type:
            - string
            - 'null'
        user:
          type: object
          properties:
            id:
              type: string
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
        message:
          type: string
        statusCode:
          type: number
        details: {}
      required:
        - error
        - message
        - statusCode
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'Use the format: Key modelrunner_key'

````