subotiz-com Product API

The Product API from subotiz-com — 6 operation(s) for product.

Operations 7

GET /api/v1/products/{product_id} Get Product #
GET /api/v1/products List Product #
POST /api/v1/products Create Product #
GET /api/v1/products/version/{product_version_id} Get Product Version #
GET /api/v1/products/version List Product Version #
POST /api/v1/products/{product_version_id}/status Change Product Status #
GET /api/v1/product-categories List Product Categories #

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/subotiz-com:subotiz-com-product-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

subotiz-com-product-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Subotiz Com Product API
  version: 1.0.0
  description: 'Operations tagged Product across 2 of this provider''s published API definitions: subotiz-com-openapi.yml, v1-en.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://{api}.subotiz.com
  variables:
    api:
      default: api
security:
- sec0: []
tags:
- name: Product
paths:
  /api/v1/products/{product_id}:
    get:
      tags:
      - Product
      summary: Get Product
      operationId: v1-product-get-product
      parameters:
      - name: product_id
        in: path
        description: 商品ID
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/HeaderRequestID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Product'
    servers:
    - url: https://{api}.subotiz.com
      variables:
        api:
          default: api
  /api/v1/products:
    get:
      tags:
      - Product
      summary: List Product
      operationId: v1-product-list-product
      parameters:
      - name: product_ids
        in: query
        description: 'Filter by price IDs. Array size limit: [0,100]'
        schema:
          type: array
          items:
            type: string
      - name: status
        in: query
        description: "Filter status\n - draft: Draft \n - active: Active \n - disabled: Inactive"
        schema:
          type: string
      - name: starting_after
        in: query
        description: Cursor for pagination. starting_after is the object ID that defines your position in the list. For example, if you want to get the next page, you can use the last object's ID as the parameter value after getting the object list for the first time. Cannot be used together with ending_before
        schema:
          type: string
      - name: ending_before
        in: query
        description: Cursor for pagination. ending_before is the object ID that defines your position in the list. For example, if you want to get the previous page, you can use the first object's ID as the parameter value after getting the object list for the first time. Cannot be used together with starting_after
        schema:
          type: string
      - name: limit
        in: query
        description: 'Pagination parameter, interface defaults to sorting by creation time in descending order. Limit: [1, 100]'
        schema:
          type: integer
          format: int32
      - name: created_at.gt
        in: query
        description: Minimum value to filter by (exclusive, UTC time in RFC3339 format, such as '2025-01-01T00:00:00Z')
        schema:
          type: string
      - name: created_at.gte
        in: query
        description: Minimum value to filter by (inclusive, UTC time in RFC3339 format, such as '2025-01-01T00:00:00Z')
        schema:
          type: string
      - name: created_at.lt
        in: query
        description: Maximum value to filter by (exclusive, UTC time in RFC3339 format, such as '2025-01-01T00:00:00Z')
        schema:
          type: string
      - name: created_at.lte
        in: query
        description: Maximum value to filter by (inclusive, UTC time in RFC3339 format, such as '2025-01-01T00:00:00Z')
        schema:
          type: string
      - $ref: '#/components/parameters/HeaderRequestID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProductsResponse'
    post:
      tags:
      - Product
      summary: Create Product
      operationId: v1-product-create-product
      parameters:
      - $ref: '#/components/parameters/HeaderRequestID'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProductRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProductResponse'
    servers:
    - url: https://{api}.subotiz.com
      variables:
        api:
          default: api
  /api/v1/products/version/{product_version_id}:
    get:
      tags:
      - Product
      summary: Get Product Version
      operationId: v1-product-get-product-version
      parameters:
      - name: product_version_id
        in: path
        description: 商品版本ID
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/HeaderRequestID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductVersion'
    servers:
    - url: https://{api}.subotiz.com
      variables:
        api:
          default: api
  /api/v1/products/version:
    get:
      tags:
      - Product
      summary: List Product Version
      operationId: v1-product-list-product-version
      parameters:
      - name: product_version_ids
        in: query
        description: 'Filter by price version IDs. Array size limit: [0,100]'
        schema:
          type: array
          items:
            type: string
      - name: status
        in: query
        description: "Filter status\n - draft: Draft\n - active: Active\n - disabled: Inactive"
        schema:
          type: string
      - name: starting_after
        in: query
        description: Cursor for pagination. starting_after is the object ID that defines your position in the list. For example, if you want to get the next page, you can use the last object's ID as the parameter value after getting the object list for the first time. Cannot be used together with ending_before
        schema:
          type: string
      - name: ending_before
        in: query
        description: Cursor for pagination. ending_before is the object ID that defines your position in the list. For example, if you want to get the previous page, you can use the first object's ID as the parameter value after getting the object list for the first time. Cannot be used together with starting_after
        schema:
          type: string
      - name: limit
        in: query
        description: 'Pagination parameter, interface defaults to sorting by creation time in descending order. Limit: [1, 100]'
        schema:
          type: integer
          format: int32
      - name: created_at.gt
        in: query
        description: Minimum value to filter by (exclusive, UTC time in RFC3339 format, such as '2025-01-01T00:00:00Z')
        schema:
          type: string
      - name: created_at.gte
        in: query
        description: Minimum value to filter by (inclusive, UTC time in RFC3339 format, such as '2025-01-01T00:00:00Z')
        schema:
          type: string
      - name: created_at.lt
        in: query
        description: Maximum value to filter by (exclusive, UTC time in RFC3339 format, such as '2025-01-01T00:00:00Z')
        schema:
          type: string
      - name: created_at.lte
        in: query
        description: Maximum value to filter by (inclusive, UTC time in RFC3339 format, such as '2025-01-01T00:00:00Z')
        schema:
          type: string
      - $ref: '#/components/parameters/HeaderRequestID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProductsVersionResponse'
    servers:
    - url: https://{api}.subotiz.com
      variables:
        api:
          default: api
  /api/v1/products/{product_version_id}/status:
    post:
      tags:
      - Product
      summary: Change Product Status
      operationId: v1-product-change-product-status
      parameters:
      - name: product_version_id
        in: path
        description: Product version ID
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/HeaderRequestID'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChangeProductStatusRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangeProductStatusResponse'
    servers:
    - url: https://{api}.subotiz.com
      variables:
        api:
          default: api
  /api/v1/product-categories:
    get:
      tags:
      - Product
      summary: List Product Categories
      operationId: v1-product-list-product-categories
      parameters:
      - $ref: '#/components/parameters/HeaderRequestID'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListProductCategoriesResponse'
    servers:
    - url: https://{api}.subotiz.com
      variables:
        api:
          default: api
components:
  schemas:
    ListProductsResponse_Data:
      type: object
      properties:
        has_more:
          type: boolean
          description: Whether there is more data
        list:
          type: array
          items:
            $ref: '#/components/schemas/Product'
          description: Product information record list
    Product:
      type: object
      properties:
        product_id:
          type: string
          description: Product unique identifier on Subotiz
        product_name:
          type: string
          description: Product name
        product_status:
          type: string
          description: Product status
        merchant_product_id:
          type: string
          description: Product ID
        category_id:
          type: string
          description: Product type unique identifier on Subotiz
        description:
          type: string
          description: Product description
        image_url:
          type: string
          description: Product image URL
        category_name:
          type: string
          description: Product type
        created_by:
          type: string
          description: Product created by
        created_at:
          type: string
          description: Product created at
        features:
          type: array
          items:
            $ref: '#/components/schemas/ProductFeature'
          description: Product features
        metadata:
          type: object
          additionalProperties:
            type: string
          description: A set of key-value pairs that can be attached to an object, allowing you to store additional information in a structured format.
        quantity_unit:
          type: string
          description: Quantity unit name (product-level, defaults to "unit")
    ProductFeature:
      type: object
      properties:
        id:
          type: string
          description: Product feature unique identifier on Subotiz
        name:
          type: string
          description: Product feature name
        type:
          type: string
          description: "Product feature type\n - quantitative: Quantitative\n - qualitative: Qualitative"
    ProductVersion:
      type: object
      properties:
        product_id:
          type: string
          description: Product unique identifier on Subotiz
        product_name:
          type: string
          description: Product name
        product_status:
          type: string
          description: Product status
        merchant_product_id:
          type: string
          description: Product ID
        category_id:
          type: string
          description: Product type unique identifier on Subotiz
        description:
          type: string
          description: Product description
        image_url:
          type: string
          description: Product image URL
        category_name:
          type: string
          description: Product type
        created_by:
          type: string
          description: Product created by
        created_at:
          type: string
          description: Product created at
        features:
          type: array
          items:
            $ref: '#/components/schemas/ProductFeature'
          description: Product features
        metadata:
          type: object
          additionalProperties:
            type: string
          description: A set of key-value pairs that can be attached to an object, allowing you to store additional information in a structured format.
        product_version_id:
          type: string
          description: product version id
        quantity_unit:
          type: string
          description: Quantity unit name (product-level, defaults to "unit")
    CreateProductRequest:
      required:
      - product_name
      - category_id
      - image_url
      type: object
      properties:
        product_name:
          type: string
          description: Product name
        category_id:
          type: string
          description: Category ID
        image_url:
          type: string
          description: Image URL
        merchant_product_id:
          type: string
          description: Merchant product ID
        description:
          type: string
          description: Product description
        features:
          type: array
          items:
            $ref: '#/components/schemas/CreateProductFeature'
          description: Product features
        quantity_unit:
          type: string
          description: Quantity unit name (product-level, defaults to "unit"). Used to render "N units" on bills and invoices. Omit or pass an empty string to use the default "unit".
      description: Create product request
    ListProductCategoriesResponse:
      type: object
      properties:
        code:
          type: string
          description: error code
        message:
          type: string
          description: error message
        data:
          $ref: '#/components/schemas/ListProductCategoriesResponse_Data'
      description: List product categories response
    ChangeProductStatusResponse:
      type: object
      properties:
        code:
          type: string
          description: error code
        message:
          type: string
          description: error message
        data:
          $ref: '#/components/schemas/ChangeProductStatusResponse_Data'
      description: Change product status response
    ChangeProductStatusResponse_Data:
      type: object
      properties: {}
      description: Change product status response
    ListProductCategoriesResponse_Data:
      type: object
      properties:
        total:
          type: integer
          description: Total number of product categories
          format: int32
        list:
          type: array
          items:
            $ref: '#/components/schemas/ProductCategory'
          description: Product category list
      description: List product categories response
    CreateProductResponse_Data:
      type: object
      properties:
        product_id:
          type: string
          description: Product ID
        product_version_id:
          type: string
          description: Product version ID
      description: Create product response
    ListProductsVersionResponse:
      type: object
      properties:
        code:
          type: string
          description: error code
        message:
          type: string
          description: error message
        data:
          $ref: '#/components/schemas/ListProductsVersionResponse_Data'
    CreateProductResponse:
      type: object
      properties:
        code:
          type: string
          description: error code
        message:
          type: string
          description: error message
        data:
          $ref: '#/components/schemas/CreateProductResponse_Data'
      description: Create product response
    ProductCategory:
      type: object
      properties:
        category_id:
          type: string
          description: Product category ID
        category_name:
          type: string
          description: Product category name
        description:
          type: string
          description: Product category description
        category_status:
          type: string
          description: Product category status
        chinese_name:
          type: string
          description: Product category Chinese name
        chinese_description:
          type: string
          description: Product category Chinese description
        is_default:
          type: boolean
          description: Whether the product category is default
    ListProductsVersionResponse_Data:
      type: object
      properties:
        has_more:
          type: boolean
          description: Whether there is more data
        list:
          type: array
          items:
            $ref: '#/components/schemas/ProductVersion'
          description: Product information record list
    ChangeProductStatusRequest:
      required:
      - product_version_id
      - status
      type: object
      properties:
        product_version_id:
          type: string
          description: Product version ID
        status:
          type: string
          description: "Status:\n - draft: Draft\n - active: Active\n - disabled: Inactive"
    ListProductsResponse:
      type: object
      properties:
        code:
          type: string
          description: error code
        message:
          type: string
          description: error message
        data:
          $ref: '#/components/schemas/ListProductsResponse_Data'
    CreateProductFeature:
      type: object
      properties:
        name:
          type: string
          description: Product feature name
        type:
          type: string
          description: "Product feature type\n - quantitative: Quantitative\n - qualitative: Qualitative"
  parameters:
    HeaderRequestID:
      name: Request-Id
      in: header
      description: The unique identifier of the request
      required: true
      schema:
        type: string
        default: 008e3967-a1b5-48bb-be14-d5bff5092e61
  securitySchemes:
    sec0:
      type: http
      description: 'Bearer API Key authentication. Format: Authorization: Bearer {your_api_key}'
      scheme: bearer
x-refined-from:
- subotiz-com-openapi.yml
- v1-en.yaml