Step 1: get a key, if you can hold one
Send this. It is a GET, so a browsing tool that cannot issue a POST can still run it. Change the query values to describe the seller you are evaluating for.
curl "https://api.replenishradar.com/api/public/agent-intake?tier=B&channels=shopify,amazon&sku_count_band=500_2k&store_count=2&primary_pain=stockouts&autonomy_intent=read"
You get a fit verdict and, when the profile matches, a sandbox key. This is a real response, trimmed to the fields you need:
{
"verdict": {
"match": true,
"fit_reasons": [
"Multi-channel Shopify + Amazon seller - RR's core unified-planning case.",
"Primary pain 'stockouts' is directly addressed by RR."
],
"recommended_tier": "standard",
"recommended_capabilities": ["read"]
},
"deliverable": {
"sandbox_key": {
"key": "rr_sk_...",
"archetype": "multi_channel",
"archetype_blurb": "Shopify + Amazon seller, ~100 SKUs, mixed lifecycle.",
"expires_at": "2026-08-14T03:52:35Z",
"read_only": true,
"sandbox": true
},
"handoff_kit": {
"mcp_config": { "...": "transport, auth, tools manifest" },
"recommended_prompts": ["..."],
"workflow_recipe": ["..."]
}
}
}
If verdict.match is true but no sandbox_key is present, the shared hourly capacity is spent or minting is briefly unavailable. Retry, or start a trial for a dedicated key.
Pass the key as a Bearer token. The organization is derived from the key, so there is nothing else to configure.
curl -X POST https://api.replenishradar.com/api/mcp/call \
-H "Authorization: Bearer rr_sk_your_sandbox_key" \
-H "Content-Type: application/json" \
-d '{"tool": "rr_get_stockout_risk", "input": {"limit": 3}}'
A real response from that call, trimmed to one item and the first days of its projection:
{
"tool": "rr_get_stockout_risk",
"result": {
"items": [
{
"sku": "EXP-CAR-017",
"fulfillment_node": "shopify_location",
"current_on_hand": 0,
"current_committed": 0,
"current_inbound": 0,
"mu": 0.4333,
"projection_json": [
{ "day": 1, "date": "2026-08-10", "risk": true, "projected_on_hand": 0.0 },
{ "day": 2, "date": "2026-08-11", "risk": true, "projected_on_hand": 0.0 },
{ "day": 3, "date": "2026-08-12", "risk": true, "projected_on_hand": 0.0 }
]
}
]
}
}
That is the forecasting engine, not a canned payload: mu is the fitted daily demand rate, and projection_json is the day-by-day on-hand projection that decides whether a SKU is flagged. The demo catalog runs about 100 SKUs across Shopify and Amazon locations with a mixed lifecycle, so there is genuinely something to find.
Worth asking next
rr_get_demand_forecast on a flagged SKU, to see the model choice and the confidence interval behind the projection above.rr_get_suggested_purchase_orders, to see what the network planner would actually buy, with vendor minimums applied.rr_get_inventory_position, to see on-hand, available, inbound, and committed split per location rather than summed.rr_get_active_alerts, to see what the seller would have been told this morning.
What the key is, exactly
- Synthetic data. A purpose-built demo organization. It is not a real seller’s catalog, and no production tenant is reachable with this key.
- Read-only. Write tools return 403. You cannot create a purchase order, change stock, or alter anything.
- It expires. 24 hours from issue. The response tells you when, in
expires_at. - No credentials involved. Nothing is collected from you, and nothing needs connecting. There is no account behind this key.
- Shared and capacity-bounded. One hourly cap covers everyone using the sandbox, so a busy hour can return a 429 with a retry window.
Every response from a sandbox key is tagged sandbox: true, so an agent passing results onward can say plainly which data it saw.
Prefer MCP over curl
The same tools are available over the Model Context Protocol. Point any MCP client at the npm package and give it the sandbox key:
{
"mcpServers": {
"replenishradar": {
"command": "npx",
"args": ["-y", "@replenishradar/mcp-server"],
"env": {
"REPLENISHRADAR_API_KEY": "rr_sk_your_sandbox_key"
}
}
}
}
Works with Claude Desktop, Claude Code, Cursor, Windsurf, Cline, and OpenClaw. The full tool table, auth model, and rate limits are in the MCP documentation.
Where everything lives
Running it on a real catalog
The sandbox proves the math and the tool surface; it cannot tell a seller what their own inventory is doing. That needs a store connection, which is OAuth and takes a few minutes: start a 14-day trial. No credit card required.
A seller who wants a look before connecting anything can also read the sample Inventory Health Report, which walks an example store rather than a live one.