Get Started
Quickstart
Make your first API call in 60 seconds
Get your API key
Sign up and grab your API key to start using Thunderbit.
Try it in the Playground
Test the API instantly without writing any code.
Authentication
All API requests require an API Key in the request header:
Authorization: Bearer YOUR_API_KEYGet your API key from the Thunderbit Dashboard. Keys are revocable and per-environment — never embed a production key in client-side code.
1. Distill a single page into Markdown
cURL:
curl -X POST https://openapi.thunderbit.com/openapi/v1/distill \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://thunderbit.com/playground"}'Python:
import httpx
resp = httpx.post(
"https://openapi.thunderbit.com/openapi/v1/distill",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={"url": "https://thunderbit.com/playground"},
timeout=60.0,
)
resp.raise_for_status()
print(resp.json()["data"]["markdown"])Node.js:
const r = await fetch("https://openapi.thunderbit.com/openapi/v1/distill", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({ url: "https://thunderbit.com/playground" }),
});
const { data } = await r.json();
console.log(data.markdown);2. Extract structured data with a JSON Schema
curl -X POST https://openapi.thunderbit.com/openapi/v1/extract \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/product/iphone-15-pro",
"schema": {
"type": "object",
"properties": {
"name": { "type": "string" },
"price": { "type": "number" },
"currency": { "type": "string" },
"inStock": { "type": "boolean" }
},
"required": ["name", "price"]
}
}'3. Submit a batch job with a webhook callback
curl -X POST https://openapi.thunderbit.com/openapi/v1/batch/distill \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"urls": [
"https://example.com/page1",
"https://example.com/page2",
"https://example.com/page3"
],
"webhook": {
"url": "https://your-server.com/api/webhook/distill",
"secret": "whsec_your_secret_key"
}
}'