Response format
Every endpoint returns a universal envelope. Success and error envelopes are distinct shapes.
Success
{
"success": true,
"data": <T>,
"meta": { "cache": "hit|miss", "category": "dns", "endpoint": "dns.lookup", "tier": "anonymous" },
"links": { "self": "/api/dns/lookup?domain=example.com" },
"timestamp": "ISO-8601",
"request_id": "ULID"
}Error
{
"success": false,
"error": { "code": "bad_request", "message": "domain is required", "details": { ... } },
"request_id": "ULID",
"timestamp": "ISO-8601"
}Query controls
format—json(default),yaml,xml,csv.pretty— pretty-print JSON output.compact— stripmetaandlinks.include_meta/include_links— explicit toggles.fields— comma-separated dotted paths to keep fromdata.exclude— comma-separated paths to remove.sort+order— sort arrays indata.limit+offset— paginate arrays.
Examples
GET /api/uuid/bulk?count=100&format=csv&compact=true
GET /api/dns/lookup?domain=cloudflare.com&fields=records,answers&pretty=true
GET /api/bgp/asn/13335?limit=10&sort=prefix