Создать проект
POST /projects
Создает проект с параметрами, указанными в запросе.
Ограничение
Вы можете отправить не более 20 таких запросов в минуту и не более 100 в день.
См. полный список ограничений на странице Ограничение количества запросов.
Примеры запросов
curl -X POST 'https://tasks.yandex.ru/api/v1/projects' \
-H 'Content-Type: application/json' \
-H 'Authorization: OAuth PlaceYourRealOAuthToken_Here' \
-d '{"public_name":"Elephant color","public_description":"What color is the elephant in the picture?","public_instructions":"<p>Look at the picture and decide what color the elephant is.</p> You can zoom in or out using the buttons:</p> <img src=\"disc/img1.png>\"","private_comment":"My first project","task_spec":{"input_spec":{"image":{"type":"URL","required":true,"hidden":false}},"output_spec":{"result":{"type":"string","required":true,"hidden":false}},"view_spec":{"assets":{"script_urls":["library1.js","library2.js"]},"markup":"<task interface code>","script":"<JavaScript code>","styles":"<CSS code>","settings":{"showSkip":true,"showTimer":true,"showTitle":true,"showSubmit":true,"showFullscreen":true,"showInstructions":true,"showFinish":true,"showMessage":true,"showReward":true}}},"assignments_issuing_type":"AUTOMATED","assignments_automerge_enabled":false,"max_active_assignments_count":15,"quality_control":{"configs":[{"collector_config":{"type":"SKIPPED_IN_ROW_ASSIGNMENTS"},"rules":[{"conditions":[{"key":"skipped_in_row_count","operator":"GTE","value":10}],"action":{"type":"REJECT_ALL_ASSIGNMENTS","parameters":{"public_comment":"Skipped more than 10 task suites in a row"}}}]}]},"localization_config":{"default_language":"EN"}}'
import requests
url = "https://tasks.yandex.ru/api/v1/projects"
headers = {
'Content-Type': 'application/json',
'Authorization': 'OAuth PlaceYourRealOAuthToken_Here'
}
payload = {
"public_name": "Elephant color",
"public_description": "What color is the elephant in the picture?",
"public_instructions": "<p>Look at the picture and decide what color the elephant is.</p> You can zoom in or out using the buttons:</p> <img src=\"disc/img1.png>\"",
"private_comment": "My first project",
"task_spec": {
"input_spec": {
"image": {
"type": "URL",
"required": True,
"hidden": False
}
},
"output_spec": {
"result": {
"type": "string",
"required": True,
"hidden": False
}
},
"view_spec": {
"assets": {
"script_urls": [
"library1.js",
"library2.js"
]
},
"markup": "<task interface code>",
"script": "<JavaScript code>",
"styles": "<CSS code>",
"settings": {
"showSkip": True,
"showTimer": True,
"showTitle": True,
"showSubmit": True,
"showFullscreen": True,
"showInstructions": True,
"showFinish": True,
"showMessage": True,
"showReward": True
}
}
},
"assignments_issuing_type": "AUTOMATED",
"assignments_automerge_enabled": False,
"max_active_assignments_count": 15,
"quality_control": {
"configs": [
{
"collector_config": {
"type": "SKIPPED_IN_ROW_ASSIGNMENTS"
},
"rules": [
{
"conditions": [
{
"key": "skipped_in_row_count",
"operator": "GTE",
"value": 10
}
],
"action": {
"type": "REJECT_ALL_ASSIGNMENTS",
"parameters": {
"public_comment": "Skipped more than 10 task suites in a row"
}
}
}
]
}
]
},
"localization_config": {
"default_language": "EN"
}
}
response = requests.post(url, headers=headers, json=payload)
print(response.text)
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://tasks.yandex.ru/api/v1/projects',
'qs': {},
'headers': {
'Content-Type': 'application/json',
'Authorization': 'OAuth PlaceYourRealOAuthToken_Here'
},
'body': JSON.stringify({
"public_name": "Elephant color",
"public_description": "What color is the elephant in the picture?",
"public_instructions": "<p>Look at the picture and decide what color the elephant is.</p> You can zoom in or out using the buttons:</p> <img src=\"disc/img1.png>\"",
"private_comment": "My first project",
"task_spec": {
"input_spec": {
"image": {
"type": "URL",
"required": true,
"hidden": false
}
},
"output_spec": {
"result": {
"type": "string",
"required": true,
"hidden": false
}
},
"view_spec": {
"assets": {
"script_urls": [
"library1.js",
"library2.js"
]
},
"markup": "<task interface code>",
"script": "<JavaScript code>",
"styles": "<CSS code>",
"settings": {
"showSkip": true,
"showTimer": true,
"showTitle": true,
"showSubmit": true,
"showFullscreen": true,
"showInstructions": true,
"showFinish": true,
"showMessage": true,
"showReward": true
}
}
},
"assignments_issuing_type": "AUTOMATED",
"assignments_automerge_enabled": false,
"max_active_assignments_count": 15,
"quality_control": {
"configs": [
{
"collector_config": {
"type": "SKIPPED_IN_ROW_ASSIGNMENTS"
},
"rules": [
{
"conditions": [
{
"key": "skipped_in_row_count",
"operator": "GTE",
"value": 10
}
],
"action": {
"type": "REJECT_ALL_ASSIGNMENTS",
"parameters": {
"public_comment": "Skipped more than 10 task suites in a row"
}
}
}
]
}
]
},
"localization_config": {
"default_language": "EN"
}
})
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
Заголовки
Заголовок |
Описание |
|
API-токен для авторизации аккаунта. В качестве префикса добавьте |
|
Указывает формат данных ( |
Тело и параметры запроса
Пример тела запроса
{
"public_name": "Elephant color",
"public_description": "What color is the elephant in the picture?",
"public_instructions": "<p>Look at the picture and decide what color the elephant is.</p> You can zoom in or out using the buttons:</p> <img src=\"disc/img1.png>\"",
"private_comment": "My first project",
"task_spec": {
"input_spec": {
"image": {
"type": "URL",
"required": true,
"hidden": false
}
},
"output_spec": {
"result": {
"type": "string",
"required": true,
"hidden": false
}
},
"view_spec": {
"assets": {
"script_urls": ["library1.js", "library2.js"]
},
"markup": "<task interface code>",
"script": "<JavaScript code>",
"styles": "<CSS code>",
"settings": {
"showSkip": true,
"showTimer": true,
"showTitle": true,
"showSubmit": true,
"showFullscreen": true,
"showInstructions": true,
"showFinish": true,
"showMessage": true,
"showReward": true
}
}
},
"assignments_issuing_type": "AUTOMATED",
"assignments_automerge_enabled": false,
"max_active_assignments_count": 15,
"quality_control": {
"configs": [{
"collector_config": {
"type": "SKIPPED_IN_ROW_ASSIGNMENTS"
},
"rules": [{
"conditions": [{
"key": "skipped_in_row_count",
"operator": "GTE",
"value": 10
}],
"action": {
"type": "REJECT_ALL_ASSIGNMENTS",
"parameters": {
"public_comment": "Skipped more than 10 task suites in a row"
}
}
}]
}]
},
"localization_config": {
"default_language": "EN",
"additional_languages": [
{
"language": "RU",
"public_name": {
"value": "Цвет слона",
"source": "REQUESTER"
},
"public_description": {
"value": "Какого цвета слон на картинке?",
"source": "REQUESTER"
},
"public_instructions": {
"value": "<p>Рассмотрите изображение и определите цвет слона.</p> Картинку можно увеличить или уменьшить при помощи кнопок:</p> <img src=\"disc/img1.png>\"",
"source": "REQUESTER"
}
}
]
}
}
Параметр |
Описание |
|
string Название проекта. Его увидят исполнители. |
|
string Описание проекта. Его увидят исполнители. |
|
string Инструкция по выполнению заданий. В инструкции можно использовать любую HTML-разметку. |
|
string Комментарий, доступный только заказчику. |
|
object Параметры входных и выходных данных, интерфейса заданий. |
object Параметры входных данных заданий. Полный список параметров приведен в таблице Входные и выходные данные. |
|
object Параметры выходных данных — полей ввода. Полный список параметров приведен в таблице Входные и выходные данные. |
|
object Описание интерфейса задания. Полный список параметров приведен в таблице Интерфейс задания. |
|
|
string Способ выдачи заданий:
|
string (обязательный при условии) Обязателен, если Настройки отображения пешеходных заданий. Полный список параметров приведен в таблице Настройки отображения пешеходных заданий. |
|
|
boolean Разрешить слияние идентичных заданий в проекте. По умолчанию значение |
|
integer Количество страниц, которые исполнитель может одновременно выполнять (статус «Активно»). |
|
object Метаданные проекта. |
|
boolean Наличие приватных данных в заданиях. |
|
object Блок контроля качества. |
|
array of objects |
object Блок перевода на другие языки. Полный список параметров приведен в таблице Переводы на другие языки. Подробнее о переводе см. в документе Перевод на другие языки. |
Входные и выходные данные ('input_spec' и 'output_spec')
Параметры input_spec
и output_spec
содержат JSON со свойствами входных данных и параметрами для валидации ответов. В них нужно определить тип данных (строка, число, url и т.д.) и указать параметры для валидации (например, длина строки).
Параметр |
Описание |
|
object
|
|
string Тип данных:
|
|
boolean Обязательность объекта или поля ввода. По умолчанию значение |
|
boolean Скрыть ли от исполнителя поле с входным значением. По умолчанию значение Для выходных данных всегда |
|
float Минимальное значение числа. |
|
float Максимальное значение числа. |
|
array of strings, array of integers, array of floats Допустимые значения. Задание допустимых значений повышает качество агрегации результатов. |
|
integer Минимальная длина строки. |
|
integer Максимальная длина строки. |
|
string Только в выходных данных типа |
Интерфейс задания ('view_spec')
Параметр |
Описание |
|
string (обязательный при условии) Обязателен, если HTML-разметка задания. Подробнее см. в разделе Блок HTML. |
|
string (обязательный при условии) Обязателен, если JS-код задания. Подробнее см. в разделе Блок JS. |
|
string (обязательный при условии) Обязателен, если CSS-стили задания. Подробнее см. в разделе Блок CSS. |
object Необходимость отображения стандартных элементов интерфейса в задании. Полный список параметров приведен в таблице Настройки отображения стандартных элементов. |
|
|
array of objects Конфигурация для конструктора шаблонов. |
|
object Обязателен, если Версии компонентов конструктора шаблонов, используемые для создания интерфейса заданий проекта. |
|
object Подключенные файлы:
Добавляйте элементы в том порядке, в котором они должны подключаться при запуске интерфейса задания. |
|
array of strings Ссылки на JavaScript-библиотеки и ресурсы Яндекс Заданий. Ресурсы Яндекс Заданий:
Интерфейс разметки картинок нужно подключать только вместе с хелперами Handlebars. Порядок подключения важен:
|
|
array of strings Ссылки на CSS-библиотеки. |
|
string Тип редактора, используемого для создания интерфейса проекта:
В зависимости от типа редактора используются параметры:
|
|
object Конфигурация редактора. В конструкторе шаблонов добавьте в это поле ключи для свойств текстовых компонентов, которые вам нужно перевести на другие языки. Подробнее см. в разделе Перевод интерфейса задания. |
|
string Ключи на исходном языке. Подробнее см. в разделе Перевод интерфейса задания. |
Настройки отображения стандартных элементов ('settings')
Параметр |
Описание |
|
boolean Показывать оставшееся время. По умолчанию значение |
|
boolean Показывать название проекта в заголовке заданий. По умолчанию значение |
|
boolean Показывать кнопку Инструкция. По умолчанию значение |
|
boolean Показывать кнопку На весь экран. По умолчанию значение |
|
boolean Показывать кнопку Отправить. По умолчанию значение |
|
boolean Показывать кнопку Пропустить. По умолчанию значение |
|
boolean Показывать кнопку Выйти. По умолчанию значение |
|
boolean Показывать кнопку Написать заказчику. По умолчанию значение |
|
boolean Показывать цену за страницу. По умолчанию значение |
Настройки отображения пешеходных заданий ('assignments_issuing_view_config')
Параметр |
Описание |
|
string (обязательный при условии) Обязателен, если Название задания. Исполнители увидят его в режиме предпросмотра задания. |
|
string (обязательный при условии) Обязателен, если Описание задания. Исполнители увидят его в режиме предпросмотра задания. |
|
string Параметр можно использовать, если в проекте Провайдер карт для выполнения задач:
Если параметр не задан, то выбор карты определяется исполнителем. |
Переводы на другие языки ('localization_config')
Параметр |
Описание |
|
string Исходный язык, на котором заполнены:
|
array of objects Массив языков перевода. Полный список параметров приведен в таблице Языки переводов. |
Языки переводов ('additional_languages')
Параметр |
Описание |
|
string Язык перевода. |
|
object Перевод названия проекта. Источник перевода:
|
|
object Перевод описания проекта. Источник перевода:
|
|
object Перевод инструкции по выполнению заданий. Источник перевода:
|
|
object Перевод интерфейса задания. |
|
array of objects Ключи с переводом элементов интерфейса задания. Источник перевода:
|
|
object Подсказка для задания (используется для обучающих заданий). |
Ответ
Содержит информацию о загруженном проекте в формате JSON. Проекту автоматически присваивается идентификатор.
Пример ответа
{
"id": "83859",
"public_name": "Elephant color",
"public_description": "What color is the elephant in the picture?",
"public_instructions": "<p>Look at the picture and decide what color the elephant is.</p> You can zoom in or out using the buttons:</p> <img src=\"disc/img1.png>\"",
"private_comment": "My first project",
"task_spec": {
"input_spec": {
"image": {
"type": "URL",
"required": true,
"hidden": false
}
},
"output_spec": {
"result": {
"type": "string",
"required": true,
"hidden": false
}
},
"view_spec": {
"assets": {
"script_urls": [
"library1.js",
"library2.js"
]
},
"markup": "<task interface code>",
"script": "<JavaScript code>",
"styles": "<CSS code>",
"settings": {
"showSkip": true,
"showTimer": true,
"showTitle": true,
"showSubmit": true,
"showFullscreen": true,
"showInstructions": true,
"showFinish": true,
"showMessage": true,
"showReward": true
}
}
},
"assignments_issuing_type": "AUTOMATED",
"assignments_automerge_enabled": false,
"max_active_assignments_count": 15,
"quality_control": {
"configs": [
{
"collector_config": {
"type": "SKIPPED_IN_ROW_ASSIGNMENTS"
},
"rules": [
{
"conditions": [
{
"key": "skipped_in_row_count",
"operator": "GTE",
"value": 10
}
],
"action": {
"type": "REJECT_ALL_ASSIGNMENTS",
"parameters": {
"public_comment": "Skipped more than 10 task suites in a row"
}
}
}
]
}
]
},
"localization_config": {
"default_language": "EN"
},
"owner": {
"id": "6c6e20dc86cca2ae787afcb2629de162",
"myself": true
},
"status": "ACTIVE",
"created": "2022-01-22T07:50:14.210"
}
Включает:
- параметры, которые используются при создании проекта;
- параметры, которые присваиваются автоматически:
Параметр |
Описание |
|
string Идентификатор проекта (присваивается автоматически). |
|
string Статус проекта:
|
|
string Дата и время создания проекта по UTC в формате ISO 8601: |
|
object Параметры заказчика, который создал проект. |
|
string Идентификатор заказчика. |
|
boolean Проверяет, кому принадлежит объект:
|
|
string Идентификатор компании заказчика. |
Узнайте больше
Обязательный параметр