Read-only åtkomst till er Asstio-data — för era egna appar, dashboards, automatiseringar och AI-assistenter. REST för servrar och script, MCP för Claude, Cursor och custom agents. Samma data. Samma auth. v1 är stabil.
Samma underliggande data, samma versioneringskontrakt, samma authmodell. Skillnaden är vem som anropar.
GET och POST mot versionerade endpoints under /api/v1/*. Bygg dashboards, exportera till Power BI, mata Slack-bots eller köra nattliga jobb mot er Asstio-data.
# Hämta öppna säljordrar curl https://din-tenant.asstio.com/api/v1/sales-orders \ -H "Authorization: Bearer $TOKEN"
v1 är stabil)
Cursor-paginering
ISO 8601 + UTF-8
Inga rate-limits idagSamma data exponerad som 10 verktyg en AI-assistent kan anropa. Implementerar Model Context Protocol över streamable-HTTP. Claude Desktop, Cline och Cursor sköter OAuth själva.
// claude_desktop_config.json { "mcpServers": { "asstio": { "url": "https://din-tenant-mcp.asstio.com/mcp" } } }
Gå till Inställningar → Användare → App-lösenord i Asstio. Skapa ett nytt, ge det ett namn (t.ex. "Power BI"), kopiera lösenordet.
Skicka app-lösenordet till Zitadels token-endpoint för att få en kortlivad Bearer-token. Cacha tills strax innan den löper ut.
Lägg Authorization: Bearer <token> på en GET mot /api/v1/customers?q=Acme. Tenanten härleds från tokens InstanceId-claim — ni passar aldrig tenant-id manuellt.
/api/v1/customers?q=Acme# Sök efter en kund curl -G "$ASSTIO/api/v1/customers" \ --data-urlencode "q=Acme" \ -H "Authorization: Bearer $TOKEN"
// Response { "items": [{ "id": 412, "name": "Acme Ltd", "orgno": "556677-8899", "openOrderCount": 3 }], "nextCursor": null }
/api/v1/sales-invoice-lines# Vad sålde vi till Acme i april? curl -X POST "$ASSTIO/api/v1/sales-invoice-lines" \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "from": "2026-04-01", "to": "2026-04-30", "customerId": 412, "pageSize": 100 }'
// Response (1 av 23 rader) { "productNumber": "WID-12", "quantity": 4.0, "sumExVat": 12000.00, "currencyIsoCode": "SEK" }
tools/call// Be Claude i en chatt: "Visa öppna leverans-rader till Kraft Group" // Claude anropar: { "method": "tools/call", "params": { "name": "list_open_order_lines", "arguments": { "customerId": 412 } } }
// Claude svarar i naturligt språk "Kraft Group har 6 orderrader öppna, totalt 18 enheter kvar att leverera — främst Widget WID-12 och Skruv M8."
Allt v1 erbjuder är read-only — säkert att exponera för LLMs och tredjeparts-dashboards. Skrivande endpoints kommer i v2.
/api/v1/sales-orderslist_sales_ordersSäljorderhuvuden — orderboken. Filter på kund, status, leveransdatum, valuta. Defaultar till IsOrderIntake=1.
/api/v1/purchase-orderslist_purchase_ordersAktiva inköpsorder mot leverantörer. Filter på vendor, datum, valuta. Defaultar till IsPurchase=1.
/api/v1/sales-invoiceslist_sales_invoicesSäljfakturahuvuden (och valbart kreditfakturor via documentType=credit). Defaultar till IsSales=1.
/api/v1/sales-invoice-lineslist_sales_invoice_linesSålda artikelrader. POST eftersom filterytan är bred — datumintervall, kund, produkt, status.
/api/v1/open-order-lineslist_open_order_linesOrderrader med kvar att leverera. Räknat qtyLeftToDeliver på servern. Filter per kund, produkt eller lager.
/api/v1/warehouse-stockget_warehouse_stockSaldo per produkt per lagerplats. Levererar qtyDistributable färdigräknad så ni slipper.
/api/v1/vendor-pricesget_vendor_prices_for_productVilka leverantörer har vilka priser på en specifik produkt. Filter på valuta.
/api/v1/products/findfind_productSlå upp produkt på namn, artikelnummer eller streckkod. Returnerar topp 1–20 kandidater för disambiguering.
/api/v1/customerslist_customersSök eller lista kunder. Fritextsök mot id, namn eller org.nr.
/api/v1/customers/{id}get_customerFull kunddetalj: kreditlimit, förfallna ordrar, kreditstopp, betalnings- och leveransvillkor.
Hämta säljorder, fakturarader och lagerstatus direkt — ingen export, ingen ETL, alltid färsk data.
"Visa mig de tre största kunderna med förfallna fakturor över 10 000 kr" — Claude anropar list_customers + list_sales_invoices och svarar direkt.
Pollera open-order-lines nattligt och posta i Slack om något ligger över 30 dagar utan delleverans.
Kör vendor-prices för varje aktiv artikel — flagga när bästa pris ligger hos en leverantör ni inte använt på 6 månader.
Be Cursor / Claude generera personliga uppföljningsmejl baserat på kundens specifika orderhistorik från sales-invoice-lines.
Bygg er egen koppling mellan Asstio och whatever — CRM, BI, e-postmarketing, supportverktyg. Inga konsulttimmar krävs.
Varje request bär en Zitadel JWT i Authorization: Bearer-headern. Tenanten härleds från tokens InstanceId-claim.
Användare i Asstios egna webbgränssnitt har redan en token i sessionen. Er in-browser-kod kan läsa den och göra API-anrop direkt.
Skapa ett app-lösenord i Asstio (under användarinställningar). Växla mot Zitadel för en token. Cacha tills den löper ut.
Claude Desktop, Cline och liknande sköter OAuth själva via vår RFC 9728-discovery-endpoint. Pasta-baserad fallback för enklare klienter.
Inuti v1 gör vi bara additiva ändringar — nya endpoints, nya valbara fält, nya query-parametrar. Existerande fältnamn, typer och default-beteenden ändras inte. Breaking changes landar i v2 på en separat URL-prefix. v1 fortsätter köra tills sista integratorn flyttat över.
Varje response under /api/v1/* bär headern X-Asstio-Api-Version: v1 — pin emot den om ni vill ha försvar mot oavsiktliga uppgraderingar.
Kontakta oss för ett app-lösenord och URL till er tenant — och säg gärna vad ni vill bygga, så pekar vi mot rätt endpoints.