curl "https://api.u1.archetypeai.app/v0.5/batch/jobs/job_2abc3def4ghi5jkl6mno7pqr/inputs?status=completed&limit=10" \
-H "Authorization: Bearer $ATAI_API_KEY"
import requests
import os
api_key = os.environ.get("ATAI_API_KEY")
job_id = "job_2abc3def4ghi5jkl6mno7pqr"
response = requests.get(
f"https://api.u1.archetypeai.app/v0.5/batch/jobs/{job_id}/inputs",
headers={"Authorization": f"Bearer {api_key}"},
params={
"status": "completed",
"limit": 10
}
)
data = response.json()
for inp in data["data"]:
print(f" {inp['id']}: {inp['data']['filename']} — {inp['status']}")
# Pass the cursor back verbatim as `after` to fetch the next page.
if data["has_more"]:
print(f"Next page cursor: {data['next_cursor']}")
const jobId = 'job_2abc3def4ghi5jkl6mno7pqr';
const params = new URLSearchParams({ status: 'completed', limit: '10' });
const response = await fetch(`https://api.u1.archetypeai.app/v0.5/batch/jobs/${jobId}/inputs?${params}`, {
headers: {
'Authorization': `Bearer ${process.env.ATAI_API_KEY}`
}
});
const data = await response.json();
data.data.forEach(inp => {
console.log(` ${inp.id}: ${inp.data.filename} — ${inp.status}`);
});
if (data.has_more) {
console.log(`Next page cursor: ${data.next_cursor}`);
}
{
"job_id": "job_2abc3def4ghi5jkl6mno7pqr",
"data": [
{
"id": "inp_abc123def456",
"job_id": "job_2abc3def4ghi5jkl6mno7pqr",
"port_name": "worker.inference",
"file_id": "file_abc123",
"data": {
"ref": "https://storage.example.com/files/tep_inference.csv",
"filename": "tep_inference.csv",
"file_type": "text/csv",
"file_extension": ".csv",
"num_bytes": 245760,
"metadata": {},
"file_tags": null,
"file_attributes": null
},
"status": "completed",
"error_message": null,
"created_at": "2026-04-14T10:00:00Z",
"completed_at": "2026-04-14T10:05:00Z"
}
],
"has_more": true,
"next_cursor": "<cursor>",
"prev_cursor": null
}
{
"code": "NOT_FOUND",
"message": "Job not found",
"error_uid": "err_abc123"
}
{
"detail": "Invalid access with key: api_key_not_found"
}
I/O
List Inputs
Retrieve a cursor-paginated list of inputs for a specific job
GET
/
batch
/
jobs
/
{id}
/
inputs
curl "https://api.u1.archetypeai.app/v0.5/batch/jobs/job_2abc3def4ghi5jkl6mno7pqr/inputs?status=completed&limit=10" \
-H "Authorization: Bearer $ATAI_API_KEY"
import requests
import os
api_key = os.environ.get("ATAI_API_KEY")
job_id = "job_2abc3def4ghi5jkl6mno7pqr"
response = requests.get(
f"https://api.u1.archetypeai.app/v0.5/batch/jobs/{job_id}/inputs",
headers={"Authorization": f"Bearer {api_key}"},
params={
"status": "completed",
"limit": 10
}
)
data = response.json()
for inp in data["data"]:
print(f" {inp['id']}: {inp['data']['filename']} — {inp['status']}")
# Pass the cursor back verbatim as `after` to fetch the next page.
if data["has_more"]:
print(f"Next page cursor: {data['next_cursor']}")
const jobId = 'job_2abc3def4ghi5jkl6mno7pqr';
const params = new URLSearchParams({ status: 'completed', limit: '10' });
const response = await fetch(`https://api.u1.archetypeai.app/v0.5/batch/jobs/${jobId}/inputs?${params}`, {
headers: {
'Authorization': `Bearer ${process.env.ATAI_API_KEY}`
}
});
const data = await response.json();
data.data.forEach(inp => {
console.log(` ${inp.id}: ${inp.data.filename} — ${inp.status}`);
});
if (data.has_more) {
console.log(`Next page cursor: ${data.next_cursor}`);
}
{
"job_id": "job_2abc3def4ghi5jkl6mno7pqr",
"data": [
{
"id": "inp_abc123def456",
"job_id": "job_2abc3def4ghi5jkl6mno7pqr",
"port_name": "worker.inference",
"file_id": "file_abc123",
"data": {
"ref": "https://storage.example.com/files/tep_inference.csv",
"filename": "tep_inference.csv",
"file_type": "text/csv",
"file_extension": ".csv",
"num_bytes": 245760,
"metadata": {},
"file_tags": null,
"file_attributes": null
},
"status": "completed",
"error_message": null,
"created_at": "2026-04-14T10:00:00Z",
"completed_at": "2026-04-14T10:05:00Z"
}
],
"has_more": true,
"next_cursor": "<cursor>",
"prev_cursor": null
}
{
"code": "NOT_FOUND",
"message": "Job not found",
"error_uid": "err_abc123"
}
{
"detail": "Invalid access with key: api_key_not_found"
}
Requires version 1.1.0 or later of the Archetype platform.
Overview
This endpoint returns a cursor-paginated list of input files associated with a job, newest first. You can filter by port name or processing status.Request
string
required
The unique job identifier
string
Filter inputs by port name
string
Filter inputs by processing status:
pending, processing, completed, failed, or reference. reference is a terminal sentinel applied to inputs attached to non-tracked ports (e.g. n-shot example files) — they’re persisted for visibility but never transition through the pending → processing → completed/failed lifecycle.string
Case-insensitive substring search matched against the input’s filename and
file_id. Composes
with other filters using AND logic. v1.1.10+integer
default:"100"
Page size, between
1 and 1000. Clamped server-side.string
Forward cursor: return inputs tracked before the input with this ID. Pass the previous page’s
next_cursor. Mutually exclusive with before — sending both returns 400. v1.1.11+string
Backward cursor: return inputs tracked after the input with this ID. Pass the current page’s
prev_cursor. Mutually exclusive with after. v1.1.11+Response
string
The job identifier
array
Array of input objects, newest first (
created_at descending) in both cursor directions, each
containing:id— Unique input identifierjob_id— Parent job identifierport_name— Input port namefile_id— Original file IDdata— Resolved data reference (DataRef) with requiredref(URL) andfilename, plus optionalfile_type,file_extension,num_bytes,metadata,file_tags,file_attributes. When emitted in per-worker JSONL manifests, also includes theinput_idso containers can do per-input progress tracking.status— Processing status:pending,processing,completed,failed, orreference(terminal sentinel for inputs on non-tracked ports such as n-shot examples)error_message— Error details (if failed)created_at— Creation timestampcompleted_at— Completion timestamp (if completed)
string
Cursor for the next page in the same direction — pass it as
after when paging forward, or as
before when the request used before. null when has_more is false. v1.1.11+string
Cursor to step back the way this page was reached — pass it as
before after a forward page, or
as after after a backward one. null when the request carried no cursor. v1.1.11+curl "https://api.u1.archetypeai.app/v0.5/batch/jobs/job_2abc3def4ghi5jkl6mno7pqr/inputs?status=completed&limit=10" \
-H "Authorization: Bearer $ATAI_API_KEY"
import requests
import os
api_key = os.environ.get("ATAI_API_KEY")
job_id = "job_2abc3def4ghi5jkl6mno7pqr"
response = requests.get(
f"https://api.u1.archetypeai.app/v0.5/batch/jobs/{job_id}/inputs",
headers={"Authorization": f"Bearer {api_key}"},
params={
"status": "completed",
"limit": 10
}
)
data = response.json()
for inp in data["data"]:
print(f" {inp['id']}: {inp['data']['filename']} — {inp['status']}")
# Pass the cursor back verbatim as `after` to fetch the next page.
if data["has_more"]:
print(f"Next page cursor: {data['next_cursor']}")
const jobId = 'job_2abc3def4ghi5jkl6mno7pqr';
const params = new URLSearchParams({ status: 'completed', limit: '10' });
const response = await fetch(`https://api.u1.archetypeai.app/v0.5/batch/jobs/${jobId}/inputs?${params}`, {
headers: {
'Authorization': `Bearer ${process.env.ATAI_API_KEY}`
}
});
const data = await response.json();
data.data.forEach(inp => {
console.log(` ${inp.id}: ${inp.data.filename} — ${inp.status}`);
});
if (data.has_more) {
console.log(`Next page cursor: ${data.next_cursor}`);
}
{
"job_id": "job_2abc3def4ghi5jkl6mno7pqr",
"data": [
{
"id": "inp_abc123def456",
"job_id": "job_2abc3def4ghi5jkl6mno7pqr",
"port_name": "worker.inference",
"file_id": "file_abc123",
"data": {
"ref": "https://storage.example.com/files/tep_inference.csv",
"filename": "tep_inference.csv",
"file_type": "text/csv",
"file_extension": ".csv",
"num_bytes": 245760,
"metadata": {},
"file_tags": null,
"file_attributes": null
},
"status": "completed",
"error_message": null,
"created_at": "2026-04-14T10:00:00Z",
"completed_at": "2026-04-14T10:05:00Z"
}
],
"has_more": true,
"next_cursor": "<cursor>",
"prev_cursor": null
}
{
"code": "NOT_FOUND",
"message": "Job not found",
"error_uid": "err_abc123"
}
{
"detail": "Invalid access with key: api_key_not_found"
}
Was this page helpful?