TripleBooks
Inventory

Counts

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/counts/{countId}

Delete a physical count session. 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

countId*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/counts/497f6eca-6276-4993-bfeb-53cbbbba6f08?entityId=497f6eca-6276-4993-bfeb-53cbbbba6f08"
Empty
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}
{  "error": "string"}

On this page