Skip to main content
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.
InventoryOS is Droplinked’s headless inventory data layer. The same SKU + provenance + stock-level + sell-through record simultaneously serves five orthogonal consumer surfaces — a lending underwriter, an agentic buyer surface, a merchant program builder, a 3PL partner, and a compliance gate — without the surfaces ever speaking to each other. The API is the partner-facing surface of that layer. You read streams, register for webhook deliveries, and stitch InventoryOS into your own systems.

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:read scope.
  • Listing subscriptions requires inventory-os:subscriptions:read; creating/deleting them requires inventory-os:subscriptions:write.
See Getting started for full auth, scopes, rate limits, and cursor pagination.

Base path

Every stream read lives under /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.