Meridian v2.4.0
Docs / Reference / API

API reference

Base URL https://api.meridian.example/v1. All requests need Authorization: Bearer <key>. All responses are JSON.

Forecasts

GET /forecasts

ParameterTypeRequiredNotes
skustringyesYour SKU identifier
locationstringyesWarehouse or store code
horizonintnoDays ahead, 1–90. Defaults to the configured value.
include_driversboolnoReturn the factors behind the number

POST /forecasts/batch

curl https://api.meridian.example/v1/forecasts/batch \
  -H "Authorization: Bearer $MERIDIAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"sku":"SKU-10492","location":"WH-BERLIN"}],"horizon":28}'

Batch accepts up to 1,000 items per request and is rate limited separately from single lookups.

Proposals

GET /proposals · POST /proposals/:id/approve · DELETE /proposals/:id

{
  "id": "prop_4471",
  "sku": "SKU-10492",
  "location": "WH-BERLIN",
  "quantity": 640,
  "rationale": "P50 demand 640 over 28d, on-hand 120, lead time 21d",
  "status": "pending",
  "expires_at": "2026-09-01T00:00:00Z"
}

Rate limits

EndpointLimitWindow
/forecasts600per minute
/forecasts/batch20per minute
/proposals120per minute

Every response carries X-RateLimit-Remaining and X-RateLimit-Reset. A 429 includes Retry-After in seconds — honour it rather than backing off blindly.