Jumpseller API

Jumpseller API — keyless JSON API

🔐 SecurityUNMONITORED
AUTH NONECORS AGENT ?HTTPS COMMERCIAL ?

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/> *

HOW IT'S SCORED ⓘ
Status badge · for your READMEshipapis health badge: — · unmonitored
ON PROBE SCHEDULE

We probe a documented GET and expect 2xx JSON — full uptime and health score. Open provider docs ↗

Uptime historystarts after first probe

On our probe schedule. Uptime charts appear after the first check lands.

Example responsefrom provider docs — not verified by us
GET https://api.jumpseller.com/openapi.json

{
  "openapi": "3.0.3",
  "info": {
    "title": "Jumpseller API",
    "description": "# Endpoint Structure\n\nAll URLs are in the format: \n\n```text\nhttps://api.jumpseller.com/v1/path.json  \n```\n\nThe path is prefixed by the API version.\n\nFor example, to request all the products at your store, you would append the products' index path to the base URL to create the following URL: \n\n```text\nhttps://api.jumpseller.com/v1/products.json\n```\n\n<br/><br/>\n***\n\n# Version\n\nThe current version of the API is **v1**.  \nIf we change the API in backward-incompatible ways, we'll increase the version number and maintain stable support for the old urls.\n<br/><br/>\n***\n\n# Authentication\n\nThe 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.\n\n![Store Login](/images/support/api/apilogin.png)\n\nThe auth token is a **32 characters** string.\n\nTo make authenticated requests, you can either use Basic Authentication  (recommend method) or provide the login and auth token in the URL parameters (deprecated method).\n\nIf 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.\n<br/><br/>\n## Query Parameters (deprecated)\nAssuming login is *XXXXX* and authtoken is *YYYYY* we present the following examples (the real values can be found on the left sidebar of the Account section, accessed from the main menu of your Admin Panel):\n### Curl Examples\nIn curl, you can invoke that URL with:  \n\n```bash\ncurl -X GET \"https://api.jumpseller.com/v1/products.json?login=XXXXX&authtoken=YYYYY\"\n```\n\nTo create a product, you will include the JSON data and specify the MIME Type:  \n\n```bash\ncurl -X POST -d '{ \"product\" : {\"name\": \"My new Product!\", \"price\": 100} }' \"https://api.jumpseller.com/v1/products.json?login=XXXXX&authtoken=YYYYY\" -H \"Content-Type:application/json\"\n```\n\nand to update the product identified with 123:  \n\n```bash\ncurl -X PUT -d '{ \"product\" : {\"name\": \"My updated Product!\", \"price\": 99} }' \"https://api.jumpseller.com/v1/products/123.json?login=XXXXX&authtoken=YYYYY\" -H \"Content-Type:application/json\"\n```\n\nor delete it:  \n\n```bash\ncurl -X DELETE \"https://api.jumpseller.com/v1/products/123.json?login=XXXXX&authtoken=YYYYY\" -H \"Content-Type:application/json\"\n```\n\n### PHP Examples\n```php\n$url = 'https://api.jumpseller.com/v1/products.json?login=XXXXX&authtoken=YYYYY';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));\n\ncurl_setopt($ch, CURLOPT_CUSTOMREQUEST, \"POST\"); //post method\ncurl_setopt($ch, CURLOPT_POSTFIELDS, '{ \"product\" : {\"name\": \"My updated Product!\", \"price\": 99} }');\n\n$result = curl_exec($ch);\nprint_r($result);\ncurl_close($ch);\n```\n\n## Basic Authentication\nAssuming login is *XXXXX* and authtoken is *YYYYY* we present the following examples (the real values can be found on the left sidebar of the Account section, accessed from the main menu of your Admin Panel):\n### Curl Examples\nIn curl, you can invoke that URL with:  \n\n```bash\ncurl -u XXXXX:YYYYY -X GET \"https://api.jumpseller.com/v1/products.json\"\n```\n\nTo create a product, you will include the JSON data and specify the MIME Type:  \n\n```bash\ncurl -u XXXXX:YYYYY -X POST -d '{ \"product\" : {\"name\": \"My new Product!\", \"price\": 100} }' \"https://api.jumpseller.com/v1/products.json\" -H \"Content-Type:application/json\"\n```\n\nand to update the product identified with 123:  \n\n```bash\ncurl -u XXXXX:YYYYY -X PUT -d '{ \"product\" : {\"name\": \"My updated Product!\", \"price\": 99} }' \"https://api.jumpseller.com/v1/products/123.json\" -H \"Content-Type:application/json\"\n```\n\nor delete it:  \n\n```bash\ncurl -u XXXXX:YYYYY -X DELETE \"https://api.jumpseller.com/v1/products/123.json\" -H \"Content-Type:application/json\"\n```\n\n### PHP Examples\n```php\n$login = 'XXXXX';\n$authtoken = 'YYYYY';\n$url = 'https://api.jumpseller.com/v1/products.json';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));\ncurl_setopt($ch, CURLOPT_USERPWD, $login . \":\" . $authtoken);\n\ncurl_setopt($ch, CURLOPT_CUSTOMREQUEST, \"POST\"); //post method\ncurl_setopt($ch, CURLOPT_POSTFIELDS, '{ \"product\" : {\"name\": \"My updated Product!\", \"price\": 99} }');\n\n$result = curl_exec($ch);\nprint_r($result);\ncurl_close($ch);\n```\n\n ## OAuth2\n OAuth 2 is the industry-standard protocol for authorization. Generally, OAuth provides to clients a secure delegated access to server resources on behalf of a resource owner. It specifies a process for resource owners to authorize third-party access to their server resources without sharing their credentials. Designed specifically to work with HTTP, OAuth essentially allows access tokens to be issued to third-party clients by an authorization server, with the approval of the resource owner. The third party then uses the access token to access the protected resources hosted by the resource server.\n\nRead more about this type of authentication and how to implement it in your Jumpseller App by clicking [here](/support/oauth-2).\n***\n\n<br/><br/>\n\n\n\n# OAuth 2.0 Authentication\n\nFor third-party apps and integrations, Jumpseller supports [OAuth 2.0](https://jumpseller.com/support/oauth-2/) via the **Authorization Code** grant flow.\n\n## Endpoints\n\n| Endpoint | URL |\n|----------|-----|\n| Authorization | `https://accounts.jumpseller.com/oauth/authorize` |\n| Token | `https://accounts.jumpseller.com/oauth/token` |\n| Token Info | `https://accounts.jumpseller.com/oauth/token/info` |\n\n## Authorization Code Flow\n\n### Step 1: Redirect user to authorize\n\n```\nGET https://accounts.jumpseller.com/oauth/authorize\n  ?client_id=YOUR_CLIENT_ID\n  &redirect_uri=https://yourapp.com/callback\n  &response_type=code\n  &scope=read_products write_orders\n```\n\nThe user logs in and approves access. Jumpseller redirects back to your `redirect_uri` with an authorization `code`.\n\n### Step 2: Exchange code for tokens\n\n```bash\ncurl -X POST https://accounts.jumpseller.com/oauth/token \\\n  -F grant_type=authorization_code \\\n  -F client_id=YOUR_CLIENT_ID \\\n  -F client_secret=YOUR_CLIENT_SECRET \\\n  -F code=AUTHORIZATION_CODE \\\n  -F redirect_uri=https://yourapp.com/callback\n```\n\nResponse:\n```json\n{\n  \"access_token\": \"ACCESS_TOKEN\",\n  \"token_type\": \"bearer\",\n  \"expires_in\": 3600,\n  \"refresh_token\": \"REFRESH_TOKEN\",\n  \"created_at\": 1502473092\n}\n```\n\n### Step 3: Use the access token\n\n```bash\ncurl -H \"Authorization: Bearer ACCESS_TOKEN\" \\\n  https://api.jumpseller.com/v1/products.json\n```\n\n### Step 4: Refresh expired tokens\n\nAccess tokens expire after **1 hour**. Use the refresh token to get a new one:\n\n```bash\ncurl -X POST https://accounts.jumpseller.com/oauth/token \\\n  -F grant_type=refresh_token \\\n  -F client_id=YOUR_CLIENT_ID \\\n  -F client_secret=YOUR_CLIENT_SECRET \\\n  -F refresh_token=REFRESH_TOKEN\n```\n\n## Scopes\n\nScopes follow the pattern `read_<resource>` and `write_<resource>`. Request only the scopes your app needs. Multiple scopes are separated by spaces.\n\n## Testing\n\nFor development and testing, use the out-of-band redirect URI: `urn:ietf:wg:oauth:2.0:oob`\n\n# Plain JSON only. No XML.\n\n* We only support JSON for data serialization.\n* Our node format has no root element.  \n* We use snake_case to describe attribute keys (like \"created_at\").  \n* All empty value are replaced with **null** strings.\n* All API URLs end in .json to indicate that they accept and return JSON.\n* POST and PUT methods require you to explicitly state the MIME type of your request's body content as **\"application/json\"**.\n<br/><br/>\n***\n\n# Rate Limit\nYou can perform a maximum of:\n\n+ 800 (eight hundred) requests per minute and\n+ 20 (twenty) requests per second \n\nIf you exceed this limit, you'll get a 429 Too Many Requests (Rate Limit Exceeded) response for subsequent requests.  \n\nThe 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.\n\nThis 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:\n\n```ruby\ntries = 0; limit = 3;\nbegin\n  HTTParty.send(method, uri) # perform an API call.\n  tries += 1\nrescue # 403 response\n  unless tries >= limit\n    sleep 1.0 # wait the necessary time before retrying the call again.\n    retry\n  end\nend\n```\n\nFinally, you can review the Response Headers of each request:\n\n```text\nJumpseller-PerMinuteRateLimit-Limit: 800  \nJumpseller-PerMinuteRateLimit-Remaining: 799 # requests available on the per-minute interval  \nJumpseller-PerSecondRateLimit-Limit: 20  \nJumpseller-PerSecondRateLimit-Remaining: 19 # requests available on the per-second interval\n``` \n\nto better model your application requests intervals.\n\nAfter 2000 rate-limit hits, we will set a temporary ban. The Response Header `Jumpseller-BannedByRateLimit-Reset` informs you the time (UTC) when will your ban be reseted:\n\n```text\nJumpseller-BannedByRateLimit-Reset: 2024-05-23T16:13:47+00:00\n``` \n\n<br/><br/>\n***\n\n# Pagination\n\nBy default we will return 50 objects (products, orders, etc) per page. There is a maximum of 100, using a query string `&limit=100`.\nIf 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.\n\n```text\nhttps://api.jumpseller.com/v1/products.json?page=3&limit=100\n```\n<br/><br/>\n***\n\n# More\n* [Jumpseller API wrapper](https://gitlab.com/jumpseller-api/ruby) provides a public Ruby abstraction over our API;\n* [Apps Page](/apps) showcases external integrations with Jumpseller done by technical experts;\n* [Imgbb API](https://api.imgbb.com/) provides an easy way to upload and temporaly host for images and files.\n<br/><br/>\n***\n<br/><br/>\n",
    "version": "1.0.0",
    "x-logo": {
      "url": "https://api.jumpseller.com/images/jumpseller-logo-full.svg",
      "altText": "Jumpseller logo",
      "href": "/"
    }
  },
  "servers": [
    {
      "url": "https://api.jumpseller.com/v1"
    }
  ],
  "paths": {
    "/store/info.json": {
      "get": {
        "tags": [
          "Stores"
        ],
        "summary": "Retrieve Store Information.",
        "security": [
          {
            "BasicAuthentication": [
              "assets"
            ]
          },
          {
            "loginParameter": [],
            "authtokenParameter": []
          }
        ],
        "parameters": [
          {
            "name": "fields",
            "in": "query",
            "description": "Comma separated values of the fields to query for the Store. Allowed values: name, code, currency, country, timezone, email, hooks_token, url, subscription_plan, logo, weight_unit, fb_pixel_id, whatsapp_phone, mobile_app_version, subscription_status, checkout_version, address.",
            "schema": {
              "type": "string",
              "format": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Store"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -u XXXXX:YYYYY -X GET \"https://api.jumpseller.com/v1/store/info.json\""
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n$login = 'XXXXX';\n$authtoken = 'YYYYY';\n$url = 'https://api.jumpseller.com/v1/store/info.json';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_USERPWD, $login . ':' . $authtoken);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);\n$response = curl_exec($ch);\ncurl_close($ch);\necho $response;"
          }
        ]
      }
    },
    "/store/languages.json": {
      "get": {
        "tags": [
          "Stores"
        ],
        "summary": "Retrieve Store Languages.",
        "security": [
          {
            "BasicAuthentication": [
              "assets"
            ]
          },
          {
            "loginParameter": [],
            "authtokenParameter": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Language"
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -u XXXXX:YYYYY -X GET \"https://api.jumpseller.com/v1/store/languages.json\""
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n$login = 'XXXXX';\n$authtoken = 'YYYYY';\n$url = 'https://api.jumpseller.com/v1/store/languages.json';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_USERPWD, $login . ':' . $authtoken);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);\n$response = curl_exec($ch);\ncurl_close($ch);\necho $response;"
          }
        ]
      }
    },
    "/hooks.json": {
      "get": {
        "tags": [
          "Hooks"
        ],
        "summary": "Retrieve all Hooks.",
        "security": [
          {
            "BasicAuthentication": [
              "hooks"
            ]
          },
          {
            "loginParameter": [],
            "authtokenParameter": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/LimitParam"
          },
          {
            "$ref": "#/components/parameters/PageParam"
          }
        ],
        "responses": {
          "200": {
            "description": "An array of Hooks",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Hook"
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -u XXXXX:YYYYY -X GET \"https://api.jumpseller.com/v1/hooks.json\""
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n$login = 'XXXXX';\n$authtoken = 'YYYYY';\n$url = 'https://api.jumpseller.com/v1/hooks.json';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_USERPWD, $login . ':' . $authtoken);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);\n$response = curl_exec($ch);\ncurl_close($ch);\necho $response;"
          }
        ]
      },
      "post": {
        "tags": [
          "Hooks"
        ],
        "summary": "Create a new Hook.",
        "security": [
          {
            "BasicAuthentication": [
              "hooks"
            ]
          },
          {
            "loginParameter": [],
            "authtokenParameter": []
          }
        ],
        "parameters": [],
        "requestBody": {
          "description": "Hook parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HookEdit"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Hook"
                }
              }
            }
          },
          "404": {
            "description": "Hook Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFound"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body",
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -u XXXXX:YYYYY -X POST \"https://api.jumpseller.com/v1/hooks.json\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"hook\": {\"event\": \"order_updated\", \"url\": \"https://example.com\"}}'"
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n$login = 'XXXXX';\n$authtoken = 'YYYYY';\n$url = 'https://api.jumpseller.com/v1/hooks.json';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_USERPWD, $login . ':' . $authtoken);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);\ncurl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['hook' => ['event' => 'order_updated', 'url' => 'https://example.com']]));\n$response = curl_exec($ch);\ncurl_close($ch);\necho $response;"
          }
        ]
      }
    },
    "/hooks/{id}.json": {
      "get": {
        "tags": [
          "Hooks"
        ],
        "summary": "Retrieve a single Hook.",
        "security": [
          {
            "BasicAuthentication": [
              "hooks"
            ]
          },
          {
            "loginParameter": [],
            "authtokenParameter": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the Hook",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Hook"
                }
              }
            }
          },
          "404": {
            "description": "Hook Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFound"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -u XXXXX:YYYYY -X GET \"https://api.jumpseller.com/v1/hooks/123.json\""
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n$login = 'XXXXX';\n$authtoken = 'YYYYY';\n$url = 'https://api.jumpseller.com/v1/hooks/123.json';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_USERPWD, $login . ':' . $authtoken);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);\n$response = curl_exec($ch);\ncurl_close($ch);\necho $response;"
          }
        ]
      },
      "put": {
        "tags": [
          "Hooks"
        ],
        "summary": "Update a Hook.",
        "security": [
          {
            "BasicAuthentication": [
              "hooks"
            ]
          },
          {
            "loginParameter": [],
            "authtokenParameter": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the Hook",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "Hook parameters.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HookEdit"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Hook"
                }
              }
            }
          },
          "404": {
            "description": "Hook Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFound"
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body",
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -u XXXXX:YYYYY -X PUT \"https://api.jumpseller.com/v1/hooks/123.json\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"hook\": {\"event\": \"order_updated\", \"url\": \"https://example.com\"}}'"
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n$login = 'XXXXX';\n$authtoken = 'YYYYY';\n$url = 'https://api.jumpseller.com/v1/hooks/123.json';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_USERPWD, $login . ':' . $authtoken);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);\ncurl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['hook' => ['event' => 'order_updated', 'url' => 'https://example.com']]));\n$response = curl_exec($ch);\ncurl_close($ch);\necho $response;"
          }
        ]
      },
      "delete": {
        "tags": [
          "Hooks"
        ],
        "summary": "Delete an existing Hook.",
        "security": [
          {
            "BasicAuthentication": [
              "hooks"
            ]
          },
          {
            "loginParameter": [],
            "authtokenParameter": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the Hook",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "Hook Not Found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFound"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -u XXXXX:YYYYY -X DELETE \"https://api.jumpseller.com/v1/hooks/123.json\""
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n$login = 'XXXXX';\n$authtoken = 'YYYYY';\n$url = 'https://api.jumpseller.com/v1/hooks/123.json';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_USERPWD, $login . ':' . $authtoken);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);\n$response = curl_exec($ch);\ncurl_close($ch);\necho $response;"
          }
        ]
      }
    },
    "/jsapps.json": {
      "get": {
        "tags": [
          "Apps"
        ],
        "summary": "Retrieve all the Store's JsApps.",
        "description": "When using an OAuth app token, results are limited to that app's JsApps.",
        "security": [
          {
            "BasicAuthentication": [
              "apps"
            ]
          },
          {
            "loginParameter": [],
            "authtokenParameter": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/JsAppResponse"
                  }
                },
                "examples": {
                  "success": {
                    "value": [
                      {
                        "js_app": {
                          "id": 1,
                          "url": "https://test.url.com/",
                          "template": "layout",
                          "element": "body",
                          "application_id": 1
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          "404": {
            "description": "No JsApps found for the store (or for the app when using an OAuth token).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "empty_store": {
                    "value": {
                      "message": "This store doesn't have any JsApps"
                    }
                  },
                  "empty_app": {
                    "value": {
                      "message": "This app doesn't have any JsApps"
                    }
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -u XXXXX:YYYYY -X GET \"https://api.jumpseller.com/v1/jsapps.json\""
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n$login = 'XXXXX';\n$authtoken = 'YYYYY';\n$url = 'https://api.jumpseller.com/v1/jsapps.json';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_USERPWD, $login . ':' . $authtoken);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);\n$response = curl_exec($ch);\ncurl_close($ch);\necho $response;"
          }
        ]
      },
      "post": {
        "tags": [
          "Apps"
        ],
        "summary": "Create a Store JsApp.",
        "security": [
          {
            "BasicAuthentication": [
              "apps"
            ]
          },
          {
            "loginParameter": [],
            "authtokenParameter": []
          }
        ],
        "parameters": [],
        "requestBody": {
          "description": "JsApp parameters to create. Requires an OAuth token of the Oauth Application that will own this JsApp.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JsAppEdit"
              },
              "examples": {
                "request": {
                  "value": {
                    "app": {
                      "url": "https://test.url.com/",
                      "template": "layout",
                      "element": "body"
                    }
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JsAppResponse"
                },
                "examples": {
                  "success": {
                    "value": {
                      "js_app": {
                        "id": 1,
                        "url": "https://test.url.com/",
                        "template": "layout",
                        "element": "body",
                        "application_id": 1
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad request, check your parameters.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "errors"
                  ],
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                },
                "examples": {
                  "validation": {
                    "value": {
                      "errors": [
                        "Element is not included in the list",
                        "Template is not included in the list"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-codegen-request-body-name": "body",
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -u XXXXX:YYYYY -X POST \"https://api.jumpseller.com/v1/jsapps.json\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"app\": {\"url\": \"https://example.com\", \"template\": \"layout\", \"element\": \"body\"}}'"
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n$login = 'XXXXX';\n$authtoken = 'YYYYY';\n$url = 'https://api.jumpseller.com/v1/jsapps.json';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_USERPWD, $login . ':' . $authtoken);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);\ncurl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');\ncurl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(['app' => ['url' => 'https://example.com', 'template' => 'layout', 'element' => 'body']]));\n$response = curl_exec($ch);\ncurl_close($ch);\necho $response;"
          }
        ]
      }
    },
    "/jsapps/{code}.json": {
      "get": {
        "tags": [
          "Apps"
        ],
        "summary": "Retrieve the JsApps of a given app.",
        "description": "When using an OAuth app token, the {code} must match the token's app.",
        "security": [
          {
            "BasicAuthentication": [
              "apps"
            ]
          },
          {
            "loginParameter": [],
            "authtokenParameter": []
          }
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "Code of the app",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/JsAppResponse"
                  }
                },
                "examples": {
                  "success": {
                    "value": [
                      {
                        "js_app": {
                          "id": 1,
                          "url": "https://test.url.com/",
                          "template": "layout",
                          "element": "body",
                          "application_id": 1
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          "403": {
            "description": "Not authorized to access JsApps for this app.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "forbidden": {
                    "value": {
                      "message": "Not authorized to access JsApps for this app"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "App not found or no JsApps for this app.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "app_not_found": {
                    "value": {
                      "message": "App with code 'test' not found"
                    }
                  },
                  "empty": {
                    "value": {
                      "message": "This app doesn't have any JsApps"
                    }
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -u XXXXX:YYYYY -X GET \"https://api.jumpseller.com/v1/jsapps/my-app.json\""
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n$login = 'XXXXX';\n$authtoken = 'YYYYY';\n$url = 'https://api.jumpseller.com/v1/jsapps/my-app.json';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_USERPWD, $login . ':' . $authtoken);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);\n$response = curl_exec($ch);\ncurl_close($ch);\necho $response;"
          }
        ]
      }
    },
    "/jsapps/{id}.json": {
      "delete": {
        "tags": [
          "Apps"
        ],
        "summary": "Delete an existing JsApp.",
        "description": "Only the store that owns the JsApp can delete it. When using an OAuth app token, the JsApp must also belong to that app.",
        "security": [
          {
            "BasicAuthentication": [
              "apps"
            ]
          },
          {
            "loginParameter": [],
            "authtokenParameter": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "Id of the JsApp",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "success": {
                    "value": {
                      "message": "JsApp deleted"
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Not authorized to delete this JsApp.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "forbidden": {
                    "value": {
                      "message": "Not authorized to delete this JsApp"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "JsApp not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "not_found": {
                    "value": {
                      "message": "JsApp not found"
                    }
                  }
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -u XXXXX:YYYYY -X DELETE \"https://api.jumpseller.com/v1/jsapps/123.json\""
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n$login = 'XXXXX';\n$authtoken = 'YYYYY';\n$url = 'https://api.jumpseller.com/v1/jsapps/123.json';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_USERPWD, $login . ':' . $authtoken);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);\n$response = curl_exec($ch);\ncurl_close($ch);\necho $response;"
          }
        ]
      }
    },
    "/apps/{code}/install_status.json": {
      "get": {
        "tags": [
          "Paid Apps"
        ],
        "summary": "Retrieve an OauthApplication installation status.",
        "security": [
          {
            "BasicAuthentication": [
              "apps"
            ]
          },
          {
            "loginParameter": [],
            "authtokenParameter": []
          }
        ],
        "parameters": [
          {
            "name": "code",
            "in": "path",
            "description": "Code of the app",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaidAppInstallStatus"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Shell",
            "label": "cURL",
            "source": "curl -u XXXXX:YYYYY -X GET \"https://api.jumpseller.com/v1/apps/my-app/install_status.json\""
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n$login = 'XXXXX';\n$authtoken = 'YYYYY';\n$url = 'https://api.jumpseller.com/v1/apps/my-app/install_status.json';\n$ch = curl_init($url);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\ncurl_setopt($ch, CURLOPT_USERPWD, $login . ':' . $authtoken);\ncurl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);\n$response = curl_exec($ch);\ncurl_close($ch);\necho $response;"
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "Store": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Store Name"
          },
          "code": {
            "type": "string",
            "description": "Store Code"
          },
          "currency": {
            "type": "string",
            "description": "Store Currency"
          },
          "country": {
            "type": "string",
            "description": "Store Country"
          },
          "timezone": {
            "type": "string",
            "description": "Store Timezone"
          },
          "email": {
            "type": "string",
            "description": "Store Admin Email"
          },
          "hooks_token": {
            "type": "string",
            "description": "Store Hooks Auth token"
          },
          "url": {
            "type": "string",
            "description": "Store URL"
          }
        }
      },
      "App": {
        "type": "object",
        "properties": {
          "apps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppFields"
            }
          }
        }
      },
      "AppFields": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Code of the app"
          },
          "name": {
            "type": "string",
            "description": "Name of the app"
          },
          "author": {
            "type": "string",
            "description": "Author of the app"
          },
          "page": {
            "type": "string",
            "description": "Page of the app"
          },
          "description": {
            "type": "string",
            "description": "Description of the app"
          },
          "js": {
            "type": "boolean",
            "description": "True if the app is a JsApp",
            "default": false
          }
        }
      },
      "JsAppCreate": {
        "type": "object",
        "required": [
          "url",
          "template"
        ],
        "properties": {
          "url": {
            "type": "string",
            "description": "Url of the HTML to inject"
          },
          "template": {
            "type": "string",
            "description": "Template of Store Theme to inject HTML",
            "enum": [
              "layout",
              "home"
            ]
          },
          "element": {
            "type": "string",
            "description": "Element of Template to inject HTML",
            "enum": [
              "body",
              "head"
            ]
          }
        }
      },
      "JsApp": {
        "type": "object",
        "required": [
          "id",
          "url"
        ],
        "properties": {
          "id": {
            "type": "integer",
            "description": "Unique identifier of the JsApp",
            "format": "int32"
          },
          "url": {
            "type": "string",
            "description": "Url of the HTML to inject"
          },
          "template": {
            "type": "string",
            "description": "Template of Store Theme to inject HTML",
            "enum": [
              "layout",
              "home"
            ]
          },
          "element": {
            "type": "string",
            "description": "Element of Template to inject HTML",
            "enum": [
              "body",
              "head"
            ]
          },
          "application_id": {
            "type": "integer",
            "description": "Associated OAuth application id",
            "format": "int32"
          }
        }
      },
      "JsAppResponse": {
        "type": "object",
        "required": [
          "js_app"
        ],
        "properties": {
          "js_app": {
            "$ref": "#/components/schemas/JsApp"
          }
        }
      },
      "PaidAppInstallStatus": {
        "type": "object",
        "properties": {
          "app_code": {
            "type": "string",
            "description": "Code of the app"
          },
          "store_id": {
            "type": "integer",
            "description": "ID of the store"
          },
          "installed": {
            "type": "boolean",
            "description": "Field to tell if the app is installed"
          },
          "subscription_plan": {
            "type": "string",
            "description": "Store subscription plan"
          },
          "subscription_status": {
            "type": "string",
            "description": "Store subscription status"
          },
          "code": {
            "type": "string",
            "description": "Code of the store"
          }
        }
      },
      "PaidAppBillingCycle": {
        "type": "object",
        "properties": {
          "billing_start": {
            "type": "string",
            "description": "Start date of the billing cycle"
          },
          "billing_end": {
            "type": "string",
            "description": "End date of the billing cycle"
          }
        }
      }
    },
    "securitySchemes": {
      "BasicAuthentication": {
        "type": "http",
        "scheme": "basic",
        "description": "Basic authentication in the format of `login:authtoken` or `partner_code:auth_token`."
      },
      "loginParameter": {
        "type": "apiKey",
        "in": "query",
        "name": "login",
        "description": "API OAuth login. Learn how to get yours [here](#section/Authentication)."
      },
      "authtokenParameter": {
        "type": "apiKey",
        "in": "query",
        "name": "authtoken",
        "description": "API OAuth token. Learn how to get yours [here](#section/Authentication)."
      },
      "auth_tokenParameter": {
        "type": "apiKey",
        "in": "query",
        "name": "auth_token",
        "description": "Partner authentication token."
      },
      "OAuth2": {
        "type": "oauth2",
        "description": "OAuth 2.0 authorization code flow. Register your app at the Jumpseller Admin Panel to get client credentials. See https://jumpseller.com/support/oauth-2/ for details.",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://accounts.jumpseller.com/oauth/authorize",
            "tokenUrl": "https://accounts.jumpseller.com/oauth/token",
            "refreshUrl": "https://accounts.jumpseller.com/oauth/token",
            "scopes": {
              "read_products": "Read products, variants, images, options, and custom fields",
              "write_products": "Create, update, and delete products",
              "read_orders": "Read orders, fulfillments, and order history",
              "write_orders": "Create, update, and refund orders",
              "read_customers": "Read customer accounts and groups",
              "write_customers": "Create, update, and delete customers",
              "read_categories": "Read product categories",
              "write_categories": "Create, update, and delete categories"
            }
          }
        }
      }
    },
    "parameters": {
      "LoginParam": {
        "name": "login",
        "in": "query",
        "description": "API OAuth login.",
        "required": false,
        "schema": {
          "type": "string",
          "format": "string"
        }
      },
      "AuthtokenParam": {
        "name": "authtoken",
        "in": "query",
        "description": "API OAuth token.",
        "required": false,
        "schema": {
          "type": "string",
          "format": "string"
        }
      },
      "LimitParam": {
        "name": "limit",
        "in": "query",
        "description": "List restriction",
        "schema": {
          "maximum": 100,
          "type": "integer",
          "format": "integer",
          "default": 50
        }
      },
      "PageParam": {
        "name": "page",
        "in": "query",
        "description": "List page",
        "schema": {
          "type": "integer",
          "format": "integer",
          "default": 1
        }
      },
      "LocaleParam": {
        "name": "locale",
        "in": "query",
        "description": "Locale code of the translation",
        "schema": {
          "type": "string",
          "format": "string"
        }
      },
      "LocationIDParam": {
        "name": "id",
        "in": "path",
        "description": "Id of the location",
        "required": true,
        "schema": {
          "type": "integer",
          "format": "int32"
        }
      },
      "CartIDParam": {
        "name": "id",
        "in": "path",
        "description": "Id of the cart",
        "required": true,
        "schema": {
          "type": "integer",
          "format": "int32"
        }
      },
      "ProductIDParam": {
        "name": "id",
        "in": "path",
        "description": "Id of the Product",
        "required": true,
        "schema": {
          "type": "integer",
          "format": "int32"
        }
      }
    }
  }
}
Call itcurl · fetch · python
curl "https://api.jumpseller.com/openapi.json"
const res = await fetch("https://api.jumpseller.com/openapi.json");
const data = await res.json();
console.log(data);
import requests

res = requests.get("https://api.jumpseller.com/openapi.json")
print(res.json())
Endpoints · 6On scheduleFULL DOCS ↗
On schedule — GET /openapi.json awaits first probe
GET/openapi.jsonPROBED

Jumpseller API — keyless JSON API

GET/openapi.json?limit=5

Paginated variant with limit parameter.

GET/store/info.json

Retrieve Store Information.

GET/store/languages.json

Retrieve Store Languages.

GET/hooks.json

Retrieve all Hooks.

GET/hooks/{id}.json

Retrieve a single Hook.

Machine-readable spec

We probe a documented GET and expect 2xx JSON — full uptime and health score. Export includes every documented route below.

Response-shape history

Not tracked yet. Shape-change history starts once this API joins our probe schedule.

Jumpseller API: common questions

Is Jumpseller API free to use?

Yes — Jumpseller API is a free security API. Free tier: Free — limits not published. Whether the free tier allows commercial use is unclear — check the provider docs.

Does Jumpseller API need an API key?

No — Jumpseller API needs no API key or signup. You can call it straight away; rate limits still apply (Unpublished).

Can I call Jumpseller API from the browser?

Yes — Jumpseller API returns CORS headers over HTTPS, so front-end code can fetch it directly with no backend proxy. Use the fetch snippet on this page, or hit "Run live" to try it now.

Is Jumpseller API up right now?

Jumpseller API is catalogued but not yet on our probe schedule, so we don't publish a live status for it. Check the provider's own status page or docs for its current state.