AAMOS API v1
Base URL: https://api.aamos.ai/v1
All requests must include an API key in the X-AAMOS-Key header. All responses are JSON. All verdicts are deterministic — same input + same evidence = same output, every time.
Authentication
AAMOS uses API key authentication. Include your key in every request header:
X-AAMOS-Key: aamos_live_xxxxxxxxxxxxxxxxxxxxxxxx
Get your API key from your account dashboard. Free tier keys are prefixed aamos_free_. Pro keys are prefixed aamos_live_. Never expose your key in client-side code.
Quick Start
Submit a GDPR compliance check in 30 seconds:
curl -X POST https://api.aamos.ai/v1/certify \
-H "X-AAMOS-Key: aamos_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"query": "Does our privacy policy comply with GDPR Article 13?",
"document": "...[your privacy policy text]...",
"standard": "GDPR",
"jurisdiction": "EU",
"evidence_level_min": "E3"
}'
Response:
{
"verdict": "APPROVED",
"verdict_code": 1,
"standard": "GDPR 2016/679",
"clauses_checked": ["Art.13.1", "Art.13.2", "Art.13.3"],
"criteria_met": 7,
"criteria_total": 7,
"evidence_level": "E4",
"cert_id": "AAMOS-CERT-20260410-GD1337",
"cert_url": "https://api.aamos.ai/v1/cert/AAMOS-CERT-20260410-GD1337",
"timestamp": "2026-04-10T08:31:44Z",
"trace_id": "tr_9f3c2a8b1e4d",
"reproducible": true
}
POST /api/certify
The primary endpoint. Submit a document or claim for compliance verification against a named standard.
POST
/v1/certify
Submit for compliance verdict
Request Body
{
"query": "string",
"document": "string",
"document_url": "string",
"standard": "string",
"clauses": ["string"],
"jurisdiction": "string",
"evidence_level_min": "E3",
"stream": false
}
JavaScript Example
const response = await fetch('https://api.aamos.ai/v1/certify', {
method: 'POST',
headers: {
'X-AAMOS-Key': 'aamos_live_your_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
query: 'ISO 27001:2022 compliance — access control policy',
document: policyText,
standard: 'ISO27001',
jurisdiction: 'EU',
evidence_level_min: 'E3'
})
});
const verdict = await response.json();
console.log(verdict.verdict);
Python Example
import requests
response = requests.post(
'https://api.aamos.ai/v1/certify',
headers={
'X-AAMOS-Key': 'aamos_live_your_key',
'Content-Type': 'application/json'
},
json={
'query': 'GDPR Art.13 compliance check',
'document': policy_text,
'standard': 'GDPR',
'jurisdiction': 'EU'
}
)
verdict = response.json()
print(f"Verdict: {verdict['verdict']}")
print(f"Cert ID: {verdict.get('cert_id', 'N/A')}")
POST /api/chat
Interactive compliance consultation. Ask AAMOS questions about specific standards. Returns structured answers — not conversational text. Will return INSUFFICIENT_EVIDENCE if the query cannot be answered authoritatively.
POST
/v1/chat
Standards Q&A — structured answers only
{
"message": "What are the mandatory elements of GDPR Art.13?",
"standard": "GDPR",
"jurisdiction": "EU"
}
GET /api/standards
List all supported standards, their versions, clause counts, and geographic applicability.
GET
/v1/standards
List all supported standards
GET
/v1/standards/:id
Get standard detail + clause list
curl https://api.aamos.ai/v1/standards \
-H "X-AAMOS-Key: aamos_live_your_key"
{
"standards": [
{
"id": "ISO9001",
"name": "ISO 9001:2015 Quality Management",
"jurisdiction": "GLOBAL",
"clauses": 138,
"status": "active"
},
...
]
}
GET /api/cert/:id
Verify an issued AAMOS certificate by ID. Returns the full audit trace, verdict, and issuing metadata. Publicly accessible — share cert IDs with auditors.
GET
/v1/cert/:id
Verify certificate (public endpoint)
Evidence Levels E0–E5
AAMOS grades all evidence on a 6-point scale. The minimum evidence level required to issue a verdict is configurable — default is E2 for Chat, E3 for Certify.
E0
No Evidence
Input received but no verifiable sources. Query is rejected — AAMOS returns INSUFFICIENT_EVIDENCE immediately.
E1
Input Only
Claim stated by requester. No external corroboration. Usable for Chat queries. Not sufficient for Certify.
E2
Secondary Reference
Document or claim corroborated by secondary source (guide, commentary, published interpretation). Minimum for Chat verdict.
E3
Standard Reference
Directly matched to the named standard's published text. Minimum for Certify verdict. All clause references verified.
E4
Regulatory Text
Matched to official regulation, law, or government publication (e.g. Official Journal of the EU for GDPR). Highest civilian evidence tier.
E5
Verified Audit Trail
Prior AAMOS-CERT exists for the same entity + standard combination. Re-verification against stored trace. Enterprise only.
GECL — Geographic Evidence Constraint Layer
GECL automatically applies jurisdictional constraints based on the jurisdiction parameter. This ensures that a GDPR check for a Swedish entity applies Swedish DPA guidance in addition to base GDPR text. GECL currently supports:
EU — All EU member states (base GDPR, EU directives)
SE — Sweden (Datainspektionen, IMY guidance, Swedish law)
DE — Germany (BDSG supplement, Landesrecht)
US-DE — Delaware, USA (DGCL, CCPA cross-reference)
GLOBAL — No geographic constraints (ISO/IEC standards)
Supported Standards
See Standards Library for the full searchable list. API identifiers:
ISO9001 → ISO 9001:2015 Quality Management
ISO27001 → ISO/IEC 27001:2022 Information Security
ISO45001 → ISO 45001:2018 Occupational Health & Safety
ISO14001 → ISO 14001:2015 Environmental Management
GDPR → EU Regulation 2016/679 (GDPR)
TRV → Trafikverkets tekniska krav (TRVK Väg 2022)
BBR → Boverkets Byggregler (BBR 2024)
Verdict Schema
{
"verdict": "APPROVED" | "REJECTED" | "INSUFFICIENT_EVIDENCE",
"verdict_code": 1 | 0 | -1,
"standard": "string",
"standard_version": "string",
"clauses_checked": ["string"],
"clauses_passed": ["string"],
"clauses_failed": ["string"],
"criteria_met": integer,
"criteria_total": integer,
"evidence_level": "E0"–"E5",
"jurisdiction": "string",
"cert_id": "string" | null,
"cert_url": "string" | null,
"timestamp": "ISO8601",
"trace_id": "string",
"reproducible": true
}
Error Codes
| HTTP |
Code |
Meaning |
| 200 |
OK |
Verdict issued. Check verdict field. |
| 400 |
INVALID_REQUEST |
Missing required field or invalid standard ID. |
| 401 |
UNAUTHORIZED |
Invalid or missing API key. |
| 402 |
QUOTA_EXCEEDED |
Monthly review limit reached. Upgrade tier. |
| 422 |
EVIDENCE_INSUFFICIENT |
Evidence below minimum threshold. Provide more documentation. |
| 500 |
ENGINE_ERROR |
Internal evidence engine error. Retry with trace_id. |