> ## Documentation Index
> Fetch the complete documentation index at: https://developers.phrase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Project

> Creates an empty project and redirects the client to the upload service to upload files. After upload completion, the service will finalize the project automatically. Direct file uploads are more robust and recommended over providing fileUrls.

Upload behavior and limits:
- 10-minute inactivity timeout per upload stream.
- If the client connection drops, the upload is aborted and cannot resume; retry from the start.
- Multi-hour uploads are supported as long as data keeps flowing and the connection stays open.



## OpenAPI

````yaml /openapi/phrase-studio.json post /v1/projects
openapi: 3.0.3
info:
  title: Studio API
  description: >-
    API for creating projects and reading transcription, translation, and
    dubbing results.
  version: 1.0.0
servers:
  - url: https://api.studio.us.phrase.com
    description: Production US Environment
  - url: https://api.studio.eu.phrase.com
    description: Production EU Environment
security: []
tags:
  - name: Projects
    description: Manage transcription, translation, and dubbing projects
  - name: Recordings
    description: Access recording status and output data
  - name: Subtitle Profiles
    description: Manage subtitle formatting profiles
  - name: Pronunciations
    description: Manage custom pronunciation rules
  - name: Glossaries
    description: Manage translation glossaries
  - name: Insights
    description: Manage AI-powered insight prompts
  - name: Safe Communications
    description: Access safe communication evaluation templates
paths:
  /v1/projects:
    post:
      tags:
        - Projects
      summary: Create Project
      description: >-
        Creates an empty project and redirects the client to the upload service
        to upload files. After upload completion, the service will finalize the
        project automatically. Direct file uploads are more robust and
        recommended over providing fileUrls.


        Upload behavior and limits:

        - 10-minute inactivity timeout per upload stream.

        - If the client connection drops, the upload is aborted and cannot
        resume; retry from the start.

        - Multi-hour uploads are supported as long as data keeps flowing and the
        connection stays open.
      operationId: createProject
      parameters:
        - name: title
          in: query
          required: false
          description: Project title
          schema:
            type: string
            default: Untitled Project
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                sourceLanguage:
                  type: string
                  description: Source language code
                  enum:
                    - auto
                    - en
                    - en-us
                    - en-gb
                    - en-in
                    - en-au
                    - en-ca
                    - en-za
                    - zh
                    - zh-cn
                    - zh-tw
                    - zh-hk
                    - de
                    - es
                    - es-es
                    - es-mx
                    - es-419
                    - es-ar
                    - ru
                    - ko
                    - fr
                    - fr-ca
                    - ja
                    - pt
                    - pt-br
                    - tr
                    - pl
                    - ca
                    - nl
                    - ar
                    - ar-sa
                    - ar-ae
                    - sv
                    - it
                    - id
                    - hi
                    - fi
                    - vi
                    - he
                    - uk
                    - el
                    - ms
                    - cs
                    - ro
                    - da
                    - hu
                    - ta
                    - 'no'
                    - th
                    - ur
                    - hr
                    - bg
                    - lt
                    - la
                    - mi
                    - ml
                    - cy
                    - sk
                    - te
                    - fa
                    - lv
                    - bn
                    - sr
                    - az
                    - sl
                    - kn
                    - et
                    - mk
                    - br
                    - eu
                    - is
                    - hy
                    - ne
                    - mn
                    - bs
                    - kk
                    - sq
                    - sw
                    - gl
                    - mr
                    - pa
                    - si
                    - km
                    - sn
                    - yo
                    - so
                    - af
                    - oc
                    - ka
                    - be
                    - tg
                    - sd
                    - gu
                    - am
                    - yi
                    - lo
                    - uz
                    - fo
                    - ht
                    - ps
                    - tk
                    - nn
                    - mt
                    - sa
                    - lb
                    - my
                    - bo
                    - tl
                    - mg
                    - as
                    - tt
                    - haw
                    - ln
                    - ha
                    - ba
                    - jw
                    - su
                    - yue
                    - fil
                    - ga
                    - zu
                    - ig
                    - ceb
                    - ny
                    - ky
                subtitleProfiles:
                  description: >-
                    Array of subtitle profile selections. In multipart, provide
                    this as a JSON array string.
                  type: array
                  items:
                    $ref: '#/components/schemas/CreateProjectSubtitleProfile'
                translationLanguages:
                  description: >-
                    Target languages for translation. Provide as JSON array or
                    JSON string.
                  type: array
                  items:
                    type: string
                    enum:
                      - en
                      - en-us
                      - en-gb
                      - en-in
                      - en-au
                      - en-ca
                      - en-za
                      - zh
                      - zh-cn
                      - zh-tw
                      - zh-hk
                      - de
                      - es
                      - es-es
                      - es-mx
                      - es-419
                      - es-ar
                      - ru
                      - ko
                      - fr
                      - fr-ca
                      - ja
                      - pt
                      - pt-br
                      - tr
                      - pl
                      - ca
                      - nl
                      - ar
                      - ar-sa
                      - ar-ae
                      - sv
                      - it
                      - id
                      - hi
                      - fi
                      - vi
                      - he
                      - uk
                      - el
                      - ms
                      - cs
                      - ro
                      - da
                      - hu
                      - ta
                      - 'no'
                      - th
                      - ur
                      - hr
                      - bg
                      - lt
                      - la
                      - mi
                      - ml
                      - cy
                      - sk
                      - te
                      - fa
                      - lv
                      - bn
                      - sr
                      - az
                      - sl
                      - kn
                      - et
                      - mk
                      - br
                      - eu
                      - is
                      - hy
                      - ne
                      - mn
                      - bs
                      - kk
                      - sq
                      - sw
                      - gl
                      - mr
                      - pa
                      - si
                      - km
                      - sn
                      - yo
                      - so
                      - af
                      - oc
                      - ka
                      - be
                      - tg
                      - sd
                      - gu
                      - am
                      - yi
                      - lo
                      - uz
                      - fo
                      - ht
                      - ps
                      - tk
                      - nn
                      - mt
                      - sa
                      - lb
                      - my
                      - bo
                      - tl
                      - mg
                      - as
                      - tt
                      - haw
                      - ln
                      - ha
                      - ba
                      - jw
                      - su
                      - yue
                      - fil
                      - ga
                      - zu
                      - ig
                      - ceb
                      - ny
                      - ky
                dubbingLanguages:
                  description: >-
                    Target languages for dubbing. Provide as JSON array or JSON
                    string.
                  type: array
                  items:
                    type: string
                    enum:
                      - af
                      - ar
                      - hy
                      - as
                      - az
                      - be
                      - bn
                      - bs
                      - bg
                      - ca
                      - ceb
                      - ny
                      - zh
                      - hr
                      - cs
                      - da
                      - nl
                      - en
                      - et
                      - fil
                      - fi
                      - fr
                      - gl
                      - ka
                      - de
                      - el
                      - gu
                      - ha
                      - he
                      - hi
                      - hu
                      - is
                      - id
                      - ga
                      - it
                      - ja
                      - jw
                      - kn
                      - kk
                      - ky
                      - ko
                      - lv
                      - ln
                      - lt
                      - lb
                      - mk
                      - ms
                      - ml
                      - mr
                      - ne
                      - 'no'
                      - ps
                      - fa
                      - pl
                      - pt
                      - pa
                      - ro
                      - ru
                      - sr
                      - sd
                      - sk
                      - sl
                      - so
                      - es
                      - sw
                      - sv
                      - ta
                      - te
                      - th
                      - tr
                      - uk
                      - ur
                      - vi
                      - cy
                summary:
                  type: boolean
                  description: Enable summary generation
                customAttributes:
                  type: boolean
                  description: Enable custom attributes extraction
                insights:
                  description: >-
                    Requested insight IDs (UUID v4). Provide as JSON array or
                    JSON string.
                  type: array
                  items:
                    type: string
                    format: uuid
                glossary:
                  description: >-
                    Glossary configuration (JSON object or JSON string). When
                    provided as an object in multipart form, use JSON string
                    representation.
                  oneOf:
                    - type: object
                      properties:
                        id:
                          type: string
                          format: uuid
                          description: Existing glossary ID to use for the project
                        content:
                          type: string
                          description: >-
                            Glossary content as newline-separated terms (e.g.,
                            'term1\nterm2\nterm3')
                    - type: string
                safeCommunications:
                  description: >-
                    Safe communication IDs (UUID v4). Provide as JSON array or
                    JSON string.
                  type: array
                  items:
                    type: string
                    format: uuid
                pronunciations:
                  description: >-
                    Pronunciations to apply. In multipart, provide as JSON array
                    string.
                  type: array
                  items:
                    $ref: '#/components/schemas/CreateProjectPronunciation'
                fileUrls:
                  description: >-
                    External file URLs to import. Provide as JSON array or JSON
                    string. If provided, uploaded files in this request are
                    ignored for processing (but still count towards the 5-item
                    limit).
                  type: array
                  items:
                    type: string
                    format: uri
                files:
                  description: >-
                    One or more files to upload (max 5 total across files +
                    fileUrls). Ignored for processing when fileUrls are provided
                    (but still count towards the limit).
                  type: array
                  items:
                    type: string
                    format: binary
              required:
                - sourceLanguage
                - subtitleProfiles
            examples:
              direct_upload:
                summary: Direct file upload (full request example)
                value:
                  sourceLanguage: en
                  subtitleProfiles:
                    - subtitleProfileId: 00000000-0000-0000-0000-000000000001
                      languageCode: en
                  translationLanguages:
                    - tr
                    - es
                  dubbingLanguages:
                    - tr
                  summary: false
                  customAttributes: true
                  insights:
                    - 00000000-0000-0000-0000-000000000002
                    - 00000000-0000-0000-0000-000000000003
                  glossary:
                    id: 00000000-0000-0000-0000-000000000004
                    content: term1\nterm2\nterm3
                  safeCommunications:
                    - 00000000-0000-0000-0000-000000000005
                    - 00000000-0000-0000-0000-000000000006
                  pronunciations:
                    - pronunciationId: 00000000-0000-0000-0000-000000000007
                      languageCode: en
              url_import:
                summary: Import from external URLs (full request example)
                value:
                  sourceLanguage: en
                  subtitleProfiles:
                    - subtitleProfileId: 00000000-0000-0000-0000-000000000001
                      languageCode: en
                  translationLanguages:
                    - tr
                    - es
                  dubbingLanguages:
                    - tr
                  summary: false
                  customAttributes: true
                  insights:
                    - 00000000-0000-0000-0000-000000000002
                    - 00000000-0000-0000-0000-000000000003
                  glossary:
                    id: 00000000-0000-0000-0000-000000000004
                    content: term1\nterm2\nterm3
                  safeCommunications:
                    - 00000000-0000-0000-0000-000000000005
                    - 00000000-0000-0000-0000-000000000006
                  pronunciations:
                    - pronunciationId: 00000000-0000-0000-0000-000000000007
                      languageCode: en
                  fileUrls:
                    - >-
                      http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
      responses:
        '200':
          description: Upload accepted and project initialized
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: Project ID
                required:
                  - id
              examples:
                ok_by_uploads:
                  summary: Success (direct uploads)
                  value:
                    id: 01jzmvc20cjq5hj5saa96ttp2x
                ok_by_file_urls:
                  summary: Success (fileUrls)
                  value:
                    id: 01jzmvc20cjq5hj5saa96ttp2x
        '307':
          description: Redirect to external upload service
          headers:
            Location:
              schema:
                type: string
                format: uri
              description: URL to redirect to for file upload
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                no_files:
                  summary: No files provided (redirect endpoint)
                  value:
                    success: false
                    statusCode: 400
                    message: There are no files
                    timestamp: '2025-01-01T00:00:00.000Z'
                malformed_multipart:
                  summary: Malformed multipart payload (upload service)
                  value:
                    success: false
                    statusCode: 400
                    message: Malformed multipart payload
                    timestamp: '2025-01-01T00:00:00.000Z'
                validation_failed:
                  summary: Validation failed (upload service)
                  value:
                    success: false
                    statusCode: 400
                    message: Validation failed
                    timestamp: '2025-01-01T00:00:00.000Z'
                max_files:
                  summary: Too many files (upload service)
                  value:
                    success: false
                    statusCode: 400
                    message: Maximum 5 files allowed
                    timestamp: '2025-01-01T00:00:00.000Z'
                max_files_combined:
                  summary: Too many total inputs (upload service)
                  value:
                    success: false
                    statusCode: 400
                    message: Maximum 5 files allowed (uploads + fileUrls)
                    timestamp: '2025-01-01T00:00:00.000Z'
                at_least_one:
                  summary: No files or URLs (upload service)
                  value:
                    success: false
                    statusCode: 400
                    message: >-
                      At least one file must be provided (file uploads or
                      fileUrls)
                    timestamp: '2025-01-01T00:00:00.000Z'
                upload_failed:
                  summary: Upload failed (generic)
                  value:
                    success: false
                    statusCode: 400
                    message: Upload failed
                    timestamp: '2025-01-01T00:00:00.000Z'
        '401':
          description: Unauthorized (invalid API key)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '413':
          description: Payload Too Large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                file_too_large:
                  summary: Max size exceeded per file
                  value:
                    success: false
                    statusCode: 413
                    message: File too large. Max size is 5GB per file
                    timestamp: '2025-01-01T00:00:00.000Z'
        '415':
          description: Unsupported Media Type
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                unsupported_content_type:
                  summary: Content-Type must be multipart/form-data
                  value:
                    success: false
                    statusCode: 415
                    message: Content-Type must be multipart/form-data
                    timestamp: '2025-01-01T00:00:00.000Z'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: Bad Gateway (error calling start endpoint)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                start_error:
                  summary: Error calling start endpoint
                  value:
                    success: false
                    statusCode: 502
                    message: Error calling start endpoint
                    timestamp: '2025-01-01T00:00:00.000Z'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                upload_service_unavailable:
                  summary: Upload service not configured
                  value:
                    success: false
                    statusCode: 503
                    message: Single-shot upload URL is not configured
                    timestamp: '2025-01-01T00:00:00.000Z'
      security:
        - apiKeyAuth: []
components:
  schemas:
    CreateProjectSubtitleProfile:
      type: object
      properties:
        subtitleProfileId:
          type: string
          format: uuid
          description: Subtitle profile ID
        languageCode:
          type: string
          description: Language for this profile
          enum:
            - auto
            - en
            - en-us
            - en-gb
            - en-in
            - en-au
            - en-ca
            - en-za
            - zh
            - zh-cn
            - zh-tw
            - zh-hk
            - de
            - es
            - es-es
            - es-mx
            - es-419
            - es-ar
            - ru
            - ko
            - fr
            - fr-ca
            - ja
            - pt
            - pt-br
            - tr
            - pl
            - ca
            - nl
            - ar
            - ar-sa
            - ar-ae
            - sv
            - it
            - id
            - hi
            - fi
            - vi
            - he
            - uk
            - el
            - ms
            - cs
            - ro
            - da
            - hu
            - ta
            - 'no'
            - th
            - ur
            - hr
            - bg
            - lt
            - la
            - mi
            - ml
            - cy
            - sk
            - te
            - fa
            - lv
            - bn
            - sr
            - az
            - sl
            - kn
            - et
            - mk
            - br
            - eu
            - is
            - hy
            - ne
            - mn
            - bs
            - kk
            - sq
            - sw
            - gl
            - mr
            - pa
            - si
            - km
            - sn
            - yo
            - so
            - af
            - oc
            - ka
            - be
            - tg
            - sd
            - gu
            - am
            - yi
            - lo
            - uz
            - fo
            - ht
            - ps
            - tk
            - nn
            - mt
            - sa
            - lb
            - my
            - bo
            - tl
            - mg
            - as
            - tt
            - haw
            - ln
            - ha
            - ba
            - jw
            - su
            - yue
            - fil
            - ga
            - zu
            - ig
            - ceb
            - ny
            - ky
      required:
        - subtitleProfileId
        - languageCode
    CreateProjectPronunciation:
      type: object
      properties:
        pronunciationId:
          type: string
          format: uuid
          description: Pronunciation ID
        languageCode:
          type: string
          description: Language this pronunciation should be applied to
          enum:
            - af
            - ar
            - hy
            - as
            - az
            - be
            - bn
            - bs
            - bg
            - ca
            - ceb
            - ny
            - zh
            - hr
            - cs
            - da
            - nl
            - en
            - et
            - fil
            - fi
            - fr
            - gl
            - ka
            - de
            - el
            - gu
            - ha
            - he
            - hi
            - hu
            - is
            - id
            - ga
            - it
            - ja
            - jw
            - kn
            - kk
            - ky
            - ko
            - lv
            - ln
            - lt
            - lb
            - mk
            - ms
            - ml
            - mr
            - ne
            - 'no'
            - ps
            - fa
            - pl
            - pt
            - pa
            - ro
            - ru
            - sr
            - sd
            - sk
            - sl
            - so
            - es
            - sw
            - sv
            - ta
            - te
            - th
            - tr
            - uk
            - ur
            - vi
            - cy
      required:
        - pronunciationId
        - languageCode
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          example: false
        statusCode:
          type: integer
          example: 400
        message:
          type: string
          example: Bad Request
        timestamp:
          type: string
          format: date-time
          example: '2025-01-01T00:00:00.000Z'
      required:
        - success
        - statusCode
        - message
        - timestamp
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key

````