Skip to content

Sandbox ​

0 reads and 1 write, on train 2026-11. Scopes: sandbox:write.

OperationMethodScopePath
Fill this sandbox with a starter catalogue so every other operation has something to answerPOSTsandbox:write/api/v1/sandbox/seed

Fill this sandbox with a starter catalogue so every other operation has something to answer ​

POST /api/v1/sandbox/seed

Scopes: sandbox:write

Writes a small starter set into the sandbox the key belongs to: two locations, two sales channels, two suppliers, three products with two variants each, and a stock level for every variant at both locations. Enough that every published read answers rows and every published write has a real channel, location and variant to name.

OptionalInWhat it is
Tightly-VersionheaderThe date train to answer on.
Idempotency-KeyheaderA string of your own, up to 255 characters, that makes this write safe to retry.
bash
curl -X POST "https://api.app.tightly.io/api/v1/sandbox/seed" \
  -H "Authorization: Bearer $TIGHTLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d @body.json

What it answers

json
{
  "data": {
    "already_seeded": false,
    "read_next": "GET /api/v1/variants/table?limit=5",
    "seeded": true,
    "written": {
      "inventory_levels": 12,
      "locations": 2,
      "product_categories": 1,
      "product_variants": 6,
      "products": 3,
      "sales_channels": 2,
      "suppliers": 2,
      "variant_sales_channels": 6,
      "variant_suppliers": 6
    }
  },
  "message": {
    "desc": "",
    "service": "sandbox",
    "severity": "SUCCESS"
  }
}

What it refuses

  • 401 key_invalid: "The API key is not valid." No usable key: malformed, unknown, revoked, expired or stopped. One refusal covers all five, because telling a caller which is which maps the surface for them. A request with no Authorization header at all is refused 400 before any key is looked for.
  • 403 scope_missing: "This key cannot write Sandbox." The key may not reach this operation. scope_missing when the key does not hold Sandbox for writing; plan_excludes when the organisation's plan does not include the public API; ip_not_allowed when the caller's address is outside the key's allowlist.
  • 409 "This is not a sandbox organisation, so it cannot be seeded. Make a sandbox with POST /api/v1/developer/sandbox, mint a test key in it, and send this with that key." This organisation is not a sandbox, so it cannot be seeded, and nothing was written. The sentence names the way out: make a sandbox with POST /api/v1/developer/sandbox, mint a test key in it, and send this with that key.
  • 429

Try it in the reference

Tightly API, version 2026-11.