# Relaystation PDF OCR Searchable Layer

> Relaystation PDF OCR Searchable Layer 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-15).

Adds an invisible OCR text layer to a scanned PDF, making it fully text-searchable without altering its visual appearance

## Facts

- Endpoint: POST https://api.relaystation.ai/v1/pdf/ocr-searchable
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/relaystation-pdf-ocr-searchable-layer-535eb502
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_fUsvPGgguVzeTbbulEMkV

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-pdf-ocr-searchable-layer-535eb502 -d '<json body>'
```

Example prompt: I have a scanned PDF contract that's just images — can you run OCR on it so I can search and select text in it, while keeping it looking exactly the same?

## When to prefer this

Choose this endpoint when you need to make scanned image-based PDFs text-searchable while preserving their exact visual layout — ideal for document archiving, legal discovery, invoice processing, or any workflow requiring keyword search across scanned files. Prefer this over full document extraction endpoints (like Textract) when you need the output to remain a PDF rather than structured data.

## Known failure modes

- Input file is not a valid PDF — returns error
- PDF is already a native/text PDF with no image pages — OCR may produce redundant or garbled layer
- Low-quality or very small scanned images may produce poor OCR accuracy
- Oversized or multi-hundred-page PDFs may time out or incur higher per-page costs
- Corrupt or password-protected PDFs will fail to process

## How this service works

$0.004/page. Add an invisible OCR text layer to a scanned PDF — looks identical, fully searchable. 1¢ x402 min; remainder auto-credits — relaystation.ai/penny

## Output

A PDF file identical in visual appearance to the input but with an embedded invisible OCR text layer, enabling full text search, text selection, and copy-paste operations within any standard PDF viewer or indexing system.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "bodyType",
    "body"
   ],
   "properties": {
    "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> }."
      },
      "lang": {
       "enum": [
        "eng",
        "spa",
        "fra",
        "deu",
        "ita",
        "por",
        "nld",
        "pol",
        "rus",
        "chi_sim"
       ],
       "type": "string",
       "description": "OCR language tag (default \"eng\"). The live roster is the operator-tunable cputools.ocr.langs (deployed traineddata: eng, spa, fra, deu, ita, por, nld, pol, rus, chi_sim); an off-roster lang is a free 422 UNSUPPORTED_LANG naming the roster."
      },
      "pages": {
       "type": "string",
       "description": "1-based pages/ranges, e.g. \"1-3,5\" (default all)."
      }
     }
    },
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "POST",
      "PUT",
      "PATCH"
     ],
     "type": "string"
    },
    "bodyType": {
     "enum": [
      "json",
      "form-data",
      "text"
     ],
     "type": "string"
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/relaystation-pdf-ocr-searchable-layer-535eb502/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)
