canonical: https://jentic.com/apis/jumpseller.com/jumpseller

# Jumpseller API

The Jumpseller API powers programmatic management of online stores hosted on Jumpseller. It exposes 165 endpoints covering products, categories, orders, customers, hooks (webhooks), JSApps, and store-level metadata, all returning JSON over HTTPS. Authentication uses HTTP Basic with login and auth token, deprecated query-string credentials, or OAuth 2 for app integrations. Rate limits are enforced at 800 requests per minute and 20 per second per IP and store, with detailed per-window response headers.

## For AI agents

Run a Jumpseller storefront from code: create and update products, fulfil orders, register webhooks, and install JSApps across 165 REST endpoints.

## Scope

Does not handle payment processing, shipping label generation, or accounting reconciliation - use for storefront catalog, hooks, and JSApp management only.

## Capabilities

- Create and update products including options and category assignments through /products.json and `/products/{id}/options.json`
- Filter products by status or category and count them server-side via `/products/status/{status}.json` and `/products/category/{category_id}.json`
- Search the product catalogue and paginate results up to 100 per page with `/products/search.json`
- Register and manage outbound webhooks (Hooks) for store events through /hooks.json
- Install, list, and remove JSApps that inject JavaScript into the storefront via /jsapps.json
- Read store metadata and configured languages with `/store/info.json` and `/store/languages.json`

## Use cases

### Catalog Sync From PIM to Storefront

Brands managing product data in a PIM or spreadsheet need their Jumpseller catalog to mirror it. A nightly job uses POST /products.json to add new SKUs, PUT `/products/{id}.json` to update price and stock, and DELETE `/products/{id}.json` to retire discontinued lines. With 800 requests per minute as the headline limit, a 5,000-product catalog can sync in under 10 minutes.

Example prompt: For each row in the PIM export, call PUT `/products/{id}.json` to update the price and stock fields, respecting Jumpseller's 20 requests per second rate limit.

### Order Webhook Pipeline

Operations teams want every new order to trigger downstream automations such as ERP entry, label printing, and customer SMS. POST /hooks.json registers a webhook for the order-created event pointing at the team's intake URL. Jumpseller then pushes JSON callbacks for every order, replacing manual CSV exports.

Example prompt: Call POST /hooks.json with event 'order_created' and url 'https://ops.example.com/jumpseller/orders' to start streaming new-order events.

### Storefront Customisation via JSApps

Agencies deploying customised storefronts use JSApps to inject vetted JavaScript without editing themes directly. POST /jsapps.json creates the app entry and returns a code; GET `/jsapps/{code}.json` verifies installation. This lets the agency push fixes across many merchant stores in minutes.

Example prompt: Create a JSApp via POST /jsapps.json with name 'cart-recovery-banner' and the bundled JS source, then call GET `/jsapps/{code}.json` to confirm it is active.

### Agent-Driven Catalog Edits

An AI merchandising assistant can update prices, statuses, and category placements through Jentic. The agent searches 'update a product', loads PUT `/products/{id}.json`, and executes the call with the merchant's auth held in Jentic's vault. This pushes everyday catalog tweaks behind an LLM without exposing the merchant's API token.

Example prompt: Through Jentic, search 'update a product', load PUT `/products/{id}.json`, and execute with id 4321 and a 10% price reduction on price.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/products.json` | Retrieve all products, paginated |
| POST | `/products.json` | Create a new product |
| PUT | `/products/{id}.json` | Update an existing product |
| GET | `/products/search.json` | Search products by query |
| GET | `/products/category/{category_id}.json` | List products in a category |
| POST | `/hooks.json` | Create a webhook for a store event |
| POST | `/jsapps.json` | Create a JSApp to inject storefront JavaScript |
| GET | `/store/info.json` | Retrieve store metadata |

## Key resources

- **Products** — Create, update, search, and count products plus their options and category assignments
- **Categories** — Filter products by category and count category membership
- **Hooks** — Register and manage outbound webhooks for store events
- **JSApps** — Install and remove storefront JavaScript apps by code
- **Store** — Retrieve store metadata and configured languages

## Why Jentic

- **Setup:** Wiring the Jumpseller API by hand means choosing among basic auth, login-and-authtoken query keys, or OAuth2, and navigating a large storefront surface yourself. Through Jentic you install once, import the Jumpseller API from the API Directory, store the credential once, and your agent calls it.
- **Permission scoping:** Jumpseller puts the product id in the URL path (`/products/{id}.json`), so a rule can pin your agent to one product: it can update that product and nothing else. You choose the operations it may call, so ones like registering hooks or creating JSApps are not included unless you add them.
- **Credential handling:** Your Jumpseller login and auth token, or OAuth2 access tokens, are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'update a product price' or 'register an order webhook', and Jentic returns the matching Jumpseller operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Shopify Admin API** — Larger e-commerce platform with deeper third-party app ecosystem than Jumpseller.
- **Ecwid API** — SMB-focused storefront platform similar in scope to Jumpseller.
- **Stripe API** — Pair Jumpseller orders with Stripe for richer payments, refunds, and subscription management.

## FAQ

### What authentication does the Jumpseller API use?

The Jumpseller API supports HTTP Basic auth with a login and 32-character auth token (recommended), deprecated login/authtoken query-string parameters, and OAuth 2 for Jumpseller Apps. Through Jentic, credentials are stored in the encrypted vault and passed at execution time.

### Can I create and update products with the Jumpseller API?

Yes. POST /products.json creates a product, PUT `/products/{id}.json` updates name, price, and other fields, and DELETE `/products/{id}.json` removes it. Product options are managed via `/products/{id}/options.json.`

### What are the rate limits for the Jumpseller API?

Jumpseller enforces 800 requests per minute and 20 requests per second, scoped per IP and store. Limit headroom is exposed via response headers Jumpseller-PerMinuteRateLimit-Remaining and Jumpseller-PerSecondRateLimit-Remaining, and persistent abuse triggers a temporary ban with a Jumpseller-BannedByRateLimit-Reset header.

### How do I register a webhook with the Jumpseller API through Jentic?

Search Jentic for 'register a webhook on jumpseller', load POST /hooks.json, and execute with the event name and target URL. Jentic resolves the merchant's stored credentials and returns the created hook's id.

### How does pagination work on Jumpseller list endpoints?

List endpoints return 50 objects per page by default with a maximum of 100 via the limit query parameter. Use page=2, page=3 and so on to walk through results until an empty response is returned.

### Can I install JavaScript on the storefront via the API?

Yes. POST /jsapps.json creates a JSApp entry that injects JavaScript into the storefront. The returned code is then used with GET, DELETE, and PUT variants of `/jsapps/{code}.json.`

### Can I limit what my agent is allowed to do with the Jumpseller API?

Yes. Because you run your own self-hosted Jentic One instance, your rules decide which Jumpseller operations and credentials the agent may use. Since the product id sits in the URL path (`/products/{id}.json`), you can pin the agent to a single product so it updates that one and nothing else. You also choose the operations it can call, so actions like registering hooks via POST /hooks.json or creating JSApps via POST /jsapps.json stay off limits unless you explicitly add them.
