Jumpseller API
# Endpoint Structure All URLs are in the format: ```text https://api.jumpseller.com/v1/path.json?login=XXXXXX&authtoken=storetoken ``` The path is prefixed by the API version and the URL takes as parameters the login (your store specific API login) and your authentication token. <br/><br/> *** # Version The current version of the API is **v1**. If we change the API in backward-incompatible ways, we'll increase the version number and maintain stable support for the old urls. <br/><br/> *** # Authentication The API uses a token-based authentication with a combination of a login key and an auth token. **Both parameters can be found on the left sidebar of the Account section, accessed from the main menu of your Admin Panel**. The auth token of the user can be reset on the same page.  The auth token is a **32 characters** string. If you are developing a Jumpseller App, the authentication should be done using [OAuth-2](/support/oauth-2). Please read the article [Build an App](/support/apps) for more information. <br/><br/> *** # Curl Examples To request all the products at your store, you would append the products index path to the base url to create an URL with the format: ```text https://api.jumpseller.com/v1/products.json?login=XXXXXX&authtoken=XXXXX ``` In curl, you can invoque that URL with: ```text curl -X GET "https://api.jumpseller.com/v1/products.json?login=XXXXXX&authtoken=XXXXX" ``` To create a product, you will include the JSON data and specify the MIME Type: ```text curl -X POST -d '{ "product" : {"name": "My new Product!", "price": 100} }' "https://api.jumpseller.com/v1/products.json?login=XXXXXX&authtoken=XXXXX" -H "Content-Type:application/json" ``` and to update the product identified with 123: ```text curl -X PUT -d '{ "product" : {"name": "My updated Product!", "price": 99} }' "https://api.jumpseller.com/v1/products/123.json?login=XXXXXX&authtoken=XXXXX" -H "Content-Type:application/json" ``` or delete it: ```text curl -X DELETE "https://api.jumpseller.com/v1/products/123.json?login=XXXXXX&authtoken=XXXXX" -H "Content-Type:application/json" ``` <br/><br/> *** # PHP Examples Create a new Product (POST method) ```php $url = 'https://api.jumpseller.com/v1/products.json?login=XXXXX&authtoken=XXXXX; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); //post method curl_setopt($ch, CURLOPT_POSTFIELDS, '{ "product" : {"name": "My updated Product!", "price": 99} }'); $result = curl_exec($ch); print_r($result); curl_close($ch); ``` <br/><br/> *** # Plain JSON only. No XML. * We only support JSON for data serialization. * Our node format has no root element. * We use snake_case to describe attribute keys (like "created_at"). * All empty value are replaced with **null** strings. * All API URLs end in .json to indicate that they accept and return JSON. * POST and PUT methods require you to explicitly state the MIME type of your request's body content as **"application/json"**. <br/><br/> *** # Rate Limit You can perform a maximum of: + 240 (two hundred forty) requests per minute and + 8 (eight) requests per second If you exceed this limit, you'll get a 403 Forbidden (Rate Limit Exceeded) response for subsequent requests. The rate limits apply by IP address and by store. This means that multiple requests on different stores are not counted towards the same rate limit. This limits are necessary to ensure resources are correctly used. Your application should be aware of this limits and retry any unsuccessful request, check the following Ruby stub: ```ruby tries = 0; max_tries = 3; begin HTTParty.send(method, uri) # perform an API call. sleep 0.5 tries += 1 rescue unless tries >= max_tries sleep 1.0 # wait the necessary time before retrying the call again. retry end end ``` Finally, you can review the Response Headers of each request: ```text Jumpseller-PerMinuteRateLimit-Limit: 60 Jumpseller-PerMinuteRateLimit-Remaining: 59 # requests available on the per-second interval Jumpseller-PerSecondRateLimit-Limit: 2 Jumpseller-PerSecondRateLimit-Remaining: 1 # requests available on the per-second interval ``` to better model your application requests intervals. In the event of getting your IP banned, the Response Header `Jumpseller-BannedByRateLimit-Reset` informs you the time when will your ban be reseted. <br/><br/> *** # Pagination By default we will return 50 objects (products, orders, etc) per page. There is a maximum of 100, using a query string `&limit=100`. If the result set gets paginated it is your responsibility to check the next page for more objects -- you do this by using query strings `&page=2`, `&page=3` and so on. ```text https://api.jumpseller.com/v1/products.json?login=XXXXXX&authtoken=XXXXX&page=3&limit=100 ``` <br/><br/> *** # More * [Jumpseller API wrapper](https://gitlab.com/jumpseller-api/ruby) provides a public Ruby abstraction over our API; * [Apps Page](/apps) showcases external integrations with Jumpseller done by technical experts; * [Imgbb API](https://api.imgbb.com/) provides an easy way to upload and temporaly host for images and files. <br/><br/> *** <br/><br/>
https://api.jumpseller.com/v1Auth: unknown
Endpoints: 79
Reachable: unknown
CORS: unknown
Endpoints
| Method | Path | Summary | Auth | Last Status | Latency |
|---|---|---|---|---|---|
GET |
/categories.json | Retrieve all Categories. | — | — | — |
GET |
/categories/count.json | Count all Categories. | — | — | — |
GET |
/categories/{id}.json | Retrieve a single Category. | — | — | — |
GET |
/checkout_custom_fields.json | Retrieve all Checkout Custom Fields. | — | — | — |
GET |
/checkout_custom_fields/{id}.json | Retrieve a single CheckoutCustomField. | — | — | — |
GET |
/countries.json | Retrieve all Countries. | — | — | — |
GET |
/countries/{country_code}.json | Retrieve a single Country information. | — | — | — |
GET |
/countries/{country_code}/regions.json | Retrieve all Regions from a single Country. | — | — | — |
GET |
/countries/{country_code}/regions/{region_code}.json | Retrieve a single Region information object. | — | — | — |
GET |
/custom_fields.json | Retrieve all Store's Custom Fields. | — | — | — |
GET |
/custom_fields/{id}.json | Retrieve a single CustomField. | — | — | — |
GET |
/custom_fields/{id}/select_options.json | Retrieve all Store's Custom Fields. | — | — | — |
GET |
/custom_fields/{id}/select_options/{custom_field_select_option_id}.json | Retrieve a single SelectOption from a CustomField. | — | — | — |
GET |
/customer_categories.json | Retrieve all Customer Categories. | — | — | — |
GET |
/customer_categories/{id}.json | Retrieve a single CustomerCategory. | — | — | — |
GET |
/customer_categories/{id}/customers.json | Retrieves the customers in a CustomerCategory. | — | — | — |
GET |
/customers.json | Retrieve all Customers. | — | — | — |
GET |
/customers/count.json | Count all Customers. | — | — | — |
GET |
/customers/email/{email}.json | Retrieve a single Customer by email. | — | — | — |
GET |
/customers/{id}.json | Retrieve a single Customer by id. | — | — | — |
GET |
/customers/{id}/fields | Retrieves the Customer Additional Field of a Customer. | — | — | — |
GET |
/customers/{id}/fields/{field_id} | Retrieve a single Customer Additional Field. | — | — | — |
GET |
/fulfillments.json | Retrieve all Fulfillments. | — | — | — |
GET |
/fulfillments/count.json | Count all Fulfillments. | — | — | — |
GET |
/fulfillments/{id}.json | Retrieve a single Fulfillment. | — | — | — |
GET |
/hooks.json | Retrieve all Hooks. | — | — | — |
GET |
/jsapps.json | Retrieve all the Store's JSApps. | — | — | — |
GET |
/jsapps/{code}.json | Retrieve a JSApp. | — | — | — |
GET |
/order/{id}/fulfillments.json | Retrieve the Fulfillments associated with the Order. | — | — | — |
GET |
/orders.json | Retrieve all Orders. | — | — | — |
GET |
/orders/after/{id}.json | Retrieve orders filtered by Order Id. | — | — | — |
GET |
/orders/count.json | Count all Orders. | — | — | — |
GET |
/orders/status/{status}.json | Retrieve orders filtered by status. | — | — | — |
GET |
/orders/{id}.json | Retrieve a single Order. | — | — | — |
GET |
/orders/{id}/history.json | Retrieve all Order History. | — | — | — |
GET |
/pages.json | Retrieve all Pages. | — | — | — |
GET |
/pages/count.json | Count all Pages. | — | — | — |
GET |
/pages/{id}.json | Retrieve a single Page by id. | — | — | — |
GET |
/partners/stores.json | Retrieve statistics. | — | — | — |
GET |
/payment_methods.json | Retrieve all Store's Payment Methods. | — | — | — |
GET |
/payment_methods/{id}.json | Retrieve a single Payment Method. | — | — | — |
GET |
/products.json | Retrieve all Products. | — | — | — |
GET |
/products/after/{id}.json | Retrieves Products after the given id. | — | — | — |
GET |
/products/category/{category_id}.json | Retrieve Products filtered by category. | — | — | — |
GET |
/products/category/{category_id}/count.json | Count Products filtered by category. | — | — | — |
GET |
/products/count.json | Count all Products. | — | — | — |
GET |
/products/search.json | Retrieve a Product List from a query. | — | — | — |
GET |
/products/status/{status}.json | Retrieve Products filtered by status. | — | — | — |
GET |
/products/status/{status}/count.json | Count Products filtered by status. | — | — | — |
GET |
/products/{id}.json | Retrieve a single Product. | — | — | — |
GET |
/products/{id}/attachments.json | Retrieve all Product Attachments. | — | — | — |
GET |
/products/{id}/attachments/count.json | Count all Product Attachments. | — | — | — |
GET |
/products/{id}/attachments/{attachment_id}.json | Retrieve a single Product Attachment. | — | — | — |
GET |
/products/{id}/digital_products.json | Retrieve all Product DigitalProducts. | — | — | — |
GET |
/products/{id}/digital_products/count.json | Count all Product DigitalProducts. | — | — | — |
GET |
/products/{id}/digital_products/{digital_product_id}.json | Retrieve a single Product DigitalProduct. | — | — | — |
GET |
/products/{id}/fields.json | Retrieve all Product Custom Fields | — | — | — |
GET |
/products/{id}/fields/count.json | Count all Product Custom Fields. | — | — | — |
GET |
/products/{id}/images.json | Retrieve all Product Images. | — | — | — |
GET |
/products/{id}/images/count.json | Count all Product Images. | — | — | — |
GET |
/products/{id}/images/{image_id}.json | Retrieve a single Product Image. | — | — | — |
GET |
/products/{id}/options.json | Retrieve all Product Options. | — | — | — |
GET |
/products/{id}/options/count.json | Count all Product Options. | — | — | — |
GET |
/products/{id}/options/{option_id}.json | Retrieve a single Product Option. | — | — | — |
GET |
/products/{id}/options/{option_id}/values.json | Retrieve all Product Option Values. | — | — | — |
GET |
/products/{id}/options/{option_id}/values/count.json | Count all Product Option Values. | — | — | — |
GET |
/products/{id}/options/{option_id}/values/{value_id}.json | Retrieve a single Product Option Value. | — | — | — |
GET |
/products/{id}/variants.json | Retrieve all Product Variants. | — | — | — |
GET |
/products/{id}/variants/count.json | Count all Product Variants. | — | — | — |
GET |
/products/{id}/variants/{variant_id}.json | Retrieve a single Product Variant. | — | — | — |
GET |
/promotions.json | Retrieve all Promotions. | — | — | — |
GET |
/promotions/{id}.json | Retrieve a single Promotion. | — | — | — |
GET |
/shipping_methods.json | Retrieve all Store's Shipping Methods. | — | — | — |
GET |
/shipping_methods/{id}.json | Retrieve a single Shipping Method. | — | — | — |
GET |
/store/check_status.json | Retrive store creation status. | — | — | — |
GET |
/store/info.json | Retrieve Store Information. | — | — | — |
GET |
/store/languages.json | Retrieve Store Languages. | — | — | — |
GET |
/taxes.json | Retrieve all Taxes. | — | — | — |
GET |
/taxes/{id}.json | Retrieve a single Tax information. | — | — | — |