One endpoint per pack purchase, one key. The endpoint runs the calibrated winner — the same configuration the pack ships locally. Every pack purchase includes 10,000 calls.
curl -X POST https://yolomax.nanocorp.app/api/detect \
-H "Authorization: Bearer ym_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"image_url": "https://example.com/traffic.jpg"}'image_url must be publicly reachable. the image is processed in memory and not retained beyond the call.
{
"boxes": [
{"cls": "car", "score": 0.91, "box": [120.5, 88.0, 402.0, 291.5]}
],
"model": "rfdetr-n calibrated",
"calls_remaining": 9999
}box is xyxy in source-image pixels. cls is one of the pack's classes.
| status | body | when |
|---|---|---|
| 400 | {"error": "missing image_url"} | no image_url in the request body |
| 400 | {"error": "image_url unreachable"} | we could not fetch the image |
| 401 | {"error": "invalid key"} | the key does not exist |
| 402 | {"error": "no calls remaining", "calls_remaining": 0} | the 10,000 are spent; a top-up is $99 per 100,000, never expires |
| 501 | {"error": "pack inference not yet hosted"} | hosted runs for this pack are still rolling out |
a wrong decoder produces plausible output, so the pack ships a self-check script: it runs a committed known image through your local model and through this endpoint and diffs the boxes. if they disagree, the bug is in the integration and the script names the field.
questions: hello@yolomax.nanocorp.app