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

# Poll job status

> Check job status and optionally retrieve delivery pointers and markdown

After submitting a job you can poll until it reaches `completed`. Use the `include_markdown` flag to control payload size.

<Tabs>
  <Tab title="TypeScript">
    ```ts theme={null}
    import { DataIngestionClient, DataIngestionConfig, JobStatus } from "@trelent/data-ingestion";

    const client = new DataIngestionClient();

    async function waitForCompletion(jobId: string) {
      while (true) {
        const status = await client.getJobStatus(jobId, { includeMarkdown: false });
        if (status.status === JobStatus.Completed) {
          return status;
        }
        await new Promise(r => setTimeout(r, 2000));
      }
    }

    const result = await waitForCompletion("<JOB_ID>");
    console.log(result.delivery);
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    import time
    from trelent_data_ingestion_sdk.client import DataIngestionClient
    from trelent_data_ingestion_sdk.config import SDKConfig

    client = DataIngestionClient()

    def wait_for_completion(job_id: str):
        while True:
            status = client.get_job_status(job_id, include_markdown=False)
            if status.status == "completed":
                return status
            time.sleep(2)

    result = wait_for_completion("<JOB_ID>")
    print(result.delivery)
    ```
  </Tab>
</Tabs>

### Including markdown

When polling you can request inline markdown. This increases payload size.

<Tabs>
  <Tab title="TypeScript">
    ```ts theme={null}
    const statusWithMd = await client.getJobStatus("<JOB_ID>", { includeMarkdown: true });
    const first = Object.values(statusWithMd.delivery ?? {})[0];
    console.log(first?.markdown);
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={null}
    status_with_md = client.get_job_status("<JOB_ID>", include_markdown=True)
    first = next(iter((status_with_md.delivery or {}).values()), None)
    print(getattr(first, "markdown", None))
    ```
  </Tab>
</Tabs>
