Quickstart
Get a working call against the live API in under 60 seconds.
1. Explore the API (no key needed)
The API is keyed — every data endpoint needs an X-API-Key. Two surfaces stay public so you can orient before you have a key: the self-describing root index (cold-start recipe + every resource with its auth tier + how to get a key) and the OpenAPI spec.
curl 'https://crate.0xhoneyjar.xyz/api/v1' | jq # the root index
curl 'https://crate.0xhoneyjar.xyz/api/v1/openapi.json' # the machine-readable contract
Everything else needs a key (step 2). With one, your first data call — say a search — looks like:
curl 'https://crate.0xhoneyjar.xyz/api/v1/search?q=aphex&limit=3' \
-H 'X-API-Key: ck_live_YOUR_KEY' | jq
You should see something like:
{
"query": { "q": "aphex", "filters": [] },
"pagination": { "page": 1, "total_pages": 20, "total_results": 1000, "total_results_mode": "approximate_50k_sample" },
"results": [
{ "master_id": 12345, "title": "Selected Ambient Works 85-92", "artist": "Aphex Twin", "year": 1992, "cube_quadrant": "101", "owner_count": 4321, "dj_count": 12, "critic_count": 8, "formats": ["Vinyl", "CD"], "link_to_cube": "https://..." },
...
],
"freshness": { "ridden_lag_s": 18, "mirror_lag_s": 18 }
}
That's the dub plate cut — every authenticated endpoint returns variations of this shape with consistent fields.
2. Get an API key
Every data endpoint needs an API key (only the root index + the spec above are public). Two paths to get one:
Self-serve ($49 / $99 / $299/mo):
- Visit crate.0xhoneyjar.xyz/api/signup (when public)
- Pick a tier; Stripe Checkout flow
- Your key arrives by email + appears once in your dashboard
- Store it in a secret manager (1Password / AWS Secrets Manager / etc.)
Sync tier ($2k/mo) — for sync agencies + clearance research workflows:
- Email
jani@hosaka.fmwith your use case + expected volume - Manual contract; key issued via the admin route
- Personal Slack channel for support
See authentication for the full key lifecycle (rotation, revocation, env vs live).
3. Make your first authenticated call
curl 'https://crate.0xhoneyjar.xyz/api/v1/masters/12345' \
-H 'X-API-Key: ck_live_YOUR_KEY_HERE'
Response:
{
"master_id": 12345,
"title": "Selected Ambient Works 85-92",
"artist": "Aphex Twin",
"year": 1992,
"cube_quadrant": "101",
"owner_count": 4321,
"dj_count": 12,
"critic_count": 8,
"formats": ["Vinyl", "CD"],
"freshness": { "ridden_lag_s": 18, "mirror_lag_s": 18 },
"link_to_cube": "https://...",
"insert_links": null
}
The insert_links field is reserved for the insert cross-source-links feature shipping in v1.1. v1.0 always returns null.
4. Batch enrichment (Sync tier flagship)
If you have a list of master IDs (sync brief, clearance shortlist), batch them:
curl -X POST 'https://crate.0xhoneyjar.xyz/api/v1/masters/batch' \
-H 'X-API-Key: ck_live_YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{"ids": [12345, 67890, 11223]}'
Response preserves input order; missing IDs flow into not_found:
{
"results": [
{ "master_id": 12345, "title": "...", ... },
{ "master_id": 67890, "title": "...", ... },
{ "master_id": 11223, "title": "...", ... }
],
"not_found": []
}
Sync tier limit: 500 IDs per call (raised from 100 in carrefour#55). Self-serve tiers: 100 per call. Counts as ONE rate-limit unit per request, not N.
What next
- API reference — every endpoint + parameter + response shape
- Use cases — worked examples (clearance research, mood-aware search, top-K per genre)
- Error codes — what 400 / 401 / 402 / 429 / 503 / 504 actually mean