Creating a TSV file with tasks

Tasks are uploaded to the pool in a TSV file.

Download a sample file for your project by clicking File example for task uploading (tsv) on the pool page. To do this, click Upload. In the window that opens, download a sample TSV file here: Sample file for uploading.

If you need to upload different task types to a pool, upload multiple TSV files, each file containing a different task type.

Structure of the TSV file

The first line of the file contains the column headers:

Task type depends on which fields are filled in:

To create a main task, fill in the columns with the INPUT header.

Example with a simple object (string, link, and so on)
Example with a string array

The columns with required input data fields must be filled. The other columns can be deleted if they are empty.

Working with the TSV file

Popular spreadsheet editors allow you to import and export data in TSV format:

You can work with data in a spreadsheet and then save it to the desired format.
  1. Create a spreadsheet with the appropriate headings or copy them from the TSV file example.
  2. Add data for tasks.
  3. Copy the entire table and paste it into a simple text editor (such as Notepad in Windows or TextEdit in Mac).
  4. Save the file in UTF-8 encoding with the tsv extension.

The maximum file size is 100 MB.

Escaping strings

To include multiple paragraphs or tab characters in the string type field:
  • Add another quotation mark to each quotation mark of the " type in the text data.

    Don't escape other quotation marks (« » and “ ”).

  • Enclose the field in quotation marks " ".

Unescaped quotation marks are removed when processing the TSV file.

Escaping examples
Input data Result
A task in Yandex.Toloka

A task in Yandex.Toloka

A task in Yandex.Toloka

A task in Yandex.Toloka

Escaping data in JSON format

To load data in a field with the json type:

  1. Add another quotation mark to each " type of quotation mark in the JSON object.

  2. Enclose the field in quotation marks " ".

Escaping examples
Input data Result
"[{""type"":""polygon"",""data"":[{""x"":0.24173,""y"":0.25118},{""x"":0.31327,""y"":0.24896},{""x"":0.31327,""y"":0.32453},{""x"":0.27576,""y"":0.34898},{""x"":0.23061,""y"":0.32564}]}]"
[{"type":"polygon","data":[{"x":0.24173,"y":0.25118},{"x":0.31327,"y":0.24896},{"x":0.31327,"y":0.32453},{"x":0.27576,"y":0.34898},{"x":0.23061,"y":0.32564}]}]

Escaping the JSON array data

To load data in a field with the json type:

  1. Add another quotation mark to each " type of quotation mark in the JSON object.

  2. Inside the object, add \ before the comma.

  3. Enclose the field in quotation marks " ".

Escaping examples
Input data Result
"{""url"":""https://fotki-kotikov.ru/1""\,""img"":""https://fotki-kotikov.ru/cat1.jpg""\,""description"":""Just fat cats\, because nothing can be more beautiful.""\,""title"":""Fat cats""},{""url"":""https://fotki-kotikov.ru/2""\,""img"":""https://fotki-kotikov.ru/cat2.jpg""\,""description"":""Just red cats\, as everyone knows\, that red cats bring money.""\,""title"":""Red cats""},{""url"":""https://fotki-kotikov.ru/3""\,""img"":""https://fotki-kotikov.ru/cat3.jpg""\,""description"":""Yes\, it will be just sleeping cats""\,""title"":""Sleeping cats""}"
{"url":"https://fotki-kotikov.ru/1", "img":"https://fotki-kotikov.ru/cat1.jpg", "description": "Just fat cats, because nothing can be more beautiful.", "title": "Fat cats"},{"url":"https://fotki-kotikov.ru/2","img":"https://fotki-kotikov.ru/cat2.jpg","description":"Just red cats, as everyone knows that red cats bring money.", "title": "Red cats"},{"url":"https://fotki-kotikov.ru/3","img":"https://fotki-kotikov.ru/cat3.jpg","description":"Yes, it will be just sleeping cats", "title": "Sleeping cats"}

Troubleshooting

How many tasks should be on the page?

The number of tasks depends on how difficult and time-consuming the tasks are. Don't make task pages too large. They are unpopular, partly because they are inconvenient for performers (for example, if the internet connection is unstable).

Errors when uploading tasks in the pool
How do I view the processing log?
To view the processing log, click More on uploading errors. The processing log is written in JSON format. Objects inside result match the line number of the uploaded file. Lines that were processed with an error have the status "success": false.
Tip. To work with a large log conveniently, copy it to the text editor.
Errors in column headers

If the column headings are incorrect, the whole file is rejected. Otherwise, Toloka specifies the number of tasks with processing errors.

Processing errors table
Description How to fix
"parsing_error_of": "https://tlk.s3.yandex.net/wsdm2020/photos/2d5f63a3184919ce7e3e7068cf93da4b.jpg\t\t",
"exception_msg": "the nameMapping array and the sourceList should be the same size (nameMapping length = 1, sourceList size = 3)"

Extra tabs

If the TSV file contains more \t column separators after the data or the link than the number of columns set in the input data, you will get en error message.

For example, if 1 column is defined in the input, and two more \t\t tabs are added in the TSV file after the link, you get 3 columns, 2 of which are extra.

Remove extra column separators in the above example — both \t\t characters.

"exception_msg": "the nameMapping array and the sourceList should be the same size (nameMapping length = 4, sourceList size = 6)"

The number of fields in the header and in the row doesn't match.

Make sure that:

  • The number of tabs in the file structure is correct.
  • String values with tab characters are enclosed in quotation marks " ".
"code": "VALUE_REQUIRED", "message": "Value must be present and not equal to null"
The value for a required input field is not specified.

Make sure that columns with required input data fields are filled.

"code": "INVALID_URL_SYNTAX", "message": "Value must be in valid url format"
Invalid data in the URL field.
Make sure that:
"exception_msg": "unexpected end of file while reading quoted column beginning on line 2 and ending on line 4"

The string includes unpaired quotation mark.

Check that all quotation marks are escaped.