BrickPickerBrickPicker
Public API v1Reseller plan

BrickPicker Public API v1

Script your inventory, audit your sales ledger, or build a dashboard against your own collection — programmatic access to set + minifig metadata and your own brickfolio + sales data. REST + JSON, USD, bearer-token auth, 1,000 requests per key per UTC day.

What you get
4 read-only endpoints · 1,000 req/day
  • Set metadata + our computed value
  • Minifig metadata + value
  • Your brickfolio (holdings + history)
  • Your sales ledger
  • Bearer-token auth, JSON, USD
  • Per-key rate-limit envelope + headers

At a glance

Base URL
https://api.brickpicker.com/api/v1
Auth
Bearer token (per-user)
Rate limit
1,000 req / key / UTC day
Format
JSON · USD only

Authentication

Every request must include your personal API key in the Authorization header using the Bearer scheme. Keys are managed in the app at /account/api-keys and are visible exactly once at creation time. We only store the SHA-256 hash — we can't recover a lost key, you'll have to create a new one.

bash
# Every request needs this header:
Authorization: Bearer bp_live_<48-hex-chars>

# Quick test:
curl https://api.brickpicker.com/api/v1/v1/set/75192 \
  -H "Authorization: Bearer bp_live_..."

Up to 5 active keys per account. Revoking a key takes effect immediately — any in-flight requests using it will start returning 401.

Rate limits

Each API key gets 1,000 requests per UTC day. Counters reset at midnight UTC. Every successful response includes your current budget in both response headers and the body envelope:

http
HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 487
X-RateLimit-Reset: 2026-05-15T00:00:00Z
X-Request-Id: 7c4a...

{
  "data": { ... },
  "meta": {
    "request_id": "7c4a...",
    "rate_limit": { "limit": 1000, "remaining": 487, "reset": "2026-05-15T00:00:00Z" }
  }
}

When you exceed the quota you'll get 429 Too Many Requests with the standard error envelope. Sleep until reset and try again.

Errors

All errors return JSON in this shape:

json
{
  "error": {
    "code": "QuotaExceeded",
    "message": "Daily quota of 1000 requests exceeded. Resets at 2026-05-15T00:00:00Z."
  }
}
HTTPcodeWhen
400BadRequestInvalid query parameter (e.g. negative limit)
401MissingApiKey / InvalidApiKeyNo bearer header, or key is unknown/revoked
403TierRequiredEndpoint requires Reseller plan
404NotFoundSet or minifig number not in our catalog
429QuotaExceededDaily budget exhausted — retry after the reset
500InternalErrorSomething went wrong on our end — please retry

Endpoints

Four read-only endpoints: set + minifig lookup (data we already publish on the site) and your brickfolio + sales ledger (your own data).

GET/v1/set/{number}
Parity

Set metadata, current value, and live retailer pricing

Returns set metadata (theme, pieces, MSRP, release/retire dates), our computed current value in USD, and live retailer pricing from our internal price-status table.

Parameters

NameInTypeRequiredDescription
numberpathstringyesLEGO set number (e.g. 75192)
Request
curl https://api.brickpicker.com/api/v1/v1/set/75192 \
  -H "Authorization: Bearer bp_live_..."
Response
{
  "data": {
    "set_number": "75192",
    "title": "Millennium Falcon",
    "theme": "Star Wars",
    "pieces": 7541,
    "minifigs": 8,
    "msrp_usd": 849.99,
    "release_date": "2017-10-01",
    "retire_date": null,
    "image_url": "https://images.brickpicker.com/images/sets/75192.jpg",
    "current_value_usd": 1199.50,
    "value_range": { "low": 1050, "high": 1399, "calculated_at": "..." },
    "retailers": [
      { "retailer": "lego", "current_price": 849.99, "in_stock": false, ... },
      { "retailer": "amazon", "current_price": 1199.99, "in_stock": true, ... }
    ]
  },
  "meta": {
    "request_id": "1a2b3c4d-...",
    "rate_limit": { "limit": 1000, "remaining": 999, "reset": "2026-05-15T00:00:00Z" }
  }
}
GET/v1/minifig/{number}
Parity

Minifig metadata + current value

Returns a single minifigure by its BrickLink part number with its current market value (USD).

Parameters

NameInTypeRequiredDescription
numberpathstringyesBrickLink minifig number (e.g. sw0001a)
Request
curl https://api.brickpicker.com/api/v1/v1/minifig/sw0001a \
  -H "Authorization: Bearer bp_live_..."
Response
{
  "data": {
    "minifig_number": "sw0001a",
    "name": "Luke Skywalker",
    "color": "Light Bluish Gray",
    "image_url": "https://...",
    "current_value_usd": 18.42
  },
  "meta": { ... }
}
GET/v1/brickfolio
Parity

Your brickfolios with current values + monthly cost-basis periods

Returns every brickfolio the authenticated user owns, with per-entry valuations and a monthly rollup of cost basis. Identity is taken from the API key.

Request
curl https://api.brickpicker.com/api/v1/v1/brickfolio \
  -H "Authorization: Bearer bp_live_..."
Response
{
  "data": {
    "brickfolios": [
      {
        "id": 42,
        "name": "Main",
        "owned_set_count": 87,
        "total_cost_basis_usd": 12450.00,
        "total_current_value_usd": 18920.50,
        "unrealized_gain_loss_usd": 6470.50,
        "entries": [ { "set_number": "75192", "quantity": 1, ... } ]
      }
    ],
    "monthly_periods": [
      { "month": "2025-01", "entry_count": 3, "cost_basis_usd": 450 }
    ]
  },
  "meta": { ... }
}
GET/v1/salesledger
ParityReseller only

Your sales ledger — gross, fees, net, ROI per sale

Paginated list of recorded sales from the BrickPicker Sales Ledger, including gross proceeds, platform fees, shipping, net proceeds, profit/loss, and ROI. Reseller plan only.

Parameters

NameInTypeRequiredDescription
limitqueryintegernoItems per page (default 50, max 200)
offsetqueryintegernoPagination offset
Request
curl "https://api.brickpicker.com/api/v1/v1/salesledger?limit=10" \
  -H "Authorization: Bearer bp_live_..."
Response
{
  "data": {
    "sales": [
      {
        "id": 9001,
        "set_number": "75192",
        "title": "Millennium Falcon",
        "platform": "eBay",
        "sale_date": "2026-04-12",
        "quantity": 1,
        "gross_proceeds_usd": 1450.00,
        "platform_fees_usd": 188.50,
        "payment_fees_usd": 42.00,
        "shipping_cost_usd": 35.00,
        "net_proceeds_usd": 1184.50,
        "profit_loss_usd": 335.51,
        "roi_pct": 39.5
      }
    ],
    "pagination": { "total": 87, "page": 1, "limit": 10, "totalPages": 9 }
  },
  "meta": { ... }
}

Code examples

Fetch a set's metadata + current value. Pick your stack.

curl https://api.brickpicker.com/api/v1/set/75192 \
  -H "Authorization: Bearer $BRICKPICKER_KEY"

Ready to integrate?

Upgrade to the Reseller plan, generate your key in the app, and you can be making your first call inside five minutes.