---
sidebar_label: Manage reports
toc_max_heading_level: 3
doc_id: ff6be21b-4c96-4a0c-ac64-8a52a2067159
description: >-
  Create, read, update, list, copy, and delete dynamic reports in nullplatform
  through the API.
keywords:
  - reports
  - dynamic reports
  - create report
  - update report
  - copy report
  - delete report
---

# Manage reports

You manage [dynamic reports](/docs/insights/reports/overview) through the API. This page walks you through creating a report and points you to the reference for the rest of the operations.

## Create a report

Send a [POST request](/docs/api/report-create) to `https://api.nullplatform.com/report`. 

> 💡 **Tip:** Only `name` is required: you can start with just a name and fill in the schema, form, and queries later. If you don't send `visibility`, the report is created as `user`, so it stays private to you until you decide to share it.

```bash
curl -L -X POST 'https://api.nullplatform.com/report' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
  "name": "Deployment frequency",
  "description": "How often each application deploys",
  "visibility": "user",
  "schema": { "type": "object", "properties": { "environment": { "type": "string" } } },
  "ui_schema": { "environment": { "ui:widget": "select" } },
  "queries": {}
}'
```

## Other operations

The rest of the operations follow the same REST pattern. Each link takes you to the full reference, with request and response details:

- [List reports](/docs/api/report-list): returns a lightweight index without `schema`, `ui_schema`, and `queries`. You can filter by `visibility` and paginate with `limit` and `offset`.
- [Read a report](/docs/api/report-read): returns the full report definition.
- [Update a report](/docs/api/report-update): a `PATCH` that only changes the fields you send.
- [Copy a report](/docs/api/report-copy): creates your own copy of an existing report. The copy has `user` visibility, so you own it and can edit it freely.
- [Delete a report](/docs/api/report-delete): soft-deletes the report.

:::note
A `user` report can only be changed or deleted by its owner. An `organization` report can be changed or deleted by anyone in the organization.
:::

## Next steps

Once your report is ready, [publish it](/docs/insights/reports/publish-and-versions) so others can see it in [Insights](/docs/insights/dashboard-builder).
