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-general-catalog-connector-operations-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: 3.2.0
info:
description: fabric's **Catalog Connector** API is a lightweight service that you can use when you have your own Product Information Management (PIM) and only want to integrate with other fabric services, such as Offers and OMS (excluding the fabric Products API service).
title: Catalog - Connector General Catalog Connector Operations API
version: 3.0.0
x-audience: external-public
contact:
email: support@fabric.inc
name: Product team
license:
name: fabric API License
url: https://fabric.inc/api-license
termsOfService: https://fabric.inc/terms-of-use
servers:
- url: https://api.fabric.inc/v3
description: Production URL
security:
- authorization: []
tags:
- name: General Catalog Connector Operations
description: Search for products based on the specified filter conditions.
paths:
/catalog-connector/products/search:
post:
tags:
- General Catalog Connector Operations
summary: Find Products
description: 'Use this endpoint to search for products based on names, IDs, SKUs, image URLs, and more. By specifying the appropriate query parameters, you can exclude one or more types of data, such as collections, categories, variants, attributes, and products within a bundle.
- Use the `CONTAINS` search operation to search for products based on keywords of SKU, name, and more.
- Use the `IN` search operation to search for products based on one or more values, such as IDs, names, SKUs, image URLs, attributes, and types.
- Use the less than or equals to, `LTE`, greater than or equals to, `GTE`, less than, `LT`, greater than, `GT` and equals `EQ` operations to search for date-specific values, such as time of creation or modification.'
operationId: getCatalogsBySearchCriteria
parameters:
- $ref: '#/components/parameters/xFabricTenantId'
- $ref: '#/components/parameters/localeParameter'
- $ref: '#/components/parameters/excludeBundleProductsParameter'
- $ref: '#/components/parameters/excludeCollectionsParameter'
- $ref: '#/components/parameters/excludeCategoriesParameter'
- $ref: '#/components/parameters/excludeVariantsParameter'
- $ref: '#/components/parameters/excludeAttributesParameter'
- $ref: '#/components/parameters/xFabricRequestId'
requestBody:
$ref: '#/components/requestBodies/productSearchRequest'
responses:
'200':
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/getProductsBySearchResponse'
examples:
Product:
$ref: '#/components/examples/productSearchResultExample'
'400':
$ref: '#/components/responses/badRequest'
'401':
$ref: '#/components/responses/notAuthorized'
'413':
$ref: '#/components/responses/payloadLimitExceededError'
'500':
$ref: '#/components/responses/internalServerError'
components:
schemas:
extendedCommonProductSchema:
description: Additional details of a product.
allOf:
- $ref: '#/components/schemas/commonProductSchemaWithIdentifiers'
type: object
properties:
categoryName:
type: string
description: The name of the category.
example: Shoes
categoryId:
type: string
description: A 24-character system-generated category ID.
example: 648055dff4aa98d6c43e02da
categories:
type: array
description: The list of categories, including their paths from the leaf category to the root category.
items:
$ref: '#/components/schemas/category'
collections:
type: array
description: The details of the collection used to display products on the storefront.
items:
type: object
additionalProperties: false
description: The collection details.
properties:
id:
type: string
description: A 24-character system-generated collection ID.
example: 648014741adc8a9de14e1a68
name:
type: string
description: The name of the collection.
example: Flash Sale
hierarchy:
type: array
description: The list of collections, including their paths from the leaf collection to the root collection.
items:
$ref: '#/components/schemas/category'
datetimeRangeOperation:
type: object
description: The search criteria based on date range.
properties:
op:
type: string
description: The type of search operation.
example: RANGE
enum:
- RANGE
fromValue:
type: string
description: The start date for searching, in UTC format.
example: '2022-09-14T22:10:30.618Z'
toValue:
type: string
description: The end date for searching, in UTC format.
example: '2023-04-14T22:10:30.618Z'
stringSearchOperation:
type: object
description: The search operation based on a string value, such as ID, name, SKU, image URL, attribute type, and more.
properties:
op:
type: string
description: The type of search operation.
example: IN
enum:
- IN
value:
type: array
items:
$ref: '#/components/schemas/stringSchema'
productType:
type: string
description: The type of product.
enum:
- BUNDLE
- VARIANT
- ITEM
example: ITEM
integerSearchOperation:
type: object
description: The search criteria based on integer values.
properties:
op:
type: string
description: The type of search operation.
example: IN
enum:
- IN
value:
type: array
items:
$ref: '#/components/schemas/integerSchema'
getProductsBySearchResponse:
description: Product Search Result list by IDs
allOf:
- $ref: '#/components/schemas/paginatedResultMeta'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/product'
attribute:
type: object
additionalProperties: false
description: The details of the attribute.
properties:
name:
$ref: '#/components/schemas/attributeName'
value:
$ref: '#/components/schemas/attributeValue'
id:
$ref: '#/components/schemas/attributeId'
type:
$ref: '#/components/schemas/attributeType'
attributeName:
type: string
description: The name of the attribute.
example: isOnSale
attributeId:
type: string
description: A 24-character system-generated attribute ID.
example: 6480216349256438cb7d53b5
sku:
type: string
description: Product SKU
example: 24ggs67-e89b-12e3-a456-026614174119
category:
type: object
additionalProperties: false
description: The details of a category.
properties:
id:
type: string
description: A 24-character system-generated category ID.
example: 648055dff4aa98d6c43e02da
name:
type: string
description: The name of the category.
example: Shoes
isRoot:
type: boolean
description: A flag indicating whether the given category is a root category. Set it to `true` if it's a root category and `false` if it isn't a root category.
example: true
attributes:
type: array
description: The details of an attribute.
items:
$ref: '#/components/schemas/attribute'
booleanSchema:
type:
- boolean
- 'null'
description: Represents a boolean schema.
example: true
commonProductSchema:
type: object
description: A common schema for product, variants, and bundles.
properties:
productName:
type: string
description: The name of the product.
example: Nike Men's Training Shoe
images:
type: array
description: The list of product images.
items:
type: string
example:
- https://myawsomestore.com/is/image/nike/8801290_s7
attributes:
type: array
description: The name of the attribute and its value.
items:
$ref: '#/components/schemas/attribute'
createdAt:
type: string
description: The time of product creation, in UTC format.
format: date-time
example: 2021-12-13 13:56:09.006000+00:00
updatedAt:
type: string
description: The time of last update to product, in UTC format.
format: date-time
example: 2021-12-13 13:56:09.006000+00:00
itemProductType:
type: string
description: Represents the `item` product type.
enum:
- ITEM
example: ITEM
product:
description: The details of a product based on the product type.
anyOf:
- $ref: '#/components/schemas/itemCatalog'
- $ref: '#/components/schemas/variantCatalog'
- $ref: '#/components/schemas/bundleCatalog'
attributeType:
type: string
description: The type of attribute.
enum:
- NUMBER
- BOOLEAN
- TEXT
- LOV
example: TEXT
bundleProductType:
type: string
description: Represents the `bundle` product type.
enum:
- BUNDLE
example: BUNDLE
attributeSearchOperation:
type: object
description: The search criteria based on attributes.
properties:
name:
$ref: '#/components/schemas/attributeName'
op:
type: string
description: The type of search operation.
example: IN
enum:
- IN
value:
type: array
items:
$ref: '#/components/schemas/attributeValue'
containsLessThanGreaterThanAttributeSearchOperation:
type: object
description: The search criteria based on the attributes.
properties:
name:
$ref: '#/components/schemas/attributeName'
op:
type: string
description: The type of search operation.
example: CONTAINS
enum:
- CONTAINS
- LTE
- GTE
- LT
- GT
value:
$ref: '#/components/schemas/attributeValue'
productTypeSearchOperation:
type: object
description: The search criteria based on product type.
properties:
op:
type: string
description: The type of search operation.
example: IN
enum:
- IN
value:
type: array
items:
$ref: '#/components/schemas/productType'
attributeValue:
anyOf:
- $ref: '#/components/schemas/booleanSchema'
- $ref: '#/components/schemas/stringSchema'
- $ref: '#/components/schemas/integerSchema'
- $ref: '#/components/schemas/doubleSchema'
- $ref: '#/components/schemas/arrayOfStringsSchema'
example: false
description: The attribute value.
paginatedResultMeta:
description: The pagination data.
type: object
properties:
offset:
type: integer
format: int32
default: 0
example: 5
description: 'The number of records to skip before returning records.
For example, with offset of 20 and limit of 10, the system returns the records from 21-30.'
limit:
type: integer
format: int32
default: 10
example: 10
description: The maximum number of records per page.
count:
type: integer
format: int32
example: 100
description: The total number of records.
bundleCatalog:
description: The details of a bundle.
allOf:
- $ref: '#/components/schemas/extendedCommonProductSchema'
type: object
properties:
type:
$ref: '#/components/schemas/bundleProductType'
bundleProducts:
type: array
description: The details of a bundle.
items:
$ref: '#/components/schemas/bundleProductSchema'
genericError:
type: object
description: The details of the error.
properties:
message:
type: string
description: A placeholder error message for all the 4xx, 5xx errors
example: Request is invalid
type:
type: string
description: A placeholder error type for all the 4xx, 5xx errors
example: Bad request
errors:
type: array
items:
type: object
properties:
type:
type: string
description: The error type.
example: CLIENT_ERROR
message:
type: string
description: The error message corresponding to the `type`.
example: Invalid request. Unable to find/create product
datetimeInOperation:
type: object
description: The search criteria based on date-time using the IN condition.
properties:
op:
type: string
description: The type of search operation.
example: IN
enum:
- IN
value:
type: array
items:
type: string
example:
- 2023-01-14 22:10:30.618000+00:00
- 2023-05-14 22:10:30.618000+00:00
description: The timestamp to search.
datetimeOperation:
type: object
description: The search criteria based on date-time.
properties:
op:
type: string
description: The type of search operation.
example: GTE
enum:
- EQUALS
- LTE
- GTE
- LT
- GT
value:
type: string
description: The timestamp to be searched, in UTC format.
example: '2021-09-14T22:10:30.618Z'
integerSchema:
type:
- integer
- 'null'
format: int32
description: Represents an integer schema.
example: 1
bundleProductSchema:
description: The details of the bundle.
type: object
properties:
quantity:
type: integer
format: int32
description: The quantity of the bundle.
example: 2
type:
$ref: '#/components/schemas/productType'
allOf:
- $ref: '#/components/schemas/commonProductSchemaWithIdentifiers'
itemCatalog:
description: The details of an item.
allOf:
- $ref: '#/components/schemas/extendedCommonProductSchema'
type: object
properties:
type:
$ref: '#/components/schemas/itemProductType'
variants:
type: array
description: The details of item variants.
items:
$ref: '#/components/schemas/commonProductSchemaWithIdentifiers'
containsSearchOperation:
type: object
description: 'The search criteria based on single-string search.
For example, by using the `CONTAINS` operation, you can search for `parentSku`, `categoryName`, `collectionName`, `bundleProductSku`, `bundleProductName`, and more.'
properties:
op:
type: string
description: The type of search operation.
example: CONTAINS
enum:
- CONTAINS
value:
$ref: '#/components/schemas/stringSchema'
variantProductType:
type: string
description: Represents the `variant` product type.
enum:
- VARIANT
example: VARIANT
commonProductSchemaWithIdentifiers:
allOf:
- $ref: '#/components/schemas/commonProductSchema'
type: object
description: A common schema for product, variants, and bundles along with their identifiers.
properties:
sku:
$ref: '#/components/schemas/sku'
id:
$ref: '#/components/schemas/id'
itemId:
type: integer
format: int32
example: 1682313863
description: A unique identifier of an item, a variant or a bundle.
variantCatalog:
description: The details of an item variant.
allOf:
- $ref: '#/components/schemas/extendedCommonProductSchema'
type: object
properties:
type:
$ref: '#/components/schemas/variantProductType'
parentSku:
$ref: '#/components/schemas/sku'
parentId:
type: string
description: A 24-character system-generated ID of the parent item.
example: 648014741adc8a9de14e1a68
productSearchRequest:
minProperties: 1
additionalProperties: false
description: The search criteria to find products.
type: object
properties:
keyword:
type: object
description: The search criteria based on keywords of product name, SKU, item ID, more.
properties:
op:
type: string
description: The type of search operation.
example: CONTAINS
enum:
- CONTAINS
value:
$ref: '#/components/schemas/stringSchema'
id:
$ref: '#/components/schemas/stringSearchOperation'
sku:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
productName:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
image:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
itemId:
$ref: '#/components/schemas/integerSearchOperation'
type:
$ref: '#/components/schemas/productTypeSearchOperation'
parentSku:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
categoryId:
$ref: '#/components/schemas/stringSearchOperation'
categoryName:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
collectionId:
$ref: '#/components/schemas/stringSearchOperation'
collectionName:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
bundleProductName:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
bundleProductSku:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
bundleProductCount:
$ref: '#/components/schemas/integerSearchOperation'
variantProductName:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
variantProductSku:
anyOf:
- $ref: '#/components/schemas/stringSearchOperation'
- $ref: '#/components/schemas/containsSearchOperation'
attributes:
type: array
items:
anyOf:
- $ref: '#/components/schemas/attributeSearchOperation'
- $ref: '#/components/schemas/containsLessThanGreaterThanAttributeSearchOperation'
createdAt:
anyOf:
- $ref: '#/components/schemas/datetimeInOperation'
- $ref: '#/components/schemas/datetimeRangeOperation'
- $ref: '#/components/schemas/datetimeOperation'
updatedAt:
anyOf:
- $ref: '#/components/schemas/datetimeInOperation'
- $ref: '#/components/schemas/datetimeRangeOperation'
- $ref: '#/components/schemas/datetimeOperation'
example:
keyword:
op: CONTAINS
value: NIKE237765
id:
op: IN
value:
- 6482b9524ffa4978fd9cbf5c
sku:
op: IN
value:
- NIKE237765
productName:
op: IN
value:
- Nike runner shoes
image:
op: IN
value:
- https://myawsomestore.com/is/image/nike/8801290_s7
itemId:
op: IN
value:
- 2700537
type:
op: IN
value:
- ITEM
parentSku:
op: CONTAINS
value: NIKE237765
parentId:
op: IN
value:
- 6482e47771609dfca2beb29f
categoryId:
op: IN
value:
- 648014741adc8a9de14e1a68
categoryName:
op: CONTAINS
value: Shoes
collectionName:
op: CONTAINS
value: Flash Sale
bundleProductSku:
op: CONTAINS
value: BUNDLE237765
bundleProductName:
op: CONTAINS
value: nike
bundleProductId:
op: IN
value:
- 60ad7e9d858eb50007abbb19#123124
bundleProductCount:
op: GTE
value: 10
attributes:
- name: Color
op: IN
value:
- black
attributeIds:
op: IN
value:
- 60ad7e9d858eb50007abbb19
- 4aqz7e9d858eb5000cdeas12
attributeTypes:
op: IN
value:
- TEXT
- BOOLEAN
- LOV
- NUMBER
createdAt:
op: LTE
value: 2021-12-13 13:56:09.006000+00:00
updatedAt:
op: LTE
value: 2021-12-13 13:56:09.006000+00:00
doubleSchema:
type:
- number
- 'null'
format: double
description: Represents a double schema.
example: 1
arrayOfStringsSchema:
type: array
description: Represents an array of string schema.
items:
type:
- string
- 'null'
description: Represents a string schema.
stringSchema:
type:
- string
- 'null'
description: Represents a string schema.
example: blue
id:
type: string
example: 5f7329dfd5288b0011332366
description: A 24-character system-generated ID.
responses:
internalServerError:
description: Internal server error
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/genericError'
example:
type: SERVER_ERROR
message: Internal Server Error
notAuthorized:
description: The requester is unauthorized.
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/genericError'
example:
type: UNAUTHORIZED_ERROR
message: Requester is unauthorized
payloadLimitExceededError:
description: The payload limit is exceeded. It should be less than 10MB.
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/genericError'
example:
type: PAYLOAD_LIMIT_EXCEEDED_ERROR
message: Payload exceeds maximum configured size
badRequest:
description: Request is invalid or malformed
headers:
x-fabric-request-id:
$ref: '#/components/headers/xFabricRequestId'
content:
application/json:
schema:
$ref: '#/components/schemas/genericError'
headers:
xFabricRequestId:
schema:
type: string
required: false
example: 263e731c-45c8-11ed-b878-0242ac120002
description: Unique request ID
requestBodies:
productSearchRequest:
content:
application/json:
schema:
type: object
required:
- search
properties:
sort:
type: string
description: The sorting criteria. Currently, the supported values are `sku`, `type`, `productName`, `itemId`, `categoryName`, and `createdAt`. Use `-` to view the results in a descending order and `+` for ascending.
example: +sku,-productName
search:
$ref: '#/components/schemas/productSearchRequest'
offset:
description: 'The number of records to skip before returning records.
For example, when the offset is 20 and limit is 10, the system returns records from 21 to 30.'
type: integer
format: int32
default: 0
example: 2
limit:
description: The maximum number of records per page.
type: integer
format: int32
default: 10
example: 10
parameters:
excludeCategoriesParameter:
name: excludeCategories
in: query
example: false
description: A flag indicating whether the categories should be excluded from the response. Set it to `true` to exclude categories and `false` to include them in the response.
schema:
type: boolean
required: false
excludeCollectionsParameter:
name: excludeCollections
in: query
example: false
description: A flag indicating whether the collections should be excluded from the response. Set it to `true` to exclude collections and `false` to include them in the response.
schema:
type: boolean
required: false
localeParameter:
name: locale
in: query
example: en-US
description: "The language code, which is a combination of language (ISO 639 format) and country (ISO 3166 format). \n\nThe default value is en-US.\n"
schema:
type: string
required: true
excludeBundleProductsParameter:
name: excludeBundleProducts
in: query
example: false
description: A flag indicating whether the products associated with a bundle should be excluded from the response. Set it to `true` to exclude products of a bundle and `false` to include them in the response.
schema:
type: boolean
required: false
excludeAttributesParameter:
name: excludeAttributes
in: query
example: false
description: A flag indicating whether attributes should be excluded from the response. Set it to `true` to exclude attributes and `false` to include them in the response.
schema:
type: boolean
required: false
xFabricRequestId:
in: header
name: x-fabric-request-id
description: Unique request ID
schema:
type: string
example: 263e731c-45c8-11ed-b878-0242ac120002
required: false
xFabricTenantId:
in: header
name: x-fabric-tenant-id
schema:
type: string
required: true
example: 5f328bf0b5f328bf0b5f328b
description: A header retrieved from your [Copilot Account Details](/v3/platform/settings/account-details/getting-the-account-id) that's used by the API to identify the tenant making the request. Tenant ID must be included in the authentication header for API requests to access any of fabric’s endpoints.
excludeVariantsParameter:
name: excludeVariants
in: query
example: false
description: A flag indicating whether item variants should be excluded from the response. Set it to `true` to exclude variants and `false` to include them in the response.
schema:
type: boolean
required: false
examples:
productSearchResultExample:
value:
offset: 0
limit: 10
count: 1
data:
- sku: NIKE237765
productName: Nike runner shoes
id: 6482b9524ffa4978fd9cbf5c
itemId: 2700537
categoryName: Sport Shoes
categoryId: 648014741adc8a9de14e1a68
images:
- https://myawsomestore.com/is/image/nike/8801290_s7
attributes:
- name: Color
value: black
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: false
id: 640db94f9fc28b255d155a42
type: BOOLEAN
type: ITEM
variants:
- sku: NIKE237766
productName: Nike runner white shoes
id: 648aa9280d7b561b4663038c
itemId: 2700538
images:
- https://myawsomestore.com/is/image/nike/8801291_s7
attributes:
- name: Color
value: White
id: 6480216349256438cb7d53b5
type: TEXT
- name: Wide Fit
value: true
id: 640db94f9fc28b255d155a42
type: BOOLEAN
- name: Brand
value:
- Nike
id: 640db94f9fc28b255d155a42
type: LOV
createdAt: 2021-12-13 13:56:09.006000+00:00
updatedAt: 2021-12-13 13:56:09.006000+00:00
categories:
- name: Sport Shoes
id: 648014741adc8a9de14e1a68
isRoot: false
attributes:
- name: Fit
value: Relaxed Fit
id: 648014741adc8a9de14e1a00
type: TEXT
- name: Shoes
id: 648aa9258fdef29675dbce42
isRoot: true
attributes:
- name: Material
value: Mesh
collections:
- name: Flash sale
id: 648055dff4aa98d6c43e02da
hierarchy:
- name: Flash Sale
id: 648055dff4aa98d6c43e02da
isRoot: false
attributes:
- name: Duration
value: 600
type: NUMBER
- name: Sales
id: 648055e0f4aa98d6c43e02f7
isRoot: true
createdAt: 2021-12-13 13:56:09.006000+00:00
updatedAt: 2021-12-13 13:56:09.006000+00:00
securitySchemes:
authorization:
type: http
scheme: bearer
bearerFormat: JWT
description: This is the authorization token used to authenticate the request. You must pass the access token generated from the system app. For more information, see the [Making your first API request](/v3/api-reference/getting-started/getting-started-with-fabric-apis#procedure) section.
externalDocs:
description: Find out more about Catalog Connector (previously called PIM Connector)
url: https://developer.fabric.inc/docs/products-overview
x-mint:
mcp:
enabled: true