Babylist APImy.babylist.com ↗
Access Babylist baby registry data via API: registry metadata, all products with prices, quantities, purchase status, and per-item store offers.
What is the Babylist API?
The Babylist Registry API exposes 2 endpoints for reading baby registry data from my.babylist.com. get_registry returns the full registry — owner name, arrival date, shipping location, product list, categories, and gift sets — while get_registry_item delivers per-item detail including all available store offers, stock status, and restock information for a single item ID.
curl -X GET 'https://api.parse.bot/scraper/beb16578-550b-4a51-bd86-5a5f6980850d/get_registry?slug=mayah-delcid' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace my-babylist-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""
Babylist Registry API — fetch registry data and compare store prices.
"""
from parse_apis.babylist_registry_api import Babylist, RegistryNotFound
client = Babylist()
# Fetch a full registry by slug
registry = client.registries.get(slug="mayah-delcid")
print(f"Registry: {registry.registry_name}")
print(f"Parents: {registry.registrant_names}")
print(f"Location: {registry.location}")
print(f"Arrival: {registry.arrival_date}")
print(f"Total items: {registry.total_items}")
# Browse products on the registry (RegistryItemSummary instances)
for product in registry.products[:3]:
print(f" {product.title} — {product.price}, needed: {product.quantity_needed}")
for offer in product.offers:
print(f" Store: {offer.store}, Price: {offer.price}, In stock: {offer.in_stock}")
# Drill into a specific item for full detail via the sub-resource
first_product = registry.products[0]
detail = registry.items.get(item_id=str(first_product.id))
print(f"\nDetail: {detail.title}")
print(f" Reserved: {detail.is_reserved}, Crowdfund: {detail.is_crowdfund}")
for offer in detail.offers:
print(f" {offer.store}: ${offer.price} (stock: {offer.stock_status})")
# Handle a registry that doesn't exist
try:
client.registries.get(slug="nonexistent-registry-xyz-999")
except RegistryNotFound as exc:
print(f"\nNot found: {exc}")
print("\nExercised: registries.get / products browsing / items.get / RegistryNotFound")
Get full registry information including metadata (registrant names, location, arrival date), categories, gift sets, and all products with their prices, quantities, purchase status, and store offers. Requires the registry URL slug from my.babylist.com. Returns a single Registry resource with all nested data. Each product includes offers from multiple stores for price comparison.
| Param | Type | Description |
|---|---|---|
| slugrequired | string | The registry URL slug (e.g., 'mayah-delcid' from my.babylist.com/mayah-delcid) |
{
"type": "object",
"fields": {
"url": "string, canonical URL of the registry",
"location": "string, city and state",
"products": "array of {id, title, image_url, price, list_price, sale_price, quantity, quantity_needed, is_reserved, is_crowdfund, is_group_gift, is_gift_card, funded_amount, goal_amount, category_id, category_name, item_type, offers}",
"gift_sets": "array of {category_name, items}",
"categories": "array of {id, title}",
"created_at": "string, ISO 8601 timestamp",
"owner_name": "string, name of the registry owner",
"description": "string or null",
"total_items": "integer, total number of items on the registry",
"arrival_date": "string, expected arrival date display text",
"registry_name": "string, display name of the registry",
"registrant_names": "string, names of the registrants",
"is_shipping_address_private": "boolean"
}
}About the Babylist API
Registry Overview
The get_registry endpoint accepts a slug — the path segment from a Babylist registry URL, such as mayah-delcid from my.babylist.com/mayah-delcid — and returns the complete registry in one call. The response includes owner_name, location (city and state), arrival_date, description, total_items, and created_at as top-level fields. The products array carries each item's id, title, image_url, price, list_price, sale_price, quantity, quantity_needed, is_reserved, is_crowdfund, and is_group_gift flags. Products are organized into categories (each with an id and title) and optionally grouped into gift_sets by category name.
Per-Item Detail
get_registry_item takes the same slug plus an item_id sourced from products[*].id in the list response. It returns an offers array that get_registry does not expose, giving you one object per retailer with store, price, in_stock, stock_status, stock_text, and restock_text fields. This lets you surface which stores currently have the item in stock and what their individual prices are, rather than the single registry price seen in the list view.
Purchase and Gifting State
Both endpoints carry data useful for gift-buying workflows. quantity_needed reflects how many of an item still need to be purchased (i.e., quantity minus already-reserved counts). The boolean flags is_reserved, is_crowdfund, and is_group_gift let you distinguish items that are partially funded, crowdfunded, or targeted for group purchase from standard single-purchase items.
Source and Coverage
Babylist supports registries that aggregate products from many retailers onto a single list. The API reflects that cross-retailer structure: a single registry item can have multiple store offers returned by get_registry_item. Coverage is limited to public registries accessible via a slug on my.babylist.com; private or password-protected registries are not accessible.
The Babylist API is a managed, monitored endpoint for my.babylist.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when my.babylist.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official my.babylist.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a gift-finder tool that surfaces in-stock store offers for each item using
get_registry_itemoffers[*].in_stock. - Track registry completion by comparing
quantityandquantity_neededacross all products inget_registry. - Aggregate pricing across retailers by collecting
offers[*].priceandoffers[*].storefor every item on a registry. - Identify crowdfunded or group-gift items using the
is_crowdfundandis_group_giftflags before redirecting to purchase. - Display a formatted registry summary including
owner_name,arrival_date, andlocationfor a gifting app or browser extension. - Monitor restock status by polling
get_registry_itemand readingrestock_textfor out-of-stock items. - Categorize registry items by grouping products using the
categoriesarray and matchingcategory_idon each product.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Babylist offer an official developer API?+
What does `get_registry_item` return that `get_registry` does not?+
get_registry_item returns an offers array containing one entry per retailer, with store, price, in_stock, stock_status, stock_text, and restock_text for each. The get_registry list view returns a single price per product without per-retailer offer breakdowns.Can I retrieve registries that are set to private or password-protected?+
Does the API support searching for registries by registrant name rather than slug?+
slug value from a my.babylist.com registry URL. You can fork this API on Parse and revise it to add a registry search endpoint that resolves a name to a slug.How fresh is the product and offer data?+
quantity_needed, is_reserved, prices, and in_stock values reflect the registry as it stands at request time. There is no cached or snapshotted history of past states.