Brix REST API
Read and write your formulation data over HTTP. The API uses the app's shared services and approval rules. Create ingredients, read approved recipe history, and download Nutrition Facts labels as PDF or PNG. Supplier Compliance and certification tracking remain GoodPop-only.
Authorization: Bearer <key> — the same personal access key as the MCP endpoint, from Settings → My account → Access keys.X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset.{ data, next_cursor, has_more, total }. Follow next_cursor until it is null; never build one yourself.{ "error": { "code", "message", "details" } }. Branch on code, never on the message.GET /audit?since=<timestamp>.The numbers as they appear on the Nutrition Facts panel — FDA rounding applied, the dual/single column collapse resolved, and the reconstitution Added Sugars reclassification included. These are the printed values, not the engine's raw ones.
curl -s "https://brixsoftware.com/api/v1/products/FG444/nutrition?basis=label" \
-H "Authorization: Bearer $BRIX_API_KEY"Use basis=100g or basis=serving for unrounded engine values instead. FG444 can be an FG code or the product's id.
Write per-100 g values, cost, and density directly on one ingredient. Omitted fields keep their stored values.
curl -s -X PATCH "https://brixsoftware.com/api/v1/ingredients/IG1001" \
-H "Authorization: Bearer $BRIX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"supplier": "Green Mountain Dairy",
"costPerLb": 3.85,
"calories": 379,
"totalFat": 40.2,
"protein": 2.0,
"totalSolids": 45.4
}'Requires MEMBER or higher. An approved record's FORMULA is locked, but an ingredient's spec is not a formula — this write applies in place and marks every pinning record as drifted.
There are no webhooks yet, so this is how you follow changes: ask the audit feed what moved since your last poll, then fetch the records it names. Store the newest entry's createdAt and pass it back next time.
curl -s "https://brixsoftware.com/api/v1/audit?entity=Product&since=2026-08-01T00:00:00Z&limit=50" \
-H "Authorization: Bearer $BRIX_API_KEY"Entries come back newest first. Follow next_cursor to walk further back; drop the entity filter to watch everything.
Every endpoint, generated from the API itself. The machine-readable source is at /api/v1/openapi.json — point your own client generator at it.