Quickstart
Three steps to your first CrawlPipe API call: create a key, set the auth header, and search the corpus.
1. Create an API key
Sign up (free, no card) and open API Keys in the portal. Click Create key —
the full key (dp_live_…) is shown exactly once. Copy it now; CrawlPipe only stores
a sha256 hash after this point.
2. Set the auth header
Every request to /v1/* authenticates with a bearer token:
Authorization: Bearer dp_live_a1b2c3d4e5f6…3. Make your first call
GET /v1/legal/search does unit-level, RAG-ready search over the corpus. The
default mode is full-text search (mode=fts, 1 unit); semantic/hybrid cost 2
units and require Builder or above.
curl "https://api.crawlpipe.com/v1/legal/search?q=h%C3%B3a%20%C4%91%C6%A1n%20%C4%91i%E1%BB%87n%20t%E1%BB%AD&mode=fts" \
-H "Authorization: Bearer dp_live_a1b2c3d4e5f6…"import requests
resp = requests.get(
"https://api.crawlpipe.com/v1/legal/search",
params={"q": "hóa đơn điện tử", "mode": "fts"},
headers={"Authorization": "Bearer dp_live_a1b2c3d4e5f6…"},
)
print(resp.json())const params = new URLSearchParams({ q: "hóa đơn điện tử", mode: "fts" });
const res = await fetch(`https://api.crawlpipe.com/v1/legal/search?${params}`, {
headers: { Authorization: "Bearer dp_live_a1b2c3d4e5f6…" },
});
const { data, meta } = await res.json();
console.log(data.results, meta.units_charged);A successful response looks like this — every result carries a ready-to-cite
citation string:
{
"success": true,
"data": {
"results": [
{
"score": 0.87,
"unit": {
"path": "c2.d5.k3",
"unit_type": "khoan",
"content": "Hóa đơn điện tử phải được lập theo định dạng chuẩn dữ liệu…",
"citation": "Khoản 3 Điều 5 Thông tư 18/2026/TT-BTC"
},
"document": {
"id": "…",
"doc_number": "18/2026/TT-BTC",
"title": "…",
"eff_status": "con_hieu_luc",
"effective_date": "2026-07-01",
"source": { "key": "vbpl", "url": "…" }
}
}
]
},
"meta": { "request_id": "…", "units_charged": 1, "mode": "fts" }
}Next: read Auth for key scopes, Errors & envelope for the failure shapes, or jump into a guide.