1. Get connected
Your BRidge account is provisioned as a seller and issued a manufacturer push key (mk_โฆ). Either an operator onboards you (returning the key + this spec), or you mint your own at /connect/console once logged in. A key is shown once โ store it securely.
2. Push inventory
POST/manufacturer/inventory/push
Headers
| Header | Value |
|---|---|
X-Manufacturer-Key | your mk_โฆ key (the seller is derived from it) |
Content-Type | application/json |
Body
{
"items": [
{ "sku": "COPPER-SCRAP-HI", "qty_on_hand": 250, "uom": "ton",
"location": "Plant A", "description": "clean copper", "idem_key": "batch-001" }
]
}
sku required; qty_on_hand โฅ 0; uom e.g. ton/lb; idem_key optional (per-row dedupe).
Responses
| Code | Meaning |
|---|---|
200 | all rows upserted โ {ok:true, seller, succeeded, failed:0} |
207 | partial โ some rows failed; see failures[] (each {row_id, sku, reason}) |
401 | missing/invalid/expired/revoked key |
Example
curl -X POST https://<bridge-host>/manufacturer/inventory/push \
-H "X-Manufacturer-Key: mk_your_key" \
-H "Content-Type: application/json" \
-d '{"items":[{"sku":"COPPER-SCRAP-HI","qty_on_hand":250,"uom":"ton","idem_key":"batch-001"}]}'
3. Manage your keys (logged-in seller)
Session-authenticated JSON, scoped to your own org. UI: /connect/console.
| Endpoint | Does |
|---|---|
GET/connect/keys | list your keys (metadata only โ never the secret) |
POST/connect/keys | mint a new key (raw shown once); body {"name"}; capped at 5 active |
POST/connect/keys/{id}/rotate | rotate; body {"grace_minutes"} โ old key keeps working that long (zero-downtime), then expires |
POST/connect/keys/{id}/revoke | revoke immediately |
Rotation (zero-downtime)
- Rotate with a grace window:
POST /connect/keys/{id}/rotate {"grace_minutes":60}โ new key returned. - Deploy the new key to your system within the window. Both keys work during grace.
- After the window the old key stops authenticating โ no revoke step, no downtime.
4. No API on your side? Push a file export
You don't need a full integration to use this rail. Export your inventory from your IMS/ERP as JSON, map your material names to the BRidge registry once, and send it with a single authenticated POST /manufacturer/inventory/push (see ยง2) โ from a cron job, a low-code step (Zapier/Make), or a few lines of script. Batch results come back per-row (207 reports any rows that need attention), so you can start small and expand.
5. BRidge Data โ institutional market-data feed
A licensed market-data product served over anonymized yard breadth โ every yard is a stable pseudonym, never a real name. Three flat monthly tiers, by data breadth:
| Tier | Monthly | Breadth |
|---|---|---|
| Standard | $50,000 | 6-yard |
| Plus | $75,000 | 12-yard |
| Full | $150,000 | 24-yard |
Access
Authenticated with a per-account X-BRidge-Data-Key (delivered once, post-onboarding; 7-day grace on rotation). Scope-based: data_read (REST), data_realtime (WS), data_historical (trade tape).
| Endpoint | Returns |
|---|---|
GET/v2/data/vendor_quotes | pseudonymized vendor quotes |
GET/v2/data/inventory | aggregate inventory depth |
GET/v2/data/orderbook_depth | book depth by material |
GET/v2/data/trade_tape | historical fills (trade tape) |
GET/v2/data/yards | anonymized yard registry |
GET/v2/data/ws | real-time WebSocket feed |
6. Partner channel โ revenue share
Default rates are 30% on trade fees and 50% on data subscriptions (per-partner overrides supported). Partners are onboarded via Stripe Connect Express (Stripe handles KYC and 1099 reporting); once provisioned, a partner receives an X-BRidge-Partner-Key.
Partner endpoints
| Endpoint | Does |
|---|---|
GET/connect/partner/me | partner profile |
GET/connect/partner/customers | your attributed customers (yours only) |
GET/connect/partner/earnings | earnings by period |
GET/connect/partner/dashboard | summary dashboard |
POST/connect/partner/keys/rotate | self-service key rotation (7-day grace) |
7. Trading API โ programmatic futures (ck_ keys)
Authenticate trade calls with X-BRidge-Customer-Key: ck_โฆ. Onboarding + key management is self-serve for approved partners (session-authed, owner-only):
Onboarding & keys (self-serve)
| Endpoint | Does |
|---|---|
POST/account/customer_trade/customers | onboard one of your customers (sanctions-screened) |
GET/account/customer_trade/customers | list your customers |
POST/account/customer_trade/customers/{c}/keys | mint a ck_ key (shown once) |
POST/account/customer_trade/keys/rotate | rotate (optional grace window) |
POST/account/customer_trade/keys/revoke | revoke |
Trade (ck_ key)
| Endpoint | Does |
|---|---|
POST/customer/trade/orders | place a futures order (Idempotency-Key required) |
POST/customer/trade/orders/{id}/cancel | cancel your order |
GET/customer/trade/orders | your open + recent orders |
GET/customer/trade/positions | your open positions |
GET/customer/trade/fills | your executions |
GET/customer/trade/margin | your margin balance |
8. Webhooks โ real-time event delivery
Register your own endpoint and receive signed events. Self-serve (owner-only):
| Endpoint | Does |
|---|---|
GET/account/webhooks/events | catalog of subscribable events |
POST/account/webhooks/subscriptions | register an endpoint (event_type + target_url) |
GET/account/webhooks/subscriptions | list your subscriptions |
POST/account/webhooks/signing_key | mint/rotate your signing secret (shown once) |
GET/account/webhooks/deliveries | your delivery log (status, attempts, errors) |
Events: order.filled, settlement.finalized, margin_call.created, payout.*, contract.signed, bol.* (dispatched / completed / failed / redirected / partially_delivered). Each delivery is signed: X-BRidge-Signature = hex HMAC-SHA256 over the raw request body, with X-BRidge-Event-Id + Idempotency-Key for dedupe. Failed deliveries retry with exponential backoff (up to 8 attempts), then dead-letter.
9. Sandbox โ build before you go live
Boundaries: outbound to these documented rails only ยท keys are inventory-scoped ยท per-seller isolation ยท HMAC/key auth ยท 200/207 per-row semantics.