API Status
Crawl a Webpage
Crawl Result
API Reference
Base URL: /v1. Send your key in the X-API-KEY header.
Endpoints tagged ADMIN require the admin key instead.
Request/response bodies are JSON unless noted.
Browser
Render a page and extract content (text, markdown, html, metadata, jsonLd, socials, contacts, screenshot, pdf).
curl -X POST http://localhost:3000/v1/browser/crawl \
-H "X-API-KEY: your-key" -H "Content-Type: application/json" \
-d '{
"url": "https://example.com",
"options": {
"extract": {
"text": true,
"markdown": { "raw": false },
"metadata": true
}
}
}'
Run a custom JavaScript snippet in the page context and return its result. Body: { url, script, options? }.
Return the sorted list of unique HTML tag names present on the page. Body: { url, options? }.
Batch
Queue a crawl across many URLs. Returns 202 with a jobId; results are delivered to webhookUrl if provided. Body: { urls: string[], options?, webhookUrl? }.
Jobs
List recent jobs. Query: ?limit= (default 20, max 100).
Get the status and results of a single job by numeric id.
Extract text from an uploaded PDF. multipart/form-data with a pdf file field (max 10 MB).
Convert an uploaded PDF to Markdown. multipart/form-data with a pdf file field (max 10 MB).
Admin
Create a new API key. Body: { name }. The full key is returned once — save it.
List all API keys (prefixes and metadata only).
Revoke and delete an API key.
Regenerate the secret for an existing key. Returns the new key once.
Aggregate usage statistics across all keys.
Recent request history across all keys.
Usage statistics for a single key.
Request history for a single key.
Purge stored usage/history data.
Health & Monitoring
Liveness probe. Returns { "status": "ok" }.
Service status and timestamp (secrets masked).
Prometheus metrics exposition.