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

# Get Job Execution Status

> Check the current status of a job execution

After executing a job, you can use this endpoint to check its status. The job can be in one of several states as it progresses through execution.

## Path Parameters

<ParamField path="jobExecutionId" type="string" required>
  The ID of the job whose execution status you want to check
</ParamField>

## Headers

<ParamField header="x-service-key" type="string" required>
  Your API authentication key
</ParamField>

## Response

<ResponseField name="status" type="string" required>
  The current status of the job execution
</ResponseField>

## Status Values

| Status        | Description                                         |
| ------------- | --------------------------------------------------- |
| `IN PROGRESS` | The job is currently being executed                 |
| `COMPLETED`   | The job has finished successfully                   |
| `FAILED`      | The job encountered an error and could not complete |

<Tip>
  Poll this endpoint periodically to monitor job progress. Once the status is `COMPLETED`, you can retrieve the results using the [Get Job Results](/api-reference/jobs/get-job-results) endpoint.
</Tip>

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url https://operator.opus.com/job/{YOUR_JOB_EXECUTION_ID}/status \
    --header 'x-service-key: {YOUR_SERVICE_KEY}'
  ```

  ```python Python theme={null}
  import requests
  import time

  url = "https://operator.opus.com/job/{YOUR_JOB_EXECUTION_ID}/status"
  headers = {"x-service-key": "{YOUR_SERVICE_KEY}"}

  # Poll until completion
  while True:
      response = requests.get(url, headers=headers)
      data = response.json()
      print(f"Status: {data['status']}")

      if data["status"] in ["COMPLETED", "FAILED"]:
          break

      time.sleep(5)  # Wait 5 seconds before polling again
  ```

  ```javascript JavaScript theme={null}
  const checkStatus = async () => {
    const response = await fetch(
      "https://operator.opus.com/job/{YOUR_JOB_EXECUTION_ID}/status",
      {
        method: "GET",
        headers: {
          "x-service-key": "{YOUR_SERVICE_KEY}",
        },
      }
    );

    const data = await response.json();
    console.log(`Status: ${data.status}`);
    return data.status;
  };

  // Poll until completion
  const pollStatus = async () => {
    let status = await checkStatus();
    while (status === "IN PROGRESS") {
      await new Promise((resolve) => setTimeout(resolve, 5000));
      status = await checkStatus();
    }
    return status;
  };
  ```
</RequestExample>

<ResponseExample>
  ```json 200 Response - In Progress theme={null}
  {
    "status": "IN PROGRESS"
  }
  ```

  ```json 200 Response - Completed theme={null}
  {
    "status": "COMPLETED"
  }
  ```

  ```json 200 Response - Failed theme={null}
  {
    "status": "FAILED"
  }
  ```
</ResponseExample>
