Open Filament Database API
The dataset is rebuilt daily and published as static JSON, CSV, and SQLite files. All data is validated against JSON Schema Draft-07 schemas served from the API itself.
How it Works
The Open Filament Database is a static dataset rebuilt daily from source YAML files. There is no dynamic server — the API is a collection of pre-built JSON files served from GitHub Pages.
The entity hierarchy is: Brands → Materials → Filaments → Variants (with Sizes). Stores are independent entities.
Every entity type has a corresponding JSON Schema available at /schemas/. Schemas include custom x- extension properties (x-category, x-label, x-description) that this editor uses to dynamically build its UI.
Contributions are made through this web editor: browse the data, make edits, and submit — changes are validated against the schemas and reviewed by a maintainer.
Dataset Statistics
Generated: 2026-05-24T23:12:51ZAPI Endpoints
All responses are static JSON files rebuilt daily. Base URL: /api/v1/
Brands
/brands/index.json List all brands with material counts/brands/{slug}/index.json Brand details with nested materials, filaments, and variantsMaterials & Filaments
/brands/{brand}/materials/{material}/index.json Material with its filaments/.../filaments/{filament}/index.json Filament with slicer settings and variants/.../variants/{variant}.json Color variant with sizes and purchase linksStores
/stores/index.json List all stores/stores/{slug}.json Store details with location and contact infoLogos
/brands/logo/index.json All brand logo metadata/brands/logo/{id}.{ext} Brand logo image (PNG, JPG, SVG)/stores/logo/index.json All store logo metadata/stores/logo/{id}.{ext} Store logo image (PNG, JPG, SVG)Schemas
/schemas/index.json Schema index listing all available schemas/schemas/{name}.json Individual schema (JSON Schema Draft-07 with x- extensions)Badges
/badges/{name}.svg SVG count badges (brands, filaments, variants, stores)Bulk Downloads
/json/all.json Complete dataset as a single JSON file/json/all.json.gz Gzipped JSON/json/all.ndjson Newline-delimited JSON (one record per line)/csv/{entity}.csv CSV exports (brands, filaments, materials, variants, sizes, stores, purchase_links)/sqlite/filaments.db SQLite database (filament data)/sqlite/stores.db SQLite database (store data)Examples
curl
curl https://api.openfilamentdatabase.org/api/v1/brands/index.json JavaScript
const res = await fetch('https://api.openfilamentdatabase.org/api/v1/brands/index.json');
const data = await res.json();
console.log(`${data.count} brands`); Python
import requests
brands = requests.get('https://api.openfilamentdatabase.org/api/v1/brands/index.json').json()
for b in brands['brands']:
print(f"{b['name']}: {b['material_count']} materials")File Browser
api/
v1/
brands/
- {brand-slug}/
logo/
- {logo-id}.json
- {logo-id}.{ext}
- index.json
- index.json
stores/
- {store-slug}.json
logo/
- {logo-id}.json
- {logo-id}.{ext}
- index.json
- index.json
schemas/
- {name}.json
- index.json
- index.json
json/
brands/
- {brand-slug}.json
- index.json
- all.json
- all.json.gz
- all.ndjson
- manifest.json