ColorFabb APIcolorfabb.com ↗
Access ColorFabb's full 3D printing filament catalog via API. Retrieve material specs, pricing, RAL colors, search results, and Yotpo review ratings.
What is the ColorFabb API?
The ColorFabb API covers 6 endpoints for extracting filament product data from colorfabb.com, including material specifications, pricing, stock status, and customer review ratings. The get_filament_detail endpoint returns per-product fields like SKU, printing advice, and specifications for any filament slug. You can also enumerate the full catalog with get_all_filaments, filter by material category ID, or search by keyword — all without managing a browser session.
curl -X GET 'https://api.parse.bot/scraper/0189a1d8-2fdf-4338-9a15-fd03376cde15/get_all_filaments?page=1&material=17297' \ -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 colorfabb-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: ColorFabb SDK — browse filaments, search, drill into details and reviews."""
from parse_apis.colorfabb_filament_api import ColorFabb, FilamentNotFound
client = ColorFabb()
# List material categories to find filter IDs
categories = client.categories.list(limit=5)
for cat in categories:
print(cat.name, cat.id, cat.count)
# Search for TPU filaments — single-page autocomplete results
result = client.filaments.search(query="TPU", limit=3).first()
if result:
# Drill into full detail via the search result
detail = result.details()
print(detail.name, detail.sku, detail.price_excl_tax)
# List all filaments (paginated), take one and check reviews
filament = client.filaments.list(limit=1).first()
if filament:
rating = filament.reviews.get()
print(filament.name, filament.price_incl_tax, rating.total_reviews, rating.average_score)
# Browse RAL color filaments
for ral in client.ralcolors.list(limit=3):
print(ral.name, ral.slug, ral.price_excl_tax)
# Typed error handling for a missing product
try:
client.filaments.get(slug="nonexistent-slug-xyz")
except FilamentNotFound as exc:
print(f"Not found: {exc.slug}")
print("exercised: categories.list / filaments.search / details / filaments.list / reviews.get / ralcolors.list / filaments.get")
Retrieve a paginated list of all filaments with basic details and configurations. Returns up to 12 products per page. Supports filtering by material category ID. Paginate by incrementing the page parameter until products array is empty or current_page exceeds total_count / 12.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-based). |
| material | string | Material category ID to filter by (e.g. '17285' for PLA High Speed Pro). IDs available from get_filament_categories endpoint. |
{
"type": "object",
"fields": {
"products": "array of product objects with name, url, slug, price_incl_tax, price_excl_tax, id, config, stock_status, yotpo_id",
"total_count": "integer total number of products matching the filter",
"current_page": "integer current page number"
},
"sample": {
"data": {
"products": [
{
"id": "1525",
"url": "https://colorfabb.com/varioshore-tpu-black",
"name": "VARIOSHORE TPU BLACK",
"slug": "varioshore-tpu-black",
"yotpo_id": "1525",
"stock_status": "In Stock: make selection",
"price_excl_tax": "€44.79",
"price_incl_tax": "€54.20"
}
],
"total_count": 533,
"current_page": 1
},
"status": "success"
}
}About the ColorFabb API
Catalog and Category Browsing
The get_all_filaments endpoint returns paginated product listings — 12 per page — with fields including name, slug, price_incl_tax, price_excl_tax, stock_status, id, config, and yotpo_id. You can narrow results with the optional material parameter, which accepts a material category ID such as 17285 for PLA High Speed Pro. To discover valid category IDs and their associated product counts, call get_filament_categories first — it returns an array of objects with name, id, and count. The get_ral_colors endpoint mirrors the same response shape specifically for RAL color filaments.
Product Detail and Specifications
For a single product, get_filament_detail accepts a URL slug like varioshore-tpu-black and returns the full data set: sku, name, description, price_excl_tax, price_incl_tax, a specifications object with key-value pairs (material properties, diameter, spool weight, and similar fields), and a printing_advice object covering parameters such as recommended nozzle temperature and print speed. The options array is present in the response but is often empty.
Search and Review Data
search_filaments accepts a query string (e.g. PLA, black, TPU) and returns matching products with sku, name, description, url, image_url, price, and slug, along with a total_items count. For review data, get_filament_reviews takes the product_id field (available as id from get_all_filaments or get_ral_colors) and returns a bottomline object from Yotpo with totalReviews, averageScore, totalOrganicReviews, and organicAverageScore. Individual review text and reviewer details are not included.
The ColorFabb API is a managed, monitored endpoint for colorfabb.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when colorfabb.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 colorfabb.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 filament comparison tool using specifications from
get_filament_detailacross multiple slugs - Monitor stock availability by polling
stock_statusfromget_all_filamentsfor specific material categories - Aggregate average ratings from
get_filament_reviewsto rank filaments within a category by user score - Compile a cross-category price sheet using
price_excl_taxandprice_incl_taxfields from paginated catalog results - Power a search autocomplete feature using keyword results from
search_filamentswith image and URL fields - Enumerate all RAL color variants with stock status using
get_ral_colorsfor color-matching workflows - Track category product counts over time using the
countfield fromget_filament_categories
| 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 ColorFabb have an official public developer API?+
How do I filter filaments by material type in get_all_filaments?+
material parameter. To find valid IDs, call get_filament_categories first — it returns each category's id alongside its name and product count. For example, the PLA High Speed Pro category uses ID 17285.Does get_filament_reviews return individual review text and reviewer names?+
get_filament_reviews returns only aggregate Yotpo data: totalReviews, averageScore, totalOrganicReviews, and organicAverageScore. Individual review content and reviewer details are not currently exposed. You can fork this API on Parse and revise it to add an endpoint that fetches per-review text.What are the pagination limits for catalog endpoints?+
get_all_filaments and get_ral_colors return 12 products per page. The response includes total_count and current_page so you can calculate total pages. There is no parameter to change page size — you iterate using the page input.Does the API expose filament color variants or spool size options for a product?+
options array is present in get_filament_detail responses but is typically empty. Variant-level data such as distinct color swatches or spool weight options per SKU is not currently broken out as structured fields. You can fork this API on Parse and revise it to extract variant data from individual product pages.