BETA. Stream shapes, cursor encoding, and webhook event names may change before GA. The surface is gated by the
INVENTORY_OS_API_ENABLED server flag.The eight streams
1. Catalog
Product records — titles, slugs, type, status, tags. Sourced from
ProductV2.2. Inventory level
Stock per SKU. Quantity + available, sourced from
ProductSkuV2.3. Sell-through
Per-sale commission events — sale amount, commission, status. Sourced from
CommissionEventV2.4. Return rate
Refunded + cancelled orders, sourced from
OrderV2.5. Pricing
List price, raw price, royalty per SKU. Sourced from
ProductSkuV2.6. Attribution
Affiliate attribution records — link token, agent, session. Sourced from
AffiliateAttributionRecord.7. Settlement
Order payment + financial detail projection. Sourced from
OrderV2.8. Provenance
Onchain NFT recording per product (chain, contract, token, tx). Sourced from
ProductV2.nftRecording.The five consumer surfaces
You only need the streams that map to your surface. A lender doesn’t need attribution (6); a 3PL
doesn’t need settlement (7); an agentic buyer doesn’t need return-rate (4).
Why the data layer is multi-purpose
The same canonical record powers multiple surfaces because each stream is a per-surface read projection over the underlying merchant resources (ProductV2, ProductSkuV2, OrderV2,
CommissionEventV2, AffiliateAttributionRecord). A merchant updates a SKU once — the catalog
read model reflects it, and the same row underpins the ACP feed, the lending collateral catalog,
the affiliate program builder, the 3PL partner sync, and the compliance audit trail.
Auth + scopes (quick recap)
- All stream + subscription endpoints require an InventoryOS API key sent as
x-droplinked-api-key: <key>. - Read endpoints require the
inventory-os:streams:readscope. - Listing subscriptions requires
inventory-os:subscriptions:read; creating/deleting them requiresinventory-os:subscriptions:write.
Base path
/streams/:streamType; webhook subscriptions are managed under
/streams/:streamType/subscribe and /streams/:streamType/subscriptions.
Endpoints
:streamType is one of: catalog, inventory-level, sell-through, return-rate, pricing,
attribution, settlement, provenance. An unknown stream type returns a 404-class error.
Webhook subscriptions
Most integrators subscribe rather than poll. Register a callback URL on a specific stream; we deliver HMAC-SHA256-signed JSON POSTs when the stream’s rows change for your merchant. See Webhook subscriptions for the create flow, event vocabulary, and the one-time HMAC signing secret.Discovery manifest
GET /v1/api/inventory-os/manifest is intentionally unauthenticated so SDK generators,
agent crawlers, and vector indexers can read the API shape at build time. It returns the stream
vocabulary, per-stream rate limits, the scope vocabulary, the auth header names, and a pointer
to the OpenAPI spec (/api-doc-json). No merchant data ever surfaces there.
Next: catalog stream
The product record — titles, slugs, status.