# Reducto Extract – Structured Document Field Extraction

> Reducto Extract – Structured Document Field Extraction is a paid API for AI agents from api.paysponge.com, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-15).

Extracts structured data fields from documents (PDF, URLs, etc.) according to a user-defined schema, using vision-language models for high accuracy

## Facts

- Endpoint: POST https://api.paysponge.com/x402/purchase/svc_d672d90ggvqqygj60/extract
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/reducto-extract-structured-document-field-extraction-9ad3b9e6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_AIZG77JndKOvVt7Lknjhe

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 reducto-extract-structured-document-field-extraction-9ad3b9e6 -d '<json body>'
```

Example prompt: Can you extract the vendor name, invoice number, total amount, and line items from this invoice PDF at https://example.com/invoice.pdf and return them as structured JSON?

## When to prefer this

Use this endpoint when you need to extract specific structured fields from documents (PDFs, scanned files, web documents) according to a predefined schema, especially when high accuracy via vision-language models is needed. Prefer this over the Parse endpoint when the goal is structured field extraction rather than raw document parsing. Best for invoice processing, contract analysis, form extraction, and any use case requiring document-to-JSON transformation.

## Known failure modes

- Document URL is inaccessible or returns non-200 → extraction fails with input error
- Unsupported document format → parsing error returned
- Schema mismatch or overly complex extraction schema → partial or empty result fields
- Timeout on large or complex documents → async job_id returned instead of sync result
- Payment not completed → 402 Payment Required before processing begins
- Rate limiting or quota exceeded → 429 error

## How this service works

Service: Reducto (https://api.paysponge.com/extract)

## Output

A JSON object matching the user-provided schema, containing the extracted field values from the document. Also includes usage metadata (number of pages processed, number of fields extracted, extract mode used) and optionally a job_id and a Reducto Studio link for the pipeline.

## Request schema (JSON Schema)

```json
{
 "oneOf": [
  {
   "type": "object",
   "title": "SyncExtractConfig",
   "required": [
    "input"
   ],
   "properties": {
    "input": {
     "anyOf": [
      {
       "type": "string"
      },
      {
       "type": "array",
       "items": {
        "type": "string"
       }
      },
      {
       "type": "object",
       "title": "UploadResponse",
       "required": [
        "file_id"
       ],
       "properties": {
        "file_id": {
         "type": "string",
         "title": "File Id"
        },
        "presigned_url": {
         "anyOf": [
          {
           "type": "string"
          },
          {
           "type": "null"
          }
         ],
         "title": "Presigned Url"
        }
       }
      }
     ],
     "title": "Input",
     "description": "For parse/split/extract pipelines, the URL of the document to be processed. You can provide one of the following:\n            1. A publicly available URL\n            2. A presigned S3 URL\n            3. A reducto:// prefixed URL obtained from the /upload endpoint after directly uploading a document\n            4. A jobid:// prefixed URL obtained from a previous /parse invocation\n            5. A list of URLs (for multi-document pipelines, V3 API only)\n\n            For edit pipelines, this should be a string containing the edit instructions"
    },
    "parsing": {
     "type": "object",
     "title": "ParseOptions",
     "properties": {
      "enhance": {
       "type": "object",
       "title": "Enhance",
       "properties": {
        "agentic": {
         "type": "array",
         "items": {
          "anyOf": [
           {
            "$ref": "#/components/schemas/TableAgentic"
           },
           {
            "$ref": "#/components/schemas/FigureAgentic"
           },
           {
            "$ref": "#/components/schemas/TextAgentic"
           }
          ]
         },
         "title": "Agentic",
         "default": [],
         "description": "Agentic uses vision language models to enhance the accuracy of the output of different types of extraction. This will incur a cost and latency increase."
        },
        "summarize_figures": {
         "type": "boolean",
         "title": "Summarize Figures",
         "default": true,
         "description": "If True, summarize figures using a small vision language model. Defaults to True."
        },
        "intelligent_ordering": {
         "type": "boolean",
         "title": "Intelligent Ordering",
         "de
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "oneOf": [
  {
   "type": "object",
   "title": "V3ExtractResponse",
   "required": [
    "usage",
    "result"
   ],
   "properties": {
    "usage": {
     "type": "object",
     "title": "ExtractUsage",
     "required": [
      "num_pages",
      "num_fields"
     ],
     "properties": {
      "credits": {
       "anyOf": [
        {
         "type": "number"
        },
        {
         "type": "null"
        }
       ],
       "title": "Credits"
      },
      "num_pages": {
       "type": "integer",
       "title": "Num Pages"
      },
      "num_fields": {
       "type": "integer",
       "title": "Num Fields"
      },
      "extract_mode": {
       "anyOf": [
        {
         "enum": [
          "super_agent",
          "extract",
          "spreadsheet_agent"
         ],
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "title": "Extract Mode"
      }
     }
    },
    "job_id": {
     "anyOf": [
      {
       "type": "string"
      },
      {
       "type": "null"
      }
     ],
     "title": "Job Id"
    },
    "result": {
     "anyOf": [
      {},
      {
       "type": "array",
       "items": {}
      }
     ],
     "title": "Result",
     "description": "The extracted response in your provided schema. This is a list of dictionaries. If disable_chunking is True (default), then it will be a list of length one."
    },
    "studio_link": {
     "anyOf": [
      {
       "type": "string"
      },
      {
       "type": "null"
      }
     ],
     "title": "Studio Link",
     "description": "The link to the studio pipeline for the document."
    }
   }
  },
  {
   "type": "object",
   "title": "AsyncExtractResponse",
   "required": [
    "job_id"
   ],
   "properties": {
    "job_id": {
     "type": "string",
     "title": "Job Id"
    }
   }
  }
 ]
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/reducto-extract-structured-document-field-extraction-9ad3b9e6/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.paysponge.com](https://www.zero.xyz/host/api.paysponge.com/llms.txt)
