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

# Overview

> Read your data back out — reports, analytics events and bulk exports.

Reporting covers the three ways data comes back out: running a report, recording and querying analytics events, and downloading a bulk export. It exists because reading at scale has different constraints from reading one record — some answers are aggregates, and some datasets are too large to page through.

## Reports

Reports come in two kinds, and they behave differently. **Built-in reports** are read-only and addressed by a string key such as `totalContacts`; **custom reports** are ones you create, addressed by an ID, with the full create, update and delete cycle. Either kind returns its configuration separately from its rows, so you can see what a report contains before paying the cost of running it. They exist to answer questions across your data without querying it directly. See [Reporting](https://conveyour.com/help/categories/reporting) in the Help Center.

| Method | Endpoint | What it does |
| - | - | - |
| `GET` | [`/api/reports`](/api-reference/reports/list-reports) | List reports |
| `GET` | [`/api/reports/{report_id}`](/api-reference/reports/get-a-report) | Get a report |
| `GET` | [`/api/custom-reports`](/api-reference/reports/list-custom-reports) | List custom reports |
| `POST` | [`/api/custom-reports`](/api-reference/reports/create-a-custom-report) | Create a custom report |
| `GET` | [`/api/custom-reports/{id}`](/api-reference/reports/get-a-custom-report) | Get a custom report |
| `PUT` | [`/api/custom-reports/{id}`](/api-reference/reports/update-a-custom-report) | Update a custom report |
| `DELETE` | [`/api/custom-reports/{id}`](/api-reference/reports/delete-a-custom-report) | Delete a custom report |
| `GET` | [`/api/reports/shared/{pid}`](/api-reference/reports/get-a-shared-report) | Get a shared report |
| `POST` | [`/api/custom-reports/{id}/share`](/api-reference/reports/share-a-custom-report) | Share a custom report |
| `POST` | [`/api/reports/{report_id}/action/{action_key}`](/api-reference/reports/run-a-report-action) | Run a report action |

## Analytics

Analytics is two endpoints meant to be called from the browser: **identify** creates or updates a contact from a set of traits, and **track** records events against that contact — page views, clicks, form completions. They exist so client-side activity can be attributed to a person, and they are the only endpoints a Client-safe key can reach, so a public page can send them without exposing full API access. See [ConveYour Analytics with JavaScript](https://conveyour.com/help/conveyour-analytics-with-javascript) in the Help Center.

| Method | Endpoint | What it does |
| - | - | - |
| `POST` | [`/api/analytics/track`](/api-reference/analytics/track-an-event) | Track an event |
| `POST` | [`/api/analytics/identify`](/api-reference/analytics/identify-a-contact) | Identify a contact |

## Exports

An export is a file ConveYour generates in the background for a dataset too large to page through an API. **These endpoints do not create exports** — you start one in the app, then use the API to poll its status and download it once ready. They exist so bulk data can leave ConveYour without holding a request open while the file is built.

| Method | Endpoint | What it does |
| - | - | - |
| `GET` | [`/api/exports/public/{pid}`](/api-reference/exports/get-export-status-by-public-id) | Get export status by public ID |
| `GET` | [`/api/exports/download/{id}`](/api-reference/exports/download-an-export) | Download an export |
| `GET` | [`/api/exports/public/{pid}/download`](/api-reference/exports/download-an-export-by-public-id) | Download an export by public ID |


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