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

# Get job status

> <Note>
  Currently, this endpoint only supports schema refresh jobs. Job IDs from other job types will return an error.
</Note>

Retrieves the current status of an asynchronous job. The user authenticating the request must have **read** permissions on the connection.

This endpoint is used to check the status of jobs initiated by other API calls, such as schema refreshes. Poll this endpoint to determine when the job has completed.


The response will contain one of the following statuses:

| Status      | Description                |
| ----------- | -------------------------- |
| `RUNNING`   | Job is currently executing |
| `COMPLETED` | Job finished successfully  |
| `FAILED`    | Job failed                 |

<Tip>
  We recommend the following when polling:

  * Use a reasonable polling interval (2-5 seconds)
  * Avoid polling more frequently than once per second
</Tip>


## OpenAPI

````yaml /api/openapi.yaml get /v1/jobs/{jobId}/status
openapi: 3.1.0
info:
  title: Omni API
  description: >
    The Omni REST API provides programmatic access to your Omni instance for
    managing users, documents, queries, schedules, and more.  
  version: 1.0.0
  contact:
    name: Omni Support
    url: https://docs.omni.co
servers:
  - url: https://{instance}.omniapp.co/api
    description: Production
    variables:
      instance:
        default: blobsrus
        description: Your production Omni instance subdomain
  - url: https://{instance}.playground.exploreomni.dev/api
    description: Playground
    variables:
      instance:
        default: blobsrus
        description: Your playground Omni instance subdomain
security:
  - bearerAuth: []
  - orgApiKey: []
tags:
  - name: AI
    description: AI-powered query generation
  - name: API Tokens
    description: >-
      Manage API tokens (Organization keys, Personal Access Tokens, MCP OAuth
      grants)
  - name: Connections
    description: Manage database connections
  - name: Connection environments
    description: Manage connection environments database connections
  - name: Content
    description: Unified content retrieval (documents and folders)
  - name: Content migration
    description: Export and import dashboards
  - name: Content validator
    description: Validate content against models and perform find/replace operations
  - name: Dashboard downloads
    description: Download dashboards and tiles as PDF, PNG, XLSX, CSV, or JSON files
  - name: Dashboard filters and controls
    description: Read and update dashboard filter and control default values
  - name: dbt
    description: Manage dbt configuration for connections
  - name: Documents
    description: Create, retrieve, and manage documents
  - name: Document favorites
    description: Favorite and unfavorite documents
  - name: Document labels
    description: Apply and manage labels on documents
  - name: Document permissions
    description: Manage document-level access
  - name: Labels
    description: >
      Manage labels in an organization. Labels can be applied to documents and
      folders to help organize and categorize content.


      **Label types:**

      - **Basic labels**: Can be created and managed by any user

      - **Verified labels**: Indicate curated or officially sanctioned content.
      Admin-only.

      - **Homepage labels**: Appear on the organization homepage. Admin-only.
  - name: Folders
    description: Create and organize content folders
  - name: Folder permissions
    description: Manage folder-level access
  - name: Jobs
    description: Check status of asynchronous jobs
  - name: Models
    description: Create and manage data models
  - name: Model branches
    description: Manage model branches and merge changes
  - name: Model git configuration
    description: Manage git configuration for shared models
  - name: Queries
    description: Execute workbook queries
  - name: Schedules
    description: Create and manage scheduled tasks
  - name: Schedule recipients
    description: Manage schedule recipients
  - name: Schema refresh schedules
    description: Manage automated schema refresh schedules for connections
  - name: Topics
    description: Retrieve topic information from models
  - name: Uploads
    description: Manage file uploads
  - name: Users
    description: Manage users
  - name: User attributes
    description: Manage user attribute definitions
  - name: User groups
    description: Manage user groups
  - name: User model roles
    description: Manage model and connection role assignments for users
  - name: User group model roles
    description: Manage model and connection role assignments for user groups
  - name: Uploads
    description: Manage CSV and spreadsheet uploads
paths:
  /v1/jobs/{jobId}/status:
    get:
      tags:
        - Jobs
      summary: Get job status
      description: >
        <Note>
          Currently, this endpoint only supports schema refresh jobs. Job IDs from other job types will return an error.
        </Note>


        Retrieves the current status of an asynchronous job. The user
        authenticating the request must have **read** permissions on the
        connection.


        This endpoint is used to check the status of jobs initiated by other API
        calls, such as schema refreshes. Poll this endpoint to determine when
        the job has completed.
      operationId: getJobStatus
      parameters:
        - name: jobId
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            The job ID returned from an asynchronous operation such as [Refresh
            schema](/api/models/refresh-schema)
      responses:
        '200':
          description: Job status retrieved successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  job_type:
                    type: string
                    description: The type of job
                    example: refresh_schema
                  job_id:
                    type: string
                    format: uuid
                    description: The unique identifier of the job
                  status:
                    type: string
                    enum:
                      - RUNNING
                      - COMPLETED
                      - FAILED
                    description: Current status of the job
              examples:
                running:
                  summary: Job running
                  value:
                    job_type: refresh_schema
                    job_id: 4e6953a9-a71b-4c0b-8b63-a9ea308f6aaf
                    status: RUNNING
                completed:
                  summary: Job completed
                  value:
                    job_type: refresh_schema
                    job_id: 4e6953a9-a71b-4c0b-8b63-a9ea308f6aaf
                    status: COMPLETED
                failed:
                  summary: Job failed
                  value:
                    job_type: refresh_schema
                    job_id: 4e6953a9-a71b-4c0b-8b63-a9ea308f6aaf
                    status: FAILED
        '400':
          description: |
            Bad Request

            Possible error messages:

            - `Bad Request: jobId: Invalid uuid`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: |
            Forbidden

            Possible error messages:

            - `Job type not supported for status checks`
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Job not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - bearerAuth: []
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: string
          description: HTTP response code for the error
          example: <response_code>
        message:
          type: string
          description: Detailed error description
          example: <error_reason>
  responses:
    TooManyRequests:
      description: Too Many Requests - Rate limit exceeded (60 requests/minute)
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Can be either an [Organization API
        Key](/api/authentication#organization-api-keys) or [Personal Access
        Token (PAT)](/api/authentication#personal-access-tokens-pat).


        Include in the `Authorization` header as: `Bearer YOUR_TOKEN`
    orgApiKey:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >
        Requires an [Organization API
        Key](/api/authentication#organization-api-keys). Personal Access Tokens
        (PATs) are not supported for this endpoint.


        Include in the `Authorization` header as: `Bearer ORGANIZATION_API_KEY`

````