PB&J Platform v1

Build PB&J ordering flows with a diner vibe.

An API for PB&J ordering flows. Choose bread, peanut butter, and jelly, then let the platform handle inventory, prep, and delivery status.

Base URL
https://api.pbandj.io/v1
Authentication
X-API-Key header
Tracking IDs
customer_id and order_id
Example Create an order
POST /orders
{
  "customer_id": "cus_2048",
  "bread": "sourdough",
  "peanut_butter": "chunky",
  "jelly": "strawberry",
  "toast": "golden",
  "cut": "diagonal"
}

What the API does

Order management

Create, update, and cancel PB&J orders with clear status changes.

Menu and inventory

Keep bread, peanut butter, and jelly in sync with live stock counts.

Customer records

Tie every order to a customer_id for history and reorders.

Example order flow

Requests

curl -X POST https://api.pbandj.io/v1/orders \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "customer_id": "cus_2048",
    "bread": "brioche",
    "peanut_butter": "smooth",
    "jelly": "raspberry",
    "toast": "light",
    "cut": "triangles"
  }'
const response = await fetch('https://api.pbandj.io/v1/orders', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-Key': 'YOUR_API_KEY',
  },
  body: JSON.stringify({
    customer_id: 'cus_2048',
    bread: 'brioche',
    peanut_butter: 'smooth',
    jelly: 'raspberry',
    toast: 'light',
    cut: 'triangles',
  }),
});

const data = await response.json();
console.log(data);
import requests

response = requests.post(
    "https://api.pbandj.io/v1/orders",
    headers={"X-API-Key": "YOUR_API_KEY"},
    json={
        "customer_id": "cus_2048",
        "bread": "brioche",
        "peanut_butter": "smooth",
        "jelly": "raspberry",
        "toast": "light",
        "cut": "triangles",
    },
)

print(response.json())

Response

{
  "order_id": "ord_41b7",
  "customer_id": "cus_2048",
  "status": "prepping",
  "eta_minutes": 5,
  "choices": {
    "bread": "brioche",
    "peanut_butter": "smooth",
    "jelly": "raspberry",
    "toast": "light",
    "cut": "triangles"
  }
}

Go deeper with guides

FAQ

Can I allow extra spreads?

Yes. Use the extras array field to include add-ons like banana or marshmallow.

Do you support webhooks?

Webhooks are in beta. Contact support to enable them for your project.

Is there a sandbox?

Use test keys with the /v1 base URL for sandbox traffic.

Do you support nut-free options?

We are piloting sunflower butter options in v1.3.