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

# Get a job

> Retrieve a processing status, completed media URL, or safe failure code.

Poll with a bounded interval while the status is `pending` or `generating`. On `completed`, read `result.url`; use `result.image_id` from an image result as the source for another image operation. Video result IDs cannot be used as image sources. On `failed` or `policy_blocked`, stop and read `error.code`.

The result is `null` until a completed media URL is available. Upload IDs are source images, so use [Get an image](/api-reference/images/get) to inspect those.


## OpenAPI

````yaml GET /v1/jobs/{id}
openapi: 3.0.3
info:
  title: bitStudio API
  version: '2026-09-06'
  description: >-
    Core Studio image, video, and reusable-asset workflows. Requests use a
    workspace-scoped API key and the account’s feature access and credits.
    Generation is asynchronous.
  contact:
    name: bitStudio support
    email: hello@bitstudio.ai
servers:
  - url: https://api.bitstudio.ai
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Images
  - name: Video
  - name: Assets
paths:
  /v1/jobs/{id}:
    get:
      tags:
        - Jobs
      summary: Get a job
      description: >-
        Poll a generated image or video job. Result is null until completed;
        failed and policy-blocked jobs contain a safe error code. Uploaded
        source images are not jobs and return 404. Existing permissions and
        media access rules apply.
      operationId: getJob
      parameters:
        - name: id
          in: path
          required: true
          description: Job ID returned by creation.
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Current job state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Job'
              example:
                id: 33333333-3333-4333-8333-333333333333
                status: completed
                task: generate
                created_at: '2026-09-06T12:00:00Z'
                result:
                  image_id: 33333333-3333-4333-8333-333333333333
                  url: >-
                    https://media.bitstudio.ai/gen/363a9fad-5816-47c0-aa7a-7c184b1573fe.jpg
                  width: 1792
                  height: 2400
                error: null
        default:
          description: >-
            Request rejected or service error. See the errors and recovery
            guide.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Job:
      type: object
      required:
        - id
        - status
        - task
        - created_at
        - result
        - error
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - pending
            - generating
            - completed
            - failed
            - policy_blocked
        task:
          type: string
          nullable: true
          description: >-
            Processing task. This may be more specific than the submitted
            operation.
        created_at:
          type: string
          format: date-time
        result:
          $ref: '#/components/schemas/JobResult'
        error:
          $ref: '#/components/schemas/JobError'
    Error:
      type: object
      properties:
        error:
          type: string
          description: Some handlers return a plain error string.
        code:
          type: string
          description: Structured error code, when available.
        message:
          type: string
          description: Structured human-readable error, when available.
        cta:
          type: boolean
          description: Whether the response includes an account action.
        next_action:
          type: string
          description: Suggested action, such as a plan or credit change.
        current_plan:
          type: string
          description: ''
        user_message:
          type: string
          description: User-facing explanation when present.
        extra_context:
          type: string
          description: Additional error context when present.
      description: >-
        Error shapes differ by endpoint. Read message or error; preserve the
        HTTP status and code. Additional context fields may be returned.
    JobResult:
      type: object
      nullable: true
      required:
        - image_id
        - url
        - width
        - height
      properties:
        image_id:
          type: string
          format: uuid
          description: >-
            Generated image or video ID. It equals the job ID. Completed image
            results can be used as a source for another image operation; video
            results cannot.
        url:
          type: string
          format: uri
          description: Completed media URL.
        width:
          type: integer
          nullable: true
        height:
          type: integer
          nullable: true
    JobError:
      type: object
      nullable: true
      required:
        - code
      properties:
        code:
          type: string
          description: >-
            Safe failure classification. Handle unknown or new values with a
            general failure message.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Create an API key in Studio → account menu → API Keys. Keep it on your
        server.

````