Store

Open Web Initiative

We believe in giving you control over how you interact with our store. No walled gardens, no lock-in. Just open protocols, open data, and open APIs.

The same spirit as RSS, just a different era.

ActivityPub / Fediverse

Follow our store from Mastodon, Misskey, Pleroma, or any ActivityPub-compatible app. New product announcements show up right in your timeline.

@store@littlebirdelectronics.com.au
# look up our ActivityPub actor via WebFinger
$ curl -s "https://littlebirdelectronics.com.au/.well-known/webfinger?resource=acct:store@littlebirdelectronics.com.au" | jq .

# fetch the actor profile (JSON-LD)
$ curl -s -H "Accept: application/activity+json" https://littlebirdelectronics.com.au/activitypub/actor | jq .

# browse the outbox
$ curl -s https://littlebirdelectronics.com.au/activitypub/actor/outbox | jq .

Atom Feeds

Subscribe to our product feed in any RSS reader. Get notified about new products without giving us your email or installing anything.

# grab the Atom feed
$ curl -s https://littlebirdelectronics.com.au/products.atom | head -20

Public API

A free, read-only JSON API. No API key needed. No signup. Just curl it.

Quick start

$ curl -s https://littlebirdelectronics.com.au/public-api/v1/products?per_page=2 | python3 -m json.tool

{
  "products": [
    {
      "handle": "raspberry-pi-5",
      "title": "Raspberry Pi 5",
      "price": 95.0,
      "in_stock": true,
      "variant_count": 3,
      ...
    }
  ],
  "meta": { "total": 1420, "page": 1, "per_page": 2, "total_pages": 710 }
}

Endpoints

GET /public-api/v1/products

List products. Paginated, searchable, filterable.

# search for "arduino"
$ curl "https://littlebirdelectronics.com.au/public-api/v1/products?q=arduino&per_page=5"

# only in-stock items from Adafruit
$ curl "https://littlebirdelectronics.com.au/public-api/v1/products?in_stock=true&vendor=Adafruit"

# page 3, 50 per page
$ curl "https://littlebirdelectronics.com.au/public-api/v1/products?page=3&per_page=50"
Query parameters
q — full-text search
in_stock=true — only products with stock
vendor=Adafruit — filter by brand
product_type=Sensors — filter by category
page=1 — page number (default: 1)
per_page=25 — results per page (max: 100)
GET /public-api/v1/products/{handle}

Full product detail — variants, SKUs, stock quantities, images, reviews.

$ curl -s https://littlebirdelectronics.com.au/public-api/v1/products/raspberry-pi-5 | python3 -m json.tool

{
  "product": {
    "handle": "raspberry-pi-5",
    "title": "Raspberry Pi 5",
    "in_stock": true,
    "variants": [
      {
        "sku": "RPI5-4GB",
        "price": 95.0,
        "in_stock": true,
        "available_quantity": 42
      }
    ],
    "average_rating": 4.8,
    "reviews_count": 12
  }
}
GET /public-api/v1/collections

All published collections with product counts.

$ curl https://littlebirdelectronics.com.au/public-api/v1/collections
GET /public-api/v1/collections/{handle}

Collection detail with paginated products.

$ curl "https://littlebirdelectronics.com.au/public-api/v1/collections/digital-technologies?per_page=10"

Tips

# pipe through jq for nicer output
$ curl -s https://littlebirdelectronics.com.au/public-api/v1/products?q=esp32 | jq '.products[].title'

# grab all SKUs for a product
$ curl -s https://littlebirdelectronics.com.au/public-api/v1/products/raspberry-pi-5 | jq '.product.variants[].sku'

# CORS is enabled — works from the browser too
$ fetch('https://littlebirdelectronics.com.au/public-api/v1/products?per_page=5').then(r => r.json())
OpenAPI 3.1 Spec | All prices in AUD incl. GST | Rate limit: 60 req/min | No auth required

Webhooks

Get HTTP POST notifications when things happen. Back-in-stock alerts, new products, price drops, new items in a collection. Signed with HMAC-SHA256 so you can verify they're from us.

# subscribe to back-in-stock and new product events
$ curl -X POST https://littlebirdelectronics.com.au/webhooks \
    -H "Content-Type: application/json" \
    -d '{
      "webhook_subscription": {
        "url": "https://your-server.com/hooks/littlebird",
        "events": ["back_in_stock", "new_product"]
      }
    }'

# response includes a secret for verifying signatures
{
  "id": 1,
  "url": "https://your-server.com/hooks/littlebird",
  "secret": "whsec_abc123...",
  "events": ["back_in_stock", "new_product"]
}
Available events & verification
back_in_stock — a previously out-of-stock product is available
new_product — a new product was published
price_drop — a product price decreased
new_in_collection — a product was added to a collection
Every webhook includes an X-Webhook-Signature header. Verify it:
expected = "sha256=" + hmac_sha256(secret, request_body)
raise "bad sig" unless expected == request.headers["X-Webhook-Signature"]

Web Push Notifications

Browser push notifications with granular controls. Choose exactly what you want to hear about — specific collections, back-in-stock alerts, or new products. Unsubscribe any time, no account needed.

Uses the standard Web Push API with VAPID authentication. No third-party services.

Machine-Readable Metadata

Every product page includes rich JSON-LD structured data (Schema.org Product, Offer, AggregateRating, Review, BreadcrumbList). Google Shopping, AI agents, and price comparison tools all parse us perfectly.

# what can an LLM do with this site?
$ curl -s https://littlebirdelectronics.com.au/llms.txt

# who built this?
$ curl -s https://littlebirdelectronics.com.au/humans.txt

# extract JSON-LD from any product page
$ curl -s https://littlebirdelectronics.com.au/products/raspberry-pi-5 \
    | grep -o '<script type="application/ld+json">.*</script>' \
    | sed 's/<[^>]*>//g' | jq .

Built because we think the open web matters. If you build something cool with our API or data, we'd love to hear about it — drop us a line.

Maddy, co-founder of Little Bird

Need help? We're here for you!

Hi, I'm Maddy. My team and I are ready to help with your order or any questions.