---
title: "CUSTOM EXTRACTION — POST {content, schema} and get structured JSON back"
method: POST
path: "/api/extract/custom"
tags: ["Web Content"]
---

# CUSTOM EXTRACTION — POST {content, schema} and get structured JSON back

`POST /api/extract/custom`

## Request

- Base URL: `https://api.webbersites.com`
- URL: `https://api.webbersites.com/api/extract/custom`
- Auth: API key in header `X-PAYMENT`

CUSTOM EXTRACTION — POST {content, schema} and get structured JSON back. Define fields as {"company":"string","total":"number","due_date":"date"} (types or plain-language descriptions) and the engine pulls them from any unstructured text: emails, invoices, job posts, resumes, chat logs. Missing fields return null — never invented. Content up to 16,000 chars, 40 fields max. Parsing a PDF/DOCX/CSV by URL first? GET /api/extract ($0.02).

Price: $0.01 per call, paid in USDC via the x402 protocol (see the x402 security scheme).

## Request body

- object
  - `content` string, required: The unstructured text to extract from, up to 16,000 characters
  - `schema` object, required: Fields to extract: {name: type-or-description}. Types: string, number, boolean, date, string[], number[] — or a plain-language description ('the total in USD')
  - `instructions` string: Optional extra guidance, e.g. 'dates are DD/MM/YYYY in this document'

## Response `200`

Success

- object
  - `data` object: one key per schema field; null where the content had no answer
  - `missing` unknown[]: names of fields that came back null
    - unknown
  - `model` string
  - `usage` object

## Other responses

- `402`: Payment required — the response body lists accepted payment methods (amount, asset, network, pay-to address). Retry the request with a signed X-PAYMENT header.

---

[API](https://skmtc.dev/webbersites/apis/webbersites-x402-data-api.md) · [All operations](https://skmtc.dev/webbersites/apis/webbersites-x402-data-api/llms.txt) · [OpenAPI document](https://skmtc.dev/webbersites/apis/webbersites-x402-data-api/revisions/c14a76c67a94?raw)
