Skip to main content
POST
/
product-attributes
/
search
Find Attributes
curl --request POST \
  --url https://api.fabric.inc/v3/product-attributes/search \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "match": {
    "id": {
      "op": "IN",
      "value": [
        "blue"
      ]
    },
    "name": {
      "op": "IN",
      "value": [
        "blue"
      ],
      "locale": [
        "en_US"
      ]
    },
    "description": {
      "op": "IN",
      "value": [
        "blue"
      ]
    },
    "target": {
      "op": "EQUALS",
      "value": "PRODUCT"
    },
    "type": {
      "op": "EQUALS",
      "value": "TEXT"
    },
    "subType": {
      "op": "EQUALS",
      "value": "SINGLE"
    },
    "createdAt": {
      "op": "RANGE",
      "fromValue": "2022-04-20T10:24:36.162Z",
      "toValue": "2023-04-20T10:24:36.162Z"
    },
    "updatedAt": {
      "op": "RANGE",
      "fromValue": "2022-04-20T10:24:36.162Z",
      "toValue": "2023-04-20T10:24:36.162Z"
    }
  },
  "sort": "+name,-isMandatory",
  "offset": 2,
  "limit": 10
}
'
{
  "data": [
    {
      "id": "64c1557de1f95e3214660ceb",
      "name": "serialNumber",
      "description": "Serial number which starts with the 1 and keeps incrementing 10 for the subsequent call",
      "type": "SERIAL",
      "target": "PRODUCT",
      "isLocalizable": false,
      "validation": {
        "isMandatory": false,
        "isManualOverwrite": false,
        "formula": "",
        "startWith": 1,
        "increment": 10
      },
      "updatedAt": "2023-07-26T17:18:47.162Z",
      "createdAt": "2023-07-26T17:18:47.162Z",
      "updatedBy": "test@email.com"
    },
    {
      "id": "64c1557ce1f95e3214660ce6",
      "name": "isLive",
      "description": "Boolean attribute to capture if the product is live.",
      "type": "BOOLEAN",
      "target": "PRODUCT",
      "isLocalizable": false,
      "validation": {
        "isMandatory": true
      },
      "updatedAt": "2023-07-26T17:18:47.162Z",
      "createdAt": "2023-07-26T17:18:47.162Z",
      "updatedBy": "test@email.com"
    },
    {
      "id": "64c1557be1f95e3214660ce1",
      "name": "Date Attribute",
      "description": "Attribute to capture date",
      "type": "DATETIME",
      "target": "PRODUCT",
      "isLocalizable": false,
      "validation": {
        "isMandatory": false,
        "dateFormat": "MM/DD/YYYY",
        "formula": ""
      },
      "updatedAt": "2023-07-26T17:18:47.162Z",
      "createdAt": "2023-07-26T17:18:47.162Z",
      "updatedBy": "test@email.com"
    },
    {
      "id": "64c1557be1f95e3214660c12",
      "name": "percentage",
      "description": "Attribute to capture percentage",
      "type": "NUMBER",
      "isLocalizable": false,
      "target": "PRODUCT",
      "validation": {
        "isMandatory": false,
        "isManualOverwrite": false,
        "formula": "",
        "isDecimal": true,
        "max": 100,
        "min": 0
      },
      "updatedAt": "2023-07-26T17:18:47.162Z",
      "createdAt": "2023-07-26T17:18:47.162Z",
      "updatedBy": "test@email.com"
    },
    {
      "id": "64c1557be1f95e3214660cdc",
      "name": "Weight in pounds",
      "description": "Weight of the parcel in pounds",
      "type": "NUMBER",
      "isLocalizable": false,
      "target": "PRODUCT",
      "validation": {
        "isMandatory": false,
        "isManualOverwrite": false,
        "formula": "(async ()=> parseFloat(await attribute('64c15579e1f95e3214660cce')) * 2.2)()",
        "isDecimal": true
      },
      "updatedAt": "2023-07-26T17:18:47.162Z",
      "createdAt": "2023-07-26T17:18:47.162Z",
      "updatedBy": "test@email.com"
    },
    {
      "id": "64c15579e1f95e3214660cce",
      "name": "Weight",
      "description": "Weight of the parcel",
      "type": "NUMBER",
      "isLocalizable": false,
      "target": "PRODUCT",
      "validation": {
        "isMandatory": false,
        "isManualOverwrite": false,
        "formula": "",
        "isDecimal": true
      },
      "updatedAt": "2023-07-26T17:18:47.162Z",
      "createdAt": "2023-07-26T17:18:47.162Z",
      "updatedBy": "test@email.com"
    },
    {
      "id": "64c1557ae1f95e3214660cd9",
      "name": "Age",
      "description": "Attribute to capture age",
      "type": "NUMBER",
      "isLocalizable": false,
      "target": "PRODUCT",
      "validation": {
        "isMandatory": false,
        "isManualOverwrite": false,
        "formula": "",
        "isDecimal": false
      },
      "updatedAt": "2023-07-26T17:18:47.162Z",
      "createdAt": "2023-07-26T17:18:47.162Z",
      "updatedBy": "test@email.com"
    },
    {
      "id": "64c15579e1f95e3214660abc",
      "name": "MultiOption",
      "description": "Color Attribute",
      "isLocalizable": false,
      "target": "PRODUCT",
      "type": "OPTIONS",
      "validation": {
        "isMandatory": false,
        "isManualOverwrite": false,
        "subType": "MULTIPLE",
        "acceptedValues": [
          "Colour",
          "Flavour"
        ]
      },
      "updatedAt": "2023-07-26T17:18:47.162Z",
      "createdAt": "2023-07-26T17:18:47.162Z",
      "updatedBy": "test@email.com"
    },
    {
      "id": "64c15579e1f95e3214660cce",
      "name": "MultiOption",
      "description": "Color Attribute",
      "isLocalizable": true,
      "target": "PRODUCT",
      "type": "OPTIONS",
      "validation": {
        "isMandatory": false,
        "isManualOverwrite": false,
        "subType": "MULTIPLE",
        "localizedAcceptedValues": {
          "en-GB": [
            "Colour",
            "Flavour"
          ],
          "en-US": [
            "Color",
            "Flavor"
          ]
        }
      },
      "localizedProperties": {
        "en-GB": {
          "name": "Multi-Option"
        }
      },
      "updatedAt": "2023-07-26T17:18:47.162Z",
      "createdAt": "2023-07-26T17:18:47.162Z",
      "updatedBy": "test@email.com"
    },
    {
      "id": "64c1557ae1f95e3214660dd3",
      "name": "Color",
      "description": "Color Attribute",
      "isLocalizable": true,
      "target": "PRODUCT",
      "type": "TEXT",
      "validation": {
        "isMandatory": false,
        "subType": "TEXT_AREA",
        "formula": "",
        "isManualOverwrite": false
      },
      "localizedProperties": {
        "en-GB": {
          "name": "Colour"
        }
      },
      "updatedAt": "2023-07-26T17:18:47.162Z",
      "createdAt": "2023-07-26T17:18:47.162Z",
      "updatedBy": "test@email.com"
    },
    {
      "id": "64c15577e1f95e3214660cbe",
      "name": "Small Text example",
      "isLocalizable": false,
      "target": "PRODUCT",
      "type": "TEXT",
      "validation": {
        "isMandatory": false,
        "subType": "SMALL_TEXT",
        "isManualOverwrite": false,
        "formula": ""
      },
      "updatedAt": "2023-07-26T17:18:47.162Z",
      "createdAt": "2023-07-26T17:18:47.162Z",
      "updatedBy": "test@email.com"
    }
  ],
  "offset": 0,
  "limit": 10,
  "count": 10
}

Documentation Index

Fetch the complete documentation index at: https://developer.fabric.inc/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

S2S access token (JWT) from fabric Identity service (during Login)

Headers

x-fabric-tenant-id
string

A header used by fabric to identify the tenant making the request. You must include tenant id in the authentication header for an API request to access any of fabric’s endpoints. You can retrieve the tenant id , which is also called account id, from Copilot. This header is required.

Example:

"517fa9dfd42d8b00g1o3k312"

x-fabric-request-id
string

Unique request ID

Example:

"263e731c-45c8-11ed-b878-0242ac120002"

Body

application/json

Request body for attribute search

match
object
required

Specification for matching attributes

sort
string

Criteria to sort response. Sorting is supported only on createdAt, updatedAt, type, name and isMandatory. - refers to descending while + refers to ascending order

Example:

"+name,-isMandatory"

offset
integer<int32>
default:0

Number of records to skip before returning records. For example, offset=20, limit=10 returns records 21-30.

Example:

2

limit
integer<int32>
default:10

Maximum number of records per page
When no value is specified, default is 10.

Example:

10

Response

OK

Attribute details

data
object[]
offset
integer<int32>
default:0

Number of records to skip before returning records. For example, offset=20, limit=10 returns records 21-30.

Example:

5

limit
integer<int32>
default:10

Maximum number of records per page

Example:

10

count
integer<int32>

Total number of records

Example:

100