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

# Job

> Fetch the latest status and result of a job

Returns the job metadata, input payload, current output (if any), and navigational links.

## Path parameters

* `job_id`: UUID returned by any write endpoint

## Example

```bash theme={null}
curl -H "Authorization: Bearer $TOKENKIT_API_KEY" \
  https://api.tokenkit.co/v1/jobs/job_123
```

```json theme={null}
{
    "data": {
        "type": "portrait",
        "status": "processing",
        "created_at": "2025-10-27T09:05:26.074Z",
        "input": {},
        "output": null,
        "errors": null,
        "links": {
            "self": "/v1/jobs/4ea6bae9-2efe-4d12-bc8e-23bb6c1e3366",
            "stream": "/v1/jobs/4ea6bae9-2efe-4d12-bc8e-23bb6c1e3366/stream"
        }
    },
    "errors": null
}
```

## Error codes

* `JOB_ID_REQUIRED`: missing job ID
* `JOB_NOT_FOUND`: the job does not exist or was not made by your api key

When encountering unexpected issues, the API returns `500` with `INTERNAL_ERROR` and includes the message in the error payload.


## OpenAPI

````yaml GET /v1/jobs/{job_id}
openapi: 3.1.0
info:
  title: TokenKit
  description: >-
    Building image agents and tools, with APIs for businesses that want to put
    them to work.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.tokenkit.co
security:
  - bearerAuth: []
paths:
  /v1/jobs/{job_id}:
    get:
      description: Retrieve job metadata, input, output, and links.
      parameters:
        - name: job_id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Job response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobEnvelope'
        '404':
          description: Job not found
        '500':
          description: Internal error
components:
  schemas:
    JobEnvelope:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Job'
        errors:
          nullable: true
      required:
        - data
    Job:
      type: object
      properties:
        type:
          type: string
          example: portrait_edit
        status:
          type: string
          enum:
            - queued
            - processing
            - succeeded
            - failed
        created_at:
          type: string
          format: date-time
        input:
          type: object
        output:
          nullable: true
        errors:
          nullable: true
        links:
          $ref: '#/components/schemas/JobLinks'
    JobLinks:
      type: object
      properties:
        self:
          type: string
          example: /v1/jobs/job_123
        stream:
          type: string
          example: /v1/jobs/job_123/stream
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````