# Relaystation Pipeline

> Relaystation Pipeline is a paid API for AI agents from api.relaystation.ai, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-14).

Executes a server-side chain of multiple operations (e.g. OCR → extract → convert → store) in a single API call with one payment, returning a single result.

## Facts

- Endpoint: POST https://api.relaystation.ai/v1/pipeline
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/relaystation-pipeline-24b44630
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_o-oLyJxAiUmZrwv1wabaO

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability relaystation-pipeline-24b44630 -d '<json body>'
```

Example prompt: Take this scanned invoice PDF, run OCR on it, extract the vendor name, amount, and date as JSON, then store the result in my Relaystation vector index — do the whole chain in one server-side call so I don't have to handle intermediate files.

## When to prefer this

Choose the Relaystation Pipeline endpoint when you need to execute two or more sequential document-processing operations (e.g. OCR → extract → convert → store) without managing intermediate results or making multiple API calls. It is ideal when you want to avoid per-step downloads, minimize round-trip latency, pay once for the entire workflow, and stay within the Relaystation tool ecosystem. Prefer it over calling individual Relaystation tools sequentially when the steps are deterministic and you want server-side orchestration.

## Known failure modes

- Invalid or unsupported step sequence causing pipeline to abort mid-chain
- Upstream OCR or extraction tool failure returning a partial result or error
- Insufficient balance to cover the sum of all steps in the pipeline
- Malformed step definition JSON causing a 400 validation error
- Timeout if a step in the chain takes too long to complete
- File input too large or in an unsupported format for a given step

## How this service works

$0/call + sum of steps. Chain multiple ops — OCR → extract → convert → store — in one server-side call: one payment, one result, no intermediate downloads. The glue for 155 Relaystation tools on one balance — relaystation.ai

## Output

A single consolidated response containing the final output of the entire chained pipeline — e.g. extracted JSON, converted file URL, or storage confirmation — along with itemized step costs billed as one payment. No intermediate artifacts need to be downloaded or managed by the caller.

## Request schema (JSON Schema)

```json
{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "type": "string",
     "enum": [
      "POST",
      "PUT",
      "PATCH"
     ]
    },
    "bodyType": {
     "type": "string",
     "enum": [
      "json",
      "form-data",
      "text"
     ]
    },
    "body": {
     "type": "object",
     "properties": {
      "file": {
       "type": "object",
       "description": "cputools input-source: { inline: <base64 ≤ 4 MiB> } or { inputKey: <scratch key from /v1/cputools/upload-url, ≤ 50 MB> }."
      },
      "steps": {
       "type": "array",
       "minItems": 1,
       "description": "Step count is runtime-capped at cputools.pipeline.max_steps.",
       "items": {
        "type": "object",
        "required": [
         "op"
        ],
        "properties": {
         "op": {
          "type": "string",
          "enum": [
           "csv.convert",
           "csv.dedupe",
           "csv.select",
           "data.filter",
           "data.sort",
           "data.groupby",
           "data.cast",
           "data.pivot",
           "data.profile",
           "data.validate",
           "data.schema-infer",
           "image.resize",
           "image.convert",
           "image.compress",
           "image.rotate",
           "utils.base64",
           "data.derive",
           "data.fillna",
           "data.dropna",
           "data.rename",
           "data.slice",
           "data.explode",
           "data.from-xlsx",
           "data.to-xlsx"
          ]
         },
         "args": {
          "type": "object",
          "description": "The op's standalone schema minus `file` (bytes are threaded step-to-step)."
         }
        }
       }
      },
      "to": {
       "type": "string",
       "enum": [
        "csv",
        "tsv",
        "json",
        "ndjson"
       ],
       "description": "A tabular file format: csv, tsv, json (array of objects), or ndjson."
      }
     }
    }
   },
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   },
   "required": [
    "type"
   ]
  }
 },
 "required": [
  "input"
 ]
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/relaystation-pipeline-24b44630/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.relaystation.ai](https://www.zero.xyz/host/api.relaystation.ai/llms.txt)
