# botx402 Inventory Reorder Planner

> botx402 Inventory Reorder Planner is a paid API for AI agents from api.botx402.io, paid per call via x402, $19/call, status unknown (last checked 2026-10-27).

Analyzes SKU-level sales, stock, and lead time data to generate a prioritized reorder plan showing what to order, how many units, what is overstocked, and where cash is tied up — delivered as PDF and JSON.

## Facts

- Endpoint: POST https://api.botx402.io/api/v1/agent/inventory-reorder/run?utm_source=zero.xyz
- Price: $19/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-27
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/botx402-inventory-reorder-planner-868c1207
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_zu6_deBn44i1cH2OmXN3x

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability botx402-inventory-reorder-planner-868c1207 -d '<json body>'
```

Example prompt: Run an inventory reorder plan as of 2024-06-30 for these SKUs: SKU-001 sold 120 units with 30 on hand, costs $5 and sells for $12 with a 14-day lead time; SKU-002 sold 300 units with 10 on hand, costs $8 and sells for $20 with a 7-day lead time — use a 7-day safety buffer and email me the PDF at ops@mystore.com.

## When to prefer this

Choose this endpoint when you need a fully computed, actionable reorder plan from raw SKU-level sales and inventory data in a single API call — especially when you want both machine-readable JSON output and a human-readable PDF report. It is ideal for automating weekly or monthly purchasing workflows, flagging overstock, and quantifying cash tied up in excess inventory. Prefer it over generic inventory tools when you need lead-time-aware, safety-stock-adjusted, MOQ/case-pack-constrained order quantities in one step.

## Known failure modes

- Invalid or missing required SKU fields (sku, units_sold, on_hand, unit_price, unit_cost) return a 400 validation error
- days_out_of_stock exceeding the implied window_days causes a validation rejection
- More than 800 SKUs in a single request exceeds the array limit
- Invalid date format for as_of (must be YYYY-MM-DD) returns a schema error
- Payment failure or insufficient USDC balance blocks execution with a 402 response
- Invalid email format causes a 400 error on the email field

## How this service works

Reorder plan from your SKU sales, stock and lead times: what to order now, how many, what is overstocked, where cash is stuck. PDF + JSON.

## Output

Returns a JSON object with per-SKU reorder recommendations (units to order, reorder flag, overstock flag, days of cover remaining, cash-at-risk value) plus a URL to a downloadable PDF report summarizing the full reorder plan. If an email was provided, the PDF link is also emailed to that address.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "email": {
   "type": "string",
   "format": "email",
   "description": "Optional. When set, fulfillment emails the result PDF link."
  },
  "inputs": {
   "type": "object",
   "required": [
    "as_of",
    "skus"
   ],
   "properties": {
    "skus": {
     "type": "array",
     "items": {
      "type": "object",
      "required": [
       "sku",
       "units_sold",
       "on_hand",
       "unit_price",
       "unit_cost"
      ],
      "properties": {
       "moq": {
        "type": "integer",
        "maximum": 1000000000,
        "minimum": 1,
        "description": "Minimum order quantity. An order below it is raised to it."
       },
       "sku": {
        "type": "string",
        "maxLength": 64,
        "minLength": 1
       },
       "title": {
        "type": "string",
        "maxLength": 200
       },
       "on_hand": {
        "type": "integer",
        "maximum": 1000000000,
        "minimum": 0
       },
       "on_order": {
        "type": "integer",
        "maximum": 1000000000,
        "minimum": 0,
        "description": "Units on open purchase orders. Assumed to arrive after lead_time_days."
       },
       "unit_cost": {
        "type": "number",
        "minimum": 0
       },
       "unit_price": {
        "type": "number",
        "minimum": 0
       },
       "units_sold": {
        "type": "integer",
        "maximum": 1000000000,
        "minimum": 0,
        "description": "Net units sold in the window (after returns)."
       },
       "safety_days": {
        "type": "integer",
        "maximum": 365,
        "minimum": 0
       },
       "lead_time_days": {
        "type": "integer",
        "maximum": 365,
        "minimum": 0
       },
       "order_multiple": {
        "type": "integer",
        "maximum": 1000000000,
        "minimum": 1,
        "description": "Case pack. Order quantities are rounded up to a multiple of it."
       },
       "days_out_of_stock": {
        "type": "integer",
        "maximum": 365,
        "minimum": 0,
        "description": "Days in the window the SKU had no stock. Missing means 0. Cannot exceed window_days."
       },
       "target_cover_days": {
        "type": "integer",
        "maximum": 365,
        "minimum": 1
       }
      },
      "additionalProperties": false
     },
     "maxItems": 800,
     "minItems": 1
    },
    "as_of": {
     "type": "string",
     "format": "date",
     "description": "Last day covered by the sales figu
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/botx402-inventory-reorder-planner-868c1207/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.botx402.io](https://www.zero.xyz/host/api.botx402.io/llms.txt)
