---
# @generated by sylphx-gen 0.1.0 from contracts@e145cc7cf1bc9605f2b27439e5e17ed76a1a2fd7e7021906a013f7565e4a0cd5. Do not edit.
title: "Export a catalog"
description: "`localization.catalogs.export` (POST /v1/{name}:export): Returns the catalog's files per locale in the requested format, with the QA report."
type: reference
product: localization
summary: "Returns the catalog's files per locale in the requested format, with the QA report."
updated: 2026-09-28
nav: false
---

Returns the catalog's files per locale in the requested format, with the QA report. A read with a request body, like a query.

- **Path** `POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/catalogs/catalog:export`
- **Scope** `localization:read`
- **Effect** `read` — nothing is written.
- **Collection** [catalogs](/docs/api/catalogs)

## Request

| Field | Type | What it is |
| --- | --- | --- |
| `name` | `string` | The name of the catalog. Required. |
| `format` | `Format` | The format of the files. Required. One of `sylphx_json`, `icu_json`, `gettext_po`, `xliff2`. |
| `locales` | `string[]` | The locales to export; default every target locale and the pseudo-locales. |
| `source_fallback` | `bool` | Emit the source text for keys that have no passing translation, for runtimes that do not fall back to the source themselves. |

## Response

| Field | Type | What it is |
| --- | --- | --- |
| `files` | `CatalogFile[]` | One file per source file per locale, with the source file's `path`. |
| `report` | `QaReport` | The QA report. A translation with an error is never exported. |
| `pending` | `int32` | Translations still to make. |
| `glyph_sets` | `GlyphSet[]` | The characters each locale's texts use. |

### CatalogFile

| Field | Type | What it is |
| --- | --- | --- |
| `path` | `string` | The file's path. The service does not interpret it and echoes it back, for example a namespace file name. Required. |
| `locale` | `string` | The file's locale, a BCP 47 tag. Required. |
| `content` | `string` | The file's text, UTF-8; at most 4 MiB. Required. |

### QaReport

| Field | Type | What it is |
| --- | --- | --- |
| `passed` | `bool` | Whether there are no errors. |
| `errors` | `int32` | The number of errors. |
| `warnings` | `int32` | The number of warnings. |
| `findings` | `QaFinding[]` | The findings. |

### GlyphSet

| Field | Type | What it is |
| --- | --- | --- |
| `locale` | `string` | The locale. |
| `characters` | `string` | Every distinct character the locale's texts use, sorted. |

### QaFinding

| Field | Type | What it is |
| --- | --- | --- |
| `entry` | `string` | The Catalog Entry, as a resource name. Output only. |
| `key` | `string` | The entry's key. Output only. |
| `locale` | `string` | The target locale. Output only. |
| `check` | `QaCheck` | The check that found it. Output only. One of `syntax`, `placeholders`, `markup`, `plural`, `length`, `glossary`, `forbidden_term`. |
| `severity` | `QaSeverity` | How serious it is. Output only. One of `error`, `warning`. |
| `message` | `string` | What is wrong. Output only. |

## Errors

- [`UNAUTHENTICATED`](/docs/api/errors/UNAUTHENTICATED) — No valid key or token was presented.
- [`PERMISSION_DENIED`](/docs/api/errors/PERMISSION_DENIED) — The key lacks the method's permission.
- [`RESOURCE_NOT_FOUND`](/docs/api/errors/RESOURCE_NOT_FOUND) — The named Resource does not exist or is not visible.
- [`INVALID_FIELD`](/docs/api/errors/INVALID_FIELD) — A field failed validation.

Every error arrives in the body [Errors](/docs/platform/errors) describes.

## Examples

**cURL**

```curl
curl -X POST "https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/catalogs/catalog:export" \
  -H "Authorization: Bearer $SYLPHX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"format":"sylphx_json"}'
```

**TypeScript**

```ts
const response = await sylphx.localization.catalogs.export({ format: 'sylphx_json', name: 'orgs/acme/projects/shop/envs/production/catalogs/catalog' })
```

**Rust**

```rust
let mut req = sylphx::localization::ExportCatalogRequest::default();
req.format = sylphx::localization::Format::SylphxJson;
req.name = "orgs/acme/projects/shop/envs/production/catalogs/catalog".to_string();
let response = sx.localization().catalogs().export(req).await?;
```

**CLI**

```bash
sylphx localization catalogs export orgs/acme/projects/shop/envs/production/catalogs/catalog
```

**MCP**

```json
{ "method_id": "localization.catalogs.export", "args": {"format":"sylphx_json","name":"orgs/acme/projects/shop/envs/production/catalogs/catalog"} }
```
