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.
Kalde API’en
Sektion kaldt “Kalde API’en”Send din nøgle i X-API-Key headeren:
GET /api/transactions HTTP/1.1Host: api.moneylights.appX-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 maskinlæsbare reference
Sektion kaldt “Den maskinlæsbare reference”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.jsonDet 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.
Ratebegrænsninger
Sektion kaldt “Ratebegrænsninger”Tre begrænsninger gælder, og en anmodning skal opfylde dem alle:
| Plan | Læsninger/min per nøgle | Skriver/min per nøgle | Anmodninger/min per organisation | Per dag, per organisation |
|---|---|---|---|---|
| Team | 120 | 30 | 120 | 10 000 |
| Enterprise | 600 | 150 | 600 | 100 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:
| Kode | Betydning |
|---|---|
api_key_invalid | Fejlformat, ukendt eller forkert hemmelighed |
api_key_expired | Udløbet — opret en ny nøgle |
api_key_revoked | Nøglen blev annulleret, eller en roteret hemmelighed udløb |
api_key_scope_missing | Nøglen mangler det scope, denne endpoint har brug for |
api_key_endpoint_not_published | Endpointet er ikke en del af den offentlige API |
api_key_rate_limited | Over 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”.
Godt at vide
Sektion kaldt “Godt at vide”- 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.