Small Flask-Project to manage your 3D-Fillament Spools.
Self-Host on in your HomeLab
- Clone Repo
- Run app.py
- Setup => After setting up the project, please call the following URL to initialize the database:se:
- https://[your-URL]/api/init
Use the WebUI to easily manage your spools - Web Demo:
All API-Routs are available at following URL (Per Terminal) to create your own scripts or clients (Not on Demo Server - Please use WebUI for Demo):
| Feld |
Typ |
Descripton |
id |
string |
Unice ID |
name |
string |
Name of the Spool |
manufacturer |
string |
Manufacrur |
material |
string |
e.g. PLA |
color |
string |
Color |
total_weight_grams |
integer |
Weight of full Spool |
remaining_weight_grams |
integer |
remain weight of spool |
created_at |
string |
Date of creation |
updated_at |
string |
Date of Last Update |
archived |
boolean |
Spool archived? |
{
"id": "UUID",
"name": "PLA Black",
"manufacturer": "esun",
"material": "PLA",
"color": "Black",
"total_weight_grams": 1000,
"remaining_weight_grams": 850,
"created_at": "2026-03-27T12:34:56",
"updated_at": "2026-03-27T12:40:00",
"archived": false
}}
| Methode |
Endpoint |
Typ |
Beschreibung |
GET |
/api/spools |
array |
All Spools |
POST |
/api/spools |
object |
Create new Spool |
GET |
/api/spools/id> |
object |
Only gives Spool with the send ID |
PATCH |
/api/spools/id> |
object |
Change Infos of a specific spool |
POST |
/api/spools//consumeonsume |
object |
Consume a Amount of the spool with the given ID |
POST |
/api/spools//archiverchive |
object |
Archive a Spool |
Query Parameters for GET /api/spools
| Parameter |
Typ |
Beschreibung |
material |
string |
filter by material |
color |
string |
filter by color |
archived |
boolean |
filter by archived Status |
Mandatory fields for POST /api/spools
| Feld |
Typ |
name |
string |
manufacturer |
string |
material |
string |
color |
string |
total_weight_grams |
integer |
Mandatory fields for POST /api/spools//consumeonsume