Caelith API Reference
Programmatic access to fund compliance, regulatory reporting, and investor management infrastructure.
Introduction
The Caelith API is organized around REST. It accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes and verbs.
All API access is over HTTPS. Every request must include a valid authentication credential.
Quickstart
Make your first API call in three steps:
1. Get your API key
Navigate to Settings β API Keys in your Caelith dashboard and create a new key. Copy it immediately β the full key is only shown once.
2. Make a test request
curlcurl -H "Authorization: Bearer ck_live_YOUR_KEY_HERE" \
https://www.caelith.tech/api/v1/lei/validate/529900T8BM49AURSDO55
3. Check the response
response 200{
"valid": true,
"lei": "529900T8BM49AURSDO55",
"entity": {
"name": "Example Fund Management GmbH",
"jurisdiction": "DE",
"status": "ACTIVE"
}
}
Language Examples
pythonimport requests
headers = {"Authorization": "Bearer ck_live_YOUR_KEY_HERE"}
resp = requests.get(
"https://www.caelith.tech/api/v1/lei/validate/529900T8BM49AURSDO55",
headers=headers,
)
print(resp.json())
node.jsconst resp = await fetch(
"https://www.caelith.tech/api/v1/lei/validate/529900T8BM49AURSDO55",
{ headers: { Authorization: "Bearer ck_live_YOUR_KEY_HERE" } }
);
const data = await resp.json();
console.log(data);
ck_live_YOUR_KEY_HERE with your actual API key. All examples on this page use placeholder keys.
Authentication
Caelith supports two authentication methods:
API Key Authentication (Recommended for integrations)
API keys use the ck_live_ prefix and are passed as Bearer tokens. Create keys from your dashboard under Settings β API Keys, or programmatically via the Create Key endpoint.
curlcurl -H "Authorization: Bearer ck_live_abc123def456..." \
https://www.caelith.tech/api/v1/lei/validate/529900T8BM49AURSDO55
JWT Authentication (Dashboard sessions)
Obtain a JWT token via POST /api/auth/login with email and password. The token is returned in the response and should be passed as a Bearer token.
Base URL & Versioning
All endpoints are available under the versioned prefix:
https://www.caelith.tech/api/v1/
The unversioned /api/ prefix remains available for backward compatibility, but we recommend using /api/v1/ for all new integrations.
All versioned responses include an X-API-Version: v1 header.
Rate Limits
Requests are rate-limited based on your plan tier. When you exceed the limit, the API returns 429 Too Many Requests.
| Tier | Limit | Window | Notes |
|---|---|---|---|
| General API | 500 req | 15 min | Standard API endpoints (per IP) |
| Authentication | 50 req | 15 min | Login & token endpoints (per IP) |
| Export / Reports | 10 req | 1 min | XML generation, CSV downloads |
| Copilot | 30 req | 1 hour | AI-powered compliance chat (per user) |
Rate limit headers are included in every response:
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 497
X-RateLimit-Reset: 1709312400
When the limit is exceeded, you receive a 429 response:
response 429{
"error": "RATE_LIMIT_EXCEEDED",
"message": "Too many requests. Please try again later.",
"retryAfter": 45
}
Error Handling
Caelith uses conventional HTTP status codes. Errors return a consistent JSON body with an error code and human-readable message:
json{
"error": "VALIDATION_ERROR",
"message": "LEI code is required"
}
| HTTP Status | Error Code | Meaning |
|---|---|---|
200 | β | Success |
201 | β | Created |
400 | VALIDATION_ERROR | Bad request β invalid or missing parameters |
401 | UNAUTHORIZED | Missing or invalid credentials |
403 | FORBIDDEN | Insufficient permissions for this resource |
404 | NOT_FOUND | Resource does not exist |
409 | CONFLICT | Duplicate record (unique constraint violation) |
422 | BUSINESS_LOGIC_ERROR | Request valid but violates business rules |
429 | RATE_LIMIT_EXCEEDED | Too many requests β see retryAfter field |
500 | INTERNAL_ERROR | Unexpected server error |
Troubleshooting Common Errors
| Error | Cause | Fix |
|---|---|---|
UNAUTHORIZED | Missing/expired token or API key | Check the Authorization: Bearer β¦ header is set correctly |
VALIDATION_ERROR | Bad input data | Read the message field β it tells you exactly which field is wrong |
RATE_LIMIT_EXCEEDED | Too many requests in the window | Wait for retryAfter seconds, or check X-RateLimit-Reset header |
NOT_FOUND | Invalid ID or wrong endpoint path | Verify the resource ID exists and the URL path is correct |
LEI Validation
Validate a single Legal Entity Identifier against the GLEIF registry. Returns entity details if valid.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/lei/validate/529900T8BM49AURSDO55
response 200{
"valid": true,
"lei": "529900T8BM49AURSDO55",
"entity": {
"name": "Example Fund Management GmbH",
"jurisdiction": "DE",
"status": "ACTIVE",
"registrationDate": "2020-01-15"
}
}
Search LEI Registry
Search the GLEIF registry by entity name. Query must be at least 2 characters.
curlcurl -H "Authorization: Bearer ck_live_..." \
"https://www.caelith.tech/api/v1/lei/search?q=BlackRock"
response 200{
"results": [
{ "lei": "549300...", "name": "BlackRock Fund Advisors", "jurisdiction": "US" },
{ "lei": "549300...", "name": "BlackRock Investment Management", "jurisdiction": "GB" }
]
}
Bulk Validate LEIs
Validate up to 50 LEI codes in a single request.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{"leis":["529900T8BM49AURSDO55","5493001KJTIIGC8Y1R12"]}' \
https://www.caelith.tech/api/v1/lei/bulk-validate
response 200{
"results": [
{ "lei": "529900T8BM49AURSDO55", "valid": true, "entity": { "name": "..." } },
{ "lei": "5493001KJTIIGC8Y1R12", "valid": true, "entity": { "name": "..." } }
]
}
Annex IV Reports
Run a preflight check before generating an Annex IV XML. Returns data completeness status, missing fields, and warnings.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/reports/annex-iv/abc123/preflight
Generate and download a complete AIFMD Annex IV XML report for the specified fund. Returns XML with Content-Type: application/xml and a Content-Disposition attachment header.
curlcurl -H "Authorization: Bearer ck_live_..." \
-o annex-iv-report.xml \
https://www.caelith.tech/api/v1/reports/annex-iv/abc123/xml
Sanctions Screening
Screen a single investor against EU & UN sanctions lists. Returns match results with confidence scores.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/screening/inv_abc123
response 200{
"investorId": "inv_abc123",
"status": "clear",
"matches": [],
"screenedAt": "2026-02-25T13:00:00Z",
"sources": ["eu_sanctions", "un_sanctions"]
}
Get the current status of sanctions data sources β last refresh time, record counts, and availability.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/screening/sanctions-status
response 200{
"sources": {
"eu_sanctions": { "lastRefresh": "2026-02-25T08:00:00Z", "recordCount": 12450 },
"un_sanctions": { "lastRefresh": "2026-02-25T08:00:00Z", "recordCount": 8230 }
}
}
Regulatory Templates (EMT / EET / EPT)
Generate FinDatEx-compliant European regulatory templates for MiFID II distribution compliance.
Generate a single template as JSON. Replace the suffix with emt, eet, or ept.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/reports/templates/abc123/emt
Download a template as a UTF-8 CSV file (BOM-encoded for Excel compatibility).
curlcurl -H "Authorization: Bearer ck_live_..." \
-o emt-report.csv \
https://www.caelith.tech/api/v1/reports/templates/abc123/emt/csv
Generate all three templates (EMT, EET, EPT) in a single request.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/reports/templates/abc123/all
response 200{
"emt": { "fields": [...], "generatedAt": "..." },
"eet": { "fields": [...], "generatedAt": "..." },
"ept": { "fields": [...], "generatedAt": "..." },
"generatedAt": "2026-02-25T13:00:00Z"
}
API Keys
Create a new API key. The full key (with ck_live_ prefix) is returned only once in the response β store it securely.
curlcurl -X POST -H "Authorization: Bearer <jwt>" \
-H "Content-Type: application/json" \
-d '{"name":"Production Integration","scopes":["read","write"]}' \
https://www.caelith.tech/api/v1/keys
response 201{
"id": "key_abc123",
"name": "Production Integration",
"key": "ck_live_a1b2c3d4e5f6...",
"keyPrefix": "ck_live_a1b2",
"scopes": ["read", "write"],
"createdAt": "2026-02-25T13:00:00Z",
"expiresAt": null
}
List all API keys for the current tenant. Keys are masked β only the prefix is shown.
Revoke an API key immediately. Revoked keys cannot be reactivated.
curlcurl -X DELETE -H "Authorization: Bearer <jwt>" \
https://www.caelith.tech/api/v1/keys/key_abc123
Calendar
Manage regulatory filing deadlines, fund obligations, and compliance calendar events.
Generate a regulatory calendar for one or more funds. Returns upcoming filing deadlines based on fund domicile, type, and applicable regulations.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{"fundIds":["fund_abc123","fund_def456"],"year":2026,"quarter":"Q1"}' \
https://www.caelith.tech/api/v1/calendar/funds
response 200{
"calendar": [
{
"fundId": "fund_abc123",
"fundName": "Example AIFM Fund I",
"obligations": [
{
"id": "obl_001",
"type": "ANNEX_IV",
"description": "AIFMD Annex IV Filing β Q1 2026",
"deadline": "2026-04-30T23:59:59Z",
"nca": "BaFin",
"status": "pending"
}
]
}
]
}
List all regulatory obligations for the current tenant. Supports filtering by status, date range, and fund.
curlcurl -H "Authorization: Bearer ck_live_..." \
"https://www.caelith.tech/api/v1/calendar/obligations?status=pending&from=2026-01-01&to=2026-06-30"
response 200{
"obligations": [
{
"id": "obl_001",
"fundId": "fund_abc123",
"type": "ANNEX_IV",
"deadline": "2026-04-30T23:59:59Z",
"status": "pending",
"nca": "BaFin"
}
],
"total": 1
}
Get a high-level summary of upcoming obligations grouped by status and month.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/calendar/summary
response 200{
"summary": {
"total": 12,
"pending": 5,
"completed": 4,
"overdue": 3,
"byMonth": {
"2026-03": { "pending": 2, "completed": 1 },
"2026-04": { "pending": 3, "completed": 3 }
}
}
}
Update the status or metadata of a specific obligation. Use this to mark filings as completed or add notes.
curlcurl -X PATCH -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{"status":"completed","notes":"Filed via NCA portal on 2026-03-15"}' \
https://www.caelith.tech/api/v1/calendar/obligations/obl_001
response 200{
"id": "obl_001",
"status": "completed",
"notes": "Filed via NCA portal on 2026-03-15",
"updatedAt": "2026-03-15T10:30:00Z"
}
NCA Registry
Access the National Competent Authority registry β the regulators responsible for AIFMD supervision in each EU/EEA jurisdiction.
List all NCAs in the registry. Returns authority name, country, contact information, and reporting requirements.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/nca
response 200{
"ncas": [
{
"code": "DE_BAFIN",
"name": "Bundesanstalt fΓΌr Finanzdienstleistungsaufsicht (BaFin)",
"country": "DE",
"reportingPortal": "https://portal.mvp.bafin.de",
"annexIVRequired": true
},
{
"code": "LU_CSSF",
"name": "Commission de Surveillance du Secteur Financier",
"country": "LU",
"reportingPortal": "https://reporting.cssf.lu",
"annexIVRequired": true
}
]
}
Get detailed information for a specific NCA by its code (e.g. DE_BAFIN, LU_CSSF).
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/nca/DE_BAFIN
response 200{
"code": "DE_BAFIN",
"name": "Bundesanstalt fΓΌr Finanzdienstleistungsaufsicht (BaFin)",
"country": "DE",
"reportingPortal": "https://portal.mvp.bafin.de",
"annexIVRequired": true,
"filingFormat": "XML",
"contactEmail": "reporting@bafin.de",
"notes": "Requires LEI validation before submission"
}
Validate a report payload against the specific requirements of an NCA. Returns validation errors and warnings before you submit to the regulator.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{"fundId":"fund_abc123","reportType":"ANNEX_IV","period":"2026-Q1"}' \
https://www.caelith.tech/api/v1/nca/DE_BAFIN/validate
response 200{
"valid": true,
"errors": [],
"warnings": [
{ "field": "leverageCalculation", "message": "Gross method value appears unusually high" }
],
"ncaCode": "DE_BAFIN"
}
Get the AIFMD II transposition status across all EU/EEA jurisdictions. Shows which countries have transposed the directive and their implementation timeline.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/nca/transposition
response 200{
"transposition": [
{ "country": "DE", "status": "transposed", "effectiveDate": "2025-11-01", "ncaCode": "DE_BAFIN" },
{ "country": "LU", "status": "in_progress", "expectedDate": "2026-03-01", "ncaCode": "LU_CSSF" },
{ "country": "IE", "status": "pending", "expectedDate": "2026-06-01", "ncaCode": "IE_CBI" }
]
}
Regulatory Events
Track regulatory changes, consultations, and legislative events that impact fund compliance.
List regulatory events. Supports filtering by type, jurisdiction, date range, and impact area.
curlcurl -H "Authorization: Bearer ck_live_..." \
"https://www.caelith.tech/api/v1/regulatory/events?type=directive&jurisdiction=EU&limit=10"
response 200{
"events": [
{
"id": "evt_001",
"title": "AIFMD II Final Text Published",
"type": "directive",
"jurisdiction": "EU",
"publishedAt": "2025-03-26T00:00:00Z",
"effectiveDate": "2026-03-26",
"impactAreas": ["reporting", "delegation", "leverage"],
"summary": "Updated requirements for AIFM reporting and delegation arrangements."
}
],
"total": 1,
"page": 1
}
Get full details for a specific regulatory event, including related documents and affected entity types.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/regulatory/events/evt_001
response 200{
"id": "evt_001",
"title": "AIFMD II Final Text Published",
"type": "directive",
"jurisdiction": "EU",
"publishedAt": "2025-03-26T00:00:00Z",
"effectiveDate": "2026-03-26",
"impactAreas": ["reporting", "delegation", "leverage"],
"summary": "Updated requirements for AIFM reporting and delegation arrangements.",
"sourceUrl": "https://eur-lex.europa.eu/...",
"affectedEntityTypes": ["AIFM", "UCITS_ManCo"],
"documents": [
{ "title": "Final Directive Text", "url": "https://...", "type": "pdf" }
]
}
Get an impact analysis for a specific compliance area (e.g. reporting, delegation, leverage, liquidity). Returns upcoming changes and their effect on your funds.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/regulatory/impact/reporting
response 200{
"area": "reporting",
"changes": [
{
"eventId": "evt_001",
"title": "Enhanced Annex IV reporting fields",
"effectiveDate": "2026-03-26",
"severity": "high",
"description": "New fields required for leverage and liquidity risk reporting.",
"affectedFunds": 3
}
]
}
Get a chronological timeline of all regulatory events and deadlines relevant to your funds.
curlcurl -H "Authorization: Bearer ck_live_..." \
"https://www.caelith.tech/api/v1/regulatory/timeline?from=2026-01-01&to=2026-12-31"
response 200{
"timeline": [
{ "date": "2026-03-26", "type": "directive", "title": "AIFMD II effective", "id": "evt_001" },
{ "date": "2026-04-30", "type": "deadline", "title": "Annex IV Q1 Filing β BaFin", "id": "obl_001" },
{ "date": "2026-06-30", "type": "deadline", "title": "Annex IV Q1 Filing β CSSF", "id": "obl_002" }
]
}
Webhooks
Subscribe to real-time event notifications. Caelith will send HTTP POST requests to your endpoint when events occur (e.g. screening completed, filing deadline approaching).
Register a new webhook endpoint. You must specify the URL and the event types to subscribe to.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-app.com/webhooks/caelith",
"events": ["screening.completed", "obligation.due", "report.generated"],
"secret": "whsec_your_signing_secret"
}' \
https://www.caelith.tech/api/v1/webhooks
response 201{
"id": "wh_abc123",
"url": "https://your-app.com/webhooks/caelith",
"events": ["screening.completed", "obligation.due", "report.generated"],
"status": "active",
"createdAt": "2026-02-25T13:00:00Z"
}
X-Caelith-Signature header. Verify it using your webhook secret to ensure the payload is authentic.
List all registered webhook endpoints for the current tenant.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/webhooks
response 200{
"webhooks": [
{
"id": "wh_abc123",
"url": "https://your-app.com/webhooks/caelith",
"events": ["screening.completed", "obligation.due"],
"status": "active",
"createdAt": "2026-02-25T13:00:00Z"
}
]
}
Delete a webhook endpoint. No further deliveries will be attempted after deletion.
curlcurl -X DELETE -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/webhooks/wh_abc123
View the delivery log for a specific webhook. Shows recent delivery attempts, response codes, and retry status.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/webhooks/wh_abc123/deliveries
response 200{
"deliveries": [
{
"id": "del_001",
"event": "screening.completed",
"deliveredAt": "2026-02-25T14:30:00Z",
"responseCode": 200,
"success": true,
"attempts": 1
},
{
"id": "del_002",
"event": "obligation.due",
"deliveredAt": "2026-02-25T15:00:00Z",
"responseCode": 500,
"success": false,
"attempts": 3,
"nextRetry": "2026-02-25T16:00:00Z"
}
]
}
Batch Operations
Perform bulk operations for high-volume workflows.
Screen multiple investors against sanctions lists in a single request. Accepts up to 100 investors per batch. Returns results for each investor.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{
"investors": [
{ "id": "inv_001", "name": "John Smith", "jurisdiction": "US" },
{ "id": "inv_002", "name": "Acme Holdings GmbH", "jurisdiction": "DE" }
]
}' \
https://www.caelith.tech/api/v1/batch/sanctions/screen
response 200{
"results": [
{ "investorId": "inv_001", "status": "clear", "matches": [], "screenedAt": "2026-02-25T13:00:00Z" },
{ "investorId": "inv_002", "status": "clear", "matches": [], "screenedAt": "2026-02-25T13:00:00Z" }
],
"screened": 2,
"sources": ["eu_sanctions", "un_sanctions"]
}
Usage & Billing
Monitor your API consumption and billing metrics.
Get usage statistics for the current billing period. Includes total requests, endpoint breakdown, and remaining quota.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/usage
response 200{
"period": { "start": "2026-02-01", "end": "2026-02-28" },
"totalRequests": 1247,
"quota": 10000,
"remaining": 8753,
"byEndpoint": {
"lei/validate": 523,
"screening": 312,
"reports/annex-iv": 45,
"copilot/chat": 89,
"other": 278
}
}
Get a daily breakdown of API usage for a given date range. Useful for tracking consumption trends.
curlcurl -H "Authorization: Bearer ck_live_..." \
"https://www.caelith.tech/api/v1/usage/daily?from=2026-02-01&to=2026-02-28"
response 200{
"daily": [
{ "date": "2026-02-01", "requests": 42 },
{ "date": "2026-02-02", "requests": 38 },
{ "date": "2026-02-03", "requests": 67 }
]
}
Audit Log
Access the immutable audit trail of all actions performed within your Caelith account.
List audit log entries. Supports filtering by action, user, resource type, and date range. Results are paginated.
curlcurl -H "Authorization: Bearer ck_live_..." \
"https://www.caelith.tech/api/v1/audit?action=screening.run&limit=20&offset=0"
response 200{
"events": [
{
"id": "aud_001",
"action": "screening.run",
"userId": "usr_abc123",
"userEmail": "analyst@example.com",
"resourceType": "investor",
"resourceId": "inv_001",
"metadata": { "result": "clear", "sources": 2 },
"ipAddress": "203.0.113.42",
"timestamp": "2026-02-25T14:30:00Z"
}
],
"total": 1,
"limit": 20,
"offset": 0
}
Get full details for a specific audit log entry, including the complete request and response metadata.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/audit/aud_001
response 200{
"id": "aud_001",
"action": "screening.run",
"userId": "usr_abc123",
"userEmail": "analyst@example.com",
"resourceType": "investor",
"resourceId": "inv_001",
"metadata": { "result": "clear", "sources": 2, "duration": 230 },
"ipAddress": "203.0.113.42",
"userAgent": "curl/7.88.1",
"timestamp": "2026-02-25T14:30:00Z"
}
Copilot
AI-powered compliance assistant for regulatory questions, filing guidance, and data interpretation.
Send a message to the Caelith Compliance Copilot. The copilot has context about your funds, regulatory obligations, and compliance data. Supports multi-turn conversations via conversationId.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{
"message": "What are the Annex IV filing deadlines for our Luxembourg funds this quarter?",
"conversationId": "conv_optional_for_follow_ups"
}' \
https://www.caelith.tech/api/v1/copilot/chat
response 200{
"response": "Based on your fund portfolio, you have 2 Luxembourg-domiciled funds with Q1 2026 Annex IV deadlines:\n\n1. **Fund Alpha** β CSSF filing due April 30, 2026\n2. **Fund Beta** β CSSF filing due April 30, 2026\n\nBoth funds require XML submission via the CSSF reporting portal.",
"conversationId": "conv_abc123",
"sources": [
{ "type": "fund", "id": "fund_001", "name": "Fund Alpha" },
{ "type": "regulation", "ref": "AIFMD Art. 24" }
]
}
Annex IV Public
Public endpoints for generating and validating AIFMD Annex IV XML reports.
Generate an Annex IV XML report from a structured JSON payload. Use this for programmatic report generation without creating a fund in the dashboard first.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{
"managerLEI": "529900T8BM49AURSDO55",
"fundName": "Example Fund I",
"reportingPeriod": "2026-Q1",
"ncaCode": "DE_BAFIN",
"fundData": {
"nav": 150000000,
"currency": "EUR",
"investorCount": 42,
"leverageGross": 1.2,
"leverageCommitment": 1.1
}
}' \
https://www.caelith.tech/api/v1/annex-iv/generate
response 200{
"xml": "<?xml version=\"1.0\"?><AIFReportingInfo ...>...</AIFReportingInfo>",
"filename": "annex-iv-example-fund-i-2026-q1.xml",
"generatedAt": "2026-02-25T13:00:00Z",
"warnings": []
}
Validate an Annex IV XML report against the ESMA schema and NCA-specific rules. Upload the XML as the request body or provide it as a JSON-encoded string.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/xml" \
--data-binary @annex-iv-report.xml \
https://www.caelith.tech/api/v1/annex-iv/validate
response 200{
"valid": true,
"errors": [],
"warnings": [
{ "line": 42, "field": "NAVAmount", "message": "NAV value exceeds typical range for fund type" }
],
"schema": "ESMA_AIFMD_2025",
"validatedAt": "2026-02-25T13:00:00Z"
}
Filing
NCA-specific filing requirements and common rejection reasons.
Get the filing requirements for a specific NCA. Returns required documents, formats, and submission rules.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/filing/requirements/DE_BAFIN
response 200{
"nca": "DE_BAFIN",
"requirements": [
{ "type": "ANNEX_IV", "format": "XML", "frequency": "quarterly", "portal": "https://portal.mvp.bafin.de" }
]
}
Get common rejection reasons for filings submitted to a specific NCA.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/filing/rejections/DE_BAFIN
response 200{
"nca": "DE_BAFIN",
"rejections": [
{ "code": "INVALID_LEI", "description": "LEI code is missing or invalid", "frequency": "high" },
{ "code": "SCHEMA_MISMATCH", "description": "XML does not conform to ESMA XSD", "frequency": "medium" }
]
}
Guidance
Field-level guidance and regulatory code lookups for Annex IV and related reports.
List all available guidance fields with descriptions and data types.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/guidance/fields
Get detailed guidance for a specific field, including allowed values, examples, and NCA-specific notes.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/guidance/fields/NAVAmount
Get all valid codes for a given code type (e.g. strategy, instrument, geography).
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/guidance/codes/strategy
response 200{
"codeType": "strategy",
"codes": [
{ "code": "HEDGE_FUND_EQUITY", "label": "Equity hedge fund strategy" },
{ "code": "HEDGE_FUND_MACRO", "label": "Global macro strategy" }
]
}
Classification
Investor classification, regulatory thresholds, and regime identification.
Classify an investor as professional, semi-professional, or retail based on provided parameters.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{"jurisdiction":"DE","investorType":"individual","netWorth":2000000,"experience":"advanced"}' \
https://www.caelith.tech/api/v1/public/classification/investor
response 200{
"classification": "semi-professional",
"jurisdiction": "DE",
"regime": "AIFMD",
"minimumInvestment": 200000,
"rationale": "Meets semi-professional criteria under German KAGB Β§1(19)(33)"
}
Get investor classification thresholds for a jurisdiction.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/classification/thresholds/DE
List all regulatory regimes (AIFMD, UCITS, ELTIF, etc.) with their classification rules.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/classification/regimes
Checklist
Generate and manage compliance checklists for fund setup and ongoing obligations.
Generate a compliance checklist based on fund type, jurisdiction, and regulatory requirements.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{"fundType":"aif","jurisdiction":"LU","activities":["marketing","delegation"]}' \
https://www.caelith.tech/api/v1/public/checklist/generate
response 200{
"checklist": [
{ "item": "AIFMD registration with CSSF", "category": "licensing", "required": true, "deadline": "before_launch" },
{ "item": "Annex IV reporting setup", "category": "reporting", "required": true, "deadline": "quarterly" }
],
"generatedAt": "2026-02-27T15:00:00Z"
}
List available checklist templates (e.g. fund launch, annual compliance review, AIFMD II transition).
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/checklist/templates
Deadlines
Calculate and track regulatory filing deadlines across jurisdictions.
Calculate all applicable filing deadlines for a fund based on its characteristics.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{"fundType":"aif","jurisdiction":"DE","aum":500000000,"reportingStart":"2026-01-01"}' \
https://www.caelith.tech/api/v1/public/deadlines/calculate
response 200{
"deadlines": [
{ "type": "ANNEX_IV", "frequency": "quarterly", "nextDue": "2026-04-30", "nca": "BaFin" },
{ "type": "ANNUAL_REPORT", "frequency": "annual", "nextDue": "2026-06-30", "nca": "BaFin" }
]
}
Get upcoming deadlines for a specific NCA within a given number of months.
curlcurl -H "Authorization: Bearer ck_live_..." \
"https://www.caelith.tech/api/v1/public/deadlines/upcoming/DE_BAFIN?months=6"
Get the full AIFMD II implementation timeline with key milestones and transposition deadlines per jurisdiction.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/deadlines/aifmd2-timeline
response 200{
"milestones": [
{ "date": "2025-03-26", "event": "AIFMD II published in Official Journal" },
{ "date": "2026-03-16", "event": "Transposition deadline for Member States" },
{ "date": "2026-09-16", "event": "Extended deadline for loan origination provisions" }
]
}
Portals
NCA filing portal information, URLs, and contact details.
List all NCA filing portals with URLs and supported formats.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/portals
response 200{
"portals": [
{ "nca": "DE_BAFIN", "name": "BaFin MVP Portal", "url": "https://portal.mvp.bafin.de", "formats": ["XML"] },
{ "nca": "LU_CSSF", "name": "CSSF Reporting", "url": "https://reporting.cssf.lu", "formats": ["XML", "XBRL"] }
]
}
Get detailed portal information for a specific NCA, including submission instructions and technical requirements.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/portals/DE_BAFIN
Get contact information for an NCA's reporting department.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/portals/DE_BAFIN/contacts
NCA Compare
Compare regulatory requirements across NCAs and identify gold-plating.
Compare NCAs across a specific dimension (e.g. reporting_frequency, leverage_limits, delegation_rules) for selected countries.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{"dimension":"reporting_frequency","countries":["DE","LU","IE","FR"]}' \
https://www.caelith.tech/api/v1/public/nca-compare/compare
response 200{
"dimension": "reporting_frequency",
"comparison": [
{ "country": "DE", "nca": "BaFin", "value": "quarterly", "notes": "All AIFs regardless of size" },
{ "country": "LU", "nca": "CSSF", "value": "semi-annual", "notes": "Quarterly for leveraged AIFs >500M" }
]
}
Get a comprehensive comparison of all NCAs across all dimensions.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/nca-compare/compare-all
Get gold-plating analysis for a specific NCA β requirements that exceed the ESMA/EU baseline.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/nca-compare/goldplating/DE_BAFIN
response 200{
"nca": "DE_BAFIN",
"goldplating": [
{ "area": "reporting", "description": "Additional quarterly reporting for sub-threshold AIFMs", "severity": "medium" },
{ "area": "delegation", "description": "Stricter substance requirements for delegated portfolio management", "severity": "high" }
]
}
Regulatory Diff
Compare regulatory versions and assess impact on fund operations.
Get a diff between two regulatory versions (e.g. AIFMD I vs AIFMD II). Optionally filter by compliance area.
curlcurl -H "Authorization: Bearer ck_live_..." \
"https://www.caelith.tech/api/v1/public/regulatory-diff/diff?from=AIFMD_I&to=AIFMD_II&area=reporting"
response 200{
"from": "AIFMD_I",
"to": "AIFMD_II",
"area": "reporting",
"changes": [
{ "field": "Annex IV fields", "type": "added", "description": "12 new mandatory fields for liquidity and leverage" },
{ "field": "Reporting frequency", "type": "modified", "description": "New semi-annual tier for mid-size AIFMs" }
]
}
Get a regulatory impact analysis for a specific fund type (e.g. aif, ucits, eltif).
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/public/regulatory-diff/impact/aif
response 200{
"fundType": "aif",
"impacts": [
{ "area": "reporting", "severity": "high", "description": "Enhanced Annex IV with 12 new fields" },
{ "area": "delegation", "severity": "medium", "description": "New substance requirements for delegated functions" },
{ "area": "liquidity", "severity": "high", "description": "Mandatory liquidity management tools" }
]
}
Delegation Management
Manage delegated functions under AIFMD Article 20 requirements. Track delegation arrangements, substance assessments, and oversight obligations for your fund management company.
List all delegation arrangements for the current organisation.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/delegations
response 200{
"data": [
{
"id": "del_01abc",
"delegate_name": "Acme Asset Management",
"function": "portfolio_management",
"status": "active",
"substance_score": 82,
"review_due": "2026-06-30"
}
],
"meta": { "request_id": "req_xyz", "processing_ms": 18 }
}
Create a new delegation arrangement.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{"delegate_name":"Acme Asset Management","function":"portfolio_management","jurisdiction":"DE"}' \
https://www.caelith.tech/api/v1/delegations
response 201{
"data": {
"id": "del_01abc",
"delegate_name": "Acme Asset Management",
"function": "portfolio_management",
"jurisdiction": "DE",
"status": "pending_review",
"created_at": "2026-02-27T10:00:00Z"
},
"meta": { "request_id": "req_xyz", "processing_ms": 24 }
}
Senior Persons
Manage senior management and key function holders required under AIFMD/MiFID II. Track fitness and propriety assessments, NCA notifications, and role assignments.
List all registered senior persons and key function holders.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/senior-persons
response 200{
"data": [
{
"id": "sp_01abc",
"name": "Jane Schmidt",
"role": "conducting_officer",
"jurisdiction": "LU",
"fit_proper_status": "approved",
"nca_notified": true
}
],
"meta": { "request_id": "req_xyz", "processing_ms": 12 }
}
Register a new senior person or key function holder.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{"name":"Jane Schmidt","role":"conducting_officer","jurisdiction":"LU"}' \
https://www.caelith.tech/api/v1/senior-persons
response 201{
"data": {
"id": "sp_01abc",
"name": "Jane Schmidt",
"role": "conducting_officer",
"jurisdiction": "LU",
"fit_proper_status": "pending",
"created_at": "2026-02-27T10:00:00Z"
},
"meta": { "request_id": "req_xyz", "processing_ms": 19 }
}
LMT / Liquidity Management Tools
Configure and manage liquidity management tools as required under AIFMD II Article 16. Define activation thresholds, notify NCAs, and generate investor disclosures for tools like redemption gates, swing pricing, and anti-dilution levies.
List configured liquidity management tools for all funds.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/lmt
response 200{
"data": [
{
"id": "lmt_01abc",
"fund_id": "fund_xyz",
"tool_type": "redemption_gate",
"threshold_pct": 10,
"status": "configured",
"last_activated": null
}
],
"meta": { "request_id": "req_xyz", "processing_ms": 15 }
}
Send an LMT activation or deactivation notification to the relevant NCA.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{"lmt_id":"lmt_01abc","action":"activate","reason":"Redemption pressure exceeding 10% threshold"}' \
https://www.caelith.tech/api/v1/lmt/notifications
response 201{
"data": {
"id": "lmt_notif_01",
"lmt_id": "lmt_01abc",
"action": "activate",
"nca": "CSSF",
"status": "sent",
"sent_at": "2026-02-27T10:00:00Z"
},
"meta": { "request_id": "req_xyz", "processing_ms": 340 }
}
Fee Disclosure
Generate and manage investor fee disclosures compliant with PRIIPs KID, MiFID II cost reporting, and AIFMD Annex IV fee breakdowns. Supports ongoing costs, performance fees, transaction costs, and carried interest calculations.
List fee disclosure reports for your funds.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/fee-disclosures
response 200{
"data": [
{
"id": "fd_01abc",
"fund_id": "fund_xyz",
"period": "2025-H2",
"total_expense_ratio": 1.85,
"status": "published",
"generated_at": "2026-01-15T09:00:00Z"
}
],
"meta": { "request_id": "req_xyz", "processing_ms": 22 }
}
Generate a new fee disclosure report for a fund and period.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{"fund_id":"fund_xyz","period":"2025-H2"}' \
https://www.caelith.tech/api/v1/fee-disclosures
response 201{
"data": {
"id": "fd_02abc",
"fund_id": "fund_xyz",
"period": "2025-H2",
"status": "generating",
"created_at": "2026-02-27T10:00:00Z"
},
"meta": { "request_id": "req_xyz", "processing_ms": 45 }
}
Evidence Bundles
Create tamper-evident compliance evidence bundles for regulatory examinations and audits. Bundles package supporting documents, audit trails, and SHA-256 integrity hashes into a single downloadable archive.
List all evidence bundles for your organisation.
curlcurl -H "Authorization: Bearer ck_live_..." \
https://www.caelith.tech/api/v1/evidence-bundles
response 200{
"data": [
{
"id": "eb_01abc",
"title": "Q4 2025 Sanctions Screening Evidence",
"document_count": 14,
"integrity_hash": "sha256:a3f2c8...",
"status": "sealed",
"created_at": "2026-01-10T08:00:00Z"
}
],
"meta": { "request_id": "req_xyz", "processing_ms": 20 }
}
Create a new evidence bundle from specified audit records and documents.
curlcurl -X POST -H "Authorization: Bearer ck_live_..." \
-H "Content-Type: application/json" \
-d '{"title":"Q4 2025 Sanctions Screening Evidence","record_ids":["aud_01","aud_02","aud_03"]}' \
https://www.caelith.tech/api/v1/evidence-bundles
response 201{
"data": {
"id": "eb_02abc",
"title": "Q4 2025 Sanctions Screening Evidence",
"status": "building",
"created_at": "2026-02-27T10:00:00Z"
},
"meta": { "request_id": "req_xyz", "processing_ms": 38 }
}
API Status
Private Beta
Caelith API is in private beta. Contact julian@caelith.tech for access.
Changelog
| Version | Date | Changes |
|---|---|---|
v2.0 | 2026-02-26 | v2 API release. Added Delegation Management, Senior Persons, LMT/Liquidity Management Tools, Fee Disclosure, and Evidence Bundles. Expanded NCA Compare with diff analysis. Added Investor Classification and Compliance Checklists. Total: 60+ endpoints. |
v1.2 | 2026-02 | Added Filing, Guidance, Classification, Checklist, Deadlines, Portals, NCA Compare, and Regulatory Diff endpoints. Total: 52 public endpoints. |
v1.1 | 2026-02 | Documented 20 additional endpoints: Calendar, NCA Registry, Regulatory Events, Webhooks, Batch Operations, Usage & Billing, Audit Log, Copilot, and Annex IV Public APIs. Total: 32 public endpoints. |
v1 | 2025-01 | Initial versioned API release. All endpoints available under /api/v1/ prefix. Added X-API-Version response header. |
The unversioned /api/ prefix remains available for backward compatibility. We recommend migrating to /api/v1/ for all new integrations.
Need help? Contact support@caelith.tech
Interactive API explorer available at Swagger UI β