# JENNi Runs API

**Canonical:** https://apis.io/apis/jennipro-com/jennipro-com-runs-api/  
**Provider:** JENNi — https://apis.io/providers/jennipro-com/  
**Base URL:** https://prod.jennipro.net

JENNi Runs API is one of 12 APIs that [JENNi](https://apis.io/providers/jennipro-com/) publishes on the [APIs.io](https://apis.io/) network, described by a machine-readable OpenAPI specification. Tagged areas include Runs. The published artifact set on APIs.io includes an OpenAPI specification.

Open, inspect and close runs. Every write belongs to a run, and a run is how JENNi attributes what you sent and (in snapshot mode) what to remove. ### How every ingestion integration is shaped Write your catalog and inventory into the JENNi product graph, then reconcile what JENNi holds against what you sent. ## The shape of every integration Work is always scoped to a **run**. A run is the unit of source attribution, batch idempotency and — in snapshot mode — the full-replace window. 1. `POST /provider/v1/stores` — register each store once. (Bringing a new business onto JENNi? Register it as a **retailer** first — see the Retailers guide — and pass its `retailer_id` here.) 2. `POST /provider/v1/runs` — open a run. 3. Push batches against that run (`/inventory/levels/bulk`, `/products/bulk`, or `/inventory/snapshots`). 4. `POST /provider/v1/runs/{run_id}/close` — close it. 5. `GET /provider/v1/products` / `GET /provider/v1/inventory/levels` — read back what landed. Only an **open** run accepts writes; a batch against a closed, expired or failed run is rejected with `409`. ## Two ingestion modes - **Mode A — incremental** (`mode: "incremental"`, scope `provider.write`). Each batch is a delta. Send what changed. Nothing is removed implicitly. - **Mode B — snapshot** (`mode: "snapshot"`, scope `provider.ingest`). The run carries the COMPLETE set of levels for ONE store. Anything absent from the snapshot is soft-deleted when the run closes. A snapshot run must declare its `store_id` and `expected_items` when it is opened. ## Partial success is normal Both bulk endpoints return a per-item envelope. **`200` means every item was accepted; `207` means at least one was not.** Always walk `results[]` and join on `event_id` — a 2xx status alone does not mean every item landed. An item is `accepted` (durable), `rejected` (permanently bad — do not retry unchanged) or `deferred` (indeterminate upstream failure — retry it). ## Errors Every 4xx and 5xx is RFC-7807 `application/problem+json`. Branch on the stable `type` URI, never on `title` or `detail`. Every response carries `X-Request-Id`; quote it in support requests. ## Tenancy Your tenant and your provider are derived from your API key. There is no tenant parameter anywhere in this API — not in a path, not in a query string, not in a body. A key is scoped to exactly one provider.

## Operations (5)

| Method | Path | Summary |
|---|---|---|
| GET | `/provider/v1/runs` | List your runs |
| POST | `/provider/v1/runs` | Open a run |
| GET | `/provider/v1/runs/{run_id}` | Get a run |
| POST | `/provider/v1/runs/{run_id}/close` | Close a run |
| GET | `/provider/v1/runs/{run_id}/items` | List the items recorded against a run |

## Machine-readable artifacts (1)

- **OpenAPI** — https://artifacts.apis.io/jennipro-com/openapi/jennipro-com-runs-api-openapi.yml

## Other JENNi APIs (11)

- [JENNi Account API](https://apis.io/apis/jennipro-com/jennipro-com-account-api/)
- [JENNi Brand portal API](https://apis.io/apis/jennipro-com/jennipro-com-brand-portal-api/)
- [JENNi Catalog API](https://apis.io/apis/jennipro-com/jennipro-com-catalog-api/)
- [JENNi Channel API](https://apis.io/apis/jennipro-com/jennipro-com-channel-api/)
- [JENNi Events API](https://apis.io/apis/jennipro-com/jennipro-com-events-api/)
- [JENNi Inventory API](https://apis.io/apis/jennipro-com/jennipro-com-inventory-api/)
- [JENNi Portal API](https://apis.io/apis/jennipro-com/jennipro-com-portal-api/)
- [JENNi Retailers API](https://apis.io/apis/jennipro-com/jennipro-com-retailers-api/)
- [JENNi Service API](https://apis.io/apis/jennipro-com/jennipro-com-service-api/)
- [JENNi Stores API](https://apis.io/apis/jennipro-com/jennipro-com-stores-api/)
- [JENNi Webhooks API](https://apis.io/apis/jennipro-com/jennipro-com-webhooks-api/)

## Tags

Runs

---

Profiled by [API Evangelist](https://apievangelist.com) and published on [APIs.io](https://apis.io/apis/jennipro-com/jennipro-com-runs-api/). The API's provider profile, Kin Score and agent-readiness rating are at https://apis.io/providers/jennipro-com/.
