Använda REST API:et
MoneyLights REST API låter dina egna system läsa och underhålla din organisations data: transaktioner, leverantörer, kunder, projekt, kategorier och kassaflöde. Du autentiserar med en API-nyckel.
Anropa API:et
Section titled “Anropa API:et”Skicka din nyckel i X-API-Key-huvudet:
GET /api/transactions HTTP/1.1Host: api.moneylights.appX-API-Key: ml_sk_<key-id>_<secret>Authorization: ApiKey <key> fungerar också. Authorization: Bearer <key> gör
inte — Bearer tillhör webbläsarsessionen. Sätt aldrig nyckeln i
URL:en: sådana förfrågningar avvisas innan de når något.
Den maskinläsbara referensen
Section titled “Den maskinläsbara referensen”Den kompletta, alltid aktuella listan över vad din nyckel kan nå är det offentliga OpenAPI-dokumentet:
GET https://api.moneylights.app/api/public/openapi.jsonDet genereras från den körande applikationen och listar exakt de publicerade
endpoints, var och en annoterad med den scope den kräver (x-required-scope). Om
denna guide och det dokumentet någonsin är oense, är dokumentet korrekt. Du kan
mata in det i en klientgenerator eller importera det i ett API-verktyg.
Vad som är tillgängligt — och vad som inte är
Section titled “Vad som är tillgängligt — och vad som inte är”Endast endpoints som uttryckligen publicerats är en del av det offentliga API:et. Den ledande regeln är berika och underhåll, aldrig förstöra:
- Du kan lista och filtrera transaktioner, tilldela dem en kategori, leverantör, kund, projekt eller personallokeringar, samt skapa eller uppdatera leverantörer, kunder, projekt och kategorier.
- Du kan inte ta bort en leverantör, kund, projekt eller kategori genom API:et. Att ta bort en post som andra poster pekar på är ett beslut som ett skript inte bör fatta utan övervakning — dessa åtgärder hör hemma i appen.
Bankkopplingar, fakturering, teamhantering och hantering av API-nycklar är aldrig tillgängliga med en nyckel, oavsett vilka scopes den har.
Hastighetsbegränsningar
Section titled “Hastighetsbegränsningar”Tre begränsningar gäller, och en förfrågan måste uppfylla alla:
| Plan | Läsningar/min per nyckel | Skriver/min per nyckel | Förfrågningar/min per organisation | Per dag, per organisation |
|---|---|---|---|---|
| Team | 120 | 30 | 120 | 10 000 |
| Enterprise | 600 | 150 | 600 | 100 000 |
Den organisationsövergripande begränsningen per minut är den att designa runt. Den är samma siffra som begränsningen per nyckel, så en nyckel som körs på max kan konsumera hela organisationens minut — att lägga till nycklar ger ingen ökad kapacitet. Om du kör flera integrationer, takta dem.
Varje svar bär X-RateLimit-Limit och X-RateLimit-Remaining. En
429 bär Retry-After i sekunder — respektera det; att försöka igen omedelbart är
hur en hastighetsbegränsning blir ett avbrott.
Avvisningar bär en stabil code som du kan växla på. De som du faktiskt kommer att
möta:
| Kod | Betydelse |
|---|---|
api_key_invalid | Felaktig, okänd eller fel hemlighet |
api_key_expired | Förbi sitt utgångsdatum — skapa en ny nyckel |
api_key_revoked | Nyckeln har avbrutits, eller en roterad hemlighet har löpt ut |
api_key_scope_missing | Nyckeln saknar den scope som denna endpoint behöver |
api_key_endpoint_not_published | Endpointen är inte en del av det offentliga API:et |
api_key_rate_limited | Över en begränsning — respektera Retry-After |
En förfrågan med ingen nyckel alls får en enkel 401 utan kod — behandla en
kroppslös 401 som “Jag glömde huvudet”.
Bra att veta
Section titled “Bra att veta”- Din nyckel når exakt en organisation — den som den utfärdades för. Den kan inte pekas någon annanstans.
- Användningssiffror är indikativa. “Senast använd” och begärningsantalet svarar på “är detta fortfarande i bruk?”, inte faktureringsfrågor.
- Föredra API:et för dataflöden, och MCP Server när anroparen är en AI-assistent — samma autentisering, samma scopes.