ArchFindrDevelopers
API reference

Products

GET
/api/v1/key/products

Products of the vendor's brands, filterable like the dashboard list; a platform key lists every product.

Requires the products:read scope.

Authorization

apiKey products:read
headerAuthorizationBearer <token>

An API key created in the vendor workspace. Send it as Authorization: Bearer afk_....

Scope: products:read

Query Parameters

q?string
Lengthlength <= 255
page?integer
Range1 <= value
perPage?integer
Range1 <= value <= 100
status?"draft"
Value in"draft"
brand?string
category?string
tags?unknown
priceOnRequest?boolean
inStock?boolean

Response Body

Success

application/json
  1. response
data*array<>
metadata*
curl -X GET "https://example.com/api/v1/key/products"
{  "data": [    {      "brand": {        "id": "string",        "name": "string",        "slug": "string",        "logoUrl": "string"      },      "compareAtPrice": 0,      "currency": "string",      "hasBim": true,      "id": "string",      "inStock": true,      "isNew": true,      "name": "string",      "price": 0,      "priceOnRequest": true,      "slug": "string",      "type": "string",      "coverUrl": "string",      "hoverUrl": "string"    }  ],  "metadata": {    "total": 0,    "perPage": 0,    "currentPage": 0,    "lastPage": 0,    "firstPage": 0,    "firstPageUrl": "string",    "lastPageUrl": "string",    "nextPageUrl": "string",    "previousPageUrl": "string"  }}
POST
/api/v1/key/products

Creates a draft product under one of the vendor's brands.

Requires the products:write scope.

Authorization

apiKey products:write
headerAuthorizationBearer <token>

An API key created in the vendor workspace. Send it as Authorization: Bearer afk_....

Scope: products:write

Request Body

application/json
  1. body
name*string
Length1 <= length
type*string
Length1 <= length
brandId*string
Formatuuid
categoryId*string
Formatuuid
description?string|null
materials?string|null
collection?string|null
year?|
Range1800 <= value <= 2200
price?|
Range0 <= value <= 9999999999
compareAtPrice?|
Range0 <= value <= 9999999999
priceOnRequest?boolean
sku?|
Length1 <= length <= 64
trackStock?boolean
stockQuantity?|
Range0 <= value <= 100000000
sellWhenOutOfStock?boolean
leadTimeDays?|
Range0 <= value <= 3650
isPhysical?boolean
length?|
Rangevalue <= 1000000
width?|
Rangevalue <= 1000000
height?|
Rangevalue <= 1000000
dimensionUnit?"cm"
Value in"cm"
weight?|
Rangevalue <= 1000000
weightUnit?"kg"
Value in"kg"
countryOfOrigin?string|null
hsCode?string|null
tags?array<>
Lengthlength <= 30
currency?string
isNew?boolean
inStock?boolean
finishes?array<string>
specs?array<>
images?array<>
modelUrl?|
Lengthlength <= 1024
modelIosUrl?|
Lengthlength <= 1024
modelPosterUrl?|
Lengthlength <= 1024
modelCredit?string|null
modelVariants?
designerId?|
Formatuuid
translations?unknown

Response Body

Success

application/json
  1. response
data*
curl -X POST "https://example.com/api/v1/key/products" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "type": "string",    "brandId": "0e9bcbb3-096e-49f9-aeea-7a13a201eff5",    "categoryId": "337f5e5d-288b-40d5-be14-901cc3acacc0"  }'
{  "data": {    "collection": "string",    "brand": {      "id": "string",      "name": "string",      "slug": "string",      "logoUrl": "string"    },    "designer": {      "id": "string",      "name": "string",      "slug": "string"    },    "category": {      "id": "string",      "name": "string",      "slug": "string"    },    "images": [      {        "id": "string",        "position": 0,        "alt": "string",        "url": "string"      }    ],    "files": [      {        "id": "string",        "position": 0,        "format": "string",        "kind": "catalogue",        "label": "string",        "originalName": "string",        "size": 0      }    ],    "compareAtPrice": 0,    "countryOfOrigin": "string",    "createdAt": "string",    "currency": "string",    "description": "string",    "dimensionUnit": "cm",    "finishes": [      "string"    ],    "hasBim": true,    "height": 0,    "hsCode": "string",    "id": "string",    "inStock": true,    "isFeatured": true,    "isNew": true,    "isPhysical": true,    "leadTimeDays": 0,    "length": 0,    "materials": "string",    "name": "string",    "price": 0,    "priceOnRequest": true,    "reviewNote": "string",    "sellWhenOutOfStock": true,    "sku": "string",    "slug": "string",    "specs": [      {        "value": "string",        "label": "string"      }    ],    "status": "published",    "stockQuantity": 0,    "tags": [      "string"    ],    "trackStock": true,    "translations": {},    "type": "string",    "updatedAt": "string",    "weight": 0,    "weightUnit": "kg",    "width": 0,    "year": 0,    "coverUrl": "string",    "model": {      "url": "string",      "credit": "string",      "variants": {},      "iosUrl": "string",      "posterUrl": "string"    },    "hoverUrl": "string",    "breadcrumbs": [      {        "id": "string",        "name": "string",        "slug": "string"      }    ]  }}
GET
/api/v1/key/products/{id}

One product with all its fields, specs and images.

Requires the products:read scope.

Authorization

apiKey products:read
headerAuthorizationBearer <token>

An API key created in the vendor workspace. Send it as Authorization: Bearer afk_....

Scope: products:read

Path Parameters

id*string

Response Body

Success

application/json
  1. response
data*
curl -X GET "https://example.com/api/v1/key/products/string"
{  "data": {    "collection": "string",    "brand": {      "id": "string",      "name": "string",      "slug": "string",      "logoUrl": "string"    },    "designer": {      "id": "string",      "name": "string",      "slug": "string"    },    "category": {      "id": "string",      "name": "string",      "slug": "string"    },    "images": [      {        "id": "string",        "position": 0,        "alt": "string",        "url": "string"      }    ],    "files": [      {        "id": "string",        "position": 0,        "format": "string",        "kind": "catalogue",        "label": "string",        "originalName": "string",        "size": 0      }    ],    "compareAtPrice": 0,    "countryOfOrigin": "string",    "createdAt": "string",    "currency": "string",    "description": "string",    "dimensionUnit": "cm",    "finishes": [      "string"    ],    "hasBim": true,    "height": 0,    "hsCode": "string",    "id": "string",    "inStock": true,    "isFeatured": true,    "isNew": true,    "isPhysical": true,    "leadTimeDays": 0,    "length": 0,    "materials": "string",    "name": "string",    "price": 0,    "priceOnRequest": true,    "reviewNote": "string",    "sellWhenOutOfStock": true,    "sku": "string",    "slug": "string",    "specs": [      {        "value": "string",        "label": "string"      }    ],    "status": "published",    "stockQuantity": 0,    "tags": [      "string"    ],    "trackStock": true,    "translations": {},    "type": "string",    "updatedAt": "string",    "weight": 0,    "weightUnit": "kg",    "width": 0,    "year": 0,    "coverUrl": "string",    "model": {      "url": "string",      "credit": "string",      "variants": {},      "iosUrl": "string",      "posterUrl": "string"    },    "hoverUrl": "string",    "breadcrumbs": [      {        "id": "string",        "name": "string",        "slug": "string"      }    ]  }}
DELETE
/api/v1/key/products/{id}

Deletes a product of the vendor.

Requires the products:delete scope.

Authorization

apiKey products:delete
headerAuthorizationBearer <token>

An API key created in the vendor workspace. Send it as Authorization: Bearer afk_....

Scope: products:delete

Path Parameters

id*string

Response Body

No content

curl -X DELETE "https://example.com/api/v1/key/products/string"
Empty
PUT
/api/v1/key/products/{id}

Edits a product; a published product goes back to review, a pending one is locked (409).

Requires the products:write scope.

Authorization

apiKey products:write
headerAuthorizationBearer <token>

An API key created in the vendor workspace. Send it as Authorization: Bearer afk_....

Scope: products:write

Path Parameters

id*string

Request Body

application/json
  1. body
name?string
Length1 <= length
type?string
Length1 <= length
brandId?string
Formatuuid
categoryId?string
Formatuuid
description?string|null
materials?string|null
collection?string|null
year?|
Range1800 <= value <= 2200
price?|
Range0 <= value <= 9999999999
compareAtPrice?|
Range0 <= value <= 9999999999
priceOnRequest?boolean
sku?|
Length1 <= length <= 64
trackStock?boolean
stockQuantity?|
Range0 <= value <= 100000000
sellWhenOutOfStock?boolean
leadTimeDays?|
Range0 <= value <= 3650
isPhysical?boolean
length?|
Rangevalue <= 1000000
width?|
Rangevalue <= 1000000
height?|
Rangevalue <= 1000000
dimensionUnit?"cm"
Value in"cm"
weight?|
Rangevalue <= 1000000
weightUnit?"kg"
Value in"kg"
countryOfOrigin?string|null
hsCode?string|null
tags?array<>
Lengthlength <= 30
currency?string
isNew?boolean
inStock?boolean
finishes?array<string>
specs?array<>
images?array<>
modelUrl?|
Lengthlength <= 1024
modelIosUrl?|
Lengthlength <= 1024
modelPosterUrl?|
Lengthlength <= 1024
modelCredit?string|null
modelVariants?
designerId?|
Formatuuid
translations?unknown

Response Body

Success

application/json
  1. response
data*
curl -X PUT "https://example.com/api/v1/key/products/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "data": {    "collection": "string",    "brand": {      "id": "string",      "name": "string",      "slug": "string",      "logoUrl": "string"    },    "designer": {      "id": "string",      "name": "string",      "slug": "string"    },    "category": {      "id": "string",      "name": "string",      "slug": "string"    },    "images": [      {        "id": "string",        "position": 0,        "alt": "string",        "url": "string"      }    ],    "files": [      {        "id": "string",        "position": 0,        "format": "string",        "kind": "catalogue",        "label": "string",        "originalName": "string",        "size": 0      }    ],    "compareAtPrice": 0,    "countryOfOrigin": "string",    "createdAt": "string",    "currency": "string",    "description": "string",    "dimensionUnit": "cm",    "finishes": [      "string"    ],    "hasBim": true,    "height": 0,    "hsCode": "string",    "id": "string",    "inStock": true,    "isFeatured": true,    "isNew": true,    "isPhysical": true,    "leadTimeDays": 0,    "length": 0,    "materials": "string",    "name": "string",    "price": 0,    "priceOnRequest": true,    "reviewNote": "string",    "sellWhenOutOfStock": true,    "sku": "string",    "slug": "string",    "specs": [      {        "value": "string",        "label": "string"      }    ],    "status": "published",    "stockQuantity": 0,    "tags": [      "string"    ],    "trackStock": true,    "translations": {},    "type": "string",    "updatedAt": "string",    "weight": 0,    "weightUnit": "kg",    "width": 0,    "year": 0,    "coverUrl": "string",    "model": {      "url": "string",      "credit": "string",      "variants": {},      "iosUrl": "string",      "posterUrl": "string"    },    "hoverUrl": "string",    "breadcrumbs": [      {        "id": "string",        "name": "string",        "slug": "string"      }    ]  }}
GET
/api/v1/key/products/{id}/status

The review status of a product and the reviewer's note when it was rejected.

Requires the products:read scope.

Authorization

apiKey products:read
headerAuthorizationBearer <token>

An API key created in the vendor workspace. Send it as Authorization: Bearer afk_....

Scope: products:read

Path Parameters

id*string

Response Body

Success

application/json
  1. response
id*string
status*string
reviewNote*string|null
updatedAt*string|null
curl -X GET "https://example.com/api/v1/key/products/string/status"
{  "id": "string",  "status": "string",  "reviewNote": "string",  "updatedAt": "string"}
POST
/api/v1/key/products/{id}/submit

Sends a draft or rejected product to the review queue.

Requires the products:write scope.

Authorization

apiKey products:write
headerAuthorizationBearer <token>

An API key created in the vendor workspace. Send it as Authorization: Bearer afk_....

Scope: products:write

Path Parameters

id*string

Response Body

Success

application/json
  1. response
data*
curl -X POST "https://example.com/api/v1/key/products/string/submit"
{  "data": {    "collection": "string",    "brand": {      "id": "string",      "name": "string",      "slug": "string",      "logoUrl": "string"    },    "designer": {      "id": "string",      "name": "string",      "slug": "string"    },    "category": {      "id": "string",      "name": "string",      "slug": "string"    },    "images": [      {        "id": "string",        "position": 0,        "alt": "string",        "url": "string"      }    ],    "files": [      {        "id": "string",        "position": 0,        "format": "string",        "kind": "catalogue",        "label": "string",        "originalName": "string",        "size": 0      }    ],    "compareAtPrice": 0,    "countryOfOrigin": "string",    "createdAt": "string",    "currency": "string",    "description": "string",    "dimensionUnit": "cm",    "finishes": [      "string"    ],    "hasBim": true,    "height": 0,    "hsCode": "string",    "id": "string",    "inStock": true,    "isFeatured": true,    "isNew": true,    "isPhysical": true,    "leadTimeDays": 0,    "length": 0,    "materials": "string",    "name": "string",    "price": 0,    "priceOnRequest": true,    "reviewNote": "string",    "sellWhenOutOfStock": true,    "sku": "string",    "slug": "string",    "specs": [      {        "value": "string",        "label": "string"      }    ],    "status": "published",    "stockQuantity": 0,    "tags": [      "string"    ],    "trackStock": true,    "translations": {},    "type": "string",    "updatedAt": "string",    "weight": 0,    "weightUnit": "kg",    "width": 0,    "year": 0,    "coverUrl": "string",    "model": {      "url": "string",      "credit": "string",      "variants": {},      "iosUrl": "string",      "posterUrl": "string"    },    "hoverUrl": "string",    "breadcrumbs": [      {        "id": "string",        "name": "string",        "slug": "string"      }    ]  }}