goBILDA APIgobilda.com ↗
Search and retrieve goBILDA robotics parts by keyword, category, or SKU. Access pricing, availability, images, and variant data from the goBILDA catalog.
What is the goBILDA API?
The goBILDA API provides two endpoints for accessing the full goBILDA robotics parts catalog, exposing over a dozen response fields per product including SKU, pricing, availability, images, and variants. Use search_products to query the catalog by keyword or category and receive paginated results with up to 250 items per page, or use get_product to retrieve complete detail on a specific part including all variant options and image URLs.
curl -X GET 'https://api.parse.bot/scraper/c6625812-cfdd-477f-b73a-22ab6952025d/search_products?page=1&limit=5&query=servo&sort_by=relevance&sort_order=asc&category_id=268' \ -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 gobilda-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.
"""Walkthrough: goBILDA SDK — search products, filter by category, get details."""
from parse_apis.gobilda_com_api import GoBilda, SortBy, SortOrder, ProductNotFound
client = GoBilda()
# Search for servo products sorted by price ascending, capped at 5 results.
for product in client.product_summaries.search(query="servo", sort_by=SortBy.PRICE, sort_order=SortOrder.ASC, limit=5):
print(product.title, product.sku, product.price)
# Drill into the first search result for full details (images, variants, inventory).
summary = client.product_summaries.search(query="gear motor", limit=1).first()
if summary:
detail = summary.details()
print(detail.title, detail.price, detail.inventory_level)
for variant in detail.variants:
print(f" variant: {variant.sku} upc={variant.upc} available={variant.available}")
# Fetch a product directly by SKU.
try:
product = client.products.get(sku="2000-0025-0002")
print(product.title, product.price, len(product.images), "images")
except ProductNotFound as exc:
print(f"SKU not found: {exc.sku}")
# Browse products in a specific category (268 = Standard Size Servos).
for item in client.product_summaries.search(category_id="268", limit=3):
print(item.title, item.sku, item.inventory_level)
print("exercised: product_summaries.search / summary.details / products.get / category filter")
Search the goBILDA product catalog by keyword query and/or category ID. Returns paginated product listings with metadata including matching categories and search suggestions. Results exclude discontinued products by default. Each page returns up to 250 items; results are auto-iterated across pages.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| limit | integer | Maximum number of items per page (1-250). |
| query | string | Search query string. When empty and category_id is provided, returns all products in that category. |
| sort_by | string | Field to sort results by. |
| sort_order | string | Sort direction. |
| category_id | string | Numeric category ID to filter products. Obtain from the categories array in search results. Example: 268 for Standard Size Servos. |
| include_discontinued | boolean | When true, includes discontinued products in results. |
{
"type": "object",
"fields": {
"page": "integer",
"items": "array of product summaries with product_id, title, sku, price, sale_price, description, link, image_url, availability, inventory_level, reviews_count, reviews_score",
"limit": "integer",
"categories": "array of matching categories with category_id, title, link, image_link, description",
"suggestions": "array of search suggestion strings",
"total_items": "integer"
},
"sample": {
"data": {
"page": 1,
"items": [
{
"sku": "33488",
"link": "https://gobilda.com/hitec-hs-488hb-servo/",
"price": "28.99",
"title": "Hitec HS-488HB Servo",
"image_url": "https://cdn11.bigcommerce.com/s-x56mtydx1w/products/1105/images/5498/HS-488HB_No-Horn__49928__91261.1701992552.386.513.jpg?c=1",
"product_id": "1105",
"sale_price": "0",
"description": "The HS-488HB servo is based around the popular HS-485HB...",
"availability": "",
"reviews_count": "0",
"reviews_score": "0",
"inventory_level": "47"
}
],
"limit": 3,
"categories": [
{
"link": "https://gobilda.com/kits",
"title": "KITS",
"image_link": "https://cdn11.bigcommerce.com/s-x56mtydx1w/product_images/a/apieivwby__44440.jpg",
"category_id": "26",
"description": ""
}
],
"suggestions": [],
"total_items": 14
},
"status": "success"
}
}About the goBILDA API
Searching the Catalog
The search_products endpoint accepts a query string, a numeric category_id, or both. When query is omitted and only category_id is provided, the endpoint returns all products in that category. Results are paginated using page and limit parameters (maximum 250 items per page), and the response includes total_items so you can calculate page counts. The sort_by and sort_order parameters control result ordering. Each product summary in the items array includes product_id, title, sku, price, sale_price, description, link, image_url, and availability. Discontinued products are excluded by default; pass include_discontinued: true to include them.
Category Discovery
The search_products response includes a categories array alongside product results. Each category object contains category_id, title, link, image_link, and description. The returned category_id values can be fed directly back into subsequent search_products calls to scope results to a specific section of the catalog. A suggestions array is also returned and contains alternative search strings relevant to the query.
Product Detail
The get_product endpoint takes an exact sku string (for example, 2000-0025-0002) and returns the full product record. The response adds fields not present in search results: a complete images array with all product image URLs, a variants array where each variant carries its own variant_id, sku, upc, price, list_price, available flag, and options object. The list_price and sale_price fields at the top level reflect the base product pricing, while variant-level pricing covers individual size or configuration options.
The goBILDA API is a managed, monitored endpoint for gobilda.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when gobilda.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 gobilda.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 parts search tool for FTC or FRC teams that queries goBILDA by keyword and displays
price,availability, andimage_url. - Sync goBILDA inventory status into an internal procurement dashboard using
availabilityand variant-levelavailableflags. - Compare
priceandlist_priceacross variants of a part to identify discounted configurations automatically. - Generate a structured parts catalog for a robotics curriculum by iterating categories discovered from
search_productsresponses. - Alert on restock events by polling
get_productfor specific SKUs and monitoring theavailablefield on each variant. - Populate a BOM (bill of materials) tool with goBILDA part data including
sku,upc,title, and per-variant pricing. - Index goBILDA product descriptions and category metadata for a robotics-specific search interface.
| 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 goBILDA have an official developer API?+
How do I retrieve all products in a specific category?+
search_products with category_id set and query left empty. The category_id values come from the categories array returned in any prior search_products response. For example, passing category_id: 268 scopes results to that category. Paginate using page and limit until the number of retrieved items equals total_items.Does `get_product` return customer reviews or ratings?+
get_product endpoint returns pricing, images, variant details, and availability, but does not include customer reviews or star ratings. You can fork this API on Parse and revise it to add a reviews endpoint if that data is needed.Are discontinued products accessible through the API?+
search_products excludes discontinued items by default. Pass include_discontinued: true to include them in results.