Tillbaka

DEVELOPERS

Build on ABN
connect to the intelligence layer

Connect your product to the ABN intelligence layer — read agent results, trigger runs, validate attestations, subscribe to webhooks. API-key auth, JSON over HTTPS, no SDK required.

01 — Overview

What the ABN API does

Read & trigger

Fetch agent metadata and the latest results, kick off a manual run, or simulate one with no writes. Same OPERA loop the desktop dashboard uses.

Two integration modes

Webhook delivery (ABN pushes results to your endpoint) and REST polling (you pull on a cadence you control). Pick either or both.

API-key auth

Send Authorization: Bearer YOUR_API_KEY. Keys are scoped per tenant and per role. Rotate any time from the dashboard.

Base URL

https://api.abnplatform.com/v1

Auth header

Authorization: Bearer YOUR_API_KEY

02 — Quickstart

Pull the latest agent results

The most common first call: list agents, then pull the latest results for one of them.

/v1
# Python example
import requests

client = requests.Session()
client.headers.update({
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
})

# Get the latest agent results
response = client.get(
    "https://api.abnplatform.com/v1/agents/{agent_id}/results"
)
response.raise_for_status()
results = response.json()
print(results["findings"])

03 — Reference

Key endpoints

  • GET/v1/agentsList all agents
  • GET/v1/agents/{id}Get agent details
  • GET/v1/agents/{id}/resultsGet latest results
  • POST/v1/agents/{id}/runTrigger manual run
  • POST/v1/agents/{id}/simulateDry-run simulation (no writes)
  • GET/v1/agents/{id}/attestationGet RAL proof for the latest run
  • GET/v1/connectorsList connected systems
  • POST/v1/connectors/{type}/connectInitiate a Nango OAuth flow
  • GET/v1/healthSystem health status
  • POST/v1/webhooksRegister a webhook endpoint

The full reference — query parameters, request bodies and response schemas — lives behind the dashboard once you have an API key.

04 — Webhooks

Receive agent results in real time

Register an endpoint via POST /v1/webhooks and ABN will push events to it as they happen. Each delivery carries an X-ABN-Signature header — verify it with HMAC-SHA256 keyed by the webhook's secret before trusting the payload.

Event types

agent.run.completed

Fires after every successful OPERA run. Carries summary, confidence and attestation pointer.

agent.finding.critical

Fires when an agent flags a finding above the critical impact threshold defined in the tenant policy.

agent.proposal.created

Fires when a TIER 2 PROPOSE_CHANGE proposal lands awaiting human approval.

Payload example

POST {your_endpoint}application/json
{
  "event": "agent.run.completed",
  "delivered_at": "2026-05-24T09:14:22Z",
  "tenant_id": "tnt_5a3fc0",
  "agent": {
    "id": "agt_invoice_audit_42",
    "name": "Fraktfakturarevisor",
    "archetype": "ANALYZER"
  },
  "run": {
    "id": "run_2f8b1c",
    "started_at": "2026-05-24T09:13:55Z",
    "finished_at": "2026-05-24T09:14:21Z",
    "status": "completed",
    "confidence": 0.94,
    "tier": "PROPOSE_CHANGE"
  },
  "summary": {
    "findings_count": 3,
    "impact_eur": 8200,
    "primary_recommendation":
      "Granska faktura INV-118 mot GPS-rutt R-118 — +18,5 % avvikelse."
  },
  "attestation": {
    "id": "att_run_2f8b1c",
    "hmac": "sha256=…",
    "verifiable_via": "https://api.abnplatform.com/v1/agents/agt_invoice_audit_42/attestation"
  }
}

Verifying the signature

/v1
import hmac, hashlib

def verify_abn_signature(body: bytes, header: str, secret: str) -> bool:
    """Validate an ABN webhook signature header."""
    expected = "sha256=" + hmac.new(
        secret.encode(), body, hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(expected, header)

Get started

Grab your API key

API access is included on Professional and Enterprise. Create an account, generate a key from the dashboard, and you're a one-liner away from your first webhook.