Extract clean, structured JSON from any website in just a few commands. No scraping skills required.
Sign up for a free Hobby account. You'll get an API key and JWT tokens for authentication — no credit card required.
# Register via API — or use https://extract.kafcenter.com/dashboard/register
curl -X POST "https://extract.kafcenter.com/auth/register" \
-H "Content-Type: application/json" \
-d '{
"email": "you@example.com",
"password": "YourSecurePass123",
"name": "Your Name"
}'
access_token expires in 30 minutes. Use the refresh_token to get a new pair. Or log in to the User Dashboard to manage tokens visually.
API keys authorize extraction requests. Create one via the dashboard or programmatically. Hobby tier includes 1 key.
# Create an API key (requires Bearer token from Step 1)
curl -X POST "https://extract.kafcenter.com/api/v1/keys" \
-H "Authorization: Bearer eyJ..." \
-H "Content-Type: application/json" \
-d '{"name":"Hobby Key","rate_limit":60}'
name values. This makes it easy to identify which key belongs to which project when reviewing usage later.
Pass a URL and a schema — we return structured JSON. CSS selectors for precise extraction, or AI mode for zero-configuration.
# Extract product data with CSS selectors
curl -X POST "https://extract.kafcenter.com/api/v1/extract" \
-H "X-API-Key: kaf_live_AbCdEf12345" \
-H "Content-Type: application/json" \
-d '{
"url": "https://books.toscrape.com/catalogue/",
"schema": {
"fields": [
{"name": "title", "selector": "h3 a", "type": "text"},
{"name": "price", "selector": ".price_color", "type": "text"},
{"name": "link", "selector": "h3 a", "type": "attribute", "attribute": "href"}
]
}
}'
text (innerText), attribute (href/src/etc), html (raw), exists (boolean), markdown (clean MD), screenshot (PNG).
"mode": "ai" with an ai_prompt description. No selectors needed — kimi-k2.6:cloud figures it out.
Monitor websites automatically. Cron expressions, webhook delivery, and change detection — all handled.
# Schedule: check prices every 6 hours
curl -X POST "https://extract.kafcenter.com/api/v1/extract/schedule" \
-H "Authorization: Bearer eyJ..." \
-H "Content-Type: application/json" \
-d '{
"name": "Price Monitor",
"url": "https://shop.example.com/product/123",
"cron_expression": "0 */6 * * *",
"fields": [{"name": "price", "selector": ".price", "type": "text"}],
"webhook_url": "https://hooks.slack.com/services/T.../B.../xxx"
}'
0 */6 * * * — every 6 hours · 0 9 * * 1-5 — 9am weekdays · 0 0 1 * * — midnight on the 1st
Get formatted extraction results pushed to Slack automatically. No code changes needed — just add your webhook URL.
# 1. Create Slack Incoming Webhook: api.slack.com/messaging/webhooks
# 2. Test it from our side before scheduling
curl -X POST "https://extract.kafcenter.com/api/v1/integrations/slack/test" \
-H "Authorization: Bearer eyJ..." \
-H "Content-Type: application/json" \
-d '{"webhook_url": "https://hooks.slack.com/services/T.../B.../xxx"}'
Share workspaces, API keys, and usage dashboards with your team. RBAC enforced: owner, admin, editor, viewer.
# 1. Create an organization
curl -X POST "https://extract.kafcenter.com/api/v1/orgs" \
-H "Authorization: Bearer eyJ..." \
-d '{"name":"Production Team","slug":"prod-team"}'
# 2. Invite a team member (they must register first)
curl -X POST "https://extract.kafcenter.com/api/v1/orgs/{org_id}/members" \
-H "Authorization: Bearer eyJ..." \
-d> '{"email":"colleague@example.com","role":"editor"}'
owner (full control) → admin (manage members) → editor (create/modify extractions) → viewer (read-only). API keys created at org-level are shared across all members.
What's the rate limit?
Hobby: 60 requests/min. Pro: 300/min. Enterprise: 1,000/min. Per-API-key limits can be lower if you set them in the dashboard.
Which websites work?
Any public website. We use a headless browser so JavaScript-rendered SPAs are fully supported. Sites with aggressive bot protection may require our proxy pool (Pro/Enterprise).
How much does it cost?
Hobby is free forever — 1,000 extractions/month. Pro is $29/mo with 50K extractions, AI mode, batch jobs, and webhooks. Enterprise is $199/mo with dedicated proxies and SLA. See the pricing page.
What if I get a 429 error?
You've hit your rate limit. Wait for the 60-second window to reset, or upgrade your plan. The response includes Retry-After and X-RateLimit-* headers.
Can I export results?
Yes. Results are JSON by default. Add ?format=csv or ?format=markdown to any extraction endpoint for direct export.
How do I reset my password?
Log in to the User Dashboard → Profile → Change Password. Or via API: PUT /auth/me/password.