home/apis/extract
Extract API

Any web page,
as typed JSON.

Hand the API a schema and get back exactly the fields you asked for — plus summaries, Q&A, links, and full brand kits. No scraping logic, no parsing, no cleanup.

pricing
$0.005per AI mode

Pay-as-you-go. No subscription, no minimum — and your credits never expire.

POST /api/v2/extract
5
modes
JSON
you define
brand
logos & colors
1 call
multi-mode
Schema you define

Pass a JSON schema; get back exactly those fields, typed — no parsing, no cleanup.

Brand kit mode

Resolve any domain to logos, colors, fonts, and socials from the same endpoint.

Summary, Q&A & links

Combine modes in one call — a summary, an answer to a question, or every link.

Modes

Five ways to read the same page.

Pick one or combine them in a single call — you only pay for the modes you request.

$0.005
json

Structured data in the exact JSON schema you define — typed and ready to use.

returns: response.structured_data
$0.005
summary

A clean, faithful summary of the page, distilled to what matters.

returns: response.summary
$0.005
qa

Ask a question about the page and get a direct, grounded answer.

returns: response.answer
$0.001
links

Every link on the page with its anchor text, resolved to absolute URLs.

returns: response.links
$0.002
brand

Logos, colors, fonts, and socials for a domain — the full brand kit.

returns: response.brand
Pricing

Pay per mode. Nothing hidden.

The cost of a call is just the sum of the modes you ask for — a fixed price with no token math.

example callsadvanced_proxy adds $0.004
modes=["json"]$0.005
modes=["json", "links"]$0.006
modes=["summary", "brand"]$0.007
modes=["json"] + advanced_proxy$0.009

fixed price · no token counts · failed extractions are refunded

In practice

One call. That's the integration.

01from llmlayer import LLMLayerClient
02
03client = LLMLayerClient(api_key="YOUR_LLMLAYER_API_KEY")
04
05res = client.extract(
06 "https://www.ycombinator.com/companies",
07 modes=["json"], # $0.005 per AI mode
08 json_schema={
09 "companies": [{
10 "name": "string",
11 "batch": "string",
12 "tags": ["string"],
13 }],
14 },
15)
16
17print(res.structured_data) # typed JSON, ready to use

Start with nothing to lose.

Free credits on signup, no card. The meter only moves when you call.