# Exports

Source: https://docs.arcweave.com/rest-api/exports
Section: REST API
Description: REST API endpoints for JSON and engine exports

Export endpoints retrieve project data in Arcweave JSON or an engine-specific format.

The Unity, Unreal Engine, and Godot endpoints return JSON with the exported data inside a `project` property. The JSON endpoint returns the project data directly. [Engine downloads from the editor](https://docs.arcweave.com/project-tools/export#export-for-game-engines) are ZIP archives containing `project.json` and, when requested, assets.

**Info: Rate limits**
Project imports and exports share a workspace quota of **3 requests per minute per purchased seat**. Export requests, including `HEAD` requests, also count toward the overall API quota of **60 requests per minute per purchased seat**. See [Rate limits](https://docs.arcweave.com/rest-api/overview#rate-limits) for seat allowances, shared quotas, and retry guidance.

For all export endpoints, send `locale` as a single language-code string and boolean query parameters as `true` or `false`. Only lowercase `allLocales=true` enables all languages; `allLocales=1` does not. An array for `locale` or an unrecognized `allLocales` value returns `400 Bad Request` with the title `Bad Request - project export parameters`; each field in `errors` lists its messages in an array. Engine exports also reject invalid `fallbackContents` values with the same response.

The API doesn't check `locale` against the project's languages. An unknown code, or a code with different letter case, returns `null` for the localized fields instead of an error.

## Endpoints

Context: Arcweave docs > REST API > Exports > Endpoints

### JSON export

Context: Arcweave docs > REST API > Exports > Endpoints > JSON export

`GET /api/v1/{hash}/json`

**Request**

```http title="HTTP"
GET /api/v1/{hash}/json
```

```bash title="curl"
curl --request GET \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Accept: application/json" \
  "https://arcweave.com/api/v1/PROJECT_HASH/json"
```

**Response**

Returns `200 OK`.

The response uses the [Arcweave JSON export format](https://docs.arcweave.com/integrations/json). The body is JSON, but the response's `Content-Type` header is `text/html; charset=UTF-8`. Parse the body as JSON regardless of this header.

This endpoint always omits board-item positions and the dimensions and automatic-height settings of elements and notes. [Importing this response](https://docs.arcweave.com/rest-api/projects#import-project) generates a new layout. To preserve layout, export JSON from the editor with [Include coordinates](https://docs.arcweave.com/project-tools/export#include-coordinates) enabled; the REST endpoint has no equivalent parameter.

**Query parameters**

All JSON export query parameters are optional:

| Parameter    | Value             | Behavior                                                                                                 | When omitted                                        |
| ------------ | ----------------- | -------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
| `boardIds[]` | Board ID          | Selects boards and their board items. Repeat the parameter for multiple boards.                          | The export includes all project boards.             |
| `locale`     | Language ISO code | Exports localized content for the specified language, for example `es`.                                  | The export uses the project's default language.     |
| `allLocales` | Boolean           | When `true`, exports all available languages. This overrides `locale` when both parameters are supplied. | Defaults to `false`; the `locale` behavior applies. |

Selecting a board folder includes all boards inside it. Unknown board IDs are ignored. Board selection keeps components, attributes, assets, and global variables from the whole project, including attributes belonging to excluded boards or items. Review these collections before sharing a partial export.

Retrieve the full project in its default language:

```http title="HTTP"
GET /api/v1/{hash}/json
```

```bash title="curl"
curl --request GET \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Accept: application/json" \
  "https://arcweave.com/api/v1/PROJECT_HASH/json"
```

Retrieve the full project in Spanish:

```http title="HTTP"
GET /api/v1/{hash}/json?locale=es
```

```bash title="curl"
curl --request GET \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Accept: application/json" \
  "https://arcweave.com/api/v1/PROJECT_HASH/json?locale=es"
```

Retrieve two boards in Spanish:

```http title="HTTP"
GET /api/v1/{hash}/json?boardIds[]=board_1&boardIds[]=board_2&locale=es
```

```bash title="curl"
curl --request GET \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Accept: application/json" \
  "https://arcweave.com/api/v1/PROJECT_HASH/json?boardIds%5B%5D=board_1&boardIds%5B%5D=board_2&locale=es"
```

`boardIds` must be an array of board ID strings. A non-array value or a nested array entry returns `400 Bad Request`.

Retrieve the full project in all available languages:

```http title="HTTP"
GET /api/v1/{hash}/json?allLocales=true
```

```bash title="curl"
curl --request GET \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Accept: application/json" \
  "https://arcweave.com/api/v1/PROJECT_HASH/json?allLocales=true"
```

**Warning: Deprecated asset filename header**
`AW-No-Filter-Asset-Names` is deprecated and will be removed soon. New integrations should use the dedicated asset endpoints, and existing integrations should migrate to them.

The header exposes stored asset filenames in JSON and Godot exports:

```http
AW-No-Filter-Asset-Names: true
```

Use the dedicated [asset endpoints](https://docs.arcweave.com/rest-api/assets) instead:

1. Read the asset IDs from the export's `assets` object.
2. Retrieve an asset's metadata and stored filename with [`GET /asset/{assetID}`](https://docs.arcweave.com/rest-api/assets#get-asset).
3. Retrieve its binary file with [`GET /asset/{assetID}/file`](https://docs.arcweave.com/rest-api/assets#download-asset-file).

### Export for Unity

Context: Arcweave docs > REST API > Exports > Endpoints > Export for Unity

`GET /api/v1/{hash}/unity`

**Request**

```http title="HTTP"
GET /api/v1/{hash}/unity
```

```bash title="curl"
curl --request GET \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Accept: application/json" \
  "https://arcweave.com/api/v1/PROJECT_HASH/unity"
```

**Response**

Returns `200 OK`.

Returns the project format used by the Arcweave Unity integration inside the `project` property. Abbreviated response:

```json
{
  "project": {
    "name": "The Castle"
  }
}
```

| Query parameter    | Type              | Description                                                                                |
| ------------------ | ----------------- | ------------------------------------------------------------------------------------------ |
| `locale`           | Language ISO code | Export content for one language.                                                           |
| `allLocales`       | Boolean           | Export all languages and override `locale`.                                                |
| `fallbackContents` | Boolean           | When `true`, empty values use the **Translates from** language chain. Defaults to `false`. |

### Export for Unreal Engine

Context: Arcweave docs > REST API > Exports > Endpoints > Export for Unreal Engine

`GET /api/v1/{hash}/unreal`

**Request**

```http title="HTTP"
GET /api/v1/{hash}/unreal
```

```bash title="curl"
curl --request GET \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Accept: application/json" \
  "https://arcweave.com/api/v1/PROJECT_HASH/unreal"
```

**Response**

Returns `200 OK`.

Returns the project format used by the Arcweave Unreal Engine integration inside the `project` property. Abbreviated response:

```json
{
  "project": {
    "name": "The Castle"
  }
}
```

| Query parameter    | Type              | Description                                                                                |
| ------------------ | ----------------- | ------------------------------------------------------------------------------------------ |
| `locale`           | Language ISO code | Export content for one language.                                                           |
| `allLocales`       | Boolean           | Export all languages and override `locale`.                                                |
| `fallbackContents` | Boolean           | When `true`, empty values use the **Translates from** language chain. Defaults to `false`. |

### Export for Godot

Context: Arcweave docs > REST API > Exports > Endpoints > Export for Godot

`GET /api/v1/{hash}/godot`

**Request**

```http title="HTTP"
GET /api/v1/{hash}/godot
```

```bash title="curl"
curl --request GET \
  --header "Authorization: Bearer YOUR_API_KEY" \
  --header "Accept: application/json" \
  "https://arcweave.com/api/v1/PROJECT_HASH/godot"
```

**Response**

Returns `200 OK`.

Returns the project format used by the Arcweave Godot integration inside the `project` property. Abbreviated response:

```json
{
  "project": {
    "name": "The Castle"
  }
}
```

| Query parameter    | Type              | Description                                                                                |
| ------------------ | ----------------- | ------------------------------------------------------------------------------------------ |
| `locale`           | Language ISO code | Export content for one language.                                                           |
| `allLocales`       | Boolean           | Export all languages and override `locale`.                                                |
| `fallbackContents` | Boolean           | When `true`, empty values use the **Translates from** language chain. Defaults to `false`. |

**Warning: Deprecated asset filename header**
`AW-No-Filter-Asset-Names` is deprecated and will be removed soon. New integrations should use the dedicated [asset endpoints](https://docs.arcweave.com/rest-api/assets), and existing integrations should migrate to them.

## Common errors

Context: Arcweave docs > REST API > Exports > Common errors

| Status | Meaning                                               |
| ------ | ----------------------------------------------------- |
| `400`  | Invalid export query.                                 |
| `403`  | Export feature, project access, or permission denied. |
| `404`  | Project not found.                                    |
| `500`  | Export failed unexpectedly.                           |
