Hopp til innholdet
Flixy API · v1

API-dokumentasjon

Alt du trenger for å legge Flixys KI til i produktet ditt. Basis-URL: https://flixy.studio/v1

REST · JSONBearer-nøklerAsynkrone jobberSignerte webhooks18 språk

Introduksjon

Med Flixy API kan programvaren din bruke funksjonene i Flixy Studio: lage komplette nettsteder ut fra en beskrivelse, redigere og oversette dem, skrive innhold til nettsteder, lese menyer, kataloger og PDF-er, og lage bilder og logoer. Du betaler bare for vellykkede kall, fra en forhåndsbetalt saldo.

Lange oppgaver (lage, redigere eller oversette et nettsted) kjøres som jobber: API-et svarer umiddelbart, og du følger jobben eller mottar en webhook. Innhold, dokumentlesing og bilder svarer direkte, vanligvis i løpet av noen sekunder.

Begynn i utviklerområdet ditt: en gratis testnøkkel opprettes så snart du åpner det.

Utviklerkonsoll

Nøkler, saldo, påfyllinger, webhooks og kallogger administreres i utviklerkonsollen på dev.flixy.studio.

  • En egen utviklerkonto. Som på andre KI-plattformer er utviklerkontoen din atskilt fra Flixy Studio-kontoen din: den har egen registrering, innlogging og økt. Å logge ut av den ene logger deg aldri ut av den andre. Du kan bruke samme e-postadresse for begge.
  • Tilkoblet organisasjon. Hvis du også bruker Flixy Studio, kan du koble organisasjonen din til utviklerkontoen din, slik at API-et kan jobbe med nettstedene dens. Se Tilkoblet organisasjon.
  • Kontosikkerhet. Totrinnsbekreftelse, aktive økter og dataeksport er tilgjengelig i konsollen, under Konto.

Autentisering

Send nøkkelen din i Authorization-headeren i hver forespørsel. Nøkler begynner med fx_live_ eller fx_test_.

Authorization: Bearer fx_live_8sJ2…
Nøkkelen din er hemmelig. Kall API-et bare fra serveren din: forespørsler sendt fra en nettleser avvises, slik at en nøkkel aldri havner på en nettside eller i en mobilapp.

Hver nøkkel har rettigheter (scopes). Et kall uten riktig scope returnerer 403 missing_scope.

ParameterTypeBeskrivelse
sites:readscopeLese nettsteder og HTML-en deres.
sites:writescopeLage, redigere og oversette nettsteder.
content:writescopeSkrive innhold til nettsteder.
extract:writescopeLese bilder og PDF-dokumenter.
images:writescopeLage bilder og logoer.
account:readscopeLese saldo og bruk.

Test- og live-nøkler

  • Testnøkler (fx_test_…) er gratis. De returnerer realistiske eksempelsvar uten å bruke KI, slik at du kan bygge og teste hele integrasjonen. Nettstedsjobber fullføres etter noen sekunder med et eksempelnettsted.
  • Live-nøkler (fx_live_…) returnerer ekte resultater og belastes saldoen din.

Hvert svar inneholder headeren Flixy-Mode: test eller Flixy-Mode: live.

Forespørsler og svar

Send JSON-bodyer med Content-Type: application/json (maks. 16 MB). Svarene er i JSON. Datoer bruker ISO 8601 i UTC. Hvert svar har en X-Request-Id-header: oppgi den til kundestøtten vår hvis du trenger hjelp med et kall.

Angi Accept-Language for å få feilmeldinger på ditt språk (fr, en, es, de, it, pt, nl, ca, el, sv, no, da, fi, is, et, lv, lt, ja; engelsk som standard).

Feil

Feil bruker standard HTTP-statuskoder og har alltid samme form:

{
  "error": {
    "type": "billing_error",
    "code": "insufficient_balance",
    "message": "Insufficient balance: top up your developer account…",
    "request_id": "req_5c1f0a9e2b7d4c11"
  }
}
StatusTypeBetydning
400invalid_request_errorUgyldig JSON eller header.
401authentication_errorManglende, ugyldig eller slettet nøkkel.
402billing_errorUtilstrekkelig saldo, månedlig tak eller nøkkelens daglige tak er nådd.
403permission_errorManglende scope, IP-adresse ikke tillatt, konto suspendert eller kall fra en nettleser.
404not_found_errorUkjent nettsted, jobb eller endepunkt.
409conflict_errorEn jobb kjører allerede på dette nettstedet.
422invalid_request_errorUgyldig parameter, eller forespørsel avvist av retningslinjene for bruk (off_topic, content_policy). Belastes ikke.
429rate_limit_errorFor mange forespørsler eller samtidige jobber. Vent den tiden som er angitt i Retry-After.
5xxapi_errorMidlertidig problem hos oss. Prøv på nytt med den samme idempotensnøkkelen. Belastes ikke.

Hastighetsgrenser

  • 60 forespørsler per minutt per nøkkel (headeren X-RateLimit-Limit).
  • 3 nettstedsjobber samtidig per konto. Kall for innhold, dokumenter og bilder er ikke omfattet av denne grensen.
  • Når en grense er nådd, svarer API-et 429 med en Retry-After-header i sekunder.

Trenger du mer? Skriv til contact@flixy.studio og beskriv bruksområdet ditt.

Idempotens

Nettverksfeil skjer. Legg til en Idempotency-Key-header (8 til 100 tegn, for eksempel din egen ordre-ID) i enhver POST: hvis du sender den samme forespørselen på nytt innen 24 timer, returnerer API-et det første svaret — med headeren Idempotent-Replayed: true — og kjører eller belaster aldri arbeidet to ganger.

Jobber

Å lage, redigere og oversette et nettsted tar fra rundt 30 sekunder til 3 minutter. Disse endepunktene svarer 202 Accepted med en jobb. Følg den hvert 5. sekund eller vent på hendelsen job.succeeded / job.failed via webhook.

GET/v1/jobs/{id}
GET/v1/jobs?limit=20
{
  "id": "job_69023cfbb08a8130d8f6",
  "object": "job",
  "type": "site",
  "status": "succeeded",
  "mode": "live",
  "site_id": "691589621",
  "price": 0.72,
  "currency": "EUR",
  "created_at": "2026-11-11T09:45:01Z",
  "finished_at": "2026-11-11T09:46:35Z",
  "result": { "id": "691589621", "object": "site", "status": "ready", "pages": ["index.html", "menu.html"] }
}

status er queued, running, succeeded eller failed. En mislykket jobb belastes aldri, og error forklarer hvorfor.

Lag et nettsted

POST/v1/sites

Lager et komplett nettsted ut fra en beskrivelse. Scope: sites:write.

ParameterTypeBeskrivelse
promptpåkrevdstringBeskrivelse av bedriften og nettstedet (12 til 4000 tegn). Jo mer presis, desto bedre.
languagestringNettstedets språk: fr, en, es, de, it, pt, nl, ca, el, sv, no, da, fi, is, et, lv, lt, ja.
structurestringonepage eller multipage. Avledes fra prompten som standard.
qualitystringfast, standard (standard) eller complete.
featuresstring[]Seksjoner som skal tas med: contact_form, testimonials, faq, map, whatsapp, shop, booking, gallery, newsletter, blog, pricing.
businessobjectKjente fakta: name, slogan, phone, email, address, city, hours. Blir aldri diktet opp av KI-en.
destinationstringdeveloper (standard): nettstedet tilhører utviklerkontoen din. organization: nettstedet opprettes direkte i den tilkoblede Flixy Studio-organisasjonen din.
curl https://flixy.studio/v1/sites \
  -H "Authorization: Bearer $FLIXY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order-1042" \
  -d '{
    "prompt": "Website for an artisan bakery in Lyon: sourdough breads, pastries, online pre-orders",
    "language": "fr",
    "structure": "multipage",
    "features": ["contact_form", "map", "shop"],
    "business": { "name": "Boulangerie du Parc", "city": "Lyon", "phone": "+33 4 00 00 00 00" }
  }'

Hent et nettsted

GET/v1/sites/{id}?include=html
GET/v1/sites?limit=20

Returnerer nettstedet, statusen og sidene. Legg til include=html for å få den fullstendige HTML-en til hver side (bildene driftes av Flixy). Scope: sites:read.

{
  "id": "691589621",
  "object": "site",
  "name": "Boulangerie du Parc",
  "status": "ready",
  "language": "fr",
  "pages": ["index.html", "menu.html", "contact.html"],
  "owner": "developer",
  "html": { "index.html": "<!doctype html>…" }
}

Legg til owner=developer eller owner=organization i listen for å filtrere etter eier. Nettsteder i en tilkoblet organisasjon returnerer også dashboard_url og editor_url, slik at du kan åpne dem i Flixy Studio.

Rediger et nettsted

POST/v1/sites/{id}/edits

Gjennomfører en endring beskrevet med vanlige ord, som i Flixy-editoren. Hver endring oppretter en ny versjon. Scope: sites:write.

ParameterTypeBeskrivelse
instructionpåkrevdstringEndringen som skal gjøres (4 til 3000 tegn), f.eks. «Legg til en prisside med tre tilbud» eller «Bruk et mørkegrønt tema».
curl https://flixy.studio/v1/sites/691589621/edits \
  -H "Authorization: Bearer $FLIXY_API_KEY" -H "Content-Type: application/json" \
  -d '{"instruction": "Add an opening hours section: Tuesday to Saturday, 7am to 7pm"}'

Oversett et nettsted

POST/v1/sites/{id}/translations

Oversetter hver side av nettstedet — navigasjon, knapper, skjemaer, bildebeskrivelser, tittel og beskrivelse for søkemotorer — og beholder design, bilder, lenker, priser og kontaktinformasjon. Scope: sites:write.

ParameterTypeBeskrivelse
languagepåkrevdstringMålspråk: fr, en, es, de, it, pt, nl, ca, el, sv, no, da, fi, is, et, lv, lt, ja.

Skriv nettinnhold

POST/v1/content

Skriver innhold som skal publiseres på et nettsted eller sendes av en bedrift til kundene sine. Svarer direkte. Scope: content:write.

ParameterTypeBeskrivelse
typepåkrevdstringpage_text, blog_article, product_description, service_description, about_us, seo_meta, faq, review_reply, newsletter, social_post.
topicpåkrevdstringEmnet for teksten (maks. 1500 tegn).
languagestringSpråk: fr, en, es, de, it, pt, nl, ca, el, sv, no, da, fi, is, et, lv, lt, ja (standard en).
factsstringFakta som skal brukes: priser, egenskaper, ingredienser, åpningstider… (maks. 4000 tegn). KI-en dikter aldri opp fakta.
businessstringKort beskrivelse av bedriften.
tonestringFor eksempel warm, premium, playful.
lengthstringshort, medium (standard) eller long.
keywordsstringNøkkelord som skal tas med på en naturlig måte.
curl https://flixy.studio/v1/content \
  -H "Authorization: Bearer $FLIXY_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "type": "product_description",
    "language": "it",
    "topic": "Pizza Margherita cooked in a wood-fired oven",
    "facts": "San Marzano tomatoes, fior di latte mozzarella, fresh basil, 48-hour dough",
    "length": "short"
  }'

Feltet html inneholder bare sikre teksttagger (overskrifter, avsnitt, lister, lenker), aldri skript eller stiler.

Les et dokument

POST/v1/extract

Leser en meny, en katalog, en prisliste, et visittkort, en flyer eller en brosjyre og returnerer strukturert innhold klart for et nettsted. Bare det som faktisk står skrevet, returneres. Scope: extract:write.

ParameterTypeBeskrivelse
filestringFilen kodet i base64 (JPEG, PNG, WebP, GIF eller PDF, maks. 10 MB).
urlstringEller en offentlig https-adresse til filen.
kindstringauto (standard), menu, catalog, business_card, brochure, price_list, flyer.
{
  "object": "extract",
  "kind": "menu",
  "business": { "name": "Trattoria Sole", "phone": "…", "hours": "…" },
  "language": "es",
  "sections": [
    { "title": "Pizzas", "items": [ { "name": "Margherita", "description": "…", "price": "11.50" } ] }
  ],
  "colors": ["#b5121b"],
  "usage": { "price": 0.03, "currency": "EUR", "mode": "live" }
}
Skannede PDF-er uten tekst kan ikke leses: send i stedet et bilde av hver side.

Lag et bilde

POST/v1/images

Lager et bilde, en illustrasjon eller en logo til et nettsted. Bildet driftes av Flixy og har inne i filen standard IPTC-merking for KI-generert media. Scope: images:write.

ParameterTypeBeskrivelse
promptpåkrevdstringBeskrivelse av bildet (4 til 800 tegn).
kindstringphoto (standard), illustration eller logo.
aspectstring16:9 (standard), 1:1, 4:3, 3:4, 9:16.
businessstringBedriftens kontekst, for å matche stilen.
brandstringMerkenavn for en logo.

Saldo og konto

GET/v1/account

Returnerer saldoen din, beløpet som er reservert for pågående jobber, det tilgjengelige beløpet, de månedlige utgiftene dine og nøkkelen som brukes. Scope: account:read.

{
  "object": "account",
  "balance": 48.92,
  "available": 45.92,
  "reserved": 3.00,
  "currency": "EUR",
  "spent_this_month": 12.40,
  "key": { "name": "Production server", "mode": "live", "scopes": ["sites:write", "sites:read"] },
  "limits": { "requests_per_minute": 60, "concurrent_site_jobs": 3 }
}

Bruk og priser

GET/v1/usage?from=2026-11-01&to=2026-11-30
GET/v1/pricing

/v1/usage returnerer kallene dine og beløpene per operasjon over en periode. /v1/pricing returnerer gjeldende typiske priser og minstepriser i din valuta.

Hvert vellykket kall koster den faktiske kostnaden for KI-arbeidet det krevde, multiplisert med Flixys margin, med et minimum per operasjon. Før en nettstedsjobb starter, reserveres et anslått beløp på saldoen din; den nøyaktige prisen belastes til slutt, og resten frigjøres. Mislykkede og avviste kall belastes aldri.

Webhooks

Legg til en https-adresse til serveren din i utviklerområdet ditt og velg hendelser: job.succeeded, job.failed, balance.low, topup.succeeded. Flixy sender en POST med en JSON-hendelse; svar med en 2xx-status innen 10 sekunder. Mislykkede leveranser forsøkes på nytt; en adresse som fortsetter å feile, settes på pause.

POST /your/webhook
Flixy-Signature: t=1762854395,v1=8f0c3b…

{
  "id": "evt_2b0a…",
  "object": "event",
  "type": "job.succeeded",
  "created_at": "2026-11-11T09:46:35Z",
  "data": { "id": "job_6902…", "type": "site", "status": "succeeded", "site_id": "691589621", "price": 0.72 }
}

Verifiser signaturen

Headeren Flixy-Signature inneholder et tidsstempel t og v1, HMAC-SHA256 av t + "." + raw body med webhook-hemmeligheten din. Avvis meldinger som er eldre enn 5 minutter.

import crypto from 'node:crypto';

export function verifyFlixy(rawBody, header, secret) {
  const p = Object.fromEntries(header.split(',').map((x) => x.split('=')));
  const sig = crypto.createHmac('sha256', secret).update(`${p.t}.${rawBody}`).digest('hex');
  return Math.abs(Date.now() / 1000 - Number(p.t)) < 300
    && crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(p.v1));
}

Fakturering

  • Fyll på saldoen din fra 10 € i utviklerområdet ditt, med kort. Mva. legges til etter landet ditt; en faktura sendes for hver påfylling.
  • Slå på automatisk påfylling for å fylle på et valgt beløp når saldoen din faller under en terskel.
  • Sett et månedlig utgiftstak for kontoen og et daglig tak per nøkkel.
  • Du får en e-post og en balance.low-webhook når saldoen din begynner å bli lav.

Fullstendige vilkår: Vilkår og retningslinjer for bruk av Flixy API.

Sikkerhetssjekkliste

  • Oppbevar nøkler på serveren din, i miljøvariabler eller en hemmelighetsbehandler — aldri på en nettside, i en mobilapp eller i et kodelager.
  • Opprett én nøkkel per applikasjon og gi den bare de scopene den trenger.
  • Begrens live-nøkler til IP-adressene til serverne dine og sett et daglig tak.
  • Verifiser signaturen og tidsstempelet til hver webhook.
  • Bruk en idempotensnøkkel for hver POST.
  • Slett en nøkkel umiddelbart hvis den kan ha blitt eksponert, og opprett deretter en ny.
  • Gjennomgå KI-generert innhold før du publiserer det, og informer brukerne dine når innhold er KI-generert der loven krever det.

Retningslinjer for bruk

Flixy API er laget for nettsteder og innholdet deres. Det avviser, uten belastning, generelle spørsmål som ikke gjelder nettsteder, kode for annen programvare, forsøk på å endre Flixys instruksjoner og innhold som bryter retningslinjene våre (ulovlig eller hatefullt innhold, seksuelt innhold som involverer mindreårige, phishing- eller etterligningssider, spam, falske anmeldelser). Les de fullstendige API-vilkårene og retningslinjene for bruk.

Tilkoblet organisasjon

POST/v1/sites/{id}/transfer

Koble til Flixy Studio-organisasjonen din fra konsollen (Organisasjon). Eieren av Flixy Studio-kontoen godkjenner tilkoblingen mens vedkommende er logget inn i Flixy Studio, og begge parter kan fjerne den når som helst. Når den er tilkoblet:

  • API-et kan liste opp, lese, redigere og oversette organisasjonens nettsteder (sites:read, sites:write);
  • du kan opprette et nettsted direkte i organisasjonen med "destination": "organization", eller flytte et nettsted opprettet av API-et med POST /v1/sites/{id}/transfer (gratis), for å publisere det på et domene fra Flixy Studio;
  • alt API-arbeid belastes API-saldoen din: organisasjonens kreditter brukes aldri.
curl "https://flixy.studio/v1/sites?owner=organization" \
  -H "Authorization: Bearer $FLIXY_API_KEY"

curl -X POST https://flixy.studio/v1/sites/691589621/transfer \
  -H "Authorization: Bearer $FLIXY_API_KEY"

Uten en tilkoblet organisasjon returnerer disse kallene 409 organization_not_linked.

Endringslogg

  • v1 — november 2026. Første versjon: nettsteder, endringer, oversettelser, innhold, dokumentlesing, bilder, jobber, webhooks, forhåndsbetalt saldo.

Endringer som kan bryte integrasjonen din, varsles på e-post minst 90 dager i forveien.