Getting started

API Reference

Arkē is a compliance API for European fintechs and SMEs. Three endpoints cover the full regulatory workflow: counterparty risk screening, transaction monitoring, and SAR draft generation. All three are live and callable right now. See regulatory coverage for the full obligation-to-pillar mapping across MiCAR, AMLD6, DORA, NIS2, and AMLA.

Base URL

https://arke-144174.polsia.app

Content type

All requests and responses use JSON.

Content-Type: application/json

Coverage

Screening checks against:

ListDescription
OFAC SDNUS Treasury Specially Designated Nationals
EU ConsolidatedEU Council consolidated sanctions list
UN Security CouncilUN consolidated sanctions list
PEPPolitically exposed persons (AMLD6 definition)
Adverse mediaOpen-source intelligence, regulatory actions, court filings

Authentication

Authentication

MVP status: The API is currently open — no key required. Full API key authentication (Bearer token per account) is on the roadmap and will be enforced before General Availability. The schema below documents the future header so you can build integrations that won't need changing.

Current (MVP)

No authentication header required. Rate limits apply per IP.

Planned (coming soon)

Authorization: Bearer <your_api_key>

Keys will be scoped per endpoint group (screen / monitor / reporting) and per-account usage quotas will match your plan tier.


Error format

Error format

All errors return a JSON object with an error key. HTTP status codes follow standard conventions.

StatusMeaning
400Bad request — missing or invalid field
422Unprocessable — request parsed but logic rejected
429Rate limit exceeded
500Internal error — transient, safe to retry
Error response
{
  "error": "name is required"
}

Endpoint

Counterparty Screening

POST /api/screen

Screens a named person or entity against OFAC SDN, EU consolidated, UN, PEP registers, and open-source adverse media. Returns a risk score 0–100, a recommendation, and a per-category evidence breakdown. Typical latency: 2–5 seconds.

Request schema

FieldTypeRequiredDescription
namestring required Full legal name of the person or entity
typestring required "person" or "entity"
countrystring required ISO 3166-1 alpha-2 country code (e.g. "DE", "AE")
dobstring optional Date of birth in YYYY-MM-DD format (persons only)
identifiersobject optional Additional identifiers: { "passport": "...", "lei": "...", "tax_id": "..." }

Response schema

FieldTypeDescription
risk_scorenumber0 (no risk) to 100 (confirmed match). Scores ≥ 70 trigger HIGH recommendation.
risk_levelstring"LOW" / "MEDIUM" / "HIGH"
recommendationstringPlain-English action: "No match found — clear to proceed", "Enhanced due diligence required", etc.
findingsarrayPer-category breakdown. Each finding: { category, details, confidence }
matched_listsarrayList names with confirmed or probable matches (empty if clear)
screened_atstringISO 8601 timestamp of the screening run

cURL example

Request
curl -s -X POST https://arke-144174.polsia.app/api/screen \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Zenith Trading LLC",
    "type": "entity",
    "country": "AE"
  }'
Sample response
{
  "risk_score": 62,
  "risk_level": "MEDIUM",
  "recommendation": "Enhanced due diligence required before proceeding. No direct sanctions match found, but adverse media and jurisdiction risk warrant additional verification.",
  "findings": [
    {
      "category": "OFAC SDN",
      "details": "No direct match found on OFAC Specially Designated Nationals list.",
      "confidence": "LOW"
    },
    {
      "category": "EU Consolidated",
      "details": "No match on EU Council consolidated sanctions list.",
      "confidence": "LOW"
    },
    {
      "category": "UN Security Council",
      "details": "No match on UN consolidated sanctions list.",
      "confidence": "LOW"
    },
    {
      "category": "PEP",
      "details": "No politically exposed persons identified in ownership structure.",
      "confidence": "MEDIUM"
    },
    {
      "category": "Adverse Media",
      "details": "Open-source search found references to UAE-based trading entities in financial crime investigations. Jurisdiction-level risk elevated.",
      "confidence": "MEDIUM"
    },
    {
      "category": "Regulatory Actions",
      "details": "No specific regulatory sanctions or enforcement actions identified.",
      "confidence": "MEDIUM"
    }
  ],
  "matched_lists": [],
  "screened_at": "2026-05-23T14:00:00.000Z"
}

Endpoint

Transaction Monitoring

POST /api/monitor

Batch-analyzes a set of transactions for AML typologies: structuring, high-risk corridors, velocity patterns, round-number clustering, and unusual counterparty behavior. Returns per-row risk scores plus a batch summary.

Accepts either JSON (array in the transactions field) or CSV (raw text in the csv field). One of the two is required.

Request schema — JSON mode

FieldTypeRequiredDescription
transactionsarray required Array of transaction objects (see below)

Transaction object

FieldTypeRequiredDescription
amountnumberrequiredTransaction amount
currencystringrequiredISO 4217 currency code (e.g. "EUR")
counterpartystringrequiredName of the counterparty
corridorstringrequiredPayment corridor as "COUNTRY_A→COUNTRY_B" (ISO 3166)
timestampstringrequiredISO 8601 datetime
referencestringoptionalPayment reference or internal ID

Request schema — CSV mode

FieldTypeRequiredDescription
csvstring required Raw CSV with header row. Expected columns: amount, currency, counterparty, corridor, timestamp

Response schema

FieldTypeDescription
resultsarrayPer-transaction analysis objects (see below)
summary.totalnumberTotal transactions analyzed
summary.flaggednumberTransactions with risk_level HIGH or MEDIUM
summary.top_typologystringMost prevalent AML typology detected
summary.recommendationstringOverall batch recommendation

Per-transaction result

FieldTypeDescription
risk_scorenumber0–100 risk score for this transaction
risk_levelstring"LOW" / "MEDIUM" / "HIGH"
flagsarrayList of typology flags, e.g. ["structuring", "high_risk_corridor"]
rationalestringPlain-English explanation of the flags

cURL example

Request
curl -s -X POST https://arke-144174.polsia.app/api/monitor \
  -H "Content-Type: application/json" \
  -d '{
    "transactions": [
      {
        "amount": 9500,
        "currency": "EUR",
        "counterparty": "Zenith Trading LLC",
        "corridor": "DE→AE",
        "timestamp": "2026-05-20T09:15:00Z"
      },
      {
        "amount": 9800,
        "currency": "EUR",
        "counterparty": "Zenith Trading LLC",
        "corridor": "DE→AE",
        "timestamp": "2026-05-20T11:42:00Z"
      },
      {
        "amount": 52000,
        "currency": "EUR",
        "counterparty": "Crypto Exchange XYZ",
        "corridor": "DE→Crypto",
        "timestamp": "2026-05-21T14:00:00Z"
      }
    ]
  }'
Sample response
{
  "results": [
    {
      "risk_score": 78,
      "risk_level": "HIGH",
      "flags": ["structuring", "high_risk_corridor"],
      "rationale": "Two transactions just below the €10,000 reporting threshold sent to the same UAE counterparty within 2.5 hours. Classic structuring pattern. DE→AE corridor is elevated-risk for trade-based money laundering."
    },
    {
      "risk_score": 78,
      "risk_level": "HIGH",
      "flags": ["structuring", "high_risk_corridor"],
      "rationale": "Second transaction in structuring pattern. Same counterparty, same corridor, same session. Both individually sub-threshold; combined they exceed €10k."
    },
    {
      "risk_score": 85,
      "risk_level": "HIGH",
      "flags": ["high_risk_corridor", "crypto_exposure"],
      "rationale": "Large transfer to unregulated crypto exchange. Crypto corridor carries inherent layering risk. Amount exceeds typical retail threshold."
    }
  ],
  "summary": {
    "total": 3,
    "flagged": 3,
    "top_typology": "structuring",
    "recommendation": "All three transactions require enhanced due diligence. Structuring pattern across transactions 1–2 warrants SAR consideration. File a suspicious activity report if no legitimate business explanation is available."
  }
}

Endpoint

SAR Reporting

POST /api/reporting

Generates an AMLD6-compliant Suspicious Activity Report draft in FIU narrative format. The output covers all four mandatory SAR sections and highlights missing fields your compliance officer will need to complete before filing.

Request schema

FieldTypeRequiredDescription
reporting_entityobject required Your organization: { "name": "...", "jurisdiction": "DE" }
subjectobject required Subject of the report: { "name": "...", "type": "person|entity", "country": "..." }
suspicious_activity_categoriesarray required One or more of: "structuring", "sanctions_evasion", "terrorist_financing", "fraud", "bribery", "tax_evasion", "other"
transactionsstring required CSV or JSON string of relevant transactions
date_rangeobject required { "from": "YYYY-MM-DD", "to": "YYYY-MM-DD" }
narrative_notesstring optional Compliance officer's additional context or observations

Response schema

FieldTypeDescription
draft_idstringUUID for this draft (reference in your compliance records)
sections.subject_identificationstringAMLD6 Section 1 — entity/person details
sections.suspicious_activity_descriptionstringAMLD6 Section 2 — typology narrative
sections.transaction_analysisstringAMLD6 Section 3 — transaction-level breakdown
sections.action_takenstringAMLD6 Section 4 — actions taken and recommended next steps
missing_fieldsarrayFields a compliance officer should complete before filing
suggested_filing_jurisdictionstringRecommended FIU to file with, based on transaction corridors
risk_summarystringOne-paragraph risk summary
generated_atstringISO 8601 generation timestamp

cURL example

Request
curl -s -X POST https://arke-144174.polsia.app/api/reporting \
  -H "Content-Type: application/json" \
  -d '{
    "reporting_entity": {
      "name": "Acme Fintech GmbH",
      "jurisdiction": "DE"
    },
    "subject": {
      "name": "Zenith Trading LLC",
      "type": "entity",
      "country": "AE"
    },
    "suspicious_activity_categories": ["structuring", "sanctions_evasion"],
    "transactions": "amount,currency,counterparty,corridor,timestamp\n9500,EUR,Zenith Trading LLC,DE→AE,2026-05-20T09:15:00Z\n9800,EUR,Zenith Trading LLC,DE→AE,2026-05-20T11:42:00Z",
    "date_range": {
      "from": "2026-05-01",
      "to": "2026-05-23"
    },
    "narrative_notes": "Two sub-threshold transfers to UAE entity within 3 hours. No clear commercial purpose on file."
  }'
Sample response (abbreviated)
{
  "draft_id": "sar-2026-05-23-a1b2c3",
  "sections": {
    "subject_identification": "Subject: Zenith Trading LLC, registered in United Arab Emirates. Entity type: corporate. No regulatory registration number on file. Relationship with reporting entity: counterparty to two payment transactions in May 2026.",
    "suspicious_activity_description": "The reporting entity identified two transactions exhibiting classic structuring behaviour: consecutive payments of EUR 9,500 and EUR 9,800 to the same UAE-registered entity within a 2.5-hour window on 20 May 2026, both deliberately structured below the EUR 10,000 cash reporting threshold. The transactions share the same beneficiary, payment corridor (DE→AE), and lack documented commercial purpose. The pattern is consistent with AMLD6 Article 33 suspicion indicators for structuring.",
    "transaction_analysis": "Transaction 1: EUR 9,500 | 2026-05-20 09:15 UTC | DE→AE | Zenith Trading LLC\nTransaction 2: EUR 9,800 | 2026-05-20 11:42 UTC | DE→AE | Zenith Trading LLC\nCombined value: EUR 19,300. Both transactions individually below the €10,000 reporting threshold. Aggregate exceeds threshold. Same counterparty, same corridor, same business day. No commercial invoice or contract reference provided.",
    "action_taken": "Transactions have been flagged for review. Customer relationship placed under enhanced monitoring. No further transactions processed pending completion of this SAR review. This draft has been submitted to the compliance officer for review and filing with the relevant FIU."
  },
  "missing_fields": [
    "Subject's registered address",
    "Ultimate beneficial owner details",
    "Counterparty bank name and IBAN",
    "Internal case reference number"
  ],
  "suggested_filing_jurisdiction": "Germany (BaFin FIU)",
  "risk_summary": "Two structuring transactions totalling EUR 19,300 sent to a UAE entity with no documented commercial purpose. Pattern consistent with threshold avoidance under AMLD6 Article 33. Recommended action: file SAR with BaFin FIU within the 24-hour mandatory reporting window.",
  "generated_at": "2026-05-23T14:00:00.000Z"
}

Reference

Rate limits & SLAs

Screening latency
<5s
P95 target for /api/screen
Monitoring latency
<8s
P95 for 10-row batch
Go-live SLA
48h
From sign-up to production

Request rate limits (MVP)

EndpointLimitWindow
POST /api/screen60 requestsper minute per IP
POST /api/monitor20 requestsper minute per IP
POST /api/reporting10 requestsper minute per IP
Plan-based quotas: Starter includes 500 screens/mo and 5,000 transactions/mo. Growth includes 2,500 screens/mo and 50,000 transactions/mo. Per-account quota enforcement requires API key authentication — this is coming soon with the GA release. During MVP, quotas are soft-enforced by IP rate limiting only.

Uptime

Arkē runs on Render with Neon PostgreSQL. No uptime SLA is formally committed for MVP. Target availability is 99.5%. For production integrations requiring a contractual SLA, contact pilot@arke.polsia.app.

48-hour go-live commitment

From the moment you sign up, your account is production-ready within 48 hours. This includes API access confirmation, onboarding call (optional), and sample integration walkthrough. No sales cycle required.


Reference

Changelog

v0.3
2026-05-23
SAR reporting shipped. AMLD6 FIU-format draft generation via POST /api/reporting. JSON and PDF export. Sample Zenith Trading case included in the UI.
v0.2
2026-05-23
Transaction monitoring shipped. Batch AML typology detection via POST /api/monitor. Structuring, corridor risk, velocity, crypto exposure flags.
v0.1
2026-05-23
Counterparty screening shipped. POST /api/screen live. Covers OFAC SDN, EU consolidated, UN, PEP, adverse media. Risk score 0–100 in <5s.
next
roadmap
API key authentication · Per-account usage quotas · Webhook callbacks · Audit log export · Bulk screening endpoint