> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flowapt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Reporting API

> Read-only reports for dashboards and scheduled jobs: account activity, conversations, orders, broadcasts, subscriptions and automations.

The Reporting API gives you the same numbers you see in the FlowIQ dashboard over plain HTTP, using the same `fiq_` API key as the rest of the API. It's read-only: no report can send, change or delete anything.

<Card title="Live report reference" icon="book-open" href="https://api.flowiq.live/reports">
  Every report with its parameters, defaults and a try-it form. Generated from the running code, so it's always current. Machine-readable version: [`/reports/openapi.json`](https://api.flowiq.live/reports/openapi.json).
</Card>

***

## Authentication

```bash theme={null}
Authorization: Bearer fiq_YOUR_API_KEY
```

The key selects your organization, so you don't pass an organization ID. Keys are created in the [FlowIQ Dashboard](https://app.flowiq.live) under **Settings → Profile → API Keys**.

***

## URLs and versioning

| URL | Version |
| - | - |
| `https://api.flowiq.live/reports/<report>` | Always the latest version |
| `https://api.flowiq.live/v1/<report>` | Pinned to version 1. Use this in production jobs so a future version can't change the response shape under you |

Report names are snake\_case (`get_account_stats`); hyphens work too (`get-account-stats`).

***

## Running a report

Pass parameters as a query string on `GET`, or as a JSON body on `POST` (the body wins if both set the same parameter).

<CodeGroup>
  ```bash Last 7 days of activity theme={null}
  curl "https://api.flowiq.live/v1/get_account_stats?days=7" \
    -H "Authorization: Bearer fiq_YOUR_API_KEY"
  ```

  ```bash Broadcasts this month theme={null}
  curl "https://api.flowiq.live/v1/list_broadcasts?start_date=2026-10-01&limit=50" \
    -H "Authorization: Bearer fiq_YOUR_API_KEY"
  ```

  ```bash One broadcast's results (POST) theme={null}
  curl -X POST "https://api.flowiq.live/v1/get_broadcast_report" \
    -H "Authorization: Bearer fiq_YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{ "broadcast_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "include_failures": true }'
  ```
</CodeGroup>

Date parameters are calendar days (`YYYY-MM-DD`) read in the `timezone` parameter, which defaults to `Africa/Johannesburg`.

### Response

```json theme={null}
{
  "report": "get_account_stats",
  "organization_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "generated_at": "2026-10-02T09:41:00.000Z",
  "text": "…the full report, including any caveats about the figures…",
  "data": { "…": "the report's JSON payload" }
}
```

| Field | Description |
| - | - |
| `report` | The report that ran |
| `organization_id` | The organization the figures belong to |
| `generated_at` | When the report was produced |
| `text` | The complete report as readable text, including caveats (for example a period that's still in progress) |
| `data` | The report's JSON payload, or `null` for a report that is text only. Use this in code |

### Listing reports

`GET https://api.flowiq.live/reports` **with** your key returns every report your key can run, with its description and parameters, as JSON. Without a key the same URL opens the readable reference.

***

## Available reports

| Area | Reports |
| - | - |
| Account | `list_organizations`, `get_account_overview`, `get_account_stats`, `get_weekly_performance` |
| Contacts and conversations | `list_contacts`, `list_conversations`, `get_conversation`, `get_conversation_ratings`, `get_support_conversation_sample`, `get_escalation_response_times`, `list_tickets` |
| Store | `list_orders`, `search_products`, `get_product_demand`, `get_abandoned_cart_recovery` |
| Broadcasts | `list_templates`, `list_broadcasts`, `get_broadcast_report`, `get_broadcast_engagement`, `get_campaign_revenue`, `list_scheduled_sends` |
| Subscriptions | `list_subscriptions`, `get_subscription`, `get_subscription_totals`, `get_subscriber_growth`, `get_subscription_activity` |
| Automations and AI | `list_flows`, `get_flow`, `list_journeys`, `get_journey_overview`, `get_journey_monthly`, `list_keywords`, `get_agent_prompt`, `list_prompt_versions` |

The [live reference](https://api.flowiq.live/reports) is the authoritative list; reports added after this page was written appear there first.

***

## Errors

| Status | `error` | When |
| - | - | - |
| 400 | `Invalid parameters` | A parameter is missing or has the wrong type. `issues` lists each problem and `params` lists the report's parameters |
| 400 | `Wrong organisation for this key` | You passed an `organization_id` that isn't the key's organization. Leave it out |
| 400 | `Report refused` | The report ran but couldn't answer the request; `message` explains why |
| 401 | | Missing or invalid API key |
| 403 | `Forbidden` | The key can't read this data |
| 404 | `Unknown report` | No report with that name |
| 429 | `Rate limited` | More than 240 requests in a minute on one key |
| 500 | `Report failed` | Something went wrong on our side; retry later |

```json theme={null}
{
  "error": "Invalid parameters",
  "report": "get_broadcast_report",
  "issues": [{ "path": "broadcast_id", "message": "Invalid input: expected string, received undefined" }],
  "params": ["broadcast_id", "include_failures", "contact", "timezone"]
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.