Jumpseller Categories API

The Categories API from Jumpseller — 3 operation(s) for categories.

GitHub OpenAPI

Operations 6

GET /categories.json Retrieve all Categories #
POST /categories.json Create a new Category #
GET /categories/count.json Count all Categories #
GET /categories/{id}.json Retrieve a single Category #
PUT /categories/{id}.json Modify an existing Category #
DELETE /categories/{id}.json Delete an existing Category #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/jumpseller-com:jumpseller-com-categories-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

jumpseller-com-categories-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Jumpseller Com Categories API
  version: 1.0.0
  x-logo:
    url: https://api.jumpseller.com/images/jumpseller-logo-full.svg
    altText: Jumpseller logo
    href: /
  description: 'Operations tagged Categories across 2 of this provider''s published API definitions: jumpseller-com-openapi-openapi.json, jumpseller-com-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.jumpseller.com/v1
tags:
- name: Categories
paths:
  /categories.json:
    get:
      tags:
      - Categories
      summary: Retrieve all Categories
      security:
      - BasicAuthentication:
        - assets
      - loginParameter: []
        authtokenParameter: []
      - OAuth2:
        - read_store
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: curl -u XXXXX:YYYYY -X GET "https://api.jumpseller.com/v1/categories.json"
      - lang: PHP
        label: PHP
        source: '<?php

          $login = ''XXXXX'';

          $authtoken = ''YYYYY'';

          $url = ''https://api.jumpseller.com/v1/categories.json'';

          $ch = curl_init($url);

          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

          curl_setopt($ch, CURLOPT_USERPWD, $login . '':'' . $authtoken);

          curl_setopt($ch, CURLOPT_HTTPHEADER, [''Content-Type: application/json'']);

          $response = curl_exec($ch);

          curl_close($ch);

          echo $response;'
      - lang: Ruby
        label: Ruby
        source: 'require ''net/http''

          require ''json''


          uri = URI(''https://api.jumpseller.com/v1/categories.json'')

          http = Net::HTTP.new(uri.host, uri.port)

          http.use_ssl = true


          request = Net::HTTP::Get.new(uri)

          request.basic_auth(''XXXXX'', ''YYYYY'')

          request[''Content-Type''] = ''application/json''


          response = http.request(request)

          puts JSON.parse(response.body)'
      - lang: Python
        label: Python
        source: "import requests\n\nresponse = requests.get(\n    'https://api.jumpseller.com/v1/categories.json',\n    auth=('XXXXX', 'YYYYY')\n)\nprint(response.json())"
      - lang: JavaScript
        label: JavaScript
        source: "const response = await fetch('https://api.jumpseller.com/v1/categories.json', {\n  method: 'GET',\n  headers: {\n    'Authorization': 'Basic ' + btoa('XXXXX:YYYYY'),\n    'Content-Type': 'application/json'\n  }\n});\n\nconst data = await response.json();\nconsole.log(data);"
      operationId: getCategoriesJson
      x-operation-id-source: derived
    post:
      tags:
      - Categories
      summary: Create a new Category
      description: Category's permalink is automatically generated from the given category's name.
      security:
      - BasicAuthentication:
        - assets
      - loginParameter: []
        authtokenParameter: []
      - OAuth2:
        - write_store
      parameters: []
      requestBody:
        description: Category parameters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryEdit'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
      x-codegen-request-body-name: body
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -u XXXXX:YYYYY -X POST \"https://api.jumpseller.com/v1/categories.json\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"category\": {\"name\": \"My Example\", \"parent_id\": 123}}'"
      - lang: PHP
        label: PHP
        source: '<?php

          $login = ''XXXXX'';

          $authtoken = ''YYYYY'';

          $url = ''https://api.jumpseller.com/v1/categories.json'';

          $ch = curl_init($url);

          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

          curl_setopt($ch, CURLOPT_USERPWD, $login . '':'' . $authtoken);

          curl_setopt($ch, CURLOPT_HTTPHEADER, [''Content-Type: application/json'']);

          curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ''POST'');

          curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([''category'' => [''name'' => ''My Example'', ''parent_id'' => 123]]));

          $response = curl_exec($ch);

          curl_close($ch);

          echo $response;'
      - lang: Ruby
        label: Ruby
        source: 'require ''net/http''

          require ''json''


          uri = URI(''https://api.jumpseller.com/v1/categories.json'')

          http = Net::HTTP.new(uri.host, uri.port)

          http.use_ssl = true


          request = Net::HTTP::Post.new(uri)

          request.basic_auth(''XXXXX'', ''YYYYY'')

          request[''Content-Type''] = ''application/json''

          request.body = { category: { name: ''My Example'', parent_id: 123 } }.to_json


          response = http.request(request)

          puts JSON.parse(response.body)'
      - lang: Python
        label: Python
        source: "import requests\n\nresponse = requests.post(\n    'https://api.jumpseller.com/v1/categories.json',\n    auth=('XXXXX', 'YYYYY'),\n    json={'category': {'name': 'My Example', 'parent_id': 123}}\n)\nprint(response.json())"
      - lang: JavaScript
        label: JavaScript
        source: "const response = await fetch('https://api.jumpseller.com/v1/categories.json', {\n  method: 'POST',\n  headers: {\n    'Authorization': 'Basic ' + btoa('XXXXX:YYYYY'),\n    'Content-Type': 'application/json'\n  },\n  body: JSON.stringify({\"category\": {\"name\": \"My Example\", \"parent_id\": 123}})\n});\n\nconst data = await response.json();\nconsole.log(data);"
      operationId: postCategoriesJson
      x-operation-id-source: derived
    servers:
    - url: https://api.jumpseller.com/v1
  /categories/count.json:
    get:
      tags:
      - Categories
      summary: Count all Categories
      security:
      - BasicAuthentication:
        - assets
      - loginParameter: []
        authtokenParameter: []
      - OAuth2:
        - read_store
      parameters: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Count'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: curl -u XXXXX:YYYYY -X GET "https://api.jumpseller.com/v1/categories/count.json"
      - lang: PHP
        label: PHP
        source: '<?php

          $login = ''XXXXX'';

          $authtoken = ''YYYYY'';

          $url = ''https://api.jumpseller.com/v1/categories/count.json'';

          $ch = curl_init($url);

          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

          curl_setopt($ch, CURLOPT_USERPWD, $login . '':'' . $authtoken);

          curl_setopt($ch, CURLOPT_HTTPHEADER, [''Content-Type: application/json'']);

          $response = curl_exec($ch);

          curl_close($ch);

          echo $response;'
      - lang: Ruby
        label: Ruby
        source: 'require ''net/http''

          require ''json''


          uri = URI(''https://api.jumpseller.com/v1/categories/count.json'')

          http = Net::HTTP.new(uri.host, uri.port)

          http.use_ssl = true


          request = Net::HTTP::Get.new(uri)

          request.basic_auth(''XXXXX'', ''YYYYY'')

          request[''Content-Type''] = ''application/json''


          response = http.request(request)

          puts JSON.parse(response.body)'
      - lang: Python
        label: Python
        source: "import requests\n\nresponse = requests.get(\n    'https://api.jumpseller.com/v1/categories/count.json',\n    auth=('XXXXX', 'YYYYY')\n)\nprint(response.json())"
      - lang: JavaScript
        label: JavaScript
        source: "const response = await fetch('https://api.jumpseller.com/v1/categories/count.json', {\n  method: 'GET',\n  headers: {\n    'Authorization': 'Basic ' + btoa('XXXXX:YYYYY'),\n    'Content-Type': 'application/json'\n  }\n});\n\nconst data = await response.json();\nconsole.log(data);"
      operationId: getCategoriesCountJson
      x-operation-id-source: derived
    servers:
    - url: https://api.jumpseller.com/v1
  /categories/{id}.json:
    get:
      tags:
      - Categories
      summary: Retrieve a single Category
      security:
      - BasicAuthentication:
        - assets
      - loginParameter: []
        authtokenParameter: []
      - OAuth2:
        - read_store
      parameters:
      - name: id
        in: path
        description: Id of the Category
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: The selected Category.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
        '404':
          description: Category 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/categories/123.json"
      - lang: PHP
        label: PHP
        source: '<?php

          $login = ''XXXXX'';

          $authtoken = ''YYYYY'';

          $url = ''https://api.jumpseller.com/v1/categories/123.json'';

          $ch = curl_init($url);

          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

          curl_setopt($ch, CURLOPT_USERPWD, $login . '':'' . $authtoken);

          curl_setopt($ch, CURLOPT_HTTPHEADER, [''Content-Type: application/json'']);

          $response = curl_exec($ch);

          curl_close($ch);

          echo $response;'
      - lang: Ruby
        label: Ruby
        source: 'require ''net/http''

          require ''json''


          uri = URI(''https://api.jumpseller.com/v1/categories/123.json'')

          http = Net::HTTP.new(uri.host, uri.port)

          http.use_ssl = true


          request = Net::HTTP::Get.new(uri)

          request.basic_auth(''XXXXX'', ''YYYYY'')

          request[''Content-Type''] = ''application/json''


          response = http.request(request)

          puts JSON.parse(response.body)'
      - lang: Python
        label: Python
        source: "import requests\n\nresponse = requests.get(\n    'https://api.jumpseller.com/v1/categories/123.json',\n    auth=('XXXXX', 'YYYYY')\n)\nprint(response.json())"
      - lang: JavaScript
        label: JavaScript
        source: "const response = await fetch('https://api.jumpseller.com/v1/categories/123.json', {\n  method: 'GET',\n  headers: {\n    'Authorization': 'Basic ' + btoa('XXXXX:YYYYY'),\n    'Content-Type': 'application/json'\n  }\n});\n\nconst data = await response.json();\nconsole.log(data);"
      operationId: getCategories{id}Json
      x-operation-id-source: derived
    put:
      tags:
      - Categories
      summary: Modify an existing Category
      security:
      - BasicAuthentication:
        - assets
      - loginParameter: []
        authtokenParameter: []
      - OAuth2:
        - write_store
      parameters:
      - name: id
        in: path
        description: Id of the Category
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        description: Category parameters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CategoryEdit'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category'
        '404':
          description: Category 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/categories/123.json\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"category\": {\"name\": \"My Example\", \"parent_id\": 123}}'"
      - lang: PHP
        label: PHP
        source: '<?php

          $login = ''XXXXX'';

          $authtoken = ''YYYYY'';

          $url = ''https://api.jumpseller.com/v1/categories/123.json'';

          $ch = curl_init($url);

          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

          curl_setopt($ch, CURLOPT_USERPWD, $login . '':'' . $authtoken);

          curl_setopt($ch, CURLOPT_HTTPHEADER, [''Content-Type: application/json'']);

          curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ''PUT'');

          curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([''category'' => [''name'' => ''My Example'', ''parent_id'' => 123]]));

          $response = curl_exec($ch);

          curl_close($ch);

          echo $response;'
      - lang: Ruby
        label: Ruby
        source: 'require ''net/http''

          require ''json''


          uri = URI(''https://api.jumpseller.com/v1/categories/123.json'')

          http = Net::HTTP.new(uri.host, uri.port)

          http.use_ssl = true


          request = Net::HTTP::Put.new(uri)

          request.basic_auth(''XXXXX'', ''YYYYY'')

          request[''Content-Type''] = ''application/json''

          request.body = { category: { name: ''My Example'', parent_id: 123 } }.to_json


          response = http.request(request)

          puts JSON.parse(response.body)'
      - lang: Python
        label: Python
        source: "import requests\n\nresponse = requests.put(\n    'https://api.jumpseller.com/v1/categories/123.json',\n    auth=('XXXXX', 'YYYYY'),\n    json={'category': {'name': 'My Example', 'parent_id': 123}}\n)\nprint(response.json())"
      - lang: JavaScript
        label: JavaScript
        source: "const response = await fetch('https://api.jumpseller.com/v1/categories/123.json', {\n  method: 'PUT',\n  headers: {\n    'Authorization': 'Basic ' + btoa('XXXXX:YYYYY'),\n    'Content-Type': 'application/json'\n  },\n  body: JSON.stringify({\"category\": {\"name\": \"My Example\", \"parent_id\": 123}})\n});\n\nconst data = await response.json();\nconsole.log(data);"
      operationId: putCategories{id}Json
      x-operation-id-source: derived
    delete:
      tags:
      - Categories
      summary: Delete an existing Category
      security:
      - BasicAuthentication:
        - assets
      - loginParameter: []
        authtokenParameter: []
      - OAuth2:
        - write_store
      parameters:
      - name: id
        in: path
        description: Id of the Category
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
        '404':
          description: Category 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/categories/123.json"
      - lang: PHP
        label: PHP
        source: '<?php

          $login = ''XXXXX'';

          $authtoken = ''YYYYY'';

          $url = ''https://api.jumpseller.com/v1/categories/123.json'';

          $ch = curl_init($url);

          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

          curl_setopt($ch, CURLOPT_USERPWD, $login . '':'' . $authtoken);

          curl_setopt($ch, CURLOPT_HTTPHEADER, [''Content-Type: application/json'']);

          $response = curl_exec($ch);

          curl_close($ch);

          echo $response;'
      - lang: Ruby
        label: Ruby
        source: 'require ''net/http''

          require ''json''


          uri = URI(''https://api.jumpseller.com/v1/categories/123.json'')

          http = Net::HTTP.new(uri.host, uri.port)

          http.use_ssl = true


          request = Net::HTTP::Delete.new(uri)

          request.basic_auth(''XXXXX'', ''YYYYY'')

          request[''Content-Type''] = ''application/json''


          response = http.request(request)

          puts JSON.parse(response.body)'
      - lang: Python
        label: Python
        source: "import requests\n\nresponse = requests.delete(\n    'https://api.jumpseller.com/v1/categories/123.json',\n    auth=('XXXXX', 'YYYYY')\n)\nprint(response.json())"
      - lang: JavaScript
        label: JavaScript
        source: "const response = await fetch('https://api.jumpseller.com/v1/categories/123.json', {\n  method: 'DELETE',\n  headers: {\n    'Authorization': 'Basic ' + btoa('XXXXX:YYYYY'),\n    'Content-Type': 'application/json'\n  }\n});\n\nconst data = await response.json();\nconsole.log(data);"
      operationId: deleteCategories{id}Json
      x-operation-id-source: derived
    servers:
    - url: https://api.jumpseller.com/v1
components:
  schemas:
    CategoryEditFields:
      type: object
      properties:
        name:
          type: string
          description: Name of the Category
        parent_id:
          type: integer
          description: Unique identifier of the Parent Category
          format: int32
    Count:
      type: object
      properties:
        count:
          type: integer
          format: int32
    Category:
      type: object
      properties:
        category:
          $ref: '#/components/schemas/CategoryFields'
    NotFound:
      type: object
      properties:
        message:
          type: string
    CategoryEdit:
      type: object
      properties:
        category:
          $ref: '#/components/schemas/CategoryEditFields'
    CategoryFields:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier of the Category
          format: int32
        name:
          type: string
          description: Name of the Category
        parent_id:
          type: integer
          description: Unique identifier of the Parent Category
          format: int32
        permalink:
          type: string
          description: Category unique URL path
    CategoryEditFields_2:
      type: object
      properties:
        name:
          type: string
          description: Name of the Category
        default_order:
          type: string
          description: Default order of the products in the category
          enum:
          - position-asc
          - name-asc
          - name-desc
          - price-asc
          - price-desc
          - date-desc
        description:
          type: string
          description: Description of the Category
        filters_visibility:
          type: boolean
          description: Indicates if the filters are visible in the category page
          default: true
        not_recommendable:
          type: boolean
          description: Indicates if the category is recommendable or not
          default: false
        parent_id:
          type: integer
          description: Unique identifier of the Parent Category
          format: int32
        permalink:
          type: string
          description: Category unique URL path.
        page_title:
          type: string
          description: SEO Page title for the category page. If not set, category name will be used as page title.
        meta_description:
          type: string
          description: SEO Meta description for the category page. If not set, category description will be used as meta description.
    BadParams:
      type: object
      properties:
        message:
          type: string
    MessageObject:
      type: object
      properties:
        message:
          type: string
    CategoryFields_2:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier of the Category
          format: int32
        name:
          type: string
          description: Name of the Category
        description:
          type:
          - string
          - 'null'
          description: Description of the Category
        parent_id:
          type:
          - integer
          - 'null'
          description: Unique identifier of the Parent Category. Null for top-level categories.
          format: int32
        permalink:
          type: string
          description: Category unique URL path
        images:
          type: array
          items:
            type: object
            properties:
              id:
                type: integer
                format: int32
                description: Unique identifier of the image
              url:
                type: string
                description: Complete URL of the image
        products:
          type: array
          description: Products in the Category
          items:
            type: object
            properties:
              id:
                type: integer
                format: int32
                description: Unique identifier of the Product
    CategoryCreate:
      type: object
      properties:
        category:
          $ref: '#/components/schemas/CategoryCreateFields'
    CategoryCreateFields:
      type: object
      properties:
        name:
          type: string
          description: Name of the Category
        parent_id:
          type: integer
          description: Unique identifier of the Parent Category. Omit to create a top-level category.
          format: int32
      required:
      - name
  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
            read_store: Read store information and settings
            write_store: Update store settings
            read_settings: Read store configuration
            write_settings: Update store configuration
            read_shipping_methods: Read shipping methods and rates
            write_shipping_methods: Create and update shipping methods
            read_payment_methods: Read payment methods
            write_payment_methods: Create and update payment methods
            read_hooks: Read webhooks
            write_hooks: Create, update, and delete webhooks
            read_promotions: Read promotions and discounts
            write_promotions: Create, update, and delete promotions
            read_taxes: Read tax rules
            write_taxes: Create and update tax rules
            read_pages: Read store pages
            write_pages: Create, update, and delete pages
            read_countries: Read country information
            write_countries: Update country settings
            read_custom_fields: Read product custom fields
            write_custom_fields: Create and update custom fields
            read_checkout_custom_fields: Read checkout additional fields
            write_checkout_custom_fields: Update checkout additional fields
            read_customer_categories: Read customer categories
            write_customer_categories: Create and update customer categories
            read_jsapps: Read JavaScript apps
            write_jsapps: Create, update, and delete JavaScript apps
            read_apps: Read installed apps
            read_fulfillments: Read fulfillment information
            write_fulfillments: Create and update fulfillments
            read_locations: Read warehouse locations
            write_locations: Create and update locations
            write_reviews: Manage product reviews
            read_transaction_ledgers: Read store balance
            write_store_setup: Create new stores via the store setup endpoint
x-refined-from:
- jumpseller-com-openapi-openapi.json
- jumpseller-com-openapi.json