v1.0 · Online

Turn anything into
structured data

One function. Pass in a URL, PDF, image, audio, or text. Define the shape you want. Get clean data back — every time.

Get Started →
Free tier · No credit card required
structure()
$npm install structure
···
code
result
1import structure from 'structure'
2
3const orwell = await structure({
4 input: 'It was a bright cold day in' +
5 ' April, and the clocks were' +
6 ' striking thirteen. Winston' +
7 ' Smith slipped quickly' +
8 ' through the glass doors of' +
9 ' Victory Mansions.',
10 output: {
11 month: 'string',
12 hour: 'number',
13 character: 'string',
14 building: 'string',
15 weather_pleasant: 'boolean',
16 clocks_normal: 'boolean'
17 }
18})
press run ▸
structure
powered by structure · real api callsnpm i structure
WHY EVERYTHING STRUCTURED EXISTS

About 1 in every 5 JSON outputs comes out broken.

r/LLMDevs

I felt like I was spending more time fighting my tools than getting actual work done.

u/PanicIntelligent1204

Constantly babysitting prompts and parsers is a nightmare.

r/automation

So much time is wasted on all the middleware crap.

u/No-Consequence-1779
HOW IT WORKS
1

Send anything

A URL, file, buffer, or raw text. The input type is detected automatically.

2

Define your output

Pass a schema object, a Zod type, or a format string like 'markdown'. You control the shape.

3

Get structured data

Receive typed, validated data that matches your schema. Consistent output, every call.

FORMATS
Input
URLs
PDFs
Images
Audio
Video
JSON
CSV
Text
Output
JSON
Markdown
Text
CSV
HTML
YAML
Tables
Custom schemas
Built for AI pipelines

Any-to-any conversion means agents can call Structure to normalize messy inputs into a schema, convert between internal formats, or extract typed fields mid-pipeline — without custom parsing code.

PRIVACY
Zero data retention
VERIFIED
Zero retention

Your data is processed and immediately discarded. Nothing is stored.

No logging

We do not log your inputs, outputs, or schemas. Ever.

In-transit only

Data exists only for the duration of the API call. Gone the moment we respond.

No training

Your data is never used to train models or improve our systems.

We process your data to complete the conversion. That's it. We don't store it, log it, sell it, or train on it. What you send stays yours — and stays nowhere.

PRICING
Starter
$49
3,000 credits
All inputs & outputs
Full API access
No expiry
Buy credits
Pro
$99
7,000 credits
Everything in Starter
Priority support
Higher rate limits
Buy credits
Scale
$249
20,000 credits
Everything in Pro
Dedicated support
Custom limits
Buy credits
Credit usage by input type
Text / URL (up to 50K chars)1 credit
Text / URL (50K – 200K chars)3 credits
Text / URL (200K – 500K chars)8 credits
Text / URL (over 500K chars)15–25 credits
PDF / DOCX / XLSX1–28 credits
Image3 credits
Audio / Video2–10 credits

25 free credits to start. No credit card required.

Credits never expire

Stop fighting your tools

One function. Any input. Your schema. Clean data.

Start building →