Reports: list, generate, and download.
Reports are where Liberty91's analysis lands for stakeholders, and the API covers the whole production cycle: kick off generation from events, poll until the report is ready, then pull the artifact in the format your workflow needs.
Reading and downloading require reports.read; generation requires reports.generate.
List reports
GET /api/v1/reports/ returns your intelligence reports, cursor-paginated. Filter by
organization_id or by status:
curl "https://api.liberty91.com/api/v1/reports/?status=DRAFT" \
-H "X-API-Key: $LIBERTY91_API_KEY"Report status is one of GENERATING, DRAFT, STAGED, SENT, or FAILED.
Report detail
GET /api/v1/reports/{id}/ returns the report's metadata: kind, status, title, summary,
the organization it belongs to, and the list of available artifacts. This is also the
endpoint you poll during generation.
Generate a report
POST /api/v1/reports/generate/ produces reports from events you name, tailored to one
or more of your organizations:
curl -X POST "https://api.liberty91.com/api/v1/reports/generate/" \
-H "X-API-Key: $LIBERTY91_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"event_instance_ids": ["a1b2c3d4-...", "e5f6a7b8-..."],
"organization_ids": ["11111111-...", "22222222-..."],
"chapters": ["executive_summary", "analysis", "recommendations"],
"intelligence_requirement": "Ransomware targeting European manufacturing"
}'The chapters array controls the report structure, and intelligence_requirement
anchors the analysis to the topic that matters for the reader, the same way
Intelligence Requirements ground
reporting in the platform.
The response is 202 Accepted with one report per organization:
{ "report_ids": ["33333333-...", "44444444-..."] }Generation costs 50 credits per organization in the request. Two organizations in one call means two tailored reports and 100 credits.
Poll and download
- For each returned ID, poll
GET /api/v1/reports/{id}/untilstatusleavesGENERATING. A ready report showsDRAFT,STAGED, orSENT; a failed one showsFAILED. - Download the artifact in the format you need:
GET /api/v1/reports/{id}/download/?type=pdf(alsomd,csv, orstix).
Generation is doing real analytical work, so expect minutes rather than seconds, and poll on a relaxed interval. Each status poll costs 2 credits and a download costs 5.
Pair this with event ingest: push a vendor report in, wait for enrichment to complete, then generate an organization-tailored report from it. That is a full intelligence production pipeline in three API calls.
Frequently asked questions
Can I generate Liberty91 reports programmatically?
Yes. POST event instance IDs and organization IDs to /api/v1/reports/generate/ and the
platform produces a tailored report per organization. Poll each report's status, then
download the artifacts.
What formats can I download a report in?
PDF, Markdown, CSV, and STIX, selected with the type parameter on the download
endpoint.
How much does report generation cost in credits?
50 credits per organization in the request, because each organization gets its own tailored report. Listing, polling, and downloading are priced separately at 1, 2, and 5 credits.