API reference / Overview

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

curl
curl -H "Authorization: Bearer ck_live_YOUR_KEY_HERE" \
  https://www.caelith.tech/api/v1/lei/validate/529900T8BM49AURSDO55

3. Check the response

200 — application/json
{
  "valid": true,
  "lei": "529900T8BM49AURSDO55",
  "entity": {
    "name": "Example Fund Management GmbH",
    "jurisdiction": "DE",
    "status": "ACTIVE"
  }
}

Language Examples

curl -H "Authorization: Bearer ck_live_YOUR_KEY_HERE" \
  https://www.caelith.tech/api/v1/lei/validate/529900T8BM49AURSDO55
TIP

Replace 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.

curl
curl -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.

TIP

API keys do not expire by default but can be given an expiration date. Store them securely — the full key is only shown once at creation time.

Base URL & Versioning

All endpoints are available under the versioned prefix.

base url
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.

TierLimitWindowNotes
General API500 req15 minStandard API endpoints (per IP)
Authentication50 req15 minLogin & token endpoints (per IP)
Export / Reports10 req1 minXML generation, CSV downloads
Copilot30 req1 hourAI-powered compliance chat (per user)

Rate limit headers are included in every response.

headers
X-RateLimit-Limit: 500
X-RateLimit-Remaining: 497
X-RateLimit-Reset: 1709312400

When the limit is exceeded, you receive a 429 response.

429 — application/json
{
  "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 StatusError CodeMeaning
200Success
201Created
400VALIDATION_ERRORBad request — invalid or missing parameters
401UNAUTHORIZEDMissing or invalid credentials
403FORBIDDENInsufficient permissions for this resource
404NOT_FOUNDResource does not exist
409CONFLICTDuplicate record (unique constraint violation)
422BUSINESS_LOGIC_ERRORRequest valid but violates business rules
429RATE_LIMIT_EXCEEDEDToo many requests — see retryAfter field
500INTERNAL_ERRORUnexpected server error

Troubleshooting Common Errors

ErrorCauseFix
UNAUTHORIZEDMissing/expired token or API keyCheck the Authorization: Bearer … header is set correctly
VALIDATION_ERRORBad input dataRead the message field — it tells you exactly which field is wrong
RATE_LIMIT_EXCEEDEDToo many requests in the windowWait for retryAfter seconds, or check X-RateLimit-Reset header
NOT_FOUNDInvalid ID or wrong endpoint pathVerify the resource ID exists and the URL path is correct
API reference / LEI Validation

LEI Validation

GET /api/v1/lei/validate/:code Auth Required

Validate a single Legal Entity Identifier against the GLEIF registry. Returns entity details if valid.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/lei/validate/529900T8BM49AURSDO55
200 OK
200 — application/json
{
  "valid": true,
  "lei": "529900T8BM49AURSDO55",
  "entity": {
    "name": "Example Fund Management GmbH",
    "jurisdiction": "DE",
    "status": "ACTIVE",
    "registrationDate": "2020-01-15"
  }
}

Bulk Validate LEIs

POST /api/v1/lei/bulk-validate Auth Required

Validate up to 50 LEI codes in a single request.

curl
curl -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
200 OK
200 — application/json
{
  "results": [
    { "lei": "529900T8BM49AURSDO55", "valid": true, "entity": { "name": "..." } },
    { "lei": "5493001KJTIIGC8Y1R12", "valid": true, "entity": { "name": "..." } }
  ]
}
API reference / Annex IV Reports

Annex IV Reports

GET /api/v1/reports/annex-iv/:fundId/preflight Auth Required Export Rate Limit

Run a preflight check before generating an Annex IV XML. Returns data completeness status, missing fields, and warnings.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/reports/annex-iv/abc123/preflight
GET /api/v1/reports/annex-iv/:fundId/xml Auth Required Export Rate Limit

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.

curl
curl -H "Authorization: Bearer ck_live_..." \
  -o annex-iv-report.xml \
  https://www.caelith.tech/api/v1/reports/annex-iv/abc123/xml
API reference / Sanctions Screening

Sanctions Screening

POST /api/v1/screening/:investorId Auth Required Screening Rate Limit

Screen a single investor against EU & UN sanctions lists. Returns match results with confidence scores.

curl
curl -X POST -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/screening/inv_abc123
200 OK
200 — application/json
{
  "investorId": "inv_abc123",
  "status": "clear",
  "matches": [],
  "screenedAt": "2026-02-25T13:00:00Z",
  "sources": ["eu_sanctions", "un_sanctions"]
}
GET /api/v1/screening/sanctions-status Auth Required

Get the current status of sanctions data sources — last refresh time, record counts, and availability.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/screening/sanctions-status
200 OK
200 — application/json
{
  "sources": {
    "eu_sanctions": { "lastRefresh": "2026-02-25T08:00:00Z", "recordCount": 12450 },
    "un_sanctions": { "lastRefresh": "2026-02-25T08:00:00Z", "recordCount": 8230 }
  }
}
API reference / Regulatory Templates

Regulatory Templates (EMT / EET / EPT)

Generate FinDatEx-compliant European regulatory templates for MiFID II distribution compliance.

GET /api/v1/reports/templates/:fundId/emt|eet|ept Auth Required

Generate a single template as JSON. Replace the suffix with emt, eet, or ept.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/reports/templates/abc123/emt
GET /api/v1/reports/templates/:fundId/emt|eet|ept/csv Auth Required Export Rate Limit

Download a template as a UTF-8 CSV file (BOM-encoded for Excel compatibility).

curl
curl -H "Authorization: Bearer ck_live_..." \
  -o emt-report.csv \
  https://www.caelith.tech/api/v1/reports/templates/abc123/emt/csv
GET /api/v1/reports/templates/:fundId/all Auth Required

Generate all three templates (EMT, EET, EPT) in a single request.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/reports/templates/abc123/all
200 OK
200 — application/json
{
  "emt": { "fields": [...], "generatedAt": "..." },
  "eet": { "fields": [...], "generatedAt": "..." },
  "ept": { "fields": [...], "generatedAt": "..." },
  "generatedAt": "2026-02-25T13:00:00Z"
}
API reference / API Keys

API Keys

POST /api/v1/keys Auth Required (Admin)

Create a new API key. The full key (with ck_live_ prefix) is returned only once in the response — store it securely.

curl
curl -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
201 Created
201 — application/json
{
  "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
}
IMPORTANT

The full API key is only shown at creation time. If lost, you must revoke and create a new one.

GET /api/v1/keys Auth Required (Admin)

List all API keys for the current tenant. Keys are masked — only the prefix is shown.

DELETE /api/v1/keys/:id Auth Required (Admin)

Revoke an API key immediately. Revoked keys cannot be reactivated.

curl
curl -X DELETE -H "Authorization: Bearer <jwt>" \
  https://www.caelith.tech/api/v1/keys/key_abc123
API reference / Calendar

Calendar

Manage regulatory filing deadlines, fund obligations, and compliance calendar events.

POST /api/v1/calendar/funds Auth Required

Generate a regulatory calendar for one or more funds. Returns upcoming filing deadlines based on fund domicile, type, and applicable regulations.

curl
curl -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
200 OK
200 — application/json
{
  "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"
        }
      ]
    }
  ]
}
GET /api/v1/calendar/obligations Auth Required

List all regulatory obligations for the current tenant. Supports filtering by status, date range, and fund.

curl
curl -H "Authorization: Bearer ck_live_..." \
  "https://www.caelith.tech/api/v1/calendar/obligations?status=pending&from=2026-01-01&to=2026-06-30"
200 OK
200 — application/json
{
  "obligations": [
    {
      "id": "obl_001",
      "fundId": "fund_abc123",
      "type": "ANNEX_IV",
      "deadline": "2026-04-30T23:59:59Z",
      "status": "pending",
      "nca": "BaFin"
    }
  ],
  "total": 1
}
GET /api/v1/calendar/summary Auth Required

Get a high-level summary of upcoming obligations grouped by status and month.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/calendar/summary
200 OK
200 — application/json
{
  "summary": {
    "total": 12,
    "pending": 5,
    "completed": 4,
    "overdue": 3,
    "byMonth": {
      "2026-03": { "pending": 2, "completed": 1 },
      "2026-04": { "pending": 3, "completed": 3 }
    }
  }
}
PATCH /api/v1/calendar/obligations/:id Auth Required

Update the status or metadata of a specific obligation. Use this to mark filings as completed or add notes.

curl
curl -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
200 OK
200 — application/json
{
  "id": "obl_001",
  "status": "completed",
  "notes": "Filed via NCA portal on 2026-03-15",
  "updatedAt": "2026-03-15T10:30:00Z"
}
API reference / NCA Registry

NCA Registry

Access the National Competent Authority registry — the regulators responsible for AIFMD supervision in each EU/EEA jurisdiction.

GET /api/v1/nca Auth Required

List all NCAs in the registry. Returns authority name, country, contact information, and reporting requirements.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/nca
200 OK
200 — application/json
{
  "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 /api/v1/nca/:code Auth Required

Get detailed information for a specific NCA by its code (e.g. DE_BAFIN, LU_CSSF).

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/nca/DE_BAFIN
200 OK
200 — application/json
{
  "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"
}
POST /api/v1/nca/:code/validate Auth Required

Validate a report payload against the specific requirements of an NCA. Returns validation errors and warnings before you submit to the regulator.

curl
curl -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
200 OK
200 — application/json
{
  "valid": true,
  "errors": [],
  "warnings": [
    { "field": "leverageCalculation", "message": "Gross method value appears unusually high" }
  ],
  "ncaCode": "DE_BAFIN"
}
GET /api/v1/nca/transposition Auth Required

Get the AIFMD II transposition status across all EU/EEA jurisdictions. Shows which countries have transposed the directive and their implementation timeline.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/nca/transposition
200 OK
200 — application/json
{
  "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" }
  ]
}
API reference / Regulatory Events

Regulatory Events

Track regulatory changes, consultations, and legislative events that impact fund compliance.

GET /api/v1/regulatory/events Auth Required

List regulatory events. Supports filtering by type, jurisdiction, date range, and impact area.

curl
curl -H "Authorization: Bearer ck_live_..." \
  "https://www.caelith.tech/api/v1/regulatory/events?type=directive&jurisdiction=EU&limit=10"
200 OK
200 — application/json
{
  "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 /api/v1/regulatory/events/:id Auth Required

Get full details for a specific regulatory event, including related documents and affected entity types.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/regulatory/events/evt_001
200 OK
200 — application/json
{
  "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 /api/v1/regulatory/impact/:area Auth Required

Get an impact analysis for a specific compliance area (e.g. reporting, delegation, leverage, liquidity). Returns upcoming changes and their effect on your funds.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/regulatory/impact/reporting
200 OK
200 — application/json
{
  "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 /api/v1/regulatory/timeline Auth Required

Get a chronological timeline of all regulatory events and deadlines relevant to your funds.

curl
curl -H "Authorization: Bearer ck_live_..." \
  "https://www.caelith.tech/api/v1/regulatory/timeline?from=2026-01-01&to=2026-12-31"
200 OK
200 — application/json
{
  "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" }
  ]
}
API reference / Webhooks

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).

POST /api/v1/webhooks Auth Required (Admin)

Register a new webhook endpoint. You must specify the URL and the event types to subscribe to.

curl
curl -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
201 Created
201 — application/json
{
  "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"
}
SIGNING

Each delivery includes an X-Caelith-Signature header. Verify it using your webhook secret to ensure the payload is authentic.

GET /api/v1/webhooks Auth Required (Admin)

List all registered webhook endpoints for the current tenant.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/webhooks
200 OK
200 — application/json
{
  "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 /api/v1/webhooks/:id Auth Required (Admin)

Delete a webhook endpoint. No further deliveries will be attempted after deletion.

curl
curl -X DELETE -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/webhooks/wh_abc123
GET /api/v1/webhooks/:id/deliveries Auth Required (Admin)

View the delivery log for a specific webhook. Shows recent delivery attempts, response codes, and retry status.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/webhooks/wh_abc123/deliveries
200 OK
200 — application/json
{
  "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"
    }
  ]
}
API reference / Batch Operations

Batch Operations

Perform bulk operations for high-volume workflows.

POST /api/v1/batch/sanctions/screen Auth Required Screening Rate Limit

Screen multiple investors against sanctions lists in a single request. Accepts up to 100 investors per batch. Returns results for each investor.

curl
curl -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
200 OK
200 — application/json
{
  "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"]
}
API reference / Usage & Billing

Usage & Billing

Monitor your API consumption and billing metrics.

GET /api/v1/usage Auth Required

Get usage statistics for the current billing period. Includes total requests, endpoint breakdown, and remaining quota.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/usage
200 OK
200 — application/json
{
  "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 /api/v1/usage/daily Auth Required

Get a daily breakdown of API usage for a given date range. Useful for tracking consumption trends.

curl
curl -H "Authorization: Bearer ck_live_..." \
  "https://www.caelith.tech/api/v1/usage/daily?from=2026-02-01&to=2026-02-28"
200 OK
200 — application/json
{
  "daily": [
    { "date": "2026-02-01", "requests": 42 },
    { "date": "2026-02-02", "requests": 38 },
    { "date": "2026-02-03", "requests": 67 }
  ]
}
API reference / Audit Log

Audit Log

Access the tamper-detectable audit chain of all actions performed within your Caelith account.

GET /api/v1/audit Auth Required (Admin)

List audit log entries. Supports filtering by action, user, resource type, and date range. Results are paginated.

curl
curl -H "Authorization: Bearer ck_live_..." \
  "https://www.caelith.tech/api/v1/audit?action=screening.run&limit=20&offset=0"
200 OK
200 — application/json
{
  "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 /api/v1/audit/:id Auth Required (Admin)

Get full details for a specific audit log entry, including the complete request and response metadata.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/audit/aud_001
200 OK
200 — application/json
{
  "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"
}
API reference / Copilot

Copilot

AI-powered compliance assistant for regulatory questions, filing guidance, and data interpretation.

POST /api/v1/copilot/chat Auth Required 30 req/hour

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.

curl
curl -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
200 OK
200 — application/json
{
  "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" }
  ]
}
API reference / Annex IV Public

Annex IV Public

Public endpoints for generating and validating AIFMD Annex IV XML reports.

POST /api/v1/annex-iv/generate Auth Required Export Rate Limit

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.

curl
curl -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
200 OK
200 — application/json
{
  "xml": "<?xml version=\"1.0\"?><AIFReportingInfo ...>...</AIFReportingInfo>",
  "filename": "annex-iv-example-fund-i-2026-q1.xml",
  "generatedAt": "2026-02-25T13:00:00Z",
  "warnings": []
}
POST /api/v1/annex-iv/validate Auth Required

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.

curl
curl -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
200 OK
200 — application/json
{
  "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"
}
API reference / Filing

Filing

NCA-specific filing requirements and common rejection reasons.

GET /api/v1/public/filing/requirements/:nca Auth Required

Get the filing requirements for a specific NCA. Returns required documents, formats, and submission rules.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/filing/requirements/DE_BAFIN
200 OK
200 — application/json
{
  "nca": "DE_BAFIN",
  "requirements": [
    { "type": "ANNEX_IV", "format": "XML", "frequency": "quarterly", "portal": "https://portal.mvp.bafin.de" }
  ]
}
GET /api/v1/public/filing/rejections/:nca Auth Required

Get common rejection reasons for filings submitted to a specific NCA.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/filing/rejections/DE_BAFIN
200 OK
200 — application/json
{
  "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" }
  ]
}
API reference / Guidance

Guidance

Field-level guidance and regulatory code lookups for Annex IV and related reports.

GET /api/v1/public/guidance/fields Auth Required

List all available guidance fields with descriptions and data types.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/guidance/fields
GET /api/v1/public/guidance/fields/:name Auth Required

Get detailed guidance for a specific field, including allowed values, examples, and NCA-specific notes.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/guidance/fields/NAVAmount
GET /api/v1/public/guidance/codes/:codeType Auth Required

Get all valid codes for a given code type (e.g. strategy, instrument, geography).

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/guidance/codes/strategy
200 OK
200 — application/json
{
  "codeType": "strategy",
  "codes": [
    { "code": "HEDGE_FUND_EQUITY", "label": "Equity hedge fund strategy" },
    { "code": "HEDGE_FUND_MACRO", "label": "Global macro strategy" }
  ]
}
API reference / Classification

Classification

Investor classification, regulatory thresholds, and regime identification.

POST /api/v1/public/classification/investor Auth Required

Classify an investor as professional, semi-professional, or retail based on provided parameters.

curl
curl -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
200 OK
200 — application/json
{
  "classification": "semi-professional",
  "jurisdiction": "DE",
  "regime": "AIFMD",
  "minimumInvestment": 200000,
  "rationale": "Meets semi-professional criteria under German KAGB §1(19)(33)"
}
GET /api/v1/public/classification/thresholds/:jurisdiction Auth Required

Get investor classification thresholds for a jurisdiction.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/classification/thresholds/DE
GET /api/v1/public/classification/regimes Auth Required

List all regulatory regimes (AIFMD, UCITS, ELTIF, etc.) with their classification rules.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/classification/regimes
API reference / Checklist

Checklist

Generate and manage compliance checklists for fund setup and ongoing obligations.

POST /api/v1/public/checklist/generate Auth Required

Generate a compliance checklist based on fund type, jurisdiction, and regulatory requirements.

curl
curl -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
200 OK
200 — application/json
{
  "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"
}
GET /api/v1/public/checklist/templates Auth Required

List available checklist templates (e.g. fund launch, annual compliance review, AIFMD II transition).

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/checklist/templates
API reference / Deadlines

Deadlines

Calculate and track regulatory filing deadlines across jurisdictions.

POST /api/v1/public/deadlines/calculate Auth Required

Calculate all applicable filing deadlines for a fund based on its characteristics.

curl
curl -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
200 OK
200 — application/json
{
  "deadlines": [
    { "type": "ANNEX_IV", "frequency": "quarterly", "nextDue": "2026-04-30", "nca": "BaFin" },
    { "type": "ANNUAL_REPORT", "frequency": "annual", "nextDue": "2026-06-30", "nca": "BaFin" }
  ]
}
GET /api/v1/public/deadlines/upcoming/:nca?months=:months Auth Required

Get upcoming deadlines for a specific NCA within a given number of months.

curl
curl -H "Authorization: Bearer ck_live_..." \
  "https://www.caelith.tech/api/v1/public/deadlines/upcoming/DE_BAFIN?months=6"
GET /api/v1/public/deadlines/aifmd2-timeline Auth Required

Get the full AIFMD II implementation timeline with key milestones and transposition deadlines per jurisdiction.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/deadlines/aifmd2-timeline
200 OK
200 — application/json
{
  "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" }
  ]
}
API reference / Portals

Portals

NCA filing portal information, URLs, and contact details.

GET /api/v1/public/portals Auth Required

List all NCA filing portals with URLs and supported formats.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/portals
200 OK
200 — application/json
{
  "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 /api/v1/public/portals/:nca Auth Required

Get detailed portal information for a specific NCA, including submission instructions and technical requirements.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/portals/DE_BAFIN
GET /api/v1/public/portals/:nca/contacts Auth Required

Get contact information for an NCA's reporting department.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/portals/DE_BAFIN/contacts
API reference / NCA Compare

NCA Compare

Compare regulatory requirements across NCAs and identify gold-plating.

POST /api/v1/public/nca-compare/compare Auth Required

Compare NCAs across a specific dimension (e.g. reporting_frequency, leverage_limits, delegation_rules) for selected countries.

curl
curl -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
200 OK
200 — application/json
{
  "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 /api/v1/public/nca-compare/compare-all Auth Required

Get a comprehensive comparison of all NCAs across all dimensions.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/nca-compare/compare-all
GET /api/v1/public/nca-compare/goldplating/:nca Auth Required

Get gold-plating analysis for a specific NCA — requirements that exceed the ESMA/EU baseline.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/nca-compare/goldplating/DE_BAFIN
200 OK
200 — application/json
{
  "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" }
  ]
}
API reference / Regulatory Diff

Regulatory Diff

Compare regulatory versions and assess impact on fund operations.

GET /api/v1/public/regulatory-diff/diff?from=:from&to=:to&area=:area Auth Required

Get a diff between two regulatory versions (e.g. AIFMD I vs AIFMD II). Optionally filter by compliance area.

curl
curl -H "Authorization: Bearer ck_live_..." \
  "https://www.caelith.tech/api/v1/public/regulatory-diff/diff?from=AIFMD_I&to=AIFMD_II&area=reporting"
200 OK
200 — application/json
{
  "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 /api/v1/public/regulatory-diff/impact/:fundType Auth Required

Get a regulatory impact analysis for a specific fund type (e.g. aif, ucits, eltif).

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/public/regulatory-diff/impact/aif
200 OK
200 — application/json
{
  "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" }
  ]
}
API reference / Delegation

Delegation Management

Manage delegated functions under AIFMD Article 20 requirements. Track delegation arrangements, substance assessments, and oversight obligations for your fund management company.

GET /api/v1/delegations Auth Required

List all delegation arrangements for the current organisation.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/delegations
200 OK
200 — application/json
{
  "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 }
}
POST /api/v1/delegations Auth Required

Create a new delegation arrangement.

curl
curl -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
201 Created
201 — application/json
{
  "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 }
}
API reference / Senior Persons

Senior Persons

Manage senior management and key function holders required under AIFMD/MiFID II. Track fitness and propriety assessments, NCA notifications, and role assignments.

GET /api/v1/senior-persons Auth Required

List all registered senior persons and key function holders.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/senior-persons
200 OK
200 — application/json
{
  "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 }
}
POST /api/v1/senior-persons Auth Required

Register a new senior person or key function holder.

curl
curl -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
201 Created
201 — application/json
{
  "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 }
}
API reference / LMT / Liquidity

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.

GET /api/v1/lmt Auth Required

List configured liquidity management tools for all funds.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/lmt
200 OK
200 — application/json
{
  "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 }
}
POST /api/v1/lmt/notifications Auth Required

Send an LMT activation or deactivation notification to the relevant NCA.

curl
curl -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
201 Created
201 — application/json
{
  "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 }
}
API reference / Fee Disclosure

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.

GET /api/v1/fee-disclosures Auth Required

List fee disclosure reports for your funds.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/fee-disclosures
200 OK
200 — application/json
{
  "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 }
}
POST /api/v1/fee-disclosures Auth Required

Generate a new fee disclosure report for a fund and period.

curl
curl -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
201 Created
201 — application/json
{
  "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 }
}
API reference / Evidence Bundles

Evidence Bundles

Create tamper-detectable compliance evidence bundles for regulatory examinations and audits. Bundles package supporting documents, audit trails, and SHA-256 integrity hashes into a single downloadable archive.

GET /api/v1/evidence-bundles Auth Required

List all evidence bundles for your organisation.

curl
curl -H "Authorization: Bearer ck_live_..." \
  https://www.caelith.tech/api/v1/evidence-bundles
200 OK
200 — application/json
{
  "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 }
}
POST /api/v1/evidence-bundles Auth Required

Create a new evidence bundle from specified audit records and documents.

curl
curl -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
201 Created
201 — application/json
{
  "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 }
}
More / API Status

API Status

Private Beta

Caelith API is in private beta. Contact julian@caelith.tech for access.

Changelog

VersionDateChanges
v2.02026-02-26v2 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.22026-02Added Filing, Guidance, Classification, Checklist, Deadlines, Portals, NCA Compare, and Regulatory Diff endpoints. Total: 52 public endpoints.
v1.12026-02Documented 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.
v12025-01Initial 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 →