border.bot
Docs menu

API reference

API reference

Update a product

PATCH https://api.border.bot/v1/catalog/products/{id}

Requires an API key (Authorization: Bearer bb_live_…).

Changes the fields given, its items (by id or SKU, others added) and its content list. Every change is kept in the product’s history with its actor. Free.

API key scope: catalog.

Parameters#

Name Type Required Description
id string (uuid) yes The product’s id.

Request body (JSON)#

Name Type Required Description
title string no
description string | null no
brand string | null no
manufacturerName string | null no
manufacturerCountry string | null no
category string | null no
materialSummary string | null no
tags string[] no
imageUrls string[] no
productUrl string | null no
slug string | null no
originCountry string | null no
originBasis string | null no
originEvidence object | null no
preferentialClaims object[] no
attributes object[] no
markets array | null no
quantityUnit string | null no
supplementaryUnits object[] no
extra object no
status "draft" | "active" no
items object[] no
components object[] no

Responses#

  • 200: The product as it is now. (CatalogProductResponse)
  • 400: Invalid input (invalid_input). (Error)
  • 401: Missing, invalid, revoked or expired API key (unauthorized). (Error)
  • 403: The API key doesn’t have the catalog scope (forbidden, details.reason: "missing_scope"). (Error)
  • 404: No such product in your catalogue (not_found). (Error)
  • 409: A SKU is taken, or the product is archived (conflict). (Error)
  • 429: Rate limited (rate_limited). Retry after Retry-After seconds; RateLimit says which limit was hit (r=0, t seconds until its window ends) and RateLimit-Policy its quota. (Error)
  • 500: Unexpected error (internal). (Error)

Example#

bash
curl -X PATCH 'https://api.border.bot/v1/catalog/products/{id}' \
  -H 'Authorization: Bearer bb_live_...' \
  -H 'Content-Type: application/json' \
  -d '{"originCountry":"VN","items":[{"sku":"BOTTLE-750","unitValue":21.5}]}'