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

# Get job status

## Description

The **Get Job Status** endpoint returns the current state of an asynchronous job and, once the job has finished, its results. Every `.../job` endpoint in v2 runs through this shared layer, so the polling pattern is identical no matter which enrichment you submitted.

<AccordionGroup>
  <Accordion title="How It Works">
    * **Input:** Provide the `job_id` returned when you submitted the job.
    * **Processing:** The system looks up the job and reports its current state.
    * **Output:** A structured response containing the job's status, its input summary, timing, credit usage, and — once complete — its results.
  </Accordion>

  <Accordion title="Response Schema">
    | Field                     | Type   | Description                                                                                                                               |
    | :------------------------ | :----- | :---------------------------------------------------------------------------------------------------------------------------------------- |
    | `job_id`                  | string | Identifier of the job (required)                                                                                                          |
    | `status`                  | string | Current state of the job (required)                                                                                                       |
    | `input`                   | object | Summary of the input the job was submitted with (required)                                                                                |
    | `timing`                  | object | Submission and completion timestamps (required)                                                                                           |
    | `credit_usage`            | object | Credits consumed by the job                                                                                                               |
    | `results`                 | object | Job output, present once the job has completed — see below                                                                                |
    | `results.format`          | string | Format of the result file (`csv`)                                                                                                         |
    | `results.download_url`    | string | Signed URL for downloading the result file                                                                                                |
    | `results.expires_at`      | string | When the **download link** expires (about an hour after it is issued). Call this endpoint again to get a fresh link — see the note below. |
    | `results.file_expires_at` | string | When the **result file itself** expires (7 days after the job finishes). After this, results are no longer retrievable.                   |
    | `additional_data`         | object | Any supplementary information about the run                                                                                               |
    | `error`                   | object | Error detail, present when the job failed                                                                                                 |
  </Accordion>

  <Accordion title="Best Practices">
    * **Poll at a sensible interval** rather than continuously — large jobs can run for a long time.
    * **Store the `job_id`** returned at submission; it is the only handle on the run.
    * **Check `status` before reading `results`** — results are only populated once the job has completed.
    * **Expired download link?** Just call this endpoint again — each call returns a freshly signed `download_url`. The link (`expires_at`) lasts about an hour; the file itself (`file_expires_at`) is kept for 7 days after the job finishes.
    * **Read `credit_usage`** to track consumption per job.
    * **Cancel jobs you no longer need** with [Cancel job](/v2/jobs/cancel_job) rather than letting them run to completion.
  </Accordion>
</AccordionGroup>

<Icon icon="thumbtack" iconType="solid" color="red" /> **Jobs run for a maximum of 24 hours. See [async jobs](/v2/async-jobs) for the full submit → poll → retrieve flow.**


## OpenAPI

````yaml get /v2/jobs/status/{job_id}
openapi: 3.1.0
info:
  title: Partner Service
  version: 0.3.18
servers:
  - url: https://api.explorium.ai
    description: AgentSource Server
security: []
paths:
  /v2/jobs/status/{job_id}:
    get:
      tags:
        - AsyncJobs
      summary: Get Job Status
      operationId: v2_job_status
      parameters:
        - required: true
          schema:
            type: string
            title: Job Id
          name: job_id
          in: path
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2JobStatusResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
        - APIKeyHeader: []
components:
  schemas:
    V2JobStatusResponse:
      properties:
        job_id:
          type: string
          title: Job Id
        status:
          type: string
          title: Status
        input:
          $ref: '#/components/schemas/V2JobInput'
        timing:
          $ref: '#/components/schemas/V2JobTiming'
        additional_data:
          type: object
          title: Additional Data
        credit_usage:
          $ref: '#/components/schemas/V2JobCreditUsage'
        results:
          $ref: '#/components/schemas/V2JobResults'
        error:
          type: object
          title: Error
      type: object
      required:
        - job_id
        - status
        - input
        - timing
      title: V2JobStatusResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    V2JobInput:
      properties:
        list_id:
          type: string
          title: List Id
        row_count:
          type: integer
          title: Row Count
        entity_type:
          type: string
          title: Entity Type
      type: object
      title: V2JobInput
    V2JobTiming:
      properties:
        created_at:
          type: string
          format: date-time
          title: Created At
        started_at:
          type: string
          format: date-time
          title: Started At
        finished_at:
          type: string
          format: date-time
          title: Finished At
      type: object
      title: V2JobTiming
    V2JobCreditUsage:
      properties:
        total_credits:
          type: integer
          title: Total Credits
        total_results:
          type: integer
          title: Total Results
      type: object
      required:
        - total_credits
        - total_results
      title: V2JobCreditUsage
    V2JobResults:
      properties:
        format:
          type: string
          enum:
            - csv
          title: Format
        download_url:
          type: string
          title: Download Url
        expires_at:
          type: string
          format: date-time
          title: Expires At
        file_expires_at:
          type: string
          format: date-time
          title: File Expires At
      type: object
      required:
        - format
        - download_url
        - expires_at
      title: V2JobResults
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: api_key

````