Spulen
Spulen lesen, anlegen, ändern, wiegen, nachfüllen, archivieren und umlagern. Endgültig löschen geht nicht.
Auf dieser Seite
Spulen auflisten
GET/spools
Sortiert nach Spulennummer. fill_ folgt den Warnschwellen des Kontos wie in der App: low, crit oder null. Jedes Feld, das du schreiben kannst, heißt beim Lesen gleich. Nur lesbar sind id, number, title (Anzeigename wie in der App), fill_, location (Ort als Text wie in der App) und archived. material ist die Sorte mit Variante wie in der App, z. B. PLA Basic. color_ trägt bei mehrfarbigen Spulen mehrere Farben, getrennt mit „; “.
Parameter
limit- 1 bis 500, Standard 100
offset- 0 bis 1.000.000, Standard 0
archived- false: aktive Spulen (Standard), true: archivierte
curl "https://spooly.eu/api/v1/spools?limit=100" \
-H "Authorization: Bearer $SPOOLY_KEY"{
"items": [
{
"id": "7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21",
"number": 1,
"title": "Jade White",
"name": null,
"manufacturer": "Bambu Lab",
"material": "PLA Matte",
"finish": "matt",
"color_hex": "#E8E9DF",
"color_name": "Jade White",
"remaining_grams": 342,
"spool_size_grams": 1000,
"empty_spool_grams": 250,
"fill_level": "low",
"location": "Schrank 01 · Fach vorne · Platz 3",
"location_id": "loc_3c9b7e1a5d60",
"place": 3,
"archived": false,
"price": 19.99,
"notes": null
}
],
"total": 23,
"limit": 100,
"offset": 0
}Eine Spule abrufen
GET/spools/{spool_id}
Parameter
spool_id- Die
idder Spule, nicht ihre Nummer
curl "https://spooly.eu/api/v1/spools/7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21" \
-H "Authorization: Bearer $SPOOLY_KEY"{
"id": "7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21",
"number": 1,
"title": "Jade White",
"name": null,
"manufacturer": "Bambu Lab",
"material": "PLA Matte",
"finish": "matt",
"color_hex": "#E8E9DF",
"color_name": "Jade White",
"remaining_grams": 342,
"spool_size_grams": 1000,
"empty_spool_grams": 250,
"fill_level": "low",
"location": "Schrank 01 · Fach vorne · Platz 3",
"location_id": "loc_3c9b7e1a5d60",
"place": 3,
"archived": false,
"price": 19.99,
"notes": null
}Spule anlegen
POST/spools
Antwortet mit 201. Ohne remaining_ ist die Spule voll.
Parameter
color_hex- #RRGGBB
material- 1 bis 40 Zeichen, die Sorte mit Variante wie in der App, z. B. PLA Basic, PLA+ oder PETG HF
spool_size_grams- Über 0 bis 20.000 g
name- Bis 80 Zeichen
color_name- Bis 60 Zeichen
manufacturer- Bis 60 Zeichen
finishmatt,shiny,satin,silk,metallic,transparent,glow_,in_ dark sparkle,marble,woododerrainbowremaining_grams- 0 bis 20.000 g, nicht mehr als die Spule
empty_spool_grams- Tara, 0 bis 2.000 g
price- 0 bis 100.000
notes- Bis 1.000 Zeichen
location_id- Kennung aus
GET /locations place- Platz im Lagerort, 1 bis
places, nur mitlocation_id Idempotency-Key- 1 bis 128 sichtbare ASCII-Zeichen. Idempotency-Key
curl -X POST "https://spooly.eu/api/v1/spools" \
-H "Authorization: Bearer $SPOOLY_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: neu-petg-0001" \
-d '{"color_hex":"#1B1B1D","material":"PETG HF","spool_size_grams":1000,"color_name":"Black"}'{
"change_id": 381,
"spool": {
"id": "2c9e5a71-0d4b-4e3f-b862-91a7c4d0e5f3",
"number": 24,
"title": "Black",
"name": null,
"manufacturer": null,
"material": "PETG HF",
"finish": null,
"color_hex": "#1B1B1D",
"color_name": "Black",
"remaining_grams": 1000,
"spool_size_grams": 1000,
"empty_spool_grams": null,
"fill_level": null,
"location": null,
"location_id": null,
"place": null,
"archived": false,
"price": null,
"notes": null
},
"slot": null,
"old_grams": null,
"new_grams": null,
"replayed": false,
"task": null,
"printer": null,
"stock_empty": null,
"summary": "Spule #24 Black angelegt"
}Spule ändern
PATCH/spools/{spool_id}
Nur die mitgeschickten Felder, mindestens eines. Unbekannte Felder ergeben 422. color_, material und spool_ dürfen nicht null sein, die übrigen leerst du mit null. place null nimmt nur den Platz weg. Das Gewicht läuft über / und /.
Parameter
spool_id- Die
idder Spule, nicht ihre Nummer name, color_hex, color_name, material, manufacturer, finish, spool_size_grams, empty_spool_grams, price, notes, location_id, place- Regeln wie beim Anlegen
Idempotency-Key- 1 bis 128 sichtbare ASCII-Zeichen. Idempotency-Key
curl -X PATCH "https://spooly.eu/api/v1/spools/7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21" \
-H "Authorization: Bearer $SPOOLY_KEY" \
-H "Content-Type: application/json" \
-d '{"notes":"Trocknen vor dem Druck"}'{
"change_id": 381,
"spool": {
"id": "7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21",
"number": 1,
"title": "Jade White",
"name": null,
"manufacturer": "Bambu Lab",
"material": "PLA Matte",
"finish": "matt",
"color_hex": "#E8E9DF",
"color_name": "Jade White",
"remaining_grams": 342,
"spool_size_grams": 1000,
"empty_spool_grams": 250,
"fill_level": "low",
"location": "Schrank 01 · Fach vorne · Platz 3",
"location_id": "loc_3c9b7e1a5d60",
"place": 3,
"archived": false,
"price": 19.99,
"notes": null
},
"slot": null,
"old_grams": null,
"new_grams": null,
"replayed": false,
"task": null,
"printer": null,
"stock_empty": null,
"summary": "Spule #1 Jade White bearbeitet"
}Restgewicht setzen
POST/spools/{spool_id}/weight
Genau eines der beiden Gewichte. 0 g archiviert die Spule, wie in der App.
Parameter
spool_id- Die
idder Spule, nicht ihre Nummer grams- 0 bis 20.000 g, nur das Filament
gross_grams- 0 bis 40.000 g, Spule mit Tara. Die Tara muss bekannt sein.
Idempotency-Key- 1 bis 128 sichtbare ASCII-Zeichen. Idempotency-Key
curl -X POST "https://spooly.eu/api/v1/spools/7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21/weight" \
-H "Authorization: Bearer $SPOOLY_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: waage-2026-11-01-0815" \
-d '{"gross_grams":542}'{
"change_id": 381,
"spool": {
"id": "7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21",
"number": 1,
"title": "Jade White",
"name": null,
"manufacturer": "Bambu Lab",
"material": "PLA Matte",
"finish": "matt",
"color_hex": "#E8E9DF",
"color_name": "Jade White",
"remaining_grams": 300,
"spool_size_grams": 1000,
"empty_spool_grams": 250,
"fill_level": "low",
"location": "Schrank 01 · Fach vorne · Platz 3",
"location_id": "loc_3c9b7e1a5d60",
"place": 3,
"archived": false,
"price": 19.99,
"notes": null
},
"slot": null,
"old_grams": 342,
"new_grams": 300,
"replayed": false,
"task": null,
"printer": null,
"stock_empty": null,
"summary": "Spule #1 Jade White: 342 auf 300 g"
}Nachfüllen
POST/spools/{spool_id}/refill
Addiert Gramm. Das Ergebnis darf nicht über der Spulengröße liegen.
Parameter
spool_id- Die
idder Spule, nicht ihre Nummer grams- Über 0 bis 20.000 g
Idempotency-Key- 1 bis 128 sichtbare ASCII-Zeichen. Idempotency-Key
curl -X POST "https://spooly.eu/api/v1/spools/7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21/refill" \
-H "Authorization: Bearer $SPOOLY_KEY" \
-H "Content-Type: application/json" \
-d '{"grams":250}'{
"change_id": 381,
"spool": {
"id": "7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21",
"number": 1,
"title": "Jade White",
"name": null,
"manufacturer": "Bambu Lab",
"material": "PLA Matte",
"finish": "matt",
"color_hex": "#E8E9DF",
"color_name": "Jade White",
"remaining_grams": 592,
"spool_size_grams": 1000,
"empty_spool_grams": 250,
"fill_level": null,
"location": "Schrank 01 · Fach vorne · Platz 3",
"location_id": "loc_3c9b7e1a5d60",
"place": 3,
"archived": false,
"price": 19.99,
"notes": null
},
"slot": null,
"old_grams": 342,
"new_grams": 592,
"replayed": false,
"task": null,
"printer": null,
"stock_empty": null,
"summary": "Spule #1 Jade White: 342 auf 592 g"
}Archivieren
POST/spools/{spool_id}/archive
Die Spule verlässt den aktiven Bestand, ihr Druckverlauf bleibt. Während eines laufenden Drucks geht das nicht. Die API antwortet dann mit 409 spool_.
Parameter
spool_id- Die
idder Spule, nicht ihre Nummer Idempotency-Key- 1 bis 128 sichtbare ASCII-Zeichen. Idempotency-Key
curl -X POST "https://spooly.eu/api/v1/spools/7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21/archive" \
-H "Authorization: Bearer $SPOOLY_KEY"{
"change_id": 381,
"spool": {
"id": "7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21",
"number": 1,
"title": "Jade White",
"name": null,
"manufacturer": "Bambu Lab",
"material": "PLA Matte",
"finish": "matt",
"color_hex": "#E8E9DF",
"color_name": "Jade White",
"remaining_grams": 342,
"spool_size_grams": 1000,
"empty_spool_grams": 250,
"fill_level": "low",
"location": "Schrank 01 · Fach vorne · Platz 3",
"location_id": "loc_3c9b7e1a5d60",
"place": 3,
"archived": true,
"price": 19.99,
"notes": null
},
"slot": null,
"old_grams": null,
"new_grams": null,
"replayed": false,
"task": null,
"printer": null,
"stock_empty": null,
"summary": "Spule #1 Jade White archiviert"
}Zurückholen
POST/spools/{spool_id}/restore
Holt eine archivierte Spule zurück in den aktiven Bestand.
Parameter
spool_id- Die
idder Spule, nicht ihre Nummer Idempotency-Key- 1 bis 128 sichtbare ASCII-Zeichen. Idempotency-Key
curl -X POST "https://spooly.eu/api/v1/spools/7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21/restore" \
-H "Authorization: Bearer $SPOOLY_KEY"{
"change_id": 381,
"spool": {
"id": "7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21",
"number": 1,
"title": "Jade White",
"name": null,
"manufacturer": "Bambu Lab",
"material": "PLA Matte",
"finish": "matt",
"color_hex": "#E8E9DF",
"color_name": "Jade White",
"remaining_grams": 342,
"spool_size_grams": 1000,
"empty_spool_grams": 250,
"fill_level": "low",
"location": "Schrank 01 · Fach vorne · Platz 3",
"location_id": "loc_3c9b7e1a5d60",
"place": 3,
"archived": false,
"price": 19.99,
"notes": null
},
"slot": null,
"old_grams": null,
"new_grams": null,
"replayed": false,
"task": null,
"printer": null,
"stock_empty": null,
"summary": "Spule #1 Jade White zurückgeholt"
}Umlagern
POST/spools/{spool_id}/move
Das Ziel kommt aus GET /locations. location_ null nimmt die Spule aus dem Ort. Mit place liegt sie auf diesem Platz, ohne place liegt sie im Ort ohne Platz.
Parameter
spool_id- Die
idder Spule, nicht ihre Nummer location_id- Kennung des Lagerorts oder null
place- Platznummer von 1 bis
placesdes Lagerorts. Ist der Platz belegt, kommt 409place_.taken Idempotency-Key- 1 bis 128 sichtbare ASCII-Zeichen. Idempotency-Key
curl -X POST "https://spooly.eu/api/v1/spools/7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21/move" \
-H "Authorization: Bearer $SPOOLY_KEY" \
-H "Content-Type: application/json" \
-d '{"location_id":"loc_3c9b7e1a5d60","place":3}'{
"change_id": 381,
"spool": {
"id": "7f3c2a10-5e1b-4c8e-9a44-2d6b1f0c7e21",
"number": 1,
"title": "Jade White",
"name": null,
"manufacturer": "Bambu Lab",
"material": "PLA Matte",
"finish": "matt",
"color_hex": "#E8E9DF",
"color_name": "Jade White",
"remaining_grams": 342,
"spool_size_grams": 1000,
"empty_spool_grams": 250,
"fill_level": "low",
"location": "Schrank 01 · Fach vorne · Platz 3",
"location_id": "loc_3c9b7e1a5d60",
"place": 3,
"archived": false,
"price": 19.99,
"notes": null
},
"slot": null,
"old_grams": null,
"new_grams": null,
"replayed": false,
"task": null,
"printer": null,
"stock_empty": null,
"summary": "Spule #1 Jade White umgelagert"
}