---
title: "Create Project"
method: POST
path: "/v2.0/public/projects/MeanOpinionScore"
tags: ["Mean Opinion Score"]
---

# Create Project

`POST /v2.0/public/projects/MeanOpinionScore`

Creates a Mean Opinion Score project with a specific type and respective options.
            
**Permission Required:** Create Projects

## Request body

- DefinedCrowdPublicApiApiModelsProjectsCreateProjectCreateProjectViewModel1DefinedCrowdPublicApiApiModelsProjectsCreateProjectMeanOpinionScoreTestingMeanOpinionScoreProjectConfigViewModelDefinedCrowdPublicApiApiVersion1000CultureNeutralPublicKeyTokenNull
  - `id` string, uuid, required — Client generated identifier that will be used as Project Id.
  - `name` string, required — Project name.
  - `config` DefinedCrowdPublicApiApiModelsProjectsCreateProjectMeanOpinionScoreTestingMeanOpinionScoreProjectConfigViewModel, required — Json structure with the project configuration.
    - `meanOpinionScore` DefinedCrowdPublicApiApiModelsProjectsCreateProjectMeanOpinionScoreTestingMeanOpinionScoreJobSettingsViewModel, required — Mean Opinion Score testing settings
      - `contributorsDistribution` DefinedCrowdPublicApiApiModelsProjectsCreateProjectCommonContributorsDistributionViewModel — Configure the contributors' distribution to meet your requirements. **Disclaimer** Though every effort is made to meet the contributors’ distribution as configured, sometimes, due to factors beyond the control of DefinedCrowd, we need to implement a next-best solution and cannot guarantee a 100% match.
        - `ageDistribution` DefinedCrowdPublicApiApiModelsProjectsCreateProjectCommonDemographicsAgeDistributionViewModel[], nullable — Age Distribution
          - `target` 'Adult' | 'Senior' — There are two age categories in the distribution. You can select Adult or Senior with age categories 18 – 64 years and 65 years and above, respectively.
          - `value` integer — **Custom distribution** Means the value is set to greater than 0% but smaller than or equal to 100%. Should the total value be set to less than 100%, the remaining percentage is set with the default distribution. **Default distribution** Means that the values are randomized but comply with the job configuration. For example, language settings are taken into consideration, as well as country and region settings. Without any contributors’ distribution restriction, whoever is qualified may enter the job. **Examples** Jane Doe sets the age distribution to 75% of the participants being in the Adult category. The remaining 25% will be randomly distributed between the age categories. Therefore, Jane must be aware that some of the 25% random distribution may also include the Adult category.
        - `genderDistribution` DefinedCrowdPublicApiApiModelsProjectsCreateProjectCommonDemographicsGenderDistributionViewModel[], nullable — Gender Distribution
          - `target` 'Male' | 'Female' — The gender category makes provision for biological sexes female and male. Though third gender preference are respected as a choice, we would like to confirm biological sex of contributors.
          - `value` integer — **Custom distribution** Means the value is set to greater than 0% but smaller than or equal to 100%. Should the total value be set to less than 100%, the remaining percentage is set with the default distribution. **Default distribution** Means that the values are randomized but comply with the job configuration. For example, language settings are taken into consideration, as well as country and region settings. Without any contributors’ distribution restriction, whoever is qualified may enter the job. **Example** John Doe sets the gender distribution to 75% of the participants being in the Female category. The remaining 25% will be randomly distributed between the gender categories. Therefore, John must be aware that some of the 25% random distribution may also include the Female category.
        - `deviceLocationDistribution` DefinedCrowdPublicApiApiModelsProjectsCreateProjectCommonDemographicsDeviceLocationDistributionViewModel[], nullable — Device Location Distribution
          - `target` string, nullable — Geolocation technology will give an approximate real-world geographic location of the device being used and thus the location of the contributor using the device.
          - `value` integer — The value is set to greater than 0% but smaller than or equal to 100%. Should the total value be set to less than 100%, the remaining percentage will have no constraints. **Example** Jane Doe sets the device location distribution to 75% of the participants being in a particular geographic location. The remaining 25% will be randomly distributed. Therefore, Jane Doe must be aware that some of the 25% random distribution may also include the particular geographic location that was set.
      - `languageConfiguration` DefinedCrowdPublicApiApiModelsProjectsCreateProjectCommonLanguageConfigurationViewModel, required — Language configurations.
        - `languageCode` string, required — Language code. (e.g. "en-us")
        - `requireLanguageTest` boolean, nullable — If selected, the project requires the contributors to do a language test (if available for the selected language) to guarantee that they are native speakers.
      - `contributorsPerInputUnit` integer, nullable — ContributorsPerInputUnit determines how many contributors you would like to process that input unit. This will allow you to compare executions of the same input unit.
      - `showDataDisclaimer` boolean — Displays a disclaimer to specify that inputs are "Not Customer Data" (displayed within task U.I.)
  - `metatags` object, nullable — Metatags provide for the ability to assign metadata to projects in the form of key-value pairs. Although there are no inherent types of metatags, they enable customers to categorize a project by purpose, owner, environment, or other criteria. Defined.ai does not perform any actions on metatags that customers submit. DO NOT SUBMIT PERSONALLY IDENTIFIABLE INFORMATION (PII) in a Metatag. If left as null, no metatags are assigned. When set, the root-level properties support string, object, and array data types (data types do not belong to these three will be converted to string type), while properties at inner level support all valid JSON data types. Below is an example on how to use metatags: { "rootString": "This is a string", "rootObject": { "innerBoolean": true, "innerNumber": 1, "innerString": "This is another string", "innerNull": null, "innerObject": { }, "innerArray": [] }, "rootArray": [1, 2, 3, 4] }
  - `desiredDeliveryDate` string, date-time, nullable — This field is for you to inform DC the desired date for Data to be delivered.

## Response `200`

Project was successfully created.

## Other responses

- `400` — Project Options are invalid.
- `401` — User is not authorized (invalid/expired token).

---

[API](https://skmtc.net/definedcrowd/apis/defined-ai-api.md) · [All operations](https://skmtc.net/definedcrowd/apis/defined-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/definedcrowd/defined-ai-api/revisions/14cab8ac3bca/schema)
