๐Ÿ”Œ BRidge Connect โ€” API reference (v1)

Push your inventory into BRidge over one HTTP rail. Manage your keys at /connect/console.
Scope: the connector is inventory-only. Contracts, BOLs, and futures are BRidge-native โ€” run them by logging into the BRidge site with your seller account. Calihan trust accrues automatically as you trade.

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

HeaderValue
X-Manufacturer-Keyyour mk_โ€ฆ key (the seller is derived from it)
Content-Typeapplication/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

CodeMeaning
200all rows upserted โ€” {ok:true, seller, succeeded, failed:0}
207partial โ€” some rows failed; see failures[] (each {row_id, sku, reason})
401missing/invalid/expired/revoked key
Idempotent & safe to repeat: each row upserts to absolute on-hand and commits in its own transaction, so one bad row never poisons the batch. Re-push your current state on a schedule; nothing double-counts.

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.

EndpointDoes
GET/connect/keyslist your keys (metadata only โ€” never the secret)
POST/connect/keysmint a new key (raw shown once); body {"name"}; capped at 5 active
POST/connect/keys/{id}/rotaterotate; body {"grace_minutes"} โ€” old key keeps working that long (zero-downtime), then expires
POST/connect/keys/{id}/revokerevoke immediately

Rotation (zero-downtime)

  1. Rotate with a grace window: POST /connect/keys/{id}/rotate {"grace_minutes":60} โ†’ new key returned.
  2. Deploy the new key to your system within the window. Both keys work during grace.
  3. 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

Separate product from the inventory connector above โ€” licensed, sales-led. Contact us for terms.

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:

TierMonthlyBreadth
Standard$50,0006-yard
Plus$75,00012-yard
Full$150,00024-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).

EndpointReturns
GET/v2/data/vendor_quotespseudonymized vendor quotes
GET/v2/data/inventoryaggregate inventory depth
GET/v2/data/orderbook_depthbook depth by material
GET/v2/data/trade_tapehistorical fills (trade tape)
GET/v2/data/yardsanonymized yard registry
GET/v2/data/wsreal-time WebSocket feed

6. Partner channel โ€” revenue share

Sales-led, admin-managed at launch. Channel partners refer customers and earn a share of the revenue those customers generate.

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

EndpointDoes
GET/connect/partner/mepartner profile
GET/connect/partner/customersyour attributed customers (yours only)
GET/connect/partner/earningsearnings by period
GET/connect/partner/dashboardsummary dashboard
POST/connect/partner/keys/rotateself-service key rotation (7-day grace)
Disbursement: monthly cadence, settled in arrears with a 1-month collection lag. $100 minimum threshold (sub-threshold balances roll forward). Manual admin approval at launch.

7. Trading API โ€” programmatic futures (ck_ keys)

For IMS platforms & trading firms. Once your business is approved and entitled, you self-serve everything below โ€” BRidge never hand-provisions a routine customer.

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)

EndpointDoes
POST/account/customer_trade/customersonboard one of your customers (sanctions-screened)
GET/account/customer_trade/customerslist your customers
POST/account/customer_trade/customers/{c}/keysmint a ck_ key (shown once)
POST/account/customer_trade/keys/rotaterotate (optional grace window)
POST/account/customer_trade/keys/revokerevoke

Trade (ck_ key)

EndpointDoes
POST/customer/trade/ordersplace a futures order (Idempotency-Key required)
POST/customer/trade/orders/{id}/cancelcancel your order
GET/customer/trade/ordersyour open + recent orders
GET/customer/trade/positionsyour open positions
GET/customer/trade/fillsyour executions
GET/customer/trade/marginyour margin balance
FIX 4.4 is also supported (NewOrderSingle / OrderCancel / ExecutionReport), trading under a ck_ key โ€” contact us for a session.

8. Webhooks โ€” real-time event delivery

Register your own endpoint and receive signed events. Self-serve (owner-only):

EndpointDoes
GET/account/webhooks/eventscatalog of subscribable events
POST/account/webhooks/subscriptionsregister an endpoint (event_type + target_url)
GET/account/webhooks/subscriptionslist your subscriptions
POST/account/webhooks/signing_keymint/rotate your signing secret (shown once)
GET/account/webhooks/deliveriesyour 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

Test environment. The sandbox is a separate deployment with its own database and Stripe test mode. Onboard, mint keys, register webhooks, and place orders there with no real money at risk, then repeat the exact same calls on production. Contact us for the sandbox base URL + a test account.

Boundaries: outbound to these documented rails only ยท keys are inventory-scoped ยท per-seller isolation ยท HMAC/key auth ยท 200/207 per-row semantics.