REST-API

HTTP-ytan för skript och integrationer: endpoints med parametrar och svarsformat, vad som bara finns över MCP, och vad som är spärrat för maskiner.

Uppdaterad 2026-08-18 · 5 min läsning

MCP är förstahandsvalet för agenter. REST-API:et finns för skript, egna integrationer och allt som inte talar MCP. Bakom båda ligger samma tjänstelager: en endpoint här och motsvarande MCP-verktyg returnerar samma data.

Basadress: https://astrid.so. Alla svar är JSON. Paginerade listor svarar { "data": [...], "total": n, "page": n, "totalPages": n } och tar page och limit som frågeparametrar (limit 1 till 100, standard 50).

En ärlighet om stabilitet: MCP-verktygen är det kontrakt vi vårdar. REST-svaren delar form med webbappen och kan få nya fält över tid, så ignorera fält du inte känner igen i stället för att anta att listan är komplett.

Autentisering

Samma API-nyckel som MCP-servern använder:

Authorization: Bearer astrid_sk_…

Nyckeln bär organisationen, så det finns ingen parameter för org-id någonstans. Roller, planer och gränser fungerar precis som i Anslut en agent. Alla läs-endpoints fungerar med både läsnyckel och föreslå-nyckel.

Det här finns bara över MCP

REST har ingen motsvarighet till följande. Leta inte efter en endpoint, använd verktyget:

Vill du ha MCP-verktyg
Ekonomisk översikt: likviditet, momsskuld, resultat get_overview
Momsrapport (SKV 4700) get_moms_report
Bokföringsstatus i ett svep get_bookkeeping_status
Köra en ny genomgång get_genomgang
Föreslå en verifikation propose_verification

Läsa

GET /api/transactions?view=todo

Den riktiga att-bokföra-kön: avstämda rader är dolda och rader som redan har ett förslag i granskningskön är flaggade.

Parameter Värde
view todo. Utelämnar du den får du råa listan där avstämda rader ingår, och den som konterar råa listan föreslår dubbelt
limit 1 till 100, standard 50
{
  "data": [
    {
      "id": "…",
      "date": "2026-08-12",
      "description": "GOOGLE CLOUD EMEA",
      "amount": -1234.5,
      "currency": "SEK",
      "bankAccount": "Företagskonto",
      "pendingReview": false
    }
  ],
  "view": "todo"
}

Råa listan (view utelämnad) tar status, page och limit och svarar med det paginerade standardformatet.

GET /api/journal

Bokförda verifikationer, paginerat standardformat.

Parameter Värde
series Verifikationsserie, till exempel A
from, to ÅÅÅÅ-MM-DD
page, limit Standardpaginering

Varje rad: id, voucherNumber (till exempel "A0052"), series, date, description, status, totalDebit, lineCount, samt correctsEntryId och replacesEntryId när verifikationen ingår i en rättelsekedja.

GET /api/journal/{id}

En verifikation med alla rader (konto och kontonamn), kostnadsställen och underlag. id från listan ovan.

GET /api/review

Granskningskön. Svarar { "data": [...] }.

Parameter Värde
status PENDING (standard), APPROVED, REJECTED eller MODIFIED

GET /api/underlag/missing

Bokförda utbetalningar som saknar kvitto eller faktura. Grunden för kvittojakt. Utan parametrar: innevarande räkenskapsår.

Parameter Värde
from, to ÅÅÅÅ-MM-DD
limit 1 till 200
curl -s "https://astrid.so/api/underlag/missing" \
  -H "Authorization: Bearer $ASTRID_API_KEY"
{
  "period": { "from": "2026-01-01", "to": "2026-12-31" },
  "total": 4,
  "hasMore": false,
  "matchedToVendor": 3,
  "rows": [
    {
      "transactionId": "…",
      "date": "2026-07-03",
      "description": "GOOGLE CLOUD EMEA",
      "amount": -1234.5,
      "vendor": {
        "id": "google",
        "name": "Google",
        "portalUrl": "https://…",
        "steps": ["…"],
        "agentPlaybook": "…"
      }
    }
  ]
}

vendor är null för okända mottagare. Följer du en agentPlaybook: endast fakturerings- och kvittosidor i användarens egen inloggade webbläsare, aldrig kontoinställningar, aldrig inloggningsuppgifter.

Övriga läsningar

Endpoint Ger
GET /api/receipts De 100 senaste kvittona med kopplad transaktion. Inga parametrar
GET /api/invoices Kundfakturor. type, status, q (sök), standardpaginering
GET /api/invoices/{id} En faktura med alla rader. Motsvarar MCP-verktyget get_invoice
GET /api/customers Alla kunder, namnsorterade. Inga parametrar
GET /api/genomgang Senast körda genomgången, eller null om ingen körts. Vill du köra en ny: MCP-verktyget get_genomgang
GET /api/radgivning Deadlines, 3:12, preliminärskatt. Inga parametrar
GET /api/dashboard Bokföringsstatistik: antal transaktioner, andel bokförda, poster i Granska, senaste transaktioner

Ladda upp underlag

Den enda skrivoperation som är fullt öppen för en nyckel, eftersom ett arkiverat dokument är ett underlag och inte ett beslut.

curl -s -X POST https://astrid.so/api/receipts \
  -H "Authorization: Bearer $ASTRID_API_KEY" \
  -F "file=@faktura.pdf" \
  -F "transactionId=<transactionId>" \
  -F "src=agent"
Fält Krav Värde
file Ja pdf, jpeg, png, webp eller gif. Max 10 MB
transactionId Nej, men skicka den när du vet Transaktionen dokumentet är underlag för, från /api/underlag/missing. Riktad koppling, ingen gissning på servern
src Ja för agenter agent. Attribution i revisionsloggen
userNote Nej Kort anteckning om dokumentet

Kräver föreslå-nyckel (MEMBER); en läsnyckel får 403. Uppladdningen kör AI-avläsning och räknas mot samma budget som MCP:s AI-verktyg, 20 anrop per timme. Originalet arkiveras alltid innan det tolkas, enligt Bokföringslagen.

Vad som är spärrat för nycklar

Följande avvisas med 403 för alla API-nycklar, oavsett roll. Det är human-review-always genomdriven i tjänstelagret, inte i klienten.

Endpoint Svar
PATCH /api/review Granskningsbeslut kräver en inloggad användare, inte en API-nyckel
POST /api/journal Bokföring kräver en inloggad användare, inte en API-nyckel
POST /api/journal/{id}/ratta Bokföring kräver en inloggad användare, inte en API-nyckel
POST /api/genomgang Genomgång via API-nyckel körs genom MCP-endpointen (utan AI-narrativ).
POST /api/invoices Fakturering kräver en inloggad användare, inte en API-nyckel
POST /api/receipts/{id}/book Bokföring från kvitto stöds inte via API-nyckel
POST /api/receipts/{id}/attach Koppling av kvitto stöds inte via API-nyckel
DELETE /api/receipts/{id} Borttagning av kvitto stöds inte via API-nyckel

Det finns ingen kringgång, ingen flagga och ingen behörighetsnivå som öppnar dem. Föreslå i stället: propose_verification över MCP, eller POST /api/receipts med transactionId.

/api/admin/* avvisar varje Authorization-header av princip och är inte en del av produktytan.

Fel

Kod Betyder
400 Valideringsfel, meddelande på svenska
401 Ogiltig eller återkallad nyckel, eller plan utan agentåtkomst
403 Rollen räcker inte, eller operationen kräver en inloggad människa
404 Finns inte i den här organisationen
413 Filen eller begäran är för stor
429 Timgräns nådd. Rapportera hur långt du kom och stanna

Felkroppen är { "error": "…" } med ett meddelande skrivet för att läsas och återges för användaren.

Skillnad mot MCP

REST ger dig råa endpoints. MCP ger dig samma data plus verktygsbeskrivningar, reglerna vid anslutningen, färdiga recept, dokumentationen som läsbara resurser under astrid://docs/ och kvittojaktens leverantörsplaybooks.

Bygger du en agent: använd MCP. Bygger du en integration eller ett skript: REST är rätt.