---
title: "Add Distribution"
method: POST
path: "/projects/{projectId}/distributions"
tags: ["Distributions"]
---

# Add Distribution

`POST /projects/{projectId}/distributions`

## Request

- Base URL: `https://api.crowdin.com/api/v2`
- URL: `https://api.crowdin.com/api/v2/projects/{projectId}/distributions`
- Auth: none declared
- TypeScript: <https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/docs/projects/:projectId/distributions/post.ts> (a function with typed inputs; its response is checked against the schema)

**Required scopes:** `project.translation` (Read and Write).

## Path parameters

- `projectId` integer, required

## Request body

- DistributionCreateForm
  - `exportMode` 'default' | 'bundle': Export mode
  - `name` string, required: Distribution name
  - `fileIds` integer[]: Files ids __Note:__ Required for `default` export mode
  - `bundleIds` integer[]: Bundles ids. Get via [List Bundles](#operation/api.projects.bundles.getMany) __Note:__ Required for `bundle` export mode

## Response `201`

Distribution was successfully created

- FileBasedDistributionResource: Base schema of resource container. Container is a wrapper object that contains payload in required `data` property and provides space for adding any other metadata.
  - `data` FileBasedDistribution, required: Class DistributionResponseModel
    - `hash` string
    - `manifestUrl` string
    - `name` string
    - `bundleIds` integer[]
    - `createdAt` string, date-time
    - `updatedAt` string, date-time: in UTC
    - `exportMode` string
    - `fileIds` integer[]

## Other responses

- `400`: Invalid Request Parameters
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Project with specified id was not found
- `405`: Method Not Allowed
- `503`: Service Unavailable

---

[API](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2.md) - [All operations](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/llms.txt) - [OpenAPI document](https://skmtc.dev/crowdin/apis/crowdin-enterprise-api-v2/revisions/dc68744c5384?raw)
