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:
| List | Description |
| OFAC SDN | US Treasury Specially Designated Nationals |
| EU Consolidated | EU Council consolidated sanctions list |
| UN Security Council | UN consolidated sanctions list |
| PEP | Politically exposed persons (AMLD6 definition) |
| Adverse media | Open-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.
| Status | Meaning |
| 400 | Bad request — missing or invalid field |
| 422 | Unprocessable — request parsed but logic rejected |
| 429 | Rate limit exceeded |
| 500 | Internal 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
| Field | Type | Required | Description |
| name | string |
required |
Full legal name of the person or entity |
| type | string |
required |
"person" or "entity" |
| country | string |
required |
ISO 3166-1 alpha-2 country code (e.g. "DE", "AE") |
| dob | string |
optional |
Date of birth in YYYY-MM-DD format (persons only) |
| identifiers | object |
optional |
Additional identifiers: { "passport": "...", "lei": "...", "tax_id": "..." } |
Response schema
| Field | Type | Description |
| risk_score | number | 0 (no risk) to 100 (confirmed match). Scores ≥ 70 trigger HIGH recommendation. |
| risk_level | string | "LOW" / "MEDIUM" / "HIGH" |
| recommendation | string | Plain-English action: "No match found — clear to proceed", "Enhanced due diligence required", etc. |
| findings | array | Per-category breakdown. Each finding: { category, details, confidence } |
| matched_lists | array | List names with confirmed or probable matches (empty if clear) |
| screened_at | string | ISO 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
| Field | Type | Required | Description |
| transactions | array |
required |
Array of transaction objects (see below) |
Transaction object
| Field | Type | Required | Description |
| amount | number | required | Transaction amount |
| currency | string | required | ISO 4217 currency code (e.g. "EUR") |
| counterparty | string | required | Name of the counterparty |
| corridor | string | required | Payment corridor as "COUNTRY_A→COUNTRY_B" (ISO 3166) |
| timestamp | string | required | ISO 8601 datetime |
| reference | string | optional | Payment reference or internal ID |
Request schema — CSV mode
| Field | Type | Required | Description |
| csv | string |
required |
Raw CSV with header row. Expected columns: amount, currency, counterparty, corridor, timestamp |
Response schema
| Field | Type | Description |
| results | array | Per-transaction analysis objects (see below) |
| summary.total | number | Total transactions analyzed |
| summary.flagged | number | Transactions with risk_level HIGH or MEDIUM |
| summary.top_typology | string | Most prevalent AML typology detected |
| summary.recommendation | string | Overall batch recommendation |
Per-transaction result
| Field | Type | Description |
| risk_score | number | 0–100 risk score for this transaction |
| risk_level | string | "LOW" / "MEDIUM" / "HIGH" |
| flags | array | List of typology flags, e.g. ["structuring", "high_risk_corridor"] |
| rationale | string | Plain-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
| Field | Type | Required | Description |
| reporting_entity | object |
required |
Your organization: { "name": "...", "jurisdiction": "DE" } |
| subject | object |
required |
Subject of the report: { "name": "...", "type": "person|entity", "country": "..." } |
| suspicious_activity_categories | array |
required |
One or more of: "structuring", "sanctions_evasion", "terrorist_financing", "fraud", "bribery", "tax_evasion", "other" |
| transactions | string |
required |
CSV or JSON string of relevant transactions |
| date_range | object |
required |
{ "from": "YYYY-MM-DD", "to": "YYYY-MM-DD" } |
| narrative_notes | string |
optional |
Compliance officer's additional context or observations |
Response schema
| Field | Type | Description |
| draft_id | string | UUID for this draft (reference in your compliance records) |
| sections.subject_identification | string | AMLD6 Section 1 — entity/person details |
| sections.suspicious_activity_description | string | AMLD6 Section 2 — typology narrative |
| sections.transaction_analysis | string | AMLD6 Section 3 — transaction-level breakdown |
| sections.action_taken | string | AMLD6 Section 4 — actions taken and recommended next steps |
| missing_fields | array | Fields a compliance officer should complete before filing |
| suggested_filing_jurisdiction | string | Recommended FIU to file with, based on transaction corridors |
| risk_summary | string | One-paragraph risk summary |
| generated_at | string | ISO 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)
| Endpoint | Limit | Window |
| POST /api/screen | 60 requests | per minute per IP |
| POST /api/monitor | 20 requests | per minute per IP |
| POST /api/reporting | 10 requests | per 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