Gå til hovedinnhold

API-referanse

3DPrintForge eksponerer et fullverdig REST API med 590+ endepunkter. API-dokumentasjonen er tilgjengelig direkte i dashboardet.

Interaktiv dokumentasjon

Åpne OpenAPI-dokumentasjonen i nettleseren:

https://din-server:3443/api/docs

Her finner du alle endepunkter, parametere, request/response-skjemaer og mulighet for å teste API-et direkte.

Autentisering

API-et bruker Bearer token-autentisering (JWT):

# Logg inn og hent token
curl -X POST https://din-server:3443/api/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "ditt-passord"}'

# Respons
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expiresIn": "24h"
}

Bruk tokenet i alle påfølgende kall:

curl https://din-server:3443/api/printers \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

Rate limiting

API-et er rate-begrenset for å beskytte serveren:

GrenseVerdi
Forespørsler per minutt200
Burst (maks per sekund)20
Respons ved overskridelse429 Too Many Requests

Retry-After-header i svaret angir hvor mange sekunder til neste forespørsel er tillatt.

Endepunkter oversikt

Autentisering

MetodeEndepunktBeskrivelse
POST/api/auth/loginLogg inn, hent JWT
POST/api/auth/logoutLogg ut
GET/api/auth/meHent innlogget bruker

Printere

MetodeEndepunktBeskrivelse
GET/api/printersListe alle printere
POST/api/printersLegg til printer
GET/api/printers/:idHent printer
PUT/api/printers/:idOppdater printer
DELETE/api/printers/:idSlett printer
GET/api/printers/:id/statusSanntidsstatus
POST/api/printers/:id/commandSend kommando

Filament

MetodeEndepunktBeskrivelse
GET/api/filamentsListe alle spoler
POST/api/filamentsLegg til spole
PUT/api/filaments/:idOppdater spole
DELETE/api/filaments/:idSlett spole
GET/api/filaments/statsForbruksstatistikk
GET/api/inventory/cost-estimateKostnadsestimat for enkelt-print
POST/api/inventory/cost-estimate/batchBatch-kostnadsestimat (array av items)

Printhistorikk

MetodeEndepunktBeskrivelse
GET/api/historyListe historikk (paginert)
GET/api/history/:idHent enkeltprint
GET/api/history/exportEksporter CSV
GET/api/history/statsStatistikk
MetodeEndepunktBeskrivelse
GET/api/queueHent køen
POST/api/queueLegg til jobb
PUT/api/queue/:idOppdater jobb
DELETE/api/queue/:idFjern jobb
POST/api/queue/dispatchTving utsendelse

3DPrintForge Slicer

Proxy-endepunkter mot skynett81/OrcaSlicer-fork i tjenestemodus. Se 3DPrintForge Slicer-oppsett og den fulle REST-kontrakten.

MetodeEndepunktBeskrivelse
GET/api/slicer/forge/statusProbe-status (cachet 60 s)
POST/api/slicer/forge/configureOppdater URL/token/enabled (lagres i config.json)
GET/api/slicer/forge/profilesProfilkatalog fra fork
POST/api/slicer/forge/sliceSlicing (multipart upload)
POST/api/slicer/forge/slice/streamSlicing med SSE live-progresjon
POST/api/slicer/forge/slice-and-sendSlicing + opplasting til printer i ett kall
GET/api/slicer/forge/jobsAktive slice-jobber
GET/api/slicer/forge/jobs/:id/gcodeLast ned ferdig G-code
POST/api/slicer/forge/jobs/:id/cancelAvbryt pågående slice
GET/api/slicer/forge/previewPNG/SVG-forhåndsvisning av første lag
POST/api/slicer/forge/syncTving synkronisering av profilkatalog
GET/api/slicer/forge/sync/statusSiste synkroniseringsstatus

WebSocket API

I tillegg til REST finnes et WebSocket API for sanntidsdata:

const ws = new WebSocket('wss://din-server:3443/ws');

ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log(data.type, data.payload);
};

Meldingstyper (innkommende)

  • printer.status — oppdatert printerstatus
  • print.progress — fremgangsprosent oppdatering
  • ams.update — AMS-tilstandsendring
  • notification — varselmelding

Feilkoder

KodeBetyr
200OK
201Opprettet
400Ugyldig forespørsel
401Ikke autentisert
403Ikke autorisert
404Ikke funnet
429For mange forespørsler
500Serverfeil