Pebble Crafts Partner API

Partner API · v1

Pebble Crafts Partner API

A small, read-mostly JSON API for our stockists who run their own online shops. Pull the catalog and stock levels into your store, and send restock orders without leaving your system.

All endpoints operationalBase URL: https://api.pebblecrafts.com/v1

Getting started

Keys are issued to approved trade partners from the trade portal. Every request needs the key in a bearer header. Responses are JSON, timestamps are UTC in ISO 8601, prices are in minor units (cents).

curl https://api.pebblecrafts.com/v1/catalog \
  -H "Authorization: Bearer pc_live_xxxxxxxxxxxx" \
  -H "Accept: application/json"

Rate limit: 60 requests per minute per key. The current count is returned in X-RateLimit-Remaining.

Endpoints

Five endpoints cover everything partners have asked for so far. If you need something else, tell us.

GET/v1/catalog

Lists every piece currently offered to trade partners, newest first. Supports simple paging.

categoryOptional. One of coasters, planters, jewelry, decor.
pageOptional. Page number, starting at 1. 50 items per page.
{
  "items": [
    {
      "sku": "PC-CST-014",
      "name": "River slate coaster set (4)",
      "category": "coasters",
      "wholesale_price": 2400,
      "retail_price": 4800,
      "currency": "USD"
    }
  ],
  "page": 1,
  "has_more": true
}

GET/v1/catalog/{sku}

Full details for one piece: dimensions, weight, finish, care notes and image file names from the media library.

GET/v1/stock

Current stock count per SKU. Updated after each packing session, usually twice a day. Handmade pieces sell out, so please refresh before showing “in stock” to customers.

{ "updated_at": "2026-10-24T15:10:00Z",
  "stock": { "PC-CST-014": 18, "PC-PLN-007": 0, "PC-JWL-031": 5 } }

POST/v1/orders

Creates a restock order. Send an Idempotency-Key header so a retried request never creates a second order.

POST /v1/orders
Idempotency-Key: 3f1c9a52-shop-0427

{
  "reference": "SHOP-0427",
  "lines": [
    { "sku": "PC-CST-014", "qty": 6 },
    { "sku": "PC-JWL-031", "qty": 2 }
  ]
}

GET/v1/orders/{id}

Order status: received, confirmed, packing, shipped or cancelled, plus a tracking number once shipped.

Errors

Errors use standard HTTP status codes and a short JSON body.

401Missing or unknown API key.
404Unknown SKU or order id.
409Not enough stock to fill the order line.
429Rate limit reached. Wait a minute and try again.
{ "error": "insufficient_stock", "sku": "PC-PLN-007", "available": 0 }

Status & changelog

Operational

API v1

All endpoints responding normally. Questions about the API go to api@pebblecrafts.com.

Changelog

October 2026

Added retail_price to catalog items. Stock updates now include updated_at.