Gå til indhold

Brug af REST API'en

MoneyLights REST API’en lader dine egne systemer læse og vedligeholde din organisations data: transaktioner, leverandører, kunder, projekter, kategorier og cashflow. Du autentificerer med en API-nøgle.

Send din nøgle i X-API-Key headeren:

GET /api/transactions HTTP/1.1
Host: api.moneylights.app
X-API-Key: ml_sk_<key-id>_<secret>

Authorization: ApiKey <key> fungerer også. Authorization: Bearer <key> gør ikke — Bearer tilhører browser-sessionen. Sæt aldrig nøglen i URL’en: sådanne anmodninger bliver afvist, før de når noget.

Den komplette, altid aktuelle liste over hvad din nøgle kan tilgå er det offentlige OpenAPI-dokument:

GET https://api.moneylights.app/api/public/openapi.json

Det genereres fra den kørende applikation og viser præcist de offentliggjorte endpoints, hver annoteret med det scope, det kræver (x-required-scope). Hvis denne guide og det dokument siger forskellige ting, så stol på dokumentet. Du kan fodre det til en klientgenerator eller importere det i et API-værktøj.

Hvad der kan tilgås — og hvad der ikke kan

Sektion kaldt “Hvad der kan tilgås — og hvad der ikke kan”

Kun endpoints, der er eksplicit offentliggjort, er en del af den offentlige API. Den vejledende regel er berig og vedligehold, aldrig ødelæg:

  • Du kan liste og filtrere transaktioner, tildele dem en kategori, leverandør, kunde eller projekt, opdele dem på tværs af personer (allokeringer), og oprette eller opdatere leverandører, kunder, projekter og kategorier.
  • Du kan ikke slette en leverandør, kunde, projekt eller kategori gennem API’en. At fjerne en post, som andre poster peger på, er en beslutning, et script ikke bør træffe uden opsyn — disse handlinger hører til i appen.

Bankforbindelser, fakturering, teamstyring og API-nøgleadministration er aldrig tilgængelige med en nøgle, uanset hvilke scopes den har.

Tre grænser gælder, og en anmodning skal opfylde dem alle:

PlanLæsninger/min per nøgleSkrivninger/min per nøgleAnmodninger/min per organisationPer dag, per organisation
Team1203012010 000
Enterprise600150600100 000

Grænsen per minut for hele organisationen er den, du skal designe efter. Den er det samme tal som grænsen per nøgle, så en nøgle, der kører på fuld kraft, kan forbruge hele organisationens minut — flere nøgler giver ikke mere kapacitet. Hvis du har flere integrationer, så fordel deres anmodninger over tid.

Hver respons bærer X-RateLimit-Limit og X-RateLimit-Remaining. En 429 bærer Retry-After i sekunder — respekter det; at forsøge igen med det samme kan forvandle en kort rategrænse til et nedbrud.

Afvisninger bærer en stabil code, som din integration kan handle på. De, du faktisk vil møde:

CodeBetydning
api_key_invalidNøglen er ugyldigt formateret eller ukendt, eller dens hemmelighed er forkert
api_key_expiredUdløbet — opret en ny nøgle
api_key_revokedNøglen blev tilbagekaldt, eller den gamle hemmelighed blev brugt efter dens rotationsvindue lukkede
api_key_scope_missingNøglen mangler det scope, dette endpoint har brug for
api_key_endpoint_not_publishedEndpointet er ikke en del af den offentlige API
api_key_rate_limitedOver en grænse — respekter Retry-After

En anmodning, der ikke sender nogen nøgle, får en simpel 401 med en tom body og ingen fejlkode. Hvis du ser det, blev nøgle-headeren ikke sendt.

GET /api/cashflow/overview tager en valgfri dateFrom og dateTo. Hvis de udelades, er dateFrom som standard 1. januar i det nuværende år og dateTo i dag (begge UTC). Det returnerer 400, ikke en tom oversigt, når:

  • en dato ikke kan parses (for eksempel 2026-13-01);
  • dateFrom er efter dateTo;
  • kun dateTo sendes, og det er tidligere end standardstarten (1. januar i det nuværende UTC-år) — send også en dateFrom;
  • kun dateFrom sendes, og det er senere end i dag — send også en dateTo.
  • Din nøgle når præcist én organisation — den, den blev udstedt til. Den kan ikke rettes mod nogen anden.
  • Forbrugstallene er omtrentlige. Brug “Sidst brugt” og antallet af anmodninger til at tjekke, om en nøgle stadig er i brug, ikke til fakturering.
  • Foretræk API’en til dataflows, og MCP-serveren når en AI-assistent laver anmodningerne — samme legitimationsoplysninger, samme scopes.