Partner API v1
Traceability & logistics integration for contracted partners · Base URL: https://api.jonesfoods.ai/v1
Scope & access
The Partner API provides contracted retail and logistics partners with read access to unit traceability data, intake scheduling, and shipment events. It is not a public service; credentials are issued under a partner agreement. Tokens are scoped per facility group and rotate every 90 days.
curl https://api.jonesfoods.ai/v1/facilities \
-H "Authorization: Bearer $JF_API_KEY"
Intake
Register inbound transport with the intake scheduler. The orchestration layer assigns facility and line automatically; the response includes the assigned intake window.
POST /intake
{
"transport_id": "TR-88412",
"origin": "farm-214",
"unit_count": 6800,
"eta": "2026-08-03T04:30:00Z"
}
→ 201 Created
{
"intake_id": "IN-45120",
"facility": "facility-four",
"window_start": "2026-08-03T04:45:00Z",
"buffer_slot": "B-12"
}
GET /intake/{id}
→ 200 OK
{
"intake_id": "IN-44982",
"transport_id": "TR-87903",
"origin": "farm-214",
"unit_count": 6800,
"facility": "facility-one",
"arrived": "2026-07-28T04:41:12Z",
"status": "completed"
}
Intake records are retrievable for the life of their associated units.
Units
Every unit we ship is individually addressable from intake
registration through delivery — the traceability backbone behind our
food-safety commitments. Partners typically query unit records for
recall readiness, lot verification, and shelf-life management. The
origin farm is denormalized onto the unit record for fast recall
queries; the full transport record is available via
GET /intake/{id}.
GET /units/{id}
→ 200 OK
{
"id": "JF-2481-0042",
"origin": "farm-214",
"facility": "facility-one",
"line": 4,
"status": "processed",
"mass_g": 2214,
"orientation": [0.02, -0.98, 0.11],
"conf": 0.998,
"intake_id": "IN-44982",
"sku": "JF-TRAY-8PC"
}
| Field | Type | Description |
|---|---|---|
| id | string | Unique unit identifier, assigned at intake |
| origin | string | Source farm identifier, carried from intake registration |
| facility | string | Facility slug |
| line | integer | Assigned processing line |
| status | enum | One of: live, staged, processed |
| mass_g | integer | Measured mass in grams |
| orientation | float[3] | Unit orientation vector at last observation |
| conf | float | Classification confidence at last observation |
| sku | string | Assigned product SKU (present once status is processed) |
Webhooks
Subscribe to unit lifecycle events for downstream logistics and retail integration.
| Event | Fires when |
|---|---|
unit.registered | Unit is registered at intake |
unit.staged | Unit enters line buffer |
unit.processed | Unit exits the platform with assigned SKU |
unit.packed | Unit is sealed and palletized |
shipment.dispatched | Pallet leaves the facility |
Rate limits & errors
Standard integrations are limited to 600 requests per minute per token. The API returns conventional status codes; error bodies include a machine-readable code and human-readable message. Sustained 429 responses indicate you should back off exponentially.
