TripleBooks
Inventory

Items

GET
/api/inventory

Use the view query parameter (default items) to choose what to return: items, summary, item-options, transactions, counts, count-lines, item-count-lines, valuation, or lots. Responses vary — for example items (paginated SKUs, quantities, costing), transactions (receipts, issues, adjustments), counts (sessions), count-lines (requires countId), item-count-lines (open lines for one SKU; requires itemId), valuation (totals), and lots (requires itemId). Physical counts: view=counts lists count sessions; view=count-lines returns lines for a session (countId required). Other query params include itemId, type, countId, search, status, category, lowStock, and pagination where applicable. Authorization: Bearer ak_.... Required scope includes read:inventory. Pass entityId (query / JSON / x-entity-id).

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid
view?string

items | summary | item-options | transactions | counts | count-lines | item-count-lines | valuation | lots

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/api/inventory?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
POST
/api/inventory

Body includes action; fields depend on the action. Physical counts: create-count requires countDate (optional notes) and returns { countId } with a line for each active SKU. record-count-line requires countLineId and countedQty. finalize-count requires countId, posts quantity variances, and marks the session completed. Item actions: create-item, receive, issue, adjust, and write-down. Authorization: Bearer ak_.... Required scope includes write:inventory. Pass entityId as above.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/api/inventory?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{    "action": "create-item"  }'
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
DELETE
/api/inventory

Query id = item UUID. Marks the item inactive; historical transactions remain. Authorization: Bearer ak_.... Required scope includes write:inventory. Pass entityId as above.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid
id*string
Formatuuid

Response Body

application/json

application/json

curl -X DELETE "https://example.com/api/inventory?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08&id=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
PUT
/api/inventory

Authorization: Bearer ak_.... Required scope includes write:inventory. Pass entityId as above.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

curl -X PUT "https://example.com/api/inventory?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08" \  -H "Content-Type: application/json" \  -d '{    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08"  }'
Empty
{  "error": "string"}
{  "error": "string"}
GET
/api/inventory/catalog

Line-picker search by SKU or name. Authorization: Bearer ak_.... Required scope includes read:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

curl -X GET "https://example.com/api/inventory/catalog?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
GET
/api/inventory/items/{itemId}

One catalog item. Authorization: Bearer ak_.... Required scope includes read:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
GET
/api/inventory/items/{itemId}/locations

On-hand by location. Authorization: Bearer ak_.... Required scope includes read:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/locations?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
GET
/api/inventory/items/{itemId}/vendors

Vendors linked to an item. Authorization: Bearer ak_.... Required scope includes read:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/vendors?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
GET
/api/inventory/items/{itemId}/earmarks

Quantity reserved for orders. Authorization: Bearer ak_.... Required scope includes read:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

curl -X GET "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/earmarks?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
POST
/api/inventory/items/{itemId}/earmarks

Reserve quantity. Authorization: Bearer ak_.... Required scope includes write:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/earmarks?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
DELETE
/api/inventory/items/{itemId}/earmarks/{earmarkId}

Release reserved quantity. Authorization: Bearer ak_.... Required scope includes write:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid
earmarkId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

curl -X DELETE "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/earmarks/497f6eca-6276-4993-bfeb-53cbbbba6f08?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
GET
/api/inventory/items/{itemId}/identifiers

UPC, GTIN, and other identifiers. Authorization: Bearer ak_.... Required scope includes read:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

curl -X GET "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/identifiers?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
POST
/api/inventory/items/{itemId}/identifiers

Add an identifier. Authorization: Bearer ak_.... Required scope includes write:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/identifiers?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
PATCH
/api/inventory/items/{itemId}/identifiers/{identifierId}

Patch an identifier. Authorization: Bearer ak_.... Required scope includes write:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid
identifierId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/identifiers/497f6eca-6276-4993-bfeb-53cbbbba6f08?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
DELETE
/api/inventory/items/{itemId}/identifiers/{identifierId}

Remove an identifier. Authorization: Bearer ak_.... Required scope includes write:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid
identifierId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

curl -X DELETE "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/identifiers/497f6eca-6276-4993-bfeb-53cbbbba6f08?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
GET
/api/inventory/items/{itemId}/suppliers

Supplier links for an item. Authorization: Bearer ak_.... Required scope includes read:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

curl -X GET "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/suppliers?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
POST
/api/inventory/items/{itemId}/suppliers

Link a supplier. Authorization: Bearer ak_.... Required scope includes write:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/suppliers?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
PATCH
/api/inventory/items/{itemId}/suppliers/{supplierId}

Patch a supplier link. Authorization: Bearer ak_.... Required scope includes write:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid
supplierId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/suppliers/497f6eca-6276-4993-bfeb-53cbbbba6f08?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
DELETE
/api/inventory/items/{itemId}/suppliers/{supplierId}

Unlink a supplier. Authorization: Bearer ak_.... Required scope includes write:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid
supplierId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

curl -X DELETE "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/suppliers/497f6eca-6276-4993-bfeb-53cbbbba6f08?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
GET
/api/inventory/items/{itemId}/bundle-components

Components of a bundle SKU. Authorization: Bearer ak_.... Required scope includes read:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

curl -X GET "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/bundle-components?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
PUT
/api/inventory/items/{itemId}/bundle-components

Set bundle components. Authorization: Bearer ak_.... Required scope includes write:inventory. Requests are scoped to one entity. Pass entityId as a query parameter, JSON field, or x-entity-id header. API keys are already pinned to an entity.

Authorization

bearerAuth
AuthorizationBearer <token>

Create keys under Settings → API keys. Prefix ak_. Send as Authorization: Bearer ak_....

In: header

Path Parameters

itemId*string
Formatuuid

Query Parameters

entityId*string

Entity UUID; must match the API key’s entity when using Bearer auth.

Formatuuid

Response Body

application/json

application/json

application/json

curl -X PUT "https://example.com/api/inventory/items/497f6eca-6276-4993-bfeb-53cbbbba6f08/bundle-components?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}

On this page