curl "https://platform.u1.archetypeai.app/api/batch/registry/pipelines?pipeline_type=batch&status=published" \
-H "Authorization: Bearer $ATAI_API_KEY"
import requests
import os
api_key = os.environ.get("ATAI_API_KEY")
cursor = None
while True:
params = {
"pipeline_type": "batch",
"status": "published",
"limit": 100
}
if cursor:
params["after"] = cursor
response = requests.get(
"https://platform.u1.archetypeai.app/api/batch/registry/pipelines",
headers={"Authorization": f"Bearer {api_key}"},
params=params
)
page = response.json()
for pipeline in page["data"]:
print(f" {pipeline['pipeline_key']} v{pipeline['pipeline_version']}: {pipeline['name']}")
if not page["has_more"]:
break
cursor = page["next_cursor"]
const params = new URLSearchParams({
pipeline_type: 'batch',
status: 'published',
limit: '100'
});
const response = await fetch(`https://platform.u1.archetypeai.app/api/batch/registry/pipelines?${params}`, {
headers: {
'Authorization': `Bearer ${process.env.ATAI_API_KEY}`
}
});
const page = await response.json();
page.data.forEach(pipeline => {
console.log(` ${pipeline.pipeline_key} v${pipeline.pipeline_version}: ${pipeline.name}`);
});
if (page.has_more) {
// Pass next_cursor back as `after` to fetch the following page.
console.log(`More pipelines available; next cursor: ${page.next_cursor}`);
}
{
"has_more": false,
"next_cursor": null,
"prev_cursor": null,
"data": [
{
"id": "ppl_abc123def456",
"pipeline_key": "machine-state-classification",
"pipeline_version": "1.1.1",
"name": "Machine State Classification",
"description": "Identify labeled states in time series sensor data",
"pipeline_type": "batch",
"components": {
"worker": "cmp_xyz789"
},
"default_config": {
"worker": {
"parallelism": 1,
"config": {
"model_type": "omega_1_4_base",
"batch_size": 32
}
}
},
"config_schema": {},
"user_config_schema": {},
"edges": [],
"inputs": {
"worker.inference": {
"name": "Input files",
"description": "CSV files for machine-state classification",
"mode": "plain_file_list",
"distribute": "scatter",
"required": true,
"tracked": true
},
"worker.n_shots": {
"name": "N-Shot example files",
"description": "Labeled few-shot training files (class declared via input metadata)",
"mode": "n_shot_file_list",
"distribute": "replicate",
"required": true,
"tracked": false
}
},
"outputs": {
"worker.results": {
"name": "Output files",
"description": "Machine-state classification results"
}
},
"retry_policy": {},
"visibility": "platform",
"org_id": "org_1abc2def3ghj4jkm5npq6rst7v",
"status": "published",
"created_at": "2026-03-01T00:00:00Z",
"updated_at": "2026-04-01T00:00:00Z"
}
]
}
{
"detail": "Invalid access with key: api_key_not_found"
}
Registry
List Pipelines
Retrieve a cursor-paginated list of pipelines from the registry
GET
/
api
/
batch
/
registry
/
pipelines
curl "https://platform.u1.archetypeai.app/api/batch/registry/pipelines?pipeline_type=batch&status=published" \
-H "Authorization: Bearer $ATAI_API_KEY"
import requests
import os
api_key = os.environ.get("ATAI_API_KEY")
cursor = None
while True:
params = {
"pipeline_type": "batch",
"status": "published",
"limit": 100
}
if cursor:
params["after"] = cursor
response = requests.get(
"https://platform.u1.archetypeai.app/api/batch/registry/pipelines",
headers={"Authorization": f"Bearer {api_key}"},
params=params
)
page = response.json()
for pipeline in page["data"]:
print(f" {pipeline['pipeline_key']} v{pipeline['pipeline_version']}: {pipeline['name']}")
if not page["has_more"]:
break
cursor = page["next_cursor"]
const params = new URLSearchParams({
pipeline_type: 'batch',
status: 'published',
limit: '100'
});
const response = await fetch(`https://platform.u1.archetypeai.app/api/batch/registry/pipelines?${params}`, {
headers: {
'Authorization': `Bearer ${process.env.ATAI_API_KEY}`
}
});
const page = await response.json();
page.data.forEach(pipeline => {
console.log(` ${pipeline.pipeline_key} v${pipeline.pipeline_version}: ${pipeline.name}`);
});
if (page.has_more) {
// Pass next_cursor back as `after` to fetch the following page.
console.log(`More pipelines available; next cursor: ${page.next_cursor}`);
}
{
"has_more": false,
"next_cursor": null,
"prev_cursor": null,
"data": [
{
"id": "ppl_abc123def456",
"pipeline_key": "machine-state-classification",
"pipeline_version": "1.1.1",
"name": "Machine State Classification",
"description": "Identify labeled states in time series sensor data",
"pipeline_type": "batch",
"components": {
"worker": "cmp_xyz789"
},
"default_config": {
"worker": {
"parallelism": 1,
"config": {
"model_type": "omega_1_4_base",
"batch_size": 32
}
}
},
"config_schema": {},
"user_config_schema": {},
"edges": [],
"inputs": {
"worker.inference": {
"name": "Input files",
"description": "CSV files for machine-state classification",
"mode": "plain_file_list",
"distribute": "scatter",
"required": true,
"tracked": true
},
"worker.n_shots": {
"name": "N-Shot example files",
"description": "Labeled few-shot training files (class declared via input metadata)",
"mode": "n_shot_file_list",
"distribute": "replicate",
"required": true,
"tracked": false
}
},
"outputs": {
"worker.results": {
"name": "Output files",
"description": "Machine-state classification results"
}
},
"retry_policy": {},
"visibility": "platform",
"org_id": "org_1abc2def3ghj4jkm5npq6rst7v",
"status": "published",
"created_at": "2026-03-01T00:00:00Z",
"updated_at": "2026-04-01T00:00:00Z"
}
]
}
{
"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 pipelines available in the registry. You can filter by pipeline type, visibility, and status.Starting in version 1.1.11, this endpoint now pages
with cursors instead of an offset. The
offset query parameter has been replaced by the
mutually exclusive after and before cursors, and the total and offset response fields
have been replaced by has_more and next_cursor.Starting in version 2.0.0, the response uses the standard
cursor envelope. The
pipelines response field has been renamed to data, the limit
response field has been removed, and the default page size has changed from 50 to 100.Request
string
Filter by pipeline type:
batch or trainingstring
Filter by visibility:
platform (visible to all orgs) or org (visible only to owning org)string
Filter by registry status:
draft, published, deactivated, or deletedinteger
default:"100"
Maximum number of pipelines to return. Minimum
1, maximum 1000. The default was 50 before
version 2.0.0. v1.1.11+string
Forward cursor: return pipelines older than the pipeline with this ID. Pass the
next_cursor
of the previous page. Mutually exclusive with before; specifying both causes an HTTP 400
response. v1.1.11+string
Backward cursor: return pipelines newer than the pipeline with this ID. Pass the
prev_cursor
of the current page. Mutually exclusive with after; specifying both causes an HTTP 400
response. v1.1.11+Response
The page is newest first in both cursor directions: results are ordered bycreated_at
descending, with id descending as the tiebreak.
string
Cursor for the next page in the same direction — pass it as
after when paging forward (the
default), 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.array
The page of pipelines, newest first. Replaces the
pipelines field. v2.0.0+Each pipeline object contains:id— Unique pipeline identifierpipeline_key— Pipeline keypipeline_version— Pipeline versionname— Human-readable pipeline namedescription— Pipeline descriptionpipeline_type— Pipeline type (batchortraining)components— Map of component names to component IDsdefault_config— Default configuration per componentconfig_schema— JSON Schema for pipeline configurationuser_config_schema— User-facing JSON Schemaedges— Pipeline graph edges connecting componentsinputs— Map of input port name to port definition. Each port hasname,description,mode(plain_file_listorn_shot_file_list),distribute(scatterorreplicate),required(bool), andtracked(bool — whether files on this port participate in per-input lifecycle tracking;falsefor reference/n-shot ports)outputs— Map of output port name to port definition (name,description)retry_policy— Retry policy configurationvisibility— Visibility level (platformororg)org_id— Owning organization IDstatus— Registry statuscreated_at— Creation timestampupdated_at— Last update timestamp
curl "https://platform.u1.archetypeai.app/api/batch/registry/pipelines?pipeline_type=batch&status=published" \
-H "Authorization: Bearer $ATAI_API_KEY"
import requests
import os
api_key = os.environ.get("ATAI_API_KEY")
cursor = None
while True:
params = {
"pipeline_type": "batch",
"status": "published",
"limit": 100
}
if cursor:
params["after"] = cursor
response = requests.get(
"https://platform.u1.archetypeai.app/api/batch/registry/pipelines",
headers={"Authorization": f"Bearer {api_key}"},
params=params
)
page = response.json()
for pipeline in page["data"]:
print(f" {pipeline['pipeline_key']} v{pipeline['pipeline_version']}: {pipeline['name']}")
if not page["has_more"]:
break
cursor = page["next_cursor"]
const params = new URLSearchParams({
pipeline_type: 'batch',
status: 'published',
limit: '100'
});
const response = await fetch(`https://platform.u1.archetypeai.app/api/batch/registry/pipelines?${params}`, {
headers: {
'Authorization': `Bearer ${process.env.ATAI_API_KEY}`
}
});
const page = await response.json();
page.data.forEach(pipeline => {
console.log(` ${pipeline.pipeline_key} v${pipeline.pipeline_version}: ${pipeline.name}`);
});
if (page.has_more) {
// Pass next_cursor back as `after` to fetch the following page.
console.log(`More pipelines available; next cursor: ${page.next_cursor}`);
}
{
"has_more": false,
"next_cursor": null,
"prev_cursor": null,
"data": [
{
"id": "ppl_abc123def456",
"pipeline_key": "machine-state-classification",
"pipeline_version": "1.1.1",
"name": "Machine State Classification",
"description": "Identify labeled states in time series sensor data",
"pipeline_type": "batch",
"components": {
"worker": "cmp_xyz789"
},
"default_config": {
"worker": {
"parallelism": 1,
"config": {
"model_type": "omega_1_4_base",
"batch_size": 32
}
}
},
"config_schema": {},
"user_config_schema": {},
"edges": [],
"inputs": {
"worker.inference": {
"name": "Input files",
"description": "CSV files for machine-state classification",
"mode": "plain_file_list",
"distribute": "scatter",
"required": true,
"tracked": true
},
"worker.n_shots": {
"name": "N-Shot example files",
"description": "Labeled few-shot training files (class declared via input metadata)",
"mode": "n_shot_file_list",
"distribute": "replicate",
"required": true,
"tracked": false
}
},
"outputs": {
"worker.results": {
"name": "Output files",
"description": "Machine-state classification results"
}
},
"retry_policy": {},
"visibility": "platform",
"org_id": "org_1abc2def3ghj4jkm5npq6rst7v",
"status": "published",
"created_at": "2026-03-01T00:00:00Z",
"updated_at": "2026-04-01T00:00:00Z"
}
]
}
{
"detail": "Invalid access with key: api_key_not_found"
}
Was this page helpful?