Create Stock Take from Products
POST/api/stock-takes/bulk-insert
Create a new stock take and bulk-insert product IDs as line items in one operation.
inventory:writeGrant this scope to your token under Settings → Developer → Personal Access Tokens.
Authentication: Requires Bearer token.
ids: array of product IDs to add. Required unless filters is provided.
filters: alternatively provide list view filters to select products dynamically.
mode: full_count (default) or adjustment.
is_initial_count: optional boolean; forces full_count and flags the take as the warehouse's initial count.
Unit cost: for adjustment mode, each item's unit_cost is pre-seeded from the product's best-available cost at the warehouse (FIFO / weighted-average / catalog unit cost, via GetBestAvailableCogs) so the Unit Cost column opens with a basis rather than blank; null when no cost exists. Overridable per row, and negative adjustments ignore it (cost is taken from consumed FIFO layers at finalization). Full counts are not seeded here — they capture cost at count initiation.
Returns the new stock_take_id.
Requires permission: inventory.count
Request
Responses
- 200
- 401
- 403
- 422
- 429
OK
Response Headers
Unauthenticated — the bearer token is missing, revoked, expired, or malformed. Never retry automatically; fix the credential. See the Errors guide.
Forbidden — the token lacks a required scope, the endpoint is not available to API tokens, or the user behind the token lacks the permission. A human must adjust the token scopes or user permissions; do not retry.
Validation failed — the body is a field → messages map (Laravel shape) or the platform envelope with a stable machine-readable code. Fix the payload and resubmit.
Rate limited — platform limit is 1,000 requests/min; individual tokens may carry lower limits. Honor the Retry-After header before retrying. See the Rate Limits guide.