> ## 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 a project

> Create a new project.



## OpenAPI

````yaml /openapi/phrase-strings.json post /projects
openapi: 3.0.3
info:
  title: Phrase Strings API Reference
  version: 2.0.0
  description: >-
    Phrase Strings is a translation management platform for software projects.
    You can collaborate on language file translation with your team or order
    translations through our platform. The API allows you to import locale
    files, download locale files, tag keys or interact in other ways with the
    localization data stored in Phrase Strings for your account.
  contact:
    name: Phrase Support
    url: https://developers.phrase.com/api/
    email: support@phrase.com
  x-logo:
    url: https://developers.phrase.com/images/phrase-logo.svg
    backgroundColor: '#03eab3'
    altText: Phrase Strings
  termsOfService: https://phrase.com/terms/
  license:
    name: MIT
    url: https://choosealicense.com/licenses/mit/
servers:
  - url: https://api.phrase.com/v2
    description: EU production server
  - url: https://api.us.app.phrase.com/v2
    description: US production server
security:
  - Token: []
  - Basic: []
tags:
  - name: Accounts
  - name: Authorizations
    description: >
      The endpoints provided by the Authorizations API are **only accessible via
      Basic authentication with email and password**.


      When creating a new authorization, the new access token for this
      authorization will be returned in the immediate response but not later,
      due to security reasons. When accessing authorizations later, you will
      only see the last eight chars of the token in plain text
      (`token_last_eight`) and the SHA256 digest of the token for reference
      (`hashed_token`).


      For instructions on how authorization in general works, see our [Auth
      Guide](#overview--authentication).


      ### Scopes


      When creating or updating an OAuth authorization, you can define a list of
      scopes to limit the access that can be performed by that authorization.


      #### Available Scopes


      <div class="table-responsive">
        <table class="basic-table">
          <thead>
            <tr class="basic-table__row basic-table__row--header">
              <th class="basic-table__cell basic-table__cell--header">Scope</th>
              <th class="basic-table__cell basic-table__cell--header">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td class="basic-table__cell"><code>read</code></td>
              <td class="basic-table__cell">Read projects, locales, keys, translations, orders</td>
            </tr>
            <tr>
              <td class="basic-table__cell"><code>write</code></td>
              <td class="basic-table__cell">Write projects, locales, keys, translations but not orders</td>
            </tr>
            <tr>
              <td class="basic-table__cell"><code>orders.create</code></td>
              <td class="basic-table__cell">Create and confirm orders</td>
            </tr>
            <tr>
              <td class="basic-table__cell"><code>team.manage</code></td>
              <td class="basic-table__cell">Manage invitations and members</td>
            </tr>
          </tbody>
        </table>
      </div>
  - name: Blacklisted Keys
  - name: Branches
    description: >
      ### Branch creation


      Branches will be created asynchronously. State of branch creation is
      returned as state.


      #### Available States


      <div class="table-responsive">
        <table class="basic-table">
          <thead>
            <tr class="basic-table__row basic-table__row--header">
              <th class="basic-table__cell basic-table__cell--header">State</th>
              <th class="basic-table__cell basic-table__cell--header">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td class="basic-table__cell"><code>initialized</code></td>
              <td class="basic-table__cell">Data received.</td>
            </tr>
            <tr>
              <td class="basic-table__cell"><code>processing</code></td>
              <td class="basic-table__cell">Branch is currently creating.</td>
            </tr>
            <tr>
              <td class="basic-table__cell"><code>success</code></td>
              <td class="basic-table__cell">Branch was created successfully</td>
            </tr>
            <tr>
              <td class="basic-table__cell"><code>error</code></td>
              <td class="basic-table__cell">Branch creation failed.</td>
            </tr>
          </tbody>
        </table>
      </div>
  - name: Comments
  - name: Comment Reactions
  - name: Comment Replies
  - name: Custom Metadata
  - name: Distributions
  - name: Documents
  - name: Figma Attachments
  - name: Formats
  - name: Glossaries
  - name: Glossary Terms
  - name: Glossary Term Translations
  - name: ICU
  - name: Invitations
    description: >
      With the invitation endpoint you can [manage and invite
      users](https://support.phrase.com/hc/en-us/articles/5709742418716) to
      Phrase Strings via API. A user can have the role Manager, Developer or
      Translator each with its own access rights. Developers and translators
      need resources like projects and locales assigned in order to access them.
  - name: Job Annotations
    description: >
      The job annotations endpoints allow you to create, update and delete
      annotations for jobs and job locales. Annotations are used to add metadata
      to a job or job locale.
  - name: Job Comments
  - name: Job Locales
  - name: Job Template Locales
  - name: Job Templates
  - name: Jobs
  - name: Keys
  - name: Linked Keys
  - name: Locales
  - name: Locale Downloads
  - name: Members
    description: >
      With the members endpoints you can do basic [team and user
      management](https://support.phrase.com/hc/en-us/articles/5709742418716)
      via API. A user can have the role Manager, Developer or Translator each
      with its own access rights. Developers and translators need resources like
      projects and locales assigned in order to access them.
  - name: Notifications
  - name: Notification Groups
  - name: Orders
    description: >
      ### List of categories [TextMaster]


      When ordering translations from TextMaster, you need to specify a category
      ID along with your order. See this list for information on the category ID
      and their equivalent description.


      <div class="table-responsive">
        <table class="basic-table">
          <thead>
            <tr class="basic-table__row basic-table__row--header">
              <th class="basic-table__cell basic-table__cell--header">Category ID</th>
              <th class="basic-table__cell basic-table__cell--header">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr><td class="basic-table__cell">C001</td><td class="basic-table__cell">Agriculture</td></tr>
            <tr><td class="basic-table__cell">C002</td><td class="basic-table__cell">Aerospace</td></tr>
            <tr><td class="basic-table__cell">C003</td><td class="basic-table__cell">Animals/Pets/Plants</td></tr>
            <tr><td class="basic-table__cell">C004</td><td class="basic-table__cell">Arts/Culture/Literature</td></tr>
            <tr><td class="basic-table__cell">C005</td><td class="basic-table__cell">Automotive/Transportation</td></tr>
            <tr><td class="basic-table__cell">C006</td><td class="basic-table__cell">Computers/Technology/Software</td></tr>
            <tr><td class="basic-table__cell">C007</td><td class="basic-table__cell">Telecom</td></tr>
            <tr><td class="basic-table__cell">C008</td><td class="basic-table__cell">Real Estate/Construction/Building</td></tr>
            <tr><td class="basic-table__cell">C009</td><td class="basic-table__cell">Consumer Goods</td></tr>
            <tr><td class="basic-table__cell">C010</td><td class="basic-table__cell">Education</td></tr>
            <tr><td class="basic-table__cell">C011</td><td class="basic-table__cell">Entertainment</td></tr>
            <tr><td class="basic-table__cell">C012</td><td class="basic-table__cell">Ecology/Environment</td></tr>
            <tr><td class="basic-table__cell">C013</td><td class="basic-table__cell">Health/Biotechnology/Pharma</td></tr>
            <tr><td class="basic-table__cell">C014</td><td class="basic-table__cell">Internet</td></tr>
            <tr><td class="basic-table__cell">C015</td><td class="basic-table__cell">Policy/Government/Public</td></tr>
            <tr><td class="basic-table__cell">C016</td><td class="basic-table__cell">Publishing/Media/Communication</td></tr>
            <tr><td class="basic-table__cell">C017</td><td class="basic-table__cell">Religion</td></tr>
            <tr><td class="basic-table__cell">C018</td><td class="basic-table__cell">Food/Beverages</td></tr>
            <tr><td class="basic-table__cell">C019</td><td class="basic-table__cell">Retail</td></tr>
            <tr><td class="basic-table__cell">C020</td><td class="basic-table__cell">Fashion/Luxury/Textiles</td></tr>
            <tr><td class="basic-table__cell">C021</td><td class="basic-table__cell">Travel/Tourism</td></tr>
            <tr><td class="basic-table__cell">C022</td><td class="basic-table__cell">Natural Resources/Energy</td></tr>
            <tr><td class="basic-table__cell">C023</td><td class="basic-table__cell">Banking/Financial Services/Insurance</td></tr>
            <tr><td class="basic-table__cell">C024</td><td class="basic-table__cell">Legal Affairs/Tax/Law</td></tr>
            <tr><td class="basic-table__cell">C025</td><td class="basic-table__cell">Raw Materials/Industrial Goods</td></tr>
            <tr><td class="basic-table__cell">C026</td><td class="basic-table__cell">Lifestyle/Leisure/Hobbies</td></tr>
            <tr><td class="basic-table__cell">C027</td><td class="basic-table__cell">Sports</td></tr>
            <tr><td class="basic-table__cell">C028</td><td class="basic-table__cell">Home/Family/Friends/Children</td></tr>
            <tr><td class="basic-table__cell">C029</td><td class="basic-table__cell">Economy/Financial Markets</td></tr>
            <tr><td class="basic-table__cell">C030</td><td class="basic-table__cell">Science</td></tr>
            <tr><td class="basic-table__cell">C031</td><td class="basic-table__cell">Human Resources/Employment</td></tr>
            <tr><td class="basic-table__cell">C032</td><td class="basic-table__cell">Adult (Pornography, Violence, etc.)</td></tr>
          </tbody>
        </table>
      </div>
  - name: Organization Job Template Locales
  - name: Organization Job Templates
  - name: Projects
  - name: Quality
  - name: Releases
  - name: Release Triggers
  - name: Repo Syncs
    description: >
      The Repo Syncs API allows you to synchronize your Phrase projects with
      your code repositories.

      You can import translations from your repository to Phrase and export
      translations from Phrase to your repository.
  - name: Repo Sync Events
  - name: Reports
  - name: Search
  - name: Screenshot Markers
  - name: Screenshots
  - name: Spaces
  - name: Style guides
  - name: Tags
  - name: Teams
  - name: Translations
  - name: Uploads
    description: >
      ### Formats


      We support all common localization file formats. For a detailed overview,
      see our [Format
      Guide](https://support.phrase.com/hc/en-us/sections/6111343326364).


      ### Processing


      Uploads will be processed asynchronously and thus the data might not be
      imported yet although the upload is completed. Therefore we recommend to
      evaluate the returned <code>state</code> field for information on the
      import progress.


      #### Available States


      <div class="table-responsive">
        <table class="basic-table">
          <thead>
            <tr class="basic-table__row basic-table__row--header">
              <th class="basic-table__cell basic-table__cell--header">State</th>
              <th class="basic-table__cell basic-table__cell--header">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td class="basic-table__cell"><code>initialized</code></td>
              <td class="basic-table__cell">Data received.</td>
            </tr>
            <tr>
              <td class="basic-table__cell"><code>waiting_for_preview</code></td>
              <td class="basic-table__cell">Upload is waiting for preview to be finished.</td>
            </tr>
            <tr>
              <td class="basic-table__cell"><code>waiting</code></td>
              <td class="basic-table__cell">Upload is waiting for processing.</td>
            </tr>
            <tr>
              <td class="basic-table__cell"><code>processing</code></td>
              <td class="basic-table__cell">Upload is being processed, data is currently imported.</td>
            </tr>
            <tr>
              <td class="basic-table__cell"><code>success</code></td>
              <td class="basic-table__cell">Upload is complete and all data is imported.</td>
            </tr>
            <tr>
              <td class="basic-table__cell"><code>error</code></td>
              <td class="basic-table__cell">Upload or import process failed.</td>
            </tr>
          </tbody>
        </table>
      </div>
  - name: Users
  - name: Variables
  - name: Versions / History
  - name: Webhooks
  - name: Webhook Deliveries
paths:
  /projects:
    post:
      tags:
        - Projects
      summary: Create a project
      description: Create a new project.
      operationId: project/create
      parameters:
        - $ref: '#/components/parameters/X-PhraseApp-OTP'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              title: project/create/parameters
              required:
                - name
              properties:
                name:
                  description: Name of the project
                  type: string
                  example: My Android Project
                main_format:
                  description: >-
                    Main file format specified by its API Extension name. Used
                    for locale downloads if no format is specified. For API
                    Extension names of available file formats see [Format
                    Guide](https://support.phrase.com/hc/en-us/sections/6111343326364)
                    or our [Formats API
                    Endpoint](/en/api/strings/formats/list-formats).
                  type: string
                  example: yml
                media:
                  description: >-
                    (Optional) Main technology stack used in the project. It
                    affects for example the suggested placeholder style.
                    Predefined values include: `Ruby`, `JavaScript`,
                    `AngularJS`, `React`, `iOS`, `Android`, `Python`, `PHP`,
                    `Java`, `Go`, `Windows Phone`, `Rails`, `Node.js`, `.NET`,
                    `Django`, `Symfony`, `Yii Framework`, `Zend Framework`,
                    `Apple App Store Description`, `Google Play Description`,
                    but it can also take any other value.
                  type: string
                  example: Python
                shares_translation_memory:
                  description: >-
                    Indicates whether the project should share the account's
                    translation memory
                  type: boolean
                  example: true
                project_image:
                  description: Image to identify the project
                  type: string
                  format: binary
                  example: /path/to/my/project-screenshot.png
                remove_project_image:
                  description: Indicates whether the project image should be deleted.
                  type: boolean
                  example: null
                account_id:
                  description: >-
                    Account ID to specify the actual account the project should
                    be created in. Required if the requesting user is a member
                    of multiple accounts.
                  type: string
                  example: abcd1234
                point_of_contact:
                  description: (Optional) User ID of the point of contact for the project.
                  type: string
                  example: abcd1234
                source_project_id:
                  description: >-
                    When a source project ID is given, a clone of that project
                    will be created, including all locales, keys and
                    translations as well as the main project settings if they
                    are not defined otherwise through the params.
                  type: string
                  example: abcd1234
                workflow:
                  description: >-
                    (Optional) Review Workflow. "simple" / "review". [Read
                    more](https://support.phrase.com/hc/en-us/articles/5784094755484)
                  type: string
                  example: review
                machine_translation_enabled:
                  description: >-
                    (Optional) Enable machine translation support in the
                    project. Required for Pre-Translation
                  type: boolean
                  example: true
                enable_branching:
                  description: (Optional) Enable branching in the project
                  type: boolean
                  example: true
                protect_master_branch:
                  description: >-
                    (Optional) Protect the master branch in project where
                    branching is enabled
                  type: boolean
                  example: true
                enable_all_data_type_translation_keys_for_translators:
                  description: >-
                    (Optional) Otherwise, translators are not allowed to edit
                    translations other than strings
                  type: boolean
                  example: true
                enable_icu_message_format:
                  description: >-
                    (Optional) We can validate and highlight your ICU messages.
                    [Read
                    more](https://support.phrase.com/hc/en-us/articles/5822319545116)
                  type: boolean
                  example: true
                zero_plural_form_enabled:
                  description: >-
                    (Optional) Displays the input fields for the 'ZERO' plural
                    form for every key as well although only some languages
                    require the 'ZERO' explicitly.
                  type: boolean
                  example: true
                autotranslate_enabled:
                  description: >-
                    (Optional) Autopilot, requires machine_translation_enabled.
                    [Read
                    more](https://support.phrase.com/hc/en-us/articles/5822187934364)
                  type: boolean
                  example: true
                autotranslate_check_new_translation_keys:
                  description: (Optional) Requires autotranslate_enabled to be true
                  type: boolean
                  example: true
                autotranslate_check_new_uploads:
                  description: (Optional) Requires autotranslate_enabled to be true
                  type: boolean
                  example: true
                autotranslate_check_new_locales:
                  description: (Optional) Requires autotranslate_enabled to be true
                  type: boolean
                  example: true
                autotranslate_mark_as_unverified:
                  description: (Optional) Requires autotranslate_enabled to be true
                  type: boolean
                  example: true
                autotranslate_use_machine_translation:
                  description: (Optional) Requires autotranslate_enabled to be true
                  type: boolean
                  example: true
                autotranslate_use_translation_memory:
                  description: (Optional) Requires autotranslate_enabled to be true
                  type: boolean
                  example: true
                autotranslate_overwrite_unverified_translations:
                  description: (Optional) Requires autotranslate_enabled to be true
                  type: boolean
                  example: true
                placeholder_styles:
                  description: >-
                    (Optional) List of placeholder styles enabled for the
                    project.
                  type: array
                  items:
                    type: string
                  example:
                    - angular
                    - iOS
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/project_details'
          headers:
            X-Rate-Limit-Limit:
              $ref: '#/components/headers/X-Rate-Limit-Limit'
            X-Rate-Limit-Remaining:
              $ref: '#/components/headers/X-Rate-Limit-Remaining'
            X-Rate-Limit-Reset:
              $ref: '#/components/headers/X-Rate-Limit-Reset'
        '400':
          $ref: '#/components/responses/400'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
      x-code-samples:
        - lang: Curl
          source: |-
            curl "https://api.phrase.com/v2/projects" \
              -u USERNAME_OR_ACCESS_TOKEN \
              -X POST \
              -F name=My%20Android%20Project \
              -F main_format=yml \
              -F shares_translation_memory=true
        - lang: CLI v2
          source: >-
            phrase projects create \

            --data '{"name": "My Android Project", "main_format":"yml",
            "shares_translation_memory":true}' \

            --access_token <token>
components:
  parameters:
    X-PhraseApp-OTP:
      in: header
      name: X-PhraseApp-OTP
      description: Two-Factor-Authentication token (optional)
      required: false
      allowEmptyValue: false
      schema:
        type: string
  schemas:
    project_details:
      allOf:
        - $ref: '#/components/schemas/project'
        - type: object
          title: project_details
          properties:
            slug:
              type: string
            shares_translation_memory:
              type: boolean
            machine_translation_enabled:
              type: boolean
              example: true
            zero_plural_form_enabled:
              type: boolean
              example: true
            enable_all_data_type_translation_keys_for_translators:
              type: boolean
              example: false
            enable_icu_message_format:
              type: boolean
              example: false
            enable_branching:
              type: boolean
              example: false
            protect_master_branch:
              type: boolean
              example: false
            autotranslate_enabled:
              type: boolean
              example: false
            autotranslate_check_new_translation_keys:
              type: boolean
              example: false
            autotranslate_check_new_uploads:
              type: boolean
              example: false
            autotranslate_check_new_locales:
              type: boolean
              example: false
            autotranslate_mark_as_unverified:
              type: boolean
              example: false
            autotranslate_use_machine_translation:
              type: boolean
              example: false
            autotranslate_use_translation_memory:
              type: boolean
              example: true
            default_encoding:
              type: string
              example: UTF-8
            cldr_version:
              type: string
              example: legacy
            job_locking_enabled:
              type: boolean
              example: false
            placeholder_styles:
              type: array
              items:
                type: string
              example:
                - angular
                - iOS
          example:
            slug: my-android-project
            shares_translation_memory: true
            machine_translation_enabled: true
            zero_plural_form_enabled: true
            enable_all_data_type_translation_keys_for_translators: false
            enable_icu_message_format: false
            enable_branching: false
            protect_master_branch: false
            autotranslate_enabled: false
            autotranslate_check_new_translation_keys: false
            autotranslate_check_new_uploads: false
            autotranslate_check_new_locales: false
            autotranslate_mark_as_unverified: false
            autotranslate_use_machine_translation: false
            autotranslate_use_translation_memory: true
            default_encoding: UTF-8
            cldr_version: legacy
            job_locking_enabled: false
            placeholder_styles:
              - angular
              - iOS
    project:
      type: object
      title: project
      properties:
        id:
          type: string
        name:
          type: string
        slug:
          type: string
        main_format:
          type: string
        project_image_url:
          type: string
        media:
          type: string
        account:
          $ref: '#/components/schemas/account'
        space:
          type: object
          title: space
          properties:
            id:
              type: string
            name:
              type: string
            created_at:
              type: string
              format: date-time
            updated_at:
              type: string
              format: date-time
            projects_count:
              type: integer
          example:
            id: 2e7574e8f2372906a03110c2a7cfe671
            name: My first space
            created_at: '2020-02-25T12:17:25Z'
            updated_at: '2020-03-13T14:46:57Z'
            projects_count: 2
        point_of_contact:
          $ref: '#/components/schemas/user_preview'
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
      example:
        id: abcd1234cdef1234abcd1234cdef1234
        name: My Android Project
        slug: android_project
        main_format: xml
        project_image_url: http://assets.example.com/project.png
        account: account
        space: space
        created_at: '2015-01-28T09:52:53Z'
        updated_at: '2015-01-28T09:52:53Z'
    account:
      type: object
      title: account
      properties:
        id:
          type: string
        name:
          type: string
        slug:
          type: string
        company:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        company_logo_url:
          type: string
      example:
        id: abcd1234
        name: Company Account
        slug: company_account
        company: My Awesome Company
        created_at: '2015-01-28T09:52:53Z'
        updated_at: '2015-01-28T09:52:53Z'
        company_logo_url: http://assets.example.com/company_logo.png
    user_preview:
      type: object
      title: user_preview
      properties:
        id:
          type: string
        username:
          type: string
        name:
          type: string
        gravatar_uid:
          type: string
      example:
        id: abcd1234cdef1234abcd1234cdef1234
        username: johndoe
        name: John Doe
        gravatar_uid: 205e460b479e2e5b48aec07710c08d50
  headers:
    X-Rate-Limit-Limit:
      description: The number of allowed requests in the current period
      schema:
        type: integer
    X-Rate-Limit-Remaining:
      description: The number of remaining requests in the current period
      schema:
        type: integer
    X-Rate-Limit-Reset:
      description: >-
        Timestamp of end of current time period as UNIX timestamp, see [Rate
        Limiting](/en/api/strings/pagination#rate-limiting)
      schema:
        type: integer
  responses:
    '400':
      description: Bad request
      headers:
        X-Rate-Limit-Limit:
          $ref: '#/components/headers/X-Rate-Limit-Limit'
        X-Rate-Limit-Remaining:
          $ref: '#/components/headers/X-Rate-Limit-Remaining'
        X-Rate-Limit-Reset:
          $ref: '#/components/headers/X-Rate-Limit-Reset'
    '404':
      description: Not Found
      headers:
        X-Rate-Limit-Limit:
          $ref: '#/components/headers/X-Rate-Limit-Limit'
        X-Rate-Limit-Remaining:
          $ref: '#/components/headers/X-Rate-Limit-Remaining'
        X-Rate-Limit-Reset:
          $ref: '#/components/headers/X-Rate-Limit-Reset'
    '429':
      description: Rate Limiting
      headers:
        X-Rate-Limit-Limit:
          $ref: '#/components/headers/X-Rate-Limit-Limit'
        X-Rate-Limit-Remaining:
          $ref: '#/components/headers/X-Rate-Limit-Remaining'
        X-Rate-Limit-Reset:
          $ref: '#/components/headers/X-Rate-Limit-Reset'
  securitySchemes:
    Token:
      type: apiKey
      in: header
      name: Authorization
      description: Enter your token in the format `token TOKEN`
    Basic:
      type: http
      scheme: basic

````