---
title: "Start an organization usage CSV export"
method: POST
path: "/organizations/{organizationId}/usage-exports"
tags: ["Organizations"]
---

# Start an organization usage CSV export

`POST /organizations/{organizationId}/usage-exports`

## Request

- Base URL: `https://app.flora.ai/api/v1`
- URL: `https://app.flora.ai/api/v1/organizations/{organizationId}/usage-exports`
- Auth: HTTP bearer

Queues a CSV export of every charged generation and technique run across the organization's workspaces for an inclusive UTC day range of at most 366 days. Columns: Workspace, Date, Project ID, Project Name, User Email, Modality, Model, Media URL, Cost, Modifiers, Usage pool. The export builds in the background; poll GET /organizations/{organizationId}/usage-exports/{exportId} until status is completed, then download the listed files. A copy of the download link is also emailed to the credential's user. One export per user may be in progress at a time; a second request within a few minutes returns rate_limited. Requires an organization with multiple workspaces enabled, and the credential's user must hold billing permissions in that organization. An API key works for the organization that owns its workspace; an OAuth token works for any organization the user administers. Other organizations return 403.

## Path parameters

- `organizationId` string, required: Organization identifier

## Request body

- object
  - `start_date` string, required: First UTC day to include (YYYY-MM-DD)
  - `end_date` string, required: Last UTC day to include (YYYY-MM-DD)

## Response `201`

Export queued.

- object
  - `export_id` string, required: Usage export identifier
  - `organization_id` string, required: Organization identifier
  - `status` 'queued' | 'running' | 'completed' | 'failed', required: queued and running exports have no files yet; poll until completed or failed
  - `start_date` string, required: UTC calendar day in YYYY-MM-DD form
  - `end_date` string, required: UTC calendar day in YYYY-MM-DD form
  - `workspace_count` integer, required: Workspaces included in the export
  - `row_count` integer, nullable, required: Total data rows across all parts; null until completed
  - `error` string, nullable, required: Failure reason when status is failed
  - `created_at` integer, required: When the export was requested (ms since epoch)
  - `completed_at` integer, nullable, required: When the export finished (ms since epoch); null while in progress
  - `files` object[], required: CSV parts to download; empty until the export completes
    - `part` integer, required: 1-based part number; large exports are split
    - `filename` string, required: CSV filename
    - `download_url` string, uri, required: Direct download URL for this CSV part
    - `row_count` integer, required: Data rows in this part
    - `byte_size` integer, required: Size of this part in bytes

## Other responses

- `400`: 400
- `401`: 401
- `402`: 402
- `403`: 403
- `404`: 404
- `409`: 409
- `429`: 429
- `500`: 500
- `503`: 503

## Changes

- **2026-10-28** `a8351619f225`: 9 warning
  - added the new `not_configured` enum value to the `error/code` response property for the response status `400`
  - added the new `not_configured` enum value to the `error/code` response property for the response status `401`
  - added the new `not_configured` enum value to the `error/code` response property for the response status `402`
  - added the new `not_configured` enum value to the `error/code` response property for the response status `403`
  - …5 more
- **2026-10-16** `e54130373b10`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/florafauna-ai/apis/flora-ai-api/changes/organizations/:organizationId/usage-exports/post.md)

---

[API](https://skmtc.dev/florafauna-ai/apis/flora-ai-api.md) - [All operations](https://skmtc.dev/florafauna-ai/apis/flora-ai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/florafauna-ai/apis/flora-ai-api/revisions/87cfe2c4ac29?raw)
