---
title: "List atomizations"
method: GET
path: "/atomizations"
tags: ["Atomizations"]
---

# List atomizations

`GET /atomizations`

## Request

- Base URL: `https://next.frase.io/api/v1`
- URL: `https://next.frase.io/api/v1/atomizations`
- Auth: API key in header `X-API-KEY`

Lists the calling organization's atomizations, most recently updated first. Requires the `read:atomize` scope. Results are page-based: `page` defaults to 1 and `page_size` defaults to 20 and is clamped to 100. `content_id` is validated as a UUID and returns 400 `invalid_param` otherwise. `type` and `status` are passed straight to the query without validation — a value outside the enums fails at the database and surfaces as a 500 `Failed to list atomizations`, so send only the documented values. Each item carries only summary columns; call `GET /atomizations/{id}` for the generated `data` and `assets`.

## Query parameters

- `page` integer
- `page_size` integer
- `content_id` string, uuid
- `type` 'linkedin_carousel' | 'twitter_thread' | 'newsletter' | 'instagram_carousel'
- `status` 'draft' | 'generating' | 'review' | 'published' | 'archived'

## Response `200`

A page of atomizations

- object
  - `data` object[]
    - `id` string, uuid
    - `content_id` string, uuid
    - `type` 'linkedin_carousel' | 'twitter_thread' | 'newsletter' | 'instagram_carousel'
    - `status` 'draft' | 'generating' | 'review' | 'published' | 'archived'
    - `published_at` string, date-time, nullable: ISO 8601 timestamp, or null when never published
    - `published_url` string, nullable
    - `created_at` string, date-time
    - `updated_at` string, date-time
  - `pagination` object: Note the camelCase keys — this endpoint emits the pagination bag verbatim.
    - `page` integer
    - `pageSize` integer
    - `total` integer
    - `hasMore` boolean: True when offset + returned items is still below total

## Other responses

- `400`: Validation failed
- `401`: Authentication failed
- `403`: The API key lacks the `read:atomize` scope (`insufficient_scope`), the caller's IP is not allow-listed (`ip_not_allowed`), or the organization's subscription/trial is no longer active.
- `429`: Rate limit exceeded
- `500`: The listing query failed (this is also what an out-of-enum `type`/`status` produces).

---

[API](https://skmtc.dev/frase/apis/frase-api.md) · [All operations](https://skmtc.dev/frase/apis/frase-api/llms.txt) · [OpenAPI document](https://skmtc.dev/frase/apis/frase-api/revisions/7fb75d89f7a4?raw)
