fabric Categories API

The Categories API from fabric — 2 operation(s) for categories.

Operations 2

POST /v2/categories/import Bulk Import Categories #
GET /v2/categories/import/{import_id} Get Category Import Status #

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/fabric-com-categories-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

fabric-com-categories-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@fabric.inc
    name: fabric Support Team
  description: 'The Product Agent API helps brands optimize product data for AI-driven commerce.

    Monitor how your catalog performs in AI search experiences, enrich product

    content for stronger semantic visibility, and publish optimized data across

    channels. Designed for iterative improvement, Product Agent enables teams to

    measure, refine, and enhance product content as AI shopping behavior evolves.

    '
  license:
    name: fabric API License
    url: https://fabric.inc/api-license
  termsOfService: https://fabric.inc/terms-of-use
  title: fabric Orders Categories API
  version: 3.0.0
  x-audience: external-public
servers:
- url: https://commerceos.aiagents.fabric.inc/api
  description: Production API
security:
- authorization: []
tags:
- name: Categories
paths:
  /v2/categories/import:
    post:
      summary: Bulk Import Categories
      description: 'Upload a CSV file to import category data for the specified brand/domain. The import is processed asynchronously.


        **Expected CSV columns**

        - **name** or **category_name** (required): Category name

        - **parent_id** or **parent_category_id** (optional): Parent category ID

        - **breadcrumb** (optional): Full breadcrumb path

        - **inferred_category** (optional): AI-inferred category

        '
      operationId: importCategories
      security:
      - bearerAuth: []
      parameters:
      - $ref: '#/components/parameters/DomainHeader'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - file
              properties:
                file:
                  type: string
                  format: binary
                  description: CSV file containing categories (e.g. categories.csv)
                name:
                  type: string
                  description: Human friendly import name
                  example: Spring catalog category import
                notify_email:
                  type: boolean
                  description: Send an email when the import completes.
                  default: true
                  example: true
      responses:
        '202':
          description: Import accepted for asynchronous processing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryImportAcceptedResponse'
              example:
                import_id: a0cf63a0-55b8-4a25-9218-d972d4d65a79
                status: PENDING
                message: Import queued. Use GET /categories/import/{import_id} to track progress.
                created_at: '2026-03-12T17:58:13.605818Z'
        '400':
          description: Bad request - invalid CSV or missing file
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '401':
          description: Unauthorized - missing or invalid token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
      tags:
      - Categories
  /v2/categories/import/{import_id}:
    get:
      summary: Get Category Import Status
      description: Retrieve the current status and results of a category import created using `POST /api/v2/categories/import`.
      operationId: getCategoryImportStatus
      parameters:
      - $ref: '#/components/parameters/DomainHeader'
      - name: import_id
        in: path
        required: true
        description: Import ID returned from `POST /api/v2/categories/import`.
        schema:
          type: string
          format: uuid
          example: a0cf63a0-55b8-4a25-9218-d972d4d65a79
      responses:
        '200':
          description: Import status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryImportStatusResponse'
              example:
                import_id: a0cf63a0-55b8-4a25-9218-d972d4d65a79
                name: tcs_category_test.csv
                status: COMPLETED
                total_rows: 333
                processed_rows: 333
                new_count: 333
                updated_count: 0
                skipped_count: 0
                failed_count: 0
                input_filename: tcs_category_test.csv
                input_file_url: https://example.com/input.csv
                error_file_url: null
                error_message: null
                started_at: '2026-03-12T17:58:13.722428Z'
                completed_at: '2026-03-12T17:58:14.564840Z'
                created_at: '2026-03-12T17:58:13.605818Z'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '404':
          description: Import not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
      tags:
      - Categories
components:
  schemas:
    errorResponse:
      description: Error response
      properties:
        errors:
          description: Errors
          items:
            $ref: '#/components/schemas/errorResponse'
          type: array
        message:
          description: Error message
          example: Bad request
          type: string
        type:
          description: Error type
          example: CLIENT_ERROR
          type: string
      type: object
    CategoryImportAcceptedResponse:
      type: object
      required:
      - import_id
      - status
      - message
      - created_at
      properties:
        import_id:
          type: string
          format: uuid
          description: Identifier for the import job.
          example: a0cf63a0-55b8-4a25-9218-d972d4d65a79
        status:
          type: string
          example: PENDING
        message:
          type: string
          description: Status message for the queued import.
          example: Import queued. Use GET /categories/import/{import_id} to track progress.
        created_at:
          type: string
          format: date-time
          description: Timestamp when the import was created.
          example: '2026-03-12T17:58:13.605818Z'
    CategoryImportStatusResponse:
      type: object
      required:
      - import_id
      - status
      - total_rows
      - processed_rows
      - created_at
      properties:
        import_id:
          type: string
          format: uuid
        name:
          type: string
          example: tcs_category_test.csv
        status:
          type: string
          example: COMPLETED
        total_rows:
          type: integer
          example: 333
        processed_rows:
          type: integer
          example: 333
        new_count:
          type: integer
          example: 333
        updated_count:
          type: integer
          example: 0
        skipped_count:
          type: integer
          example: 0
        failed_count:
          type: integer
          example: 0
        input_filename:
          type: string
          example: tcs_category_test.csv
        input_file_url:
          type:
          - string
          - 'null'
          format: uri
          example: https://example.com/input.csv
        error_file_url:
          type:
          - string
          - 'null'
          format: uri
          example: null
        error_message:
          type:
          - string
          - 'null'
          example: null
        started_at:
          type:
          - string
          - 'null'
          format: date-time
        completed_at:
          type:
          - string
          - 'null'
          format: date-time
        created_at:
          type: string
          format: date-time
  parameters:
    DomainHeader:
      name: domain
      in: header
      required: true
      schema:
        type: string
        example: vessel.com
      description: The brand domain name (for example, `vessel.com` or `containerstore.com`) used to scope the request to a specific brand's data and configuration. The authenticated principal must be authorized for the specified brand.
  securitySchemes:
    authorization:
      bearerFormat: JWT
      scheme: bearer
      type: http
externalDocs:
  description: Find out more about Product Agent.
  url: https://developer.fabric.inc/product-agent/overview
x-mint:
  mcp:
    enabled: true