Referanse — API

API-dokumentasjon

Integrer Vectorgram i applikasjonen din. Ett endepunkt å sende inn med, ett å polle, ett å laste ned med — jobber er asynkrone av design. Basis-URL https://api.vectorgram.ai, autentiseringen er Authorization: Bearer <api_key>. Nøkler ser ut som vectorgram_sk_live_… — prefikset er med vilje skrevet ut, slik at en nøkkel som dukker opp i et gammelt .env kan identifiseres uten å bli prøvd.

En ny konto får 25 API-konverteringer gratis i 30 dager — full kvalitet, uten vannmerke. Etter det krever API-et en plan som omfatter det (Pro og oppover), og kall går på planens månedlige kvote. Det finnes ingen merforbruk: forbi kvoten svarer kall med 402 med nullstillingsdatoen. GET /v1/account rapporterer begge kvotene og hva som gjenstår av hver.

Hurtigstart

1 — Hent API-nøkkelen din

API-nøklene dine

Laster …

2 — Send inn et bilde

curl -X POST https://api.vectorgram.ai/v1/vectorize \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Idempotency-Key: 8f1b0c2e-0a1d-4f77-9c3a-2b6e5d4c1a90" \
  -F "file=@image.png" \
  -F "image_type=clipart" \
  -F "detail=high" \
  -F "gradients=smooth" \
  -F "smoothing=strong" \
  -F "retention=24h"

Svaret er 202 Accepted med en job i kø — konverteringen har ikke skjedd ennå. Sender du samme forespørsel to ganger med én og samme Idempotency-Key returneres den første jobben i stedet for at det lages en ny; endrer du filen eller innstillingene under en nøkkel som allerede er brukt, kommer en 409.

3 — Poll, eller ta imot en webhook

GET /v1/jobs/job_abc123

{
  "id": "job_abc123",
  "status": "queued",
  "progress": 0,
  "queue_position": 3,
  "mode": "logo",
  "retention": "24h",
  "megapixels": 2.1,
  "created_at": "2026-08-03T10:30:00Z"
}

status går gjennom queued → processing → completed | failed | canceled | expired. Mens jobben står i kø, får du en ekte queue_position i stedet for en oppfunnet nedtelling; progress under behandling er interpolert fra størrelsesestimatet og stopper på 95 % til filen finnes. Store bilder kan ta minutter — poll med et fornuftig intervall, eller enda bedre: registrer en webhook.

4 — Last ned

{
  "id": "job_abc123",
  "status": "completed",
  "progress": 100,
  "download_url": "https://api.vectorgram.ai/v1/jobs/job_abc123/download",
  "completed_at": "2026-08-03T10:30:04Z",
  "expires_at": "2026-08-04T10:30:04Z"
}

download_url vises bare når et resultat finnes, trenger den samme bærer-token, og sender filen som et vedlegg. Med retention=none slettes filen idet den leveres — last den ned én gang.

Konverteringsparametere

Alle felt er multipart-formdata på POST /v1/vectorize. De fire merkede manuell er sporingskontrollene: tilgjengelige på Pro, Studio, Agency og Enterprise. På Free og Lite godtas de og erstattes så med standardverdiene i stedet for å avvises, så en klient som alltid sender dem, konverterer likevel — den får bare det automatiske resultatet.

filePNG, JPEG, WebP, AVIF eller BMP, ≤ 50 MB

Påkrevd. Bildet som skal konverteres. Gjenkjennes fra bytene sine, ikke fra filnavnet.

image_typeauto · clipart · photo · scan · blueprint

Hva slags bilde dette er. Standardverdien auto lar motoren klassifisere det.

output_formatsvg

Valgfritt, og svg er den eneste verdien. SVG er det motoren skriver, og ingenting konverterer det til noe annet — EPS, PNG, PDF, DXF og AI avvises med 400 unsupported_output_format i stedet for å settes i kø for å feile.

retentionnone · 24h · 3d · 7d · 10d

Hvor lenge resultatet beholdes. Standardverdien er 24 t; none sletter det etter den første nedlastingen. Begrenses til planens maksimum i stedet for å avvises — Free kan ikke holde et resultat i 10 dager bare ved å be om det.

batch_idhvilken som helst streng

Din egen grupperingsnøkkel, gjengitt tilbake på jobben og brukbar som filter. Send én forespørsel per bilde. Batchkonvertering begynner på Pro (30 filer, 50 på Studio, 100 på Agency); under den holder gruppen én fil, og en andre svarer med 400 batch_limit_exceeded.

folder_namehvilken som helst streng

Navnet på mappen batchens filer ligger i på dashbordet. Valgfritt, og krever batch_id (400 invalid_folder_name ellers); begrenset som batch_id — 128 tegn, ingen kontrolltegn. Den første filen som slippes gjennom, gir mappen navn; senere filer i batchen endrer ikke navnet. Utelates, stemples mappen med opprettelsesdatoen sin.

detailmanuelllow · medium · high

Hvor mye av bildet som overlever regionsammenslåingen. Standardverdien er high — det løseste trinnet motoren har hatt siden 1.3.0. En glidebryterverdi på 1–100 godtas og plasseres i riktig bøtte.

gradientsmanuellauto · smooth · stepped

Håndtering av fargeoverganger. Standardverdien er smooth; stepped og auto etterlater motorens flate fyll.

smoothingmanuelloff · light · strong · maximum

Avrunding av hjørner. Standardverdien er strong — ekte hjørner forblir skarpe, bare det sporeren tilfeldigvis rundet av, kommer tilbake. En glidebryterverdi på 0–100 godtas og plasseres i riktig bøtte.

trace_stylemanuellfill · centerline

Hva motoren tegner. Standardverdien er fill — hver form en fylt kontur. centerline tegner ett åpent strek langs midten av hver linje (fill="none", med strekfarge og strekbredde), det som plottere, lasergravere, CNC-frsere og vinylskjærere følger: ett pass per linje i stedet for to konturer rundt den. Deler som er for tykke til å være en linje, forblir fylte former. detail, gradients og smoothing gjelder ikke og ignoreres. En ukjent verdi svarer med 400.

close_seamstrue · false

Sømlukking, på alle planer. Standardverdien er true — hver fyll går 0,75 px under naboen sin, slik at ingen tynn lys linje vises mellom to farger. false gir den eksakte partisjonen, der formene møtes kant i kant uten overlapp (for å redigere geometrien). Ingen form flyttes uansett. Ignoreres med centerline.

Endepunkter

POST/v1/vectorize
GET/v1/jobs
GET/v1/folders
DELETE/v1/folders/{id}
GET/v1/jobs/{id}
GET/v1/jobs/{id}/download
DELETE/v1/jobs/{id}
POST/v1/jobs/{id}/report
GET/v1/account
GET/v1/keys
POST/v1/keys
DELETE/v1/keys/{id}
GET/v1/webhooks
POST/v1/webhooks
DELETE/v1/webhooks/{id}

Den genererte referansen — hvert felt, hver responsform — er Swagger-UI-en tjenesten serverer på /docs/swagger, med OpenAPI-dokumentet på /v3/api-docs.

Webhooks

Ettersom jobber kjører asynkront — minutter for store filer — bør du abonnere på webhooks i stedet for å polle. Registrer et endepunkt med POST /v1/webhooks; signeringshemmeligheten returneres én gang, ved opprettelsen, og aldri siden.

processing.started
processing.completed
processing.failed
POST https://your-app.example/hooks/vectorgram
X-Vectorgram-Event: processing.completed
X-Vectorgram-Signature: sha256=<hmac of the raw body, hex>

{
  "id": "evt_9f2c…",
  "event": "processing.completed",
  "created_at": "2026-08-03T10:30:04Z",
  "data": { "job_id": "job_abc123", "status": "completed" }
}

Bekreft signaturen ved å beregne HMAC-SHA256 av den rå forespørselskroppen med endepunktets hemmelighet og sammenligne i konstant tid — behandle et avvik som en uautentisert forespørsel. Leveringen er minst én gang: et ikke-2xx-svar prøves på nytt tre ganger med eksponentiell tilbakefall, så gjør behandleren din idempotent på id. Endepunkter må kunne løses til en offentlig adresse; det sjekkes på nytt ved levering, ikke bare ved registrering.

Feil

Feil er JSON: { "error": { "code": "…", "message": "…", "details": { … } } }. Les code, ikke meldingen — meldingene formuleres om.

400missing_file
400unreadable_file
400empty_file
400batch_limit_exceeded
400invalid_batch_id
400invalid_folder_name
401unauthorized
402quota_exhausted
402megapixels_exceeded
402high_detail_not_included
403forbidden
404not_found
409not_ready
409idempotency_key_reuse
409request_in_progress
410result_expired
413file_too_large
415unsupported_format
429too_many_active_jobs
429daily_fuse_tripped
503queue_full
503storage_full

Informasjonskapsler

Vi bruker informasjonskapsler fra Google Analytics for å lære hvilke sider som besøkes og hvor besøkende setter seg fast — ingen reklame, ingen profilering, ingenting selges. Sier du nei, fungerer siden nøyaktig likt. Detaljer i Personvernerklæringen.