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

# Check knowledge jobs

> Check status for one or more background knowledge-generation jobs.

Use this route to poll background jobs queued by [Generate knowledge](/en/api-reference/generate-knowledge) or [Bulk generate knowledge](/en/api-reference/bulk-generate-knowledge).

## Headers

<ParamField header="Authorization" type="string" required>
  Bearer token containing your Fini workspace API key. Format: `Bearer fini_...` The key needs `read` scope.
</ParamField>

<ParamField header="Content-Type" type="string" required>
  `application/json`
</ParamField>

## Body parameters

<ParamField body="jobIds" type="array" required>
  Background job IDs to inspect.
</ParamField>

## Response

<ResponseField name="jobs" type="array">
  Status rows for the requested jobs.

  <Expandable title="job status object">
    <ResponseField name="jobs[].id" type="string">
      Background job ID.
    </ResponseField>

    <ResponseField name="jobs[].jobStatus" type="string">
      Current job status.
    </ResponseField>

    <ResponseField name="jobs[].createdAt" type="string">
      ISO 8601 creation timestamp, when present.
    </ResponseField>

    <ResponseField name="jobs[].startedAt" type="string">
      ISO 8601 start timestamp, when present.
    </ResponseField>

    <ResponseField name="jobs[].completedAt" type="string">
      ISO 8601 completion timestamp, when present.
    </ResponseField>

    <ResponseField name="jobs[].hcArticleId" type="string | null">
      Linked Article ID once the job finishes and creates or updates knowledge.
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url 'https://api-prod.usefini.com/v2/knowledge/public/jobs/status' \
    --header 'Authorization: Bearer fini_your_api_key' \
    --header 'Content-Type: application/json' \
    --data '{
      "jobIds": [
        "4cfcf2cc-7a06-4de2-b460-5b991fe6236a"
      ]
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "jobs": [
      {
        "id": "4cfcf2cc-7a06-4de2-b460-5b991fe6236a",
        "jobStatus": "COMPLETED",
        "createdAt": "2026-06-11T12:00:00.000Z",
        "startedAt": "2026-06-11T12:00:01.000Z",
        "completedAt": "2026-06-11T12:00:05.000Z",
        "hcArticleId": "7f5392e5-dc7d-4558-8860-cf3ea4b32f94"
      }
    ]
  }
  ```
</ResponseExample>

## Errors

<AccordionGroup>
  <Accordion title="400 Bad Request" icon="circle-exclamation">
    The request body is malformed or `jobIds` is missing or empty.
  </Accordion>

  <Accordion title="401 Unauthorized" icon="lock">
    The API key is missing, malformed, revoked, or invalid.
  </Accordion>

  <Accordion title="403 Forbidden" icon="shield-halved">
    The API key does not include the `read` scope.
  </Accordion>

  <Accordion title="404 Not Found" icon="circle-question">
    One or more job IDs do not exist, are inaccessible from this workspace, or are not knowledge-generation jobs.
  </Accordion>

  <Accordion title="500 Internal Server Error" icon="triangle-exclamation">
    Fini failed while reading job status. Retry once, then narrow the request to isolate the failing job ID.
  </Accordion>
</AccordionGroup>
