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

> ## Agent Instructions
> Start with /introduction/getting-started. Use the Direct Query API (POST /query) with the Newton Fusion model (text, image, and video reasoning) or the Newton Omega encoder (time-series embeddings). ATAI_API_ENDPOINT must include the version path: /v0.5 for most APIs, /v0.6 for the Fine-Tuning Service. Pages whose descriptions are marked (Archived) document the legacy Lens runtime — do not use them for new projects.

# Get Pipeline

> Retrieve details of a specific pipeline from the registry

<Callout icon="clock" color="#3064E3" iconType="solid">
  Requires [version 1.1.0](/release-notes/1.1.x#v1-1-0) or later of the Archetype platform.
</Callout>

## Overview

This endpoint returns the full details of a specific pipeline, including its components, configuration schema, input/output port definitions, and graph edges.

## Request

<ParamField path="id" type="string" required>
  The unique pipeline identifier
</ParamField>

## Response

<ResponseField name="id" type="string">
  Unique pipeline identifier
</ResponseField>

<ResponseField name="pipeline_key" type="string">
  Pipeline key
</ResponseField>

<ResponseField name="pipeline_version" type="string">
  Pipeline version
</ResponseField>

<ResponseField name="name" type="string">
  Human-readable pipeline name
</ResponseField>

<ResponseField name="description" type="string">
  Pipeline description
</ResponseField>

<ResponseField name="pipeline_type" type="string">
  Pipeline type (`batch` or `training`)
</ResponseField>

<ResponseField name="components" type="object">
  Map of component names to component IDs
</ResponseField>

<ResponseField name="default_config" type="object">
  Default configuration per component, each with `parallelism` and `config` fields
</ResponseField>

<ResponseField name="config_schema" type="object">
  JSON Schema for the full pipeline configuration
</ResponseField>

<ResponseField name="user_config_schema" type="object">
  User-facing JSON Schema for configurable parameters
</ResponseField>

<ResponseField name="edges" type="array">
  Pipeline graph edges, each with `from`, `output`, `to`, and `input` fields describing component connections
</ResponseField>

<ResponseField name="inputs" type="object">
  Input port definitions, each with:

  * `name` — Display name
  * `description` — Human-readable description
  * `mode` — `plain_file_list` (a simple list of inputs) or `n_shot_file_list` (labeled few-shot example files where each item carries `metadata.class`)
  * `distribute` — `scatter` (fan inputs across workers) or `replicate` (every worker receives the full list)
  * `required` — Whether the port must be supplied
  * `tracked` — Whether files attached to this port participate in per-input lifecycle tracking (`pending → processing → completed/failed`). `false` for reference ports like n-shot examples — those inputs land in the terminal `reference` status and never transition.
</ResponseField>

<ResponseField name="outputs" type="object">
  Output port definitions, each with `name` and `description` fields
</ResponseField>

<ResponseField name="retry_policy" type="object">
  Retry policy configuration
</ResponseField>

<ResponseField name="visibility" type="string">
  Visibility level: `platform` (all orgs) or `org` (owning org only)
</ResponseField>

<ResponseField name="org_id" type="string">
  Owning organization identifier
</ResponseField>

<ResponseField name="status" type="string">
  Registry status: `draft`, `published`, `deactivated`, or `deleted`
</ResponseField>

<ResponseField name="created_at" type="string">
  Creation timestamp
</ResponseField>

<ResponseField name="updated_at" type="string">
  Last update timestamp
</ResponseField>

<RequestExample>
  ```bash cURL theme={"system"}
  curl https://api.u1.archetypeai.app/v0.5/batch/registry/pipelines/ppl_abc123def456 \
    -H "Authorization: Bearer $ATAI_API_KEY"
  ```

  ```python Python theme={"system"}
  import requests
  import os

  api_key = os.environ.get("ATAI_API_KEY")
  pipeline_id = "ppl_abc123def456"

  response = requests.get(
      f"https://api.u1.archetypeai.app/v0.5/batch/registry/pipelines/{pipeline_id}",
      headers={"Authorization": f"Bearer {api_key}"}
  )

  pipeline = response.json()
  print(f"Pipeline: {pipeline['name']} ({pipeline['pipeline_key']} v{pipeline['pipeline_version']})")
  print(f"Components: {list(pipeline['components'].keys())}")
  ```

  ```javascript JavaScript theme={"system"}
  const pipelineId = 'ppl_abc123def456';

  const response = await fetch(`https://api.u1.archetypeai.app/v0.5/batch/registry/pipelines/${pipelineId}`, {
    headers: {
      'Authorization': `Bearer ${process.env.ATAI_API_KEY}`
    }
  });

  const pipeline = await response.json();
  console.log(`Pipeline: ${pipeline.name} (${pipeline.pipeline_key} v${pipeline.pipeline_version})`);
  console.log(`Components: ${Object.keys(pipeline.components).join(', ')}`);
  ```
</RequestExample>

<ResponseExample>
  ```json 200 - Success theme={"system"}
  {
    "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,
          "classifier_config": {
            "n_neighbors": 5,
            "metric": "euclidean",
            "weights": "uniform",
            "normalize_embeddings": false
          }
        }
      }
    },
    "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_1abc2def3ghi4jkl",
    "status": "published",
    "created_at": "2026-03-01T00:00:00Z",
    "updated_at": "2026-04-01T00:00:00Z"
  }
  ```

  ```json 404 - Not Found theme={"system"}
  {
    "code": "NOT_FOUND",
    "message": "Pipeline not found",
    "error_uid": "err_abc123"
  }
  ```

  ```json 401 - Unauthorized theme={"system"}
  {
    "detail": "Invalid access with key: api_key_not_found"
  }
  ```
</ResponseExample>
