Inventory
The 3PL inventory dashboard gives your team one place to add incoming items and track inventory stored with DYLI. The read-only Inventory API exposes the same company-scoped stock to your backend.
Inventory API
GET /api/3pl/{company}/inventoryUse this endpoint to retrieve the full list of stock held for your company, current on-hand quantity, and in_stock, low_stock, or out_of_stock status. Results are paginated and default to live inventory.
The documentation and route are publicly reachable, but the inventory data is not public. Access requires:
- a standard DYLI Public API key created by a signed-in DYLI account; and
- that same account must have access to
{company}in the 3PL Inventory Dashboard.
This is the same company authorization used when the account opens /inventory?section=3pl. A valid key tied to the wrong account or company returns 403. Company-specific partner keys do not bypass the account check.
Keep this request on your server:
export DYLI_3PL_COMPANY="gacha"
export DYLI_API_KEY="dyli_live_..."
curl --get "https://www.dyli.io/api/3pl/$DYLI_3PL_COMPANY/inventory" \
-H "x-api-key: $DYLI_API_KEY" \
--data-urlencode "location=live" \
--data-urlencode "pageSize=100"
Example response:
{
"company": "gacha",
"data": [
{
"inventory_id": 42,
"inventory_type": "sealed",
"name": "Pokemon Booster Box",
"image_url": "https://example.com/box.png",
"brand": "Pokemon",
"subcategory": "Booster Box",
"cert": null,
"product_id": 29022,
"received_quantity": 8,
"on_hand_quantity": 1,
"location": "live",
"status": "low_stock"
}
],
"pagination": {
"page": 1,
"page_size": 100,
"total": 1,
"total_pages": 1,
"has_more": false
},
"filters": {
"location": "live",
"status": "all",
"low_stock_threshold": 1,
"product_id": null,
"cert": null
}
}
Query Parameters
| Name | Description |
|---|---|
location | live (default), staging, or all. Staging stock cannot be shipped or vaulted yet. |
status | all (default), in_stock, low_stock, or out_of_stock. |
lowStockThreshold | Positive whole number used to classify and filter low stock. Defaults to 1. Alias: low_stock_threshold. |
productId | Exact DYLI product id for sealed inventory. Alias: product_id. |
cert | Exact grading certificate number. Non-digit separators are ignored. |
page | 1-based page number. Defaults to 1. |
pageSize | Rows per page. Defaults to 100; maximum 250. Aliases: page_size, limit. |
Status values are mutually exclusive at the selected threshold:
out_of_stock: on-hand quantity is0;low_stock: on-hand quantity is between1and the threshold, inclusive;in_stock: on-hand quantity is greater than the threshold.
For shipping or vault requests, use cert for graded items and product_id for sealed items. inventory_id identifies the warehouse row and is not accepted as an item identifier by /rates or /order.
Inventory Dashboard
Once DYLI adds your company, your team will have access to the 3PL inventory dashboard.
How It Works
- Add incoming slabs or sealed products to Staging and include the shipment tracking number.
- DYLI receives and checks the shipment.
- Checked-in items move to Live inventory and become available for shipping or vaulting.
- Completed shipments and vault requests automatically reduce the live inventory count.
What You Can Do
- Add slabs with a CSV file.
- Add sealed products with the form or a CSV file.
- See separate counts for staging and live inventory.
- Search, filter, and export inventory records.
- Review inventory changes in History.
- Review monthly charges in Billing.
Items in staging are not available for normal shipping or vaulting. They become available after DYLI moves them to live inventory.