Hoppa till innehåll

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.

Skicka din nyckel i X-API-Key-huvudet:

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

Authorization: ApiKey <key> fungerar också. Authorization: Bearer <key> fungerar 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 kompletta, alltid aktuella listan över vad din nyckel kan nå är det offentliga OpenAPI-dokumentet:

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

Det genereras från den körande applikationen och listar exakt de publicerade endpoints, var och en annoterad med det scope den kräver (x-required-scope). Om denna guide och det dokumentet säger olika saker, lita på dokumentet. Du kan mata in det i en klientgenerator eller importera det i ett API-verktyg.

Vad som är nåbart — och vad som inte är

Section titled “Vad som är nåbart — och vad som inte är”

Endast endpoints som uttryckligen publicerats är en del av det offentliga API:et. Den vägledande regeln är berika och underhålla, aldrig förstöra:

  • Du kan lista och filtrera transaktioner, tilldela dem en kategori, leverantör, kund eller projekt, dela dem mellan personer (allokeringar), och skapa eller uppdatera leverantörer, kunder, projekt och kategorier.
  • Du kan inte ta bort en leverantör, kund, projekt eller kategori via API:et. Att ta bort en post som andra poster pekar på är ett beslut som ett skript inte bör fatta obevakat — dessa åtgärder hör hemma i appen.

Bankanslutningar, fakturering, teamhantering och hantering av API-nycklar är aldrig nåbara med en nyckel, oavsett vilka scopes den har.

Tre begränsningar gäller, och en förfrågan måste uppfylla alla:

PlanLäsningar/min per nyckelSkrivningar/min per nyckelFörfrågningar/min per organisationPer dag, per organisation
Team1203012010 000
Enterprise600150600100 000

Den organisationsomfattande begränsningen per minut är den du ska designa efter. Den är samma siffra som begränsningen per nyckel, så en nyckel som körs på max kan konsumera hela organisationens minut — fler nycklar ger inte mer kapacitet. Om du har flera integrationer, sprid ut deras förfrågningar över tid.

Varje svar innehåller X-RateLimit-Limit och X-RateLimit-Remaining. En 429 innehåller Retry-After i sekunder — respektera det; att försöka igen omedelbart kan förvandla en kort hastighetsbegränsning till ett avbrott.

Avvisningar innehåller en stabil code som din integration kan agera på. De som du faktiskt kommer att möta:

KodBetydelse
api_key_invalidNyckeln är felaktigt formaterad eller okänd, eller dess hemlighet är fel
api_key_expiredUtgångsdatumet har passerats — skapa en ny nyckel
api_key_revokedNyckeln har återkallats, eller den gamla hemligheten användes efter att rotationsfönstret stängdes
api_key_scope_missingNyckeln saknar det scope som denna endpoint behöver
api_key_endpoint_not_publishedEndpointen är inte en del av det offentliga API:et
api_key_rate_limitedÖver en gräns — respektera Retry-After

En förfrågan som inte skickar någon nyckel får en enkel 401 med en tom body och ingen felkod. Om du ser det, skickades inte nyckelhuvudet.

GET /api/cashflow/overview tar valfria dateFrom och dateTo. Om de utelämnas är dateFrom som standard 1 januari innevarande år och dateTo idag (båda UTC). Det returnerar 400, inte en tom översikt, när:

  • ett datum inte kan tolkas (till exempel 2026-13-01);
  • dateFrom är efter dateTo;
  • endast dateTo skickas och det är tidigare än standardstarten (1 januari innevarande UTC-år) — skicka också en dateFrom;
  • endast dateFrom skickas och det är senare än idag — skicka också en dateTo.
  • Din nyckel når exakt en organisation — den som den utfärdades för. Den kan inte riktas mot någon annan.
  • Användningssiffror är ungefärliga. Använd “Senast använd” och antalet förfrågningar för att kontrollera om en nyckel fortfarande är i bruk, inte för fakturering.
  • Föredra API:et för dataflöden, och MCP-servern när en AI-assistent gör förfrågningarna — samma autentisering, samma scopes.