Export OJK audit data
Export audit data for OJK/BI regulatory submission.
Compliance frameworks — the label SELECTS the report sections when data_types is omitted (#3242). It is not a cosmetic tag:
| Framework | Sections, in report order |
|---|---|
| OJK_AI_GOVERNANCE | policy_violations, llm_calls, decision_chain, hitl_oversight |
| UU_PDP | pii_redactions, cross_border_transfers, breach_notifications, policy_violations |
| BI_PJP | decision_chain, hitl_oversight, pii_redactions, cross_border_transfers, breach_notifications |
| OJK_BI_COMBINED (default) | all seven sections |
Data types: policy_violations, llm_calls, decision_chain, hitl_oversight, pii_redactions, cross_border_transfers, breach_notifications, all. All seven are implemented. An explicitly requested section outside the selected framework's scope is still served, flagged in_framework_scope: false. An UNKNOWN data type produces an explicit per-section error — never a silent empty section.
Formats: format is accepted as json (default), csv or xml, but this endpoint PRODUCES ONLY JSON: the response is written with Content-Type: application/json and the data is inline. When csv or xml is requested the response reports format: json (what the body IS), echoes the ask in requested_format, and explains the difference in format_note. It does NOT label a JSON body as csv (#3242) - a regulator artifact that misstates its own encoding is worse than one that refuses. Rendered output is the compliance-report facade's job.
report_state is carried per section and rolled up on the summary: populated (served, has records), enabled_empty (served, honestly zero for this organization and window), not_available (could not be served at all — always paired with an error and an error_kind of section_not_implemented / store_absent / query_failed). Read report_state, not the presence of a JSON key: every data array is omitempty, so absence alone is ambiguous.
Sections are capped at 100,000 records; a section that reaches the cap says so in its note.
The date range may span at most 5 years, matching the OJK 5-year (1825-day) retention requirement. start_date and end_date are dates (YYYY-MM-DD) and the window is inclusive of the whole final day, in UTC at both ends — a request for 2026-08-03 covers 2026-08-03T00:00Z..T23:59Z, which is 07:00..07:00 WIB. The export runs synchronously and returns status: completed with the data inline.
metadata.export_version is 2.0.0 for this contract. A 1.0.0 consumer that inferred "module not enabled" from an empty body must move to report_state.
Enterprise Feature: Available only for Indonesian financial services deployments.
Request
- Base URLhttps://orchestrator.getaxonflow.com
- Authnone declared
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Headers
Deprecated fallback. Every OJK route is scoped to the caller's ORGANIZATION via X-Org-ID (#3242); X-Tenant-ID is used only when X-Org-ID is absent, which covers single-identifier deployments where the two values are the same. When both are present the organization wins. A request carrying neither header, or a whitespace-only value, is rejected with 400 (code missing_org).
Organization identifier — the authoritative OJK scope. Set by the AxonFlow agent from the validated client credential on every proxied route, so a caller cannot choose it.
Request body
Response
Export completed
Example response
{
"metadata": {
"export_version": "1.0.0",
"generated_by": "axonflow-ojk-module"
}
}Changes
No recorded changes to this operation across all 1 revision of this API.