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:51Z
139
Brands
658
Materials
1978
Filaments
14219
Variants
22238
Sizes
48
Stores

API Endpoints

All responses are static JSON files rebuilt daily. Base URL: /api/v1/

Brands

GET /brands/index.json List all brands with material counts
GET /brands/{slug}/index.json Brand details with nested materials, filaments, and variants

Materials & Filaments

GET /brands/{brand}/materials/{material}/index.json Material with its filaments
GET /.../filaments/{filament}/index.json Filament with slicer settings and variants
GET /.../variants/{variant}.json Color variant with sizes and purchase links

Stores

GET /stores/index.json List all stores
GET /stores/{slug}.json Store details with location and contact info

Logos

GET /brands/logo/index.json All brand logo metadata
GET /brands/logo/{id}.{ext} Brand logo image (PNG, JPG, SVG)
GET /stores/logo/index.json All store logo metadata
GET /stores/logo/{id}.{ext} Store logo image (PNG, JPG, SVG)

Schemas

GET /schemas/index.json Schema index listing all available schemas
GET /schemas/{name}.json Individual schema (JSON Schema Draft-07 with x- extensions)

Badges

GET /badges/{name}.svg SVG count badges (brands, filaments, variants, stores)

Bulk Downloads

GET /json/all.json Complete dataset as a single JSON file
GET /json/all.json.gz Gzipped JSON
GET /json/all.ndjson Newline-delimited JSON (one record per line)
GET /csv/{entity}.csv CSV exports (brands, filaments, materials, variants, sizes, stores, purchase_links)
GET /sqlite/filaments.db SQLite database (filament data)
GET /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