curl --request GET \
--url "${UNSTRUCTURED_API_URL}/api/v1/jobs/" \
--header "unstructured-api-key: ${UNSTRUCTURED_API_KEY}"
import os
from unstructured_client import UnstructuredClient
from unstructured_client.models.operations import ListJobsRequest
client = UnstructuredClient(
api_key_auth=os.getenv("UNSTRUCTURED_API_KEY"),
server_url=os.getenv("UNSTRUCTURED_API_URL"),
)
response = client.jobs.list_jobs(
request=ListJobsRequest()
)
print(response)
import asyncio
import os
from unstructured_client import UnstructuredClient
from unstructured_client.models.operations import ListJobsRequest
async def list_jobs():
client = UnstructuredClient(
api_key_auth=os.getenv("UNSTRUCTURED_API_KEY"),
server_url=os.getenv("UNSTRUCTURED_API_URL"),
)
response = await client.jobs.list_jobs_async(
request=ListJobsRequest()
)
print(response)
asyncio.run(list_jobs())
[
{
"id": "b2c3d4e5-6f7a-8b9c-0d1e-2f3a4b5c6d7e",
"workflow_id": "f0a1b2c3-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
"workflow_name": "My ETL Workflow",
"status": "COMPLETED",
"stop_requested": false,
"created_at": "2026-01-01T00:00:00Z",
"runtime": "PT2M30S",
"input_file_ids": ["a6a27cf4-684f-45ed-992e-d2b1be77f2c6"],
"output_node_files": [
{
"node_id": "n1a2b3c4-5d6e-7f8a-9b0c-1d2e3f4a5b6c",
"file_id": "output-001.json",
"node_type": "destination",
"node_subtype": "s3"
}
],
"job_type": "ephemeral",
"created_by_id": "d1924901-1e6d-4752-9d7f-750aa988c8df",
"reason": null,
"processing_status": "SUCCESS",
"failed_file_count": 0,
"completion_issue": null
}
]
Job
List jobs
Retrieve a list of jobs with optional filtering.
GET
/
api
/
v1
/
jobs
/
curl --request GET \
--url "${UNSTRUCTURED_API_URL}/api/v1/jobs/" \
--header "unstructured-api-key: ${UNSTRUCTURED_API_KEY}"
import os
from unstructured_client import UnstructuredClient
from unstructured_client.models.operations import ListJobsRequest
client = UnstructuredClient(
api_key_auth=os.getenv("UNSTRUCTURED_API_KEY"),
server_url=os.getenv("UNSTRUCTURED_API_URL"),
)
response = client.jobs.list_jobs(
request=ListJobsRequest()
)
print(response)
import asyncio
import os
from unstructured_client import UnstructuredClient
from unstructured_client.models.operations import ListJobsRequest
async def list_jobs():
client = UnstructuredClient(
api_key_auth=os.getenv("UNSTRUCTURED_API_KEY"),
server_url=os.getenv("UNSTRUCTURED_API_URL"),
)
response = await client.jobs.list_jobs_async(
request=ListJobsRequest()
)
print(response)
asyncio.run(list_jobs())
[
{
"id": "b2c3d4e5-6f7a-8b9c-0d1e-2f3a4b5c6d7e",
"workflow_id": "f0a1b2c3-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
"workflow_name": "My ETL Workflow",
"status": "COMPLETED",
"stop_requested": false,
"created_at": "2026-01-01T00:00:00Z",
"runtime": "PT2M30S",
"input_file_ids": ["a6a27cf4-684f-45ed-992e-d2b1be77f2c6"],
"output_node_files": [
{
"node_id": "n1a2b3c4-5d6e-7f8a-9b0c-1d2e3f4a5b6c",
"file_id": "output-001.json",
"node_type": "destination",
"node_subtype": "s3"
}
],
"job_type": "ephemeral",
"created_by_id": "d1924901-1e6d-4752-9d7f-750aa988c8df",
"reason": null,
"processing_status": "SUCCESS",
"failed_file_count": 0,
"completion_issue": null
}
]
Query parameters
string
Filter by workflow ID.
string
Filter by job status.
| Value | Description |
|---|---|
SCHEDULED | Job is queued to run. |
IN_PROGRESS | Job is currently running. |
COMPLETED | Job execution finished. Check processing_status for the document outcome. |
STOPPED | Job was manually stopped. |
FAILED | Job failed to complete. |
REJECTED | Job was rejected before execution. |
Response
string
required
Unique identifier for the job.
string
required
Unique identifier of the workflow that created this job.
string
required
Name of the workflow that created this job.
string
required
Job status.
| Value | Description |
|---|---|
SCHEDULED | Job is queued to run. |
IN_PROGRESS | Job is currently running. |
COMPLETED | Job execution finished. Check processing_status for the document outcome. |
STOPPED | Job was manually stopped. |
FAILED | Job failed to complete. |
REJECTED | Job was rejected before execution. |
string
required
ISO 8601 timestamp when the job was created.
string
ISO 8601 duration of the job run.
array
IDs of input files for this job.
array
Output file metadata objects. Each object includes
node_id, file_id, node_type, and node_subtype.string
Job type. Default:
ephemeral.boolean
true means someone requested a stop for the job. false means no one has requested a stop.string
Identifier of the user who created the job, when available.
string
Sanitized failure reason for a failed job, when available.
string
Document processing outcome. Use this with
status to distinguish execution completion from document success.integer
Number of documents recorded as failed. A zero on an unfinished job is not a final result.
string
Reason a completed job delivered no documents, if detected:
NO_DOCUMENTS_DISCOVERED or NO_DOCUMENTS_SUCCEEDED.curl --request GET \
--url "${UNSTRUCTURED_API_URL}/api/v1/jobs/" \
--header "unstructured-api-key: ${UNSTRUCTURED_API_KEY}"
import os
from unstructured_client import UnstructuredClient
from unstructured_client.models.operations import ListJobsRequest
client = UnstructuredClient(
api_key_auth=os.getenv("UNSTRUCTURED_API_KEY"),
server_url=os.getenv("UNSTRUCTURED_API_URL"),
)
response = client.jobs.list_jobs(
request=ListJobsRequest()
)
print(response)
import asyncio
import os
from unstructured_client import UnstructuredClient
from unstructured_client.models.operations import ListJobsRequest
async def list_jobs():
client = UnstructuredClient(
api_key_auth=os.getenv("UNSTRUCTURED_API_KEY"),
server_url=os.getenv("UNSTRUCTURED_API_URL"),
)
response = await client.jobs.list_jobs_async(
request=ListJobsRequest()
)
print(response)
asyncio.run(list_jobs())
[
{
"id": "b2c3d4e5-6f7a-8b9c-0d1e-2f3a4b5c6d7e",
"workflow_id": "f0a1b2c3-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
"workflow_name": "My ETL Workflow",
"status": "COMPLETED",
"stop_requested": false,
"created_at": "2026-01-01T00:00:00Z",
"runtime": "PT2M30S",
"input_file_ids": ["a6a27cf4-684f-45ed-992e-d2b1be77f2c6"],
"output_node_files": [
{
"node_id": "n1a2b3c4-5d6e-7f8a-9b0c-1d2e3f4a5b6c",
"file_id": "output-001.json",
"node_type": "destination",
"node_subtype": "s3"
}
],
"job_type": "ephemeral",
"created_by_id": "d1924901-1e6d-4752-9d7f-750aa988c8df",
"reason": null,
"processing_status": "SUCCESS",
"failed_file_count": 0,
"completion_issue": null
}
]
Was this page helpful?

