
Kort fortalt
Prisen på en API-integration sættes af modparten. De samme fire faser — afklaring, byg, test og overlevering — tager 20-40 timer op mod et moderne REST-API med sandbox, 42-85 timer op mod et almindeligt SaaS-API, og 88-195 timer op mod et legacy-API uden testmiljø. Ved en dansk markedstimepris på 700-1.400 kr. er det 14.000 kr. i den ene ende og 273.000 kr. i den anden. Oveni kommer driften: regn med 15-30 % af byggeprisen om året til fejlrettelser og sikkerhedsopdateringer. Brug en halv time på modpartens dokumentation inden du beder om tilbud — findes der sandbox, versionering og dokumenterede fejlkoder, er du i den billige ende, og så skal tilbuddet også afspejle det.
En integration op mod et API du ikke selv ejer koster typisk 14.000-273.000 kr. at bygge, og hovedparten af det spænd afgøres af modpartens dokumentation — ikke af din egen kode. Et veldokumenteret REST-API med et sandbox-miljø lander på 20-40 timer. Det samme funktionelle behov op mod et udokumenteret legacy-API lander på 88-195 timer. Forskellen kan læses ud af dokumentationen på en halv time, før nogen afgiver pris.
Prisen fase for fase — og hvad modparten gør ved den
Et tilbud på en API-integration er næsten altid prissat på din side af røret: hent data her, send dem derhen. Men arbejdet ligger på den anden side. Det er modpartens dokumentation, testmiljø og fejlkoder der afgør, om opgaven er 25 timer eller 150 — og det er afklaret, før nogen skriver en linje kode.
Her er de samme fire faser regnet igennem for tre niveauer af API-modenhed. Timetallene er mine egne, fra integrationer jeg selv har bygget og selv har faktureret. Kronerne er regnet på markedets timepris for en erfaren udvikler eller et mindre bureau, 700-1.400 kr. i timen.
| Fase | Moderne REST, sandbox | Almindeligt SaaS-API | Legacy, intet testmiljø | Hvad der ligger i fasen |
|---|---|---|---|---|
| Afklaring | 3-6 t | 6-12 t | 15-30 t | Hvilke endpoints, hvilke felter, hvilken retning, hvem ejer sandheden, hvad der sker ved konflikt |
| Byg | 10-20 t | 20-40 t | 40-90 t | Autentificering, kald, paginering, kø, retry, logning af hvad der faktisk blev sendt |
| Test | 5-10 t | 12-25 t | 25-60 t | Kørsel på rigtige data, de skæve tilfælde, hvad der sker ved timeout, 429 og halve overførsler |
| Overlevering | 2-4 t | 4-8 t | 8-15 t | Hvor logfilen ligger, hvordan man kører én post igennem igen, hvem der ringes til |
| I alt | 20-40 t 14.000-56.000 kr. | 42-85 t 29.400-119.000 kr. | 88-195 t 61.600-273.000 kr. | Plus drift, se nedenfor |
Læg mærke til hvor forskellen sidder. Byg-fasen firedobles fra venstre mod højre. Test-fasen femdobles. Det er ikke fordi koden bliver sværere — det er fordi du uden et sandbox-miljø skal teste i produktion hos en modpart, der ikke har lovet dig noget.
Timeprisen er sjældent problemet
Det danske marked spænder bredt. HumanStack opgør freelancere til 500-1.200 kr. i timen, mindre studier til 800-1.500 kr. og store bureauer til 1.200-2.500 kr. I den anden retning sætter Tiblo et loft på 450 kr. i timen for systemintegrationer og arbejder helst til fast pris.
Faktor fem på timeprisen lyder voldsomt, indtil man holder det op mod faktor ti på timeforbruget. En integration til 450 kr. i timen, der tager 150 timer fordi ingen læste dokumentationen først, koster 67.500 kr. Den samme opgave til 1.200 kr. i timen på 40 timer koster 48.000 kr. Det er den samme logik som i valget mellem et webbureau og en solo-bygger: du køber ikke timer, du køber at nogen har set modpartens API før.
De fire spørgsmål der afgør prisen
Alle fire kan besvares fra modpartens offentlige dokumentation, uden at tale med en sælger. Tag en halv time på det, inden du beder om tilbud.
- Er der et sandbox-miljø? Og kan du selv oprette en nøgle til det, eller skal du igennem en account manager? Uden sandbox tester du i produktion, og så bliver test-fasen tre til fem gange så dyr. Det er den enkeltfaktor der flytter mest.
- Er API'et versioneret? Står der et versionsnummer i stien, og findes der en offentlig ændringslog? Hvis ikke, kan modparten ændre adfærd uden varsel, og din integration holder op med at virke en morgen uden at nogen har rørt noget.
- Hvad er grænserne? Kald pr. minut, sideinddeling, maksimal svarstørrelse. Førstegangsimporten er dér, det gør ondt: 4.000 poster gennem et API, der tillader 60 kald i minuttet, er over en times ren ventetid — og hvis din kode ikke respekterer en
Retry-After-header, taber du halvdelen uden at vide hvilke. - Er fejlkoderne dokumenterede? Et API der svarer HTTP 200 med en fejlbesked gemt i svarets krop, koster dig et ekstra lag kode og en hel runde test. Et API der svarer korrekte statuskoder og en maskinlæsbar fejlårsag, sparer dig ti timer.
Hvor estimaterne skrider
Tre steder, hver gang, uanset hvem der bygger.
Sandbox opfører sig ikke som produktion
Testmiljøet har tre pæne eksempelkunder. Dine rigtige data har en kunde uden CVR-nummer, en vare uden pris og en adresse med linjeskift i. Integrationen bestod testen og fejlede i uge ét. Modforanstaltningen er at teste på en kopi af din egen datahistorik, ikke på modpartens eksempler — og det er en fase, der skal stå i tilbuddet med timer på.
Autentificeringen er ikke det, der stod i dokumentationen
OAuth-flows med refresh-tokens, nøgler der udløber efter 90 dage, IP-whitelisting der skal godkendes manuelt hos modparten. Ingen af delene er svære. De er bare ikke planlagte, og de koster kalendertid frem for timer — hvilket er værre, fordi det holder resten af projektet stille.
Ingen aftalte, hvem der betaler når API'et ændrer sig
Modparten opdaterer sit API uden at spørge dig. Det kommer, og det er ikke en fejl hos nogen. Spørgsmålet er bare, om prisen for den dag er aftalt på forhånd, eller om den bliver en ny samtale, mens ordrerne står stille. Få det på skrift inden byggestart — det er en linje i kontrakten og den billigste forsikring i hele projektet.
Driften er den regning, ingen regner på
En integration er ikke færdig, den er i drift. HumanStack sætter den årlige vedligeholdelse til 10-20 % af udviklingsprisen til fejlrettelser og 5-10 % til sikkerhedsopdateringer, altså 15-30 % om året før du tilføjer en eneste ny funktion. På en integration til 50.000 kr. er det 7.500-15.000 kr. årligt. På en til 250.000 kr. er det 37.500-75.000 kr.
Oveni ligger hosting og overvågning, som samme kilde opgør til 200-1.000 kr. om måneden for en mellemstor løsning. Det afgørende er ikke beløbet — det er, om nogen faktisk får en besked, når det natlige job fejler. En integration, der fejler stille i tre uger, er dyrere end hele byggeprisen.
Regn derfor altid treårsprisen, ikke tilbudsprisen. En integration til 50.000 kr. med 20 % vedligeholdelse og 500 kr./md. i drift er 50.000 + 30.000 + 18.000 = 98.000 kr. over tre år. Det er det tal, der skal holdes op mod alternativet — og alternativet er ofte en færdig connector, som jeg har regnet priserne på i e-conomic integration.
Sådan deler du tilbuddet op, så du kan sige nej
Bed om prisen delt i de fire faser fra tabellen, hver med sit eget timetal. Det giver dig tre ting. Du kan sammenligne to tilbud, der ellers bare er to totalbeløb. Du kan se, om fejlhåndtering og test overhovedet er med — ligger test under 20 % af byggefasen, er den ikke prissat, den er udskudt. Og du kan stoppe efter afklaringen, hvis dokumentationen viser, at opgaven er ti gange større end nogen troede.
Fire ting skal stå på skrift, inden nogen begynder at bygge: feltkortlægningen felt for felt, hvem der ejer sandheden når de to systemer er uenige, hvem der får alarmen når jobbet fejler og hvor hurtigt der svares, og hvem der betaler den dag modpartens API ændrer sig. API-nøglerne skal stå i dit navn, og koden skal ligge i et repo, du selv har adgang til. Det er den billigste del af projektet og den, der flytter mest.
Gør det her, inden du beder om priser: åbn modpartens API-dokumentation og svar på de fire spørgsmål — sandbox, versionering, grænser, fejlkoder. Det tager en halv time, og det er det eneste du behøver for at vide, om tilbuddene du får ind, skal ligge omkring 25 timer eller omkring 150.
Skal integrationen gå mellem to af dine egne forretningssystemer frem for ud mod en tredjepart, har jeg regnet den slags igennem fase for fase i systemintegration: hvad det koster, og hvor det går galt. Og skal integrationen ende i en app, så læs hvad app-udvikling koster først — integrationerne er dér, app-estimaterne skrider, ikke i skærmene.
Vil du have afklaringen lavet ordentligt, laver jeg den som et afgrænset stykke til fast pris: dokumentationsgennemgang, feltkortlægning, fejlscenarier og et estimat delt op i faser, du kan sige nej til hver for sig. Du ejer dokumentet bagefter, også hvis du får integrationen bygget et andet sted. Se hvad jeg laver, eller skriv hvilket API det handler om, og hvad der skal flytte sig.