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 pengestrøm. 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 frem til 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 lister præcist de offentliggjorte endpoints, hver annoteret med det scope, det kræver (x-required-scope). Hvis denne guide og det dokument nogensinde er uenige, er dokumentet korrekt. Du kan give 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 berige og vedligeholde, aldrig ødelægge:

  • Du kan liste og filtrere transaktioner, tildele dem en kategori, leverandør, kunde, projekt eller personallokeringer, 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 lever i appen.

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

Tre begrænsninger gælder, og en anmodning skal opfylde dem alle:

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

Den organisation-wide per-minut grænse er den, du skal designe omkring. Det er det samme tal som per-nøgle grænsen, så en nøgle, der kører på fuld kraft, kan forbruge hele organisationens minut — at tilføje nøgler køber ikke gennemstrømning. Hvis du kører flere integrationer, så doser dem.

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 er hvordan en ratebegrænsning bliver til en nedetid.

Afvisninger bærer en stabil code, du kan skifte til. De, du faktisk vil møde:

KodeBetydning
api_key_invalidFejlformat, ukendt eller forkert hemmelighed
api_key_expiredUdløbet — opret en ny nøgle
api_key_revokedNøglen blev annulleret, eller en roteret hemmelighed udløb
api_key_scope_missingNøglen mangler det scope, denne 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 med ingen nøgle overhovedet får en simpel 401 uden kode — behandl en krop-løs 401 som “jeg glemte headeren”.

  • Din nøgle tilgår præcist én organisation — den, den blev udstedt til. Den kan ikke pege andre steder.
  • Brugsdata er vejledende. “Sidst brugt” og anmodningstælleren svarer “er dette stadig i brug?”, ikke faktureringsspørgsmål.
  • Foretræk API’en til dataflows, og MCP Server når kaldere er en AI-assistent — samme legitimationsoplysninger, samme scopes.