▮▍▮▌ StowFlow
How it works Pricing Terms
Sign in / Sign up Start free trial

StowFlow API

Connect StowFlow to the software you already run — an ERP, your accounting system, a webshop, or a script. Read your items, stock and orders, and send new orders straight to the pick list.

Version: v1 · JSON over HTTPS

1. Get a key

In the StowFlow console, open Settings → Integrations → API access (owners only) and create a key. Give it a name such as "Odoo". The key is shown once; store it in your other system's settings. The same panel shows your base URL, when each key was last used, and lets you revoke a key instantly.

Treat a key like a password: it can read your whole catalogue and create orders. You can have up to five keys; use one per connected system, so you can revoke one without affecting the others.

2. Authenticate

Send the key with every request:

Authorization: Bearer sfk_YOUR_KEY

(x-api-key: sfk_YOUR_KEY also works.)

3. Endpoints

List items

GET /v1/items

Every item with its total quantity on hand.

{ "items": [
  { "sku": "SKU-100023", "name": "Bottled Water 24-pack", "category": "Beverages",
    "barcode": "6291000123456", "cost": 18.5, "reorderPoint": 40, "onHand": 100 }
] }

One item

GET /v1/items/SKU-100023

Stock by location

GET /v1/stock
{ "stock": [ { "sku": "SKU-100023", "location": "A-01-1", "qty": 60 } ] }

location is null for warehouses that don't use bin locations.

List orders

GET /v1/orders?status=open

status is optional: open or completed.

{ "orders": [
  { "orderId": "SO-1042", "customer": "Carrefour Ibn Battuta", "area": null, "status": "open",
    "lines": [ { "sku": "SKU-100023", "qty": 12, "picked": 0 } ], "createdAt": "2026-10-22T08:15:00.000Z" }
] }

Create an order

POST /v1/orders
Content-Type: application/json

{ "orderId": "WEB-5521", "customer": "Lulu Al Barsha", "area": "Al Barsha",
  "lines": [ { "sku": "SKU-100023", "qty": 6 }, { "sku": "SKU-100402", "qty": 2 } ] }
  • customer and lines are required. Every sku must already be in your catalogue.
  • orderId is optional — use your own reference so the picker sees it. If you leave it out, StowFlow assigns one (API-…). Sending an orderId that already exists is refused, so a retry can't create a duplicate.
  • Up to 200 lines per order. The response is 201 with the created order.
  • The order appears on your team's pick list the next time the console loads or refreshes.

4. Example

curl -H "Authorization: Bearer $STOWFLOW_KEY" \
     "$STOWFLOW_BASE/v1/stock"

5. Errors and limits

  • Errors return JSON: { "error": "…" } with a message you can show or log.
  • 400 invalid input · 401 missing, wrong or revoked key · 403 warehouse is read-only (plan ended) · 404 not found · 429 rate limit · 500 our fault — retry shortly.
  • Rate limit: 120 requests per minute per key. Poll stock every few minutes, not every second.
  • Reads work on any plan state; creating orders needs an active free trial or plan.

6. Help

Building an integration and stuck? Email hello@stowflow.ae or WhatsApp +971 50 785 0528 with the endpoint, the time and the error message — never the key itself.

▮▍▮▌ StowFlow
Inventory & warehouse management for the GCC · Dubai, UAE
© 2026 StowFlow · Home · Privacy · Terms