Talent API v2 (0.10)

Download OpenAPI specification:

Аутентификация

TalentOAuth

Аутентификация токеном TalentOAuth пользователем Таланта. Передается в заголовке Authorization: Bearer в формате JWT.

При использовании этой аутентификации, авторизация сервисом выполняется в отношении пользователя, авторизовавшего переданный токен.

Для получения токена нужно воспользоваться API OAuth2 провайдера.

ClientCredentials

Аутентификация учетными данными OAuth2 клиента TalentOAuth. В качестве username используется client_id, а в password - client_secret.

Пагинация

Пагинация может быть представлена как параметром offset, так и параметром id_offset. Параметр offset позволяет указать кол-во объектов для пропуска из читаемой выборки. В id_offset указывается идентификатор, до которого включительно будут пропущены объекты.

Предпочтительно, когда есть возможность, использовать id_offset. Также надо учитывать, что допустимое значение для offset имеет ограничения.

У id_offset тоже имеется ограничение - с ним не доступны варианты сортировки результатов, за исключением вариантов id_asc и id_desc. Для иных значений order_by будет возвращаться ответ 400 Bad Request.

OAuth2 провайдер

Реализация авторизационного сервера OAuth2. RFC6749 RFC7636

Валидация авторизационных параметров

Authorizations:
TalentOAuth
query Parameters
response_type
required
string
redirect_uri
required
string
client_id
required
string
scope
string
auto_renew
boolean

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Авторизация клиента

Пользователь авторизует доступ клиента к ресурсам пользователя

Authorizations:
TalentOAuth

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Выдача токена доступа

Responses

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "token_type": "string",
  • "expires_in": 0,
  • "refresh_token": "string",
  • "scope": "string"
}

Схемы для мероприятий

Мероприятие полностью

id
required
integer <int32> (EventID)

ID мероприятия.

created_at
required
string <date-time> (EventCreatedAt)

Дата создания.

updated_at
required
string <date-time> (EventUpdatedAt)

Дата обновления.

draft
required
boolean (EventDraft)

Мероприятие находится в статусе черновика. На такое мероприятие нельзя зарегистрироваться.

public
required
boolean (EventPublic)

Статус публичности мероприятия.

hidden
required
boolean (EventHidden)

Исключение мероприятия из календаря.

canceled
required
boolean (EventCanceled)

Статус отмены мероприятия.

title
required
string (EventTitle)

Название мероприятия.

start
required
string or null <date-time> (EventStart)

Дата начала мероприятия.

end
required
string or null <date-time> (EventEnd)

Дата окончания мероприятия.

format
required
string (EventFormat)
Enum Description

Значение не указано

offline

Оффлайн мероприятие.

online

Онлайн мероприятие.

Формат проведения мероприятия.

organization_id
required
integer or null <int32> (EventOrganizationID)

ID организации мероприятия.

meta_event_id
required
integer or null <int32> (EventMetaEventID)

ID мета-мероприятия.

created_by_id
required
integer or null <int32> (EventCreatedByID)

ID автора мероприятия.

venue_id
required
integer or null <int32> (EventVenueID)

ID площадки на которой проводится мероприятие.

simplified_registration
required
boolean

Доступность упрощенной регистрации на мероприятие.

autocreate_member
required
boolean (EventAutocreateMember)

Автоматическое добавление в участники организации пользователя с подтвержденной заявки.

achievements_allowed
required
boolean (EventAchievementsAllowed)

Допуск на создания достижений на мероприятие.

requests_allowed
required
boolean (EventRequestsAllowed)

Допуск на создания заявок на мероприятие.

self_check_in
required
boolean (EventSelfCheckIn)

Доступность чекина

teams_involved
required
integer <int32> (EventTeamsInvolved)
Enum Description
0

Допускаются и индивидуальное и командное участия

1

Допускается только индивидуальная регистрация

2

Допускается регистрация только в команде

Формат участия.

owner_can_moderate
required
boolean
user_in_multiple_teams
required
boolean
mentors_allowed
required
boolean
support_i18n
required
boolean
gir_collection
required
boolean
time_matters
required
boolean (EventTimeMatters)

Учитывается ли время или только даты в полях start и end.

promoted
required
boolean
max_users
required
integer or null (EventMaxUsers)
team_create_notification
required
boolean
team_assignment_method
required
string (EventTeamAssignmentMethod)
Enum Description
completion

Команды будут дополняться до максимального количества.

completion_soft

Команды будут дополняться до максимального количества. У участников есть возможность отказаться от дополнения их команды.

single

Команды будут создаваться только из участников-одиночек и команд из одного участника.

single_soft

Команды будут создаваться только из участников-одиночек и команд из одного участника. У участников есть возможность отказаться от изменения их команды.

achievement_roles_count
required
integer <int32>
achievements_count
required
integer <int32> (EventAchievementsCount)
requests_count
required
integer <int32> (EventRequestsCount)
expected_start
required
string or null <date-time> (EventExpectedStart)
alt_title
required
string (EventAltTitle)

Альтернативное название мероприятия.

cover
required
string (EventCover)

Ссылка на обложку мероприятия.

url
required
string <url> (EventURL) <= 200 characters

Адрес online мероприятия.

type_id
required
integer or null <int32> (EventTypeID)

Идентификатор типа мероприятия.

description
required
string (EventDescription)

Описание мероприятия.

cancellation_reason
required
string

Причина отмены мероприятия.

questionnaire_completed_message
required
string (EventQuestionnaireCompletedMessage)

Сообщение о заполненной анкете.

{
  • "id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "draft": true,
  • "public": true,
  • "hidden": true,
  • "canceled": true,
  • "title": "string",
  • "start": "2019-08-24T14:15:22Z",
  • "end": "2019-08-24T14:15:22Z",
  • "format": "",
  • "organization_id": 0,
  • "meta_event_id": 0,
  • "created_by_id": 0,
  • "venue_id": 0,
  • "simplified_registration": true,
  • "autocreate_member": true,
  • "achievements_allowed": true,
  • "requests_allowed": true,
  • "self_check_in": true,
  • "teams_involved": 0,
  • "owner_can_moderate": true,
  • "user_in_multiple_teams": true,
  • "mentors_allowed": true,
  • "support_i18n": true,
  • "gir_collection": true,
  • "time_matters": true,
  • "promoted": true,
  • "max_users": 0,
  • "team_create_notification": true,
  • "team_assignment_method": "completion",
  • "achievement_roles_count": 0,
  • "achievements_count": 0,
  • "requests_count": 0,
  • "expected_start": "2019-08-24T14:15:22Z",
  • "alt_title": "string",
  • "cover": "string",
  • "url": "string",
  • "type_id": 0,
  • "description": "string",
  • "cancellation_reason": "string",
  • "questionnaire_completed_message": "string"
}

Метаданные мероприятия

id
required
integer <int32> (EventID)

ID мероприятия.

created_at
required
string <date-time> (EventCreatedAt)

Дата создания.

updated_at
required
string <date-time> (EventUpdatedAt)

Дата обновления.

draft
required
boolean (EventDraft)

Мероприятие находится в статусе черновика. На такое мероприятие нельзя зарегистрироваться.

public
required
boolean (EventPublic)

Статус публичности мероприятия.

hidden
required
boolean (EventHidden)

Исключение мероприятия из календаря.

canceled
required
boolean (EventCanceled)

Статус отмены мероприятия.

title
required
string (EventTitle)

Название мероприятия.

start
required
string or null <date-time> (EventStart)

Дата начала мероприятия.

end
required
string or null <date-time> (EventEnd)

Дата окончания мероприятия.

format
required
string (EventFormat)
Enum Description

Значение не указано

offline

Оффлайн мероприятие.

online

Онлайн мероприятие.

Формат проведения мероприятия.

organization_id
required
integer or null <int32> (EventOrganizationID)

ID организации мероприятия.

meta_event_id
required
integer or null <int32> (EventMetaEventID)

ID мета-мероприятия.

created_by_id
required
integer or null <int32> (EventCreatedByID)

ID автора мероприятия.

venue_id
required
integer or null <int32> (EventVenueID)

ID площадки на которой проводится мероприятие.

{
  • "id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "draft": true,
  • "public": true,
  • "hidden": true,
  • "canceled": true,
  • "title": "string",
  • "start": "2019-08-24T14:15:22Z",
  • "end": "2019-08-24T14:15:22Z",
  • "format": "",
  • "organization_id": 0,
  • "meta_event_id": 0,
  • "created_by_id": 0,
  • "venue_id": 0
}

Чтение мероприятий

Счетчик мероприятий

query Parameters
event_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтр по массиву идентификаторов мероприятий.

organization_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтрация мероприятий по ID организации.

meta_event_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтрация мероприятий по ID мета-мероприятия.

venue_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтрация мероприятий по ID площадки их проведения.

start_before
string <date-time>

Мероприятия с датой начала ранее указанной.

end_after
string <date-time>

Мероприятия с датой завершения после указанной.

search
string [ 3 .. 150 ] characters

Поиск по названию, ключевым словам и описанию.

format
string (EventFormat)
Enum Description

Значение не указано

offline

Оффлайн мероприятие.

online

Онлайн мероприятие.

Фильтрация по формату мероприятий.

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Список мероприятий

Если не указан критерий сортировки результатов order_by, то он определяется в зависимости от указания других параметров.

По-умолчанию результаты сортируются по идентификаторам в порядке возрастания (id_asc). Но если указан поисковый запрос и не используется параметр id_offset, то результаты сортируются по релевантности к поисковому запросу (relevant).

При явном указании order_by, его значение должно соответствовать требованиям:

  • с параметром id_offset допускается только order_by=id_asc
  • вариант order_by=relevant доступен только при указании параметра search.
query Parameters
event_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтр по массиву идентификаторов мероприятий.

organization_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтрация мероприятий по ID организации.

meta_event_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтрация мероприятий по ID мета-мероприятия.

venue_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтрация мероприятий по ID площадки их проведения.

start_before
string <date-time>

Мероприятия с датой начала ранее указанной.

end_after
string <date-time>

Мероприятия с датой завершения после указанной.

search
string [ 3 .. 150 ] characters

Поиск по названию, ключевым словам и описанию.

format
string (EventFormat)
Enum Description

Значение не указано

offline

Оффлайн мероприятие.

online

Онлайн мероприятие.

Фильтрация по формату мероприятий.

id_offset
integer <int32>

Пропуск объектов с идентификатором равном или менее указанного.

offset
integer <int32> [ 0 .. 200 ]
Default: 0

Кол-во объектов выборки для пропуска.

limit
integer <int32> [ 1 .. 200 ]
Default: 100

Максимум объектов возвращаемых в теле ответа.

order_by
string
Enum: "relevant" "id_asc" "id_desc"

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Список мероприятий для добавленя достижения

Мероприятия, доступные для добавления достижения пользователем.

query Parameters
offset
integer <int32> [ 0 .. 200 ]
Default: 0

Кол-во объектов выборки для пропуска.

limit
integer <int32> [ 1 .. 200 ]
Default: 100

Максимум объектов возвращаемых в теле ответа.

search
string [ 3 .. 150 ] characters

Поиск по названию, ключевым словам и описанию.

event_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтр по массиву идентификаторов мероприятий.

format
string (EventFormat)
Enum Description

Значение не указано

offline

Оффлайн мероприятие.

online

Онлайн мероприятие.

Фильтрация по формату мероприятий.

start_before
string <date-time>

Мероприятия с датой начала ранее указанной.

end_after
string <date-time>

Мероприятия с датой завершения после указанной.

brand_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтр по массиву идентификаторов брендов.

competency_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтр по массиву идентификаторов компетенций Конкурса Талант.

region
string

Фильтрация по названию региона.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Список мероприятий для календаря

query Parameters
offset
integer <int32> [ 0 .. 200 ]
Default: 0

Кол-во объектов выборки для пропуска.

limit
integer <int32> [ 1 .. 200 ]
Default: 100

Максимум объектов возвращаемых в теле ответа.

order_by
string
Default: "start_asc"
Enum: "start_asc" "start_desc" "title_asc" "title_desc"

Критерий сортировки результатов.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Список мероприятий организации

path Parameters
organization_id
required
integer <int32> >= 1

ID организации.

query Parameters
offset
integer <int32> [ 0 .. 200 ]
Default: 0

Кол-во объектов выборки для пропуска.

limit
integer <int32> [ 1 .. 200 ]
Default: 100

Максимум объектов возвращаемых в теле ответа.

event_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтр по массиву идентификаторов мероприятий.

search
string [ 3 .. 150 ] characters

Поиск по названию, ключевым словам и описанию.

format
string (EventFormat)
Enum Description

Значение не указано

offline

Оффлайн мероприятие.

online

Онлайн мероприятие.

Фильтрация по формату мероприятий.

start_before
string <date-time>

Мероприятия с датой начала ранее указанной.

end_after
string <date-time>

Мероприятия с датой завершения после указанной.

city
string

Фильтрация по названию города.

order_by
string
Default: "start_desc"
Enum: "start_asc" "start_desc" "title_asc" "title_desc"

Критерий сортировки результатов.

При использовании текстового поиска, результаты будут отсортированы сначала в порядке релевантности, а потом в соответствии с указанным этим параметром критерием.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Чтение свойств мероприятия

По умолчанию возвращаются только метаданные. Для получения полного набора свойств используйте параметр extend.

path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

query Parameters
extend
boolean
Default: false

Вернуть в ответе полный набор свойств.

Responses

Response samples

Content type
application/json
Example
{
  • "id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "draft": true,
  • "public": true,
  • "hidden": true,
  • "canceled": true,
  • "title": "string",
  • "start": "2019-08-24T14:15:22Z",
  • "end": "2019-08-24T14:15:22Z",
  • "format": "",
  • "organization_id": 0,
  • "meta_event_id": 0,
  • "created_by_id": 0,
  • "venue_id": 0
}

Список брендированных мероприятий

query Parameters
event_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтр по массиву идентификаторов мероприятий.

brand_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтр по массиву идентификаторов брендов.

id_offset
integer <int32>

Пропуск объектов с идентификатором равном или менее указанного.

offset
integer <int32> [ 0 .. 200 ]
Default: 0

Кол-во объектов выборки для пропуска.

limit
integer <int32> [ 1 .. 200 ]
Default: 100

Максимум объектов возвращаемых в теле ответа.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Список направлений мероприятий

query Parameters
event_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтр по массиву идентификаторов мероприятий.

route_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтр по массиву идентификаторов направлений.

id_offset
integer <int32>

Пропуск объектов с идентификатором равном или менее указанного.

offset
integer <int32> [ 0 .. 200 ]
Default: 0

Кол-во объектов выборки для пропуска.

limit
integer <int32> [ 1 .. 200 ]
Default: 100

Максимум объектов возвращаемых в теле ответа.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Управление мероприятиями

Добавление нового мероприятия

При полном отсутствии в запросе массива achievement_roles, мероприятию назначаются роли достижений по-умолчанию. Пустой же массив приведет к созданию мероприятия без ролей.

Authorizations:
TalentOAuth
Request Body schema: application/json
required
organization_id
required
integer <int32>

ID организации мероприятия.

draft
boolean (EventDraft)

Мероприятие находится в статусе черновика. На такое мероприятие нельзя зарегистрироваться.

public
boolean (EventPublic)

Статус публичности мероприятия.

hidden
boolean (EventHidden)

Исключение мероприятия из календаря.

title
required
string (EventTitleInput) non-empty

Название мероприятия.

start
string or null <date-time> (EventStart)

Дата начала мероприятия.

end
string or null <date-time> (EventEnd)

Дата окончания мероприятия.

format
string (EventFormat)
Enum Description

Значение не указано

offline

Оффлайн мероприятие.

online

Онлайн мероприятие.

Формат проведения мероприятия.

venue_id
integer or null <int32> (EventVenueID)

ID площадки на которой проводится мероприятие.

autocreate_member
boolean (EventAutocreateMember)

Автоматическое добавление в участники организации пользователя с подтвержденной заявки.

achievements_allowed
boolean (EventAchievementsAllowed)

Допуск на создания достижений на мероприятие.

requests_allowed
boolean (EventRequestsAllowed)

Допуск на создания заявок на мероприятие.

teams_involved
integer <int32> (EventTeamsInvolved)
Enum Description
0

Допускаются и индивидуальное и командное участия

1

Допускается только индивидуальная регистрация

2

Допускается регистрация только в команде

Формат участия.

user_in_multiple_teams
boolean
time_matters
boolean (EventTimeMatters)

Учитывается ли время или только даты в полях start и end.

team_assignment_method
string (EventTeamAssignmentMethod)
Enum Description
completion

Команды будут дополняться до максимального количества.

completion_soft

Команды будут дополняться до максимального количества. У участников есть возможность отказаться от дополнения их команды.

single

Команды будут создаваться только из участников-одиночек и команд из одного участника.

single_soft

Команды будут создаваться только из участников-одиночек и команд из одного участника. У участников есть возможность отказаться от изменения их команды.

url
string <url> (EventURL) <= 200 characters

Адрес online мероприятия.

type_id
integer or null <int32> (EventTypeID)

Идентификатор типа мероприятия.

description
string (EventDescription)

Описание мероприятия.

questionnaire_completed_message
string (EventQuestionnaireCompletedMessage)

Сообщение о заполненной анкете.

notification_email_message
string (EventNotificationEmailMessage)

Дополнительный текст для Email уведомления о регистрации на мероприятие.

Текст интерпретируется в соответствии с форматом markdown.

cover_url
string <uri> (EventCoverURLWrite)

Ссылка на обложку мероприятия.

achievement_roles
Array of integers <int32> [ items <int32 > ]
brands
Array of integers <int32> [ items <int32 > ]

Responses

Request samples

Content type
application/json
{
  • "organization_id": 0,
  • "draft": true,
  • "public": true,
  • "hidden": true,
  • "title": "string",
  • "start": "2019-08-24T14:15:22Z",
  • "end": "2019-08-24T14:15:22Z",
  • "format": "",
  • "venue_id": 0,
  • "autocreate_member": true,
  • "achievements_allowed": true,
  • "requests_allowed": true,
  • "teams_involved": 0,
  • "user_in_multiple_teams": true,
  • "time_matters": true,
  • "team_assignment_method": "completion",
  • "url": "string",
  • "type_id": 0,
  • "description": "string",
  • "questionnaire_completed_message": "string",
  • "notification_email_message": "string",
  • "cover_url": "http://example.com",
  • "achievement_roles": [
    ],
  • "brands": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "draft": true,
  • "public": true,
  • "hidden": true,
  • "canceled": true,
  • "title": "string",
  • "start": "2019-08-24T14:15:22Z",
  • "end": "2019-08-24T14:15:22Z",
  • "format": "",
  • "organization_id": 0,
  • "meta_event_id": 0,
  • "created_by_id": 0,
  • "venue_id": 0,
  • "simplified_registration": true,
  • "autocreate_member": true,
  • "achievements_allowed": true,
  • "requests_allowed": true,
  • "self_check_in": true,
  • "teams_involved": 0,
  • "owner_can_moderate": true,
  • "user_in_multiple_teams": true,
  • "mentors_allowed": true,
  • "support_i18n": true,
  • "gir_collection": true,
  • "time_matters": true,
  • "promoted": true,
  • "max_users": 0,
  • "team_create_notification": true,
  • "team_assignment_method": "completion",
  • "achievement_roles_count": 0,
  • "achievements_count": 0,
  • "requests_count": 0,
  • "expected_start": "2019-08-24T14:15:22Z",
  • "alt_title": "string",
  • "cover": "string",
  • "url": "string",
  • "type_id": 0,
  • "description": "string",
  • "cancellation_reason": "string",
  • "questionnaire_completed_message": "string"
}

Чтение лимитов мероприятия

path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "event_id": 0,
  • "auto_approve": true,
  • "collect_snils": true,
  • "collect_phones": true,
  • "participant_limit": 1,
  • "date_end_request": "2019-08-24T14:15:22Z",
  • "date_end_update": "2019-08-24T14:15:22Z",
  • "user_age_start": 0,
  • "user_age_end": 0,
  • "requires_project": true,
  • "requires_stepik": true,
  • "requires_github": true,
  • "requires_yandex": true,
  • "requires_kaggle": true,
  • "requires_leader": true,
  • "requires_vk": true,
  • "requires_telegram": true,
  • "countries": [
    ],
  • "regions": [
    ],
  • "cities": [
    ],
  • "description": "string"
}

Создание лимитов мероприятия

Лимиты могут существовать только в единичном кол-ве на мероприятие. Попытка создать больше будет возвращать 409 ответ.

Authorizations:
TalentOAuth
path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

Request Body schema: application/json
required
auto_approve
boolean (EventLimitAutoApprove)

Автосогласование заявок.

collect_snils
boolean (EventLimitCollectSNILS)

Собирать СНИЛС в заявках.

collect_phones
boolean (EventLimitCollectPhones)

Собирать номера телефонов в заявках.

participant_limit
integer or null (EventLimitParticipantLimit) >= 1

Максимальное количество участников.

date_end_request
string or null <date-time> (EventLimitDateEndRequest)

Крайний срок подачи заявки.

date_end_update
string or null <date-time> (EventLimitDateEndUpdate)

Крайний срок обновления заявки.

user_age_start
integer or null <int32> (EventLimitUserAgeStart)

Минимальный возраст участника. Рассчитывается от даты начала мероприятия.

user_age_end
integer or null <int32> (EventLimitUserAgeEnd)

Максимальный возраст участника. Рассчитывается от даты начала мероприятия.

requires_project
boolean (EventLimitRequiresProject)

Требуется проект.

requires_stepik
boolean (EventLimitRequiresStepik)

Требуется учетная запись Stepik.

requires_github
boolean (EventLimitRequiresGitHub)

Требуется учетная запись GitHub.

requires_yandex
boolean (EventLimitRequiresYandex)

Требуется учетная запись Yandex.

requires_kaggle
boolean (EventLimitRequiresKaggle)

Требуется учетная запись Kaggle.

requires_leader
boolean (EventLimitRequiresLeader)

Требуется учетная запись Leader.

requires_vk
boolean (EventLimitRequiresVK)

Требуется учетная запись VK.

requires_telegram
boolean (EventLimitRequiresTelegram)

Требуется учетная запись Telegram.

countries
Array of strings (EventLimitCountries)

Допускаемые к регистрации страны.

regions
Array of strings (EventLimitRegions)

Допускаемые к регистрации регионы.

cities
Array of strings (EventLimitCities)

Допускаемые к регистрации города.

description
string (EventLimitDescription)

Текстовое описание ограничений по регистрации.

Responses

Request samples

Content type
application/json
{
  • "auto_approve": true,
  • "collect_snils": true,
  • "collect_phones": true,
  • "participant_limit": 1,
  • "date_end_request": "2019-08-24T14:15:22Z",
  • "date_end_update": "2019-08-24T14:15:22Z",
  • "user_age_start": 0,
  • "user_age_end": 0,
  • "requires_project": true,
  • "requires_stepik": true,
  • "requires_github": true,
  • "requires_yandex": true,
  • "requires_kaggle": true,
  • "requires_leader": true,
  • "requires_vk": true,
  • "requires_telegram": true,
  • "countries": [
    ],
  • "regions": [
    ],
  • "cities": [
    ],
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "event_id": 0,
  • "auto_approve": true,
  • "collect_snils": true,
  • "collect_phones": true,
  • "participant_limit": 1,
  • "date_end_request": "2019-08-24T14:15:22Z",
  • "date_end_update": "2019-08-24T14:15:22Z",
  • "user_age_start": 0,
  • "user_age_end": 0,
  • "requires_project": true,
  • "requires_stepik": true,
  • "requires_github": true,
  • "requires_yandex": true,
  • "requires_kaggle": true,
  • "requires_leader": true,
  • "requires_vk": true,
  • "requires_telegram": true,
  • "countries": [
    ],
  • "regions": [
    ],
  • "cities": [
    ],
  • "description": "string"
}

Обновление лимитов мероприятия

Authorizations:
TalentOAuth
path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

Request Body schema: application/json
required
auto_approve
boolean (EventLimitAutoApprove)

Автосогласование заявок.

collect_snils
boolean (EventLimitCollectSNILS)

Собирать СНИЛС в заявках.

collect_phones
boolean (EventLimitCollectPhones)

Собирать номера телефонов в заявках.

participant_limit
integer or null (EventLimitParticipantLimit) >= 1

Максимальное количество участников.

date_end_request
string or null <date-time> (EventLimitDateEndRequest)

Крайний срок подачи заявки.

date_end_update
string or null <date-time> (EventLimitDateEndUpdate)

Крайний срок обновления заявки.

user_age_start
integer or null <int32> (EventLimitUserAgeStart)

Минимальный возраст участника. Рассчитывается от даты начала мероприятия.

user_age_end
integer or null <int32> (EventLimitUserAgeEnd)

Максимальный возраст участника. Рассчитывается от даты начала мероприятия.

requires_project
boolean (EventLimitRequiresProject)

Требуется проект.

requires_stepik
boolean (EventLimitRequiresStepik)

Требуется учетная запись Stepik.

requires_github
boolean (EventLimitRequiresGitHub)

Требуется учетная запись GitHub.

requires_yandex
boolean (EventLimitRequiresYandex)

Требуется учетная запись Yandex.

requires_kaggle
boolean (EventLimitRequiresKaggle)

Требуется учетная запись Kaggle.

requires_leader
boolean (EventLimitRequiresLeader)

Требуется учетная запись Leader.

requires_vk
boolean (EventLimitRequiresVK)

Требуется учетная запись VK.

requires_telegram
boolean (EventLimitRequiresTelegram)

Требуется учетная запись Telegram.

countries
Array of strings (EventLimitCountries)

Допускаемые к регистрации страны.

regions
Array of strings (EventLimitRegions)

Допускаемые к регистрации регионы.

cities
Array of strings (EventLimitCities)

Допускаемые к регистрации города.

description
string (EventLimitDescription)

Текстовое описание ограничений по регистрации.

Responses

Request samples

Content type
application/json
{
  • "auto_approve": true,
  • "collect_snils": true,
  • "collect_phones": true,
  • "participant_limit": 1,
  • "date_end_request": "2019-08-24T14:15:22Z",
  • "date_end_update": "2019-08-24T14:15:22Z",
  • "user_age_start": 0,
  • "user_age_end": 0,
  • "requires_project": true,
  • "requires_stepik": true,
  • "requires_github": true,
  • "requires_yandex": true,
  • "requires_kaggle": true,
  • "requires_leader": true,
  • "requires_vk": true,
  • "requires_telegram": true,
  • "countries": [
    ],
  • "regions": [
    ],
  • "cities": [
    ],
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "event_id": 0,
  • "auto_approve": true,
  • "collect_snils": true,
  • "collect_phones": true,
  • "participant_limit": 1,
  • "date_end_request": "2019-08-24T14:15:22Z",
  • "date_end_update": "2019-08-24T14:15:22Z",
  • "user_age_start": 0,
  • "user_age_end": 0,
  • "requires_project": true,
  • "requires_stepik": true,
  • "requires_github": true,
  • "requires_yandex": true,
  • "requires_kaggle": true,
  • "requires_leader": true,
  • "requires_vk": true,
  • "requires_telegram": true,
  • "countries": [
    ],
  • "regions": [
    ],
  • "cities": [
    ],
  • "description": "string"
}

Удаление лимитов мероприятия

Authorizations:
TalentOAuth
path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Отложенные уведомления

Отложенные уведомления для участников мероприятий.

Проверка наличия отложенного уведомления

path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Чтение отложенного уведомления

Authorizations:
TalentOAuth
path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

Responses

Response samples

Content type
application/json
{
  • "qstatus": "pending",
  • "event_id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "before_start": {
    },
  • "receivers_cnt": 0,
  • "started_at": "2019-08-24T14:15:22Z",
  • "finished_at": "2019-08-24T14:15:22Z",
  • "template": 0,
  • "message": "string"
}

Создание отложенного уведомления

Authorizations:
TalentOAuth
path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

Request Body schema: application/json
required
required
object (EventDeferredNotificationBeforeStart)

Интервал до начала мероприятия. Вычисляемая дата является границей, до которой не отправляются уведомления.

template
integer <int16> (EventDeferredNotificationTemplateID)

Идентификатор шаблона отложенного уведомления.

message
required
string

Responses

Request samples

Content type
application/json
{
  • "before_start": {
    },
  • "template": 0,
  • "message": "string"
}

Response samples

Content type
application/json
{
  • "qstatus": "pending",
  • "event_id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "before_start": {
    },
  • "receivers_cnt": 0,
  • "started_at": "2019-08-24T14:15:22Z",
  • "finished_at": "2019-08-24T14:15:22Z",
  • "template": 0,
  • "message": "string"
}

Изменение отложенного уведомления

Если уведомление уже существует и оно находится в статусе canceled, оно будет переведено в статус pending.

Authorizations:
TalentOAuth
path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

Request Body schema: application/json
required
object (EventDeferredNotificationBeforeStart)

Интервал до начала мероприятия. Вычисляемая дата является границей, до которой не отправляются уведомления.

template
integer <int16> (EventDeferredNotificationTemplateID)

Идентификатор шаблона отложенного уведомления.

message
string

Responses

Request samples

Content type
application/json
{
  • "before_start": {
    },
  • "template": 0,
  • "message": "string"
}

Response samples

Content type
application/json
{
  • "qstatus": "pending",
  • "event_id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "before_start": {
    },
  • "receivers_cnt": 0,
  • "started_at": "2019-08-24T14:15:22Z",
  • "finished_at": "2019-08-24T14:15:22Z",
  • "template": 0,
  • "message": "string"
}

Отмена запланированного уведомления

Перевод уведомления из статуса pending в статус canceled.

Если уведомление в статусе pending не найдено, будет возвращен 404 ответ.

Authorizations:
TalentOAuth
path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

Responses

Response samples

Content type
application/json
{
  • "qstatus": "pending",
  • "event_id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "before_start": {
    },
  • "receivers_cnt": 0,
  • "started_at": "2019-08-24T14:15:22Z",
  • "finished_at": "2019-08-24T14:15:22Z",
  • "template": 0,
  • "message": "string"
}

Идентификатор шаблона отложенного уведомления

path Parameters
name
required
string

Имя искомого шаблона

Responses

Response samples

Content type
application/json
0
0

Настройки дипломов для мероприятий

Список настроек дипломов мероприятий

Authorizations:
TalentOAuth
query Parameters
id_offset
integer <int32>

Пропуск объектов с идентификатором равном или менее указанного.

offset
integer <int32> [ 0 .. 200 ]
Default: 0

Кол-во объектов выборки для пропуска.

limit
integer <int32> [ 1 .. 200 ]
Default: 100

Максимум объектов возвращаемых в теле ответа.

event_ids
Array of integers <int32> [ items <int32 > ]

ID мероприятий, записывается в формате ?event_ids=1,2,3

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Добавление роли для диплома мероприятия

Authorizations:
TalentOAuth
path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

role_id
required
integer <int32>

ID роли достижения

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Удаление роли для диплома мероприятия

Authorizations:
TalentOAuth
path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

role_id
required
integer <int32>

ID роли достижения

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Чтение настроек дипломов мероприятия

Authorizations:
TalentOAuth
path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

Responses

Response samples

Content type
application/json
{
  • "event_diploma_settings": {
    },
  • "role_ids": [
    ]
}

Создание настроек дипломов мероприятия

Authorizations:
TalentOAuth
path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

Request Body schema: application/json
required
diplomas_dark_theme
boolean
Default: false

Включить тёмную тему для дипломов

background
required
string <uri>

Фон для дипломов

template
string (DiplomaTemplate)
Enum Description
diploma

Шаблон диплома

cert

Шаблон сертификата

diploma_issue_mode
string (DiplomaIssueMode)
Enum Description
all

Выдаются всем

roles

Выдаются по ролям

none

Не выдаются никому

Для кого предусмотрена выдача дипломов

Responses

Request samples

Content type
application/json
{
  • "diplomas_dark_theme": false,
  • "background": "http://example.com",
  • "template": "diploma",
  • "diploma_issue_mode": "all"
}

Response samples

Content type
application/json
{
  • "event_id": 0,
  • "diplomas_dark_theme": true,
  • "background": "http://example.com",
  • "template": "diploma",
  • "diploma_issue_mode": "all"
}

Обновление настроек дипломов мероприятия

Authorizations:
TalentOAuth
path Parameters
event_id
required
integer <int32> >= 1

ID мероприятия

Request Body schema: application/json
required
diplomas_dark_theme
boolean

Включить тёмную тему для дипломов

background
string <uri>

Фон для дипломов

template
string (DiplomaTemplate)
Enum Description
diploma

Шаблон диплома

cert

Шаблон сертификата

diploma_issue_mode
string (DiplomaIssueMode)
Enum Description
all

Выдаются всем

roles

Выдаются по ролям

none

Не выдаются никому

Для кого предусмотрена выдача дипломов

Responses

Request samples

Content type
application/json
{
  • "diplomas_dark_theme": true,
  • "background": "http://example.com",
  • "template": "diploma",
  • "diploma_issue_mode": "all"
}

Response samples

Content type
application/json
{
  • "event_id": 0,
  • "diplomas_dark_theme": true,
  • "background": "http://example.com",
  • "template": "diploma",
  • "diploma_issue_mode": "all"
}

Операции организаций

Список организаций

query Parameters
organization_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтр по массиву идентификаторов организаций.

parent_organization_id
integer <int32> >= 1

ID родительской организации.

id_offset
integer <int32>

Пропуск объектов с идентификатором равном или менее указанного.

offset
integer <int32> [ 0 .. 200 ]
Default: 0

Кол-во объектов выборки для пропуска.

limit
integer <int32> [ 1 .. 200 ]
Default: 100

Максимум объектов возвращаемых в теле ответа.

order_by
string
Default: "id_asc"
Enum: "id_asc" "id_desc"

Критерий сортировки результатов.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Проверка наличия административных прав в организации

Authorizations:
TalentOAuth
path Parameters
organization_id
required
integer <int32> >= 1

ID организации.

query Parameters
is_owner
boolean

Требование наличия или отсутствия статуса владельца организации.

При указании значения, роль пользователя должна ему соответствовать; это значит что если указать false, а пользователь является владельцем, то ответ будет иметь статус 403.

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Операции с тематиками организаций

Список связей организаций и тематик

query Parameters
id_offset
integer <int32>

Пропуск объектов с идентификатором равном или менее указанного.

offset
integer <int32> [ 0 .. 200 ]
Default: 0

Кол-во объектов выборки для пропуска.

limit
integer <int32> [ 1 .. 200 ]
Default: 100

Максимум объектов возвращаемых в теле ответа.

organization_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтр по массиву идентификаторов организаций.

subject_id
Array of integers <int32> [ items <int32 > >= 1 ]

Фильтр по массиву идентификаторов тематик.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Добавление тематики для организации

Запрос необходимо выполнять от ментора или владельца организации, указываемой в свойстве organization_id тела запроса.

Authorizations:
TalentOAuth
Request Body schema: application/json
required
organization_id
required
integer <int32>
subject_id
required
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "organization_id": 0,
  • "subject_id": 0
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "organization_id": 0,
  • "subject_id": 0
}

Список тематик для организаций

query Parameters
id_offset
integer <int32>

Пропуск объектов с идентификатором равном или менее указанного.

offset
integer <int32> [ 0 .. 200 ]
Default: 0

Кол-во объектов выборки для пропуска.

limit
integer <int32> [ 1 .. 200 ]
Default: 100

Максимум объектов возвращаемых в теле ответа.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Персоны пользователей

Чтение персоны пользователя

path Parameters
person_id
required
integer <int32>

ID персоны.

Responses

Response samples

Content type
application/json
{
  • "user_id": 0
}

Внешние провайдеры авторизации

Авторизация во внешнем провайдере

path Parameters
provider
required
string (Символьный ключ провайдера внешней авторизации)

Допускаются значения поддерживаемых для выполнения авторизации провайдеров.

query Parameters
next
string

Адрес перенаправления после завершения авторизации

reg_next
string

Адрес перенаправления для заполнения формы регистрации

err_next
string

Адрес перенаправления при завершении авторизации ошибкой

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Завершение авторизации

path Parameters
provider
required
string (Символьный ключ провайдера внешней авторизации)

Допускаются значения поддерживаемых для выполнения авторизации провайдеров.

query Parameters
state
required
string
cookie Parameters
csrf_state
string

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Удаление авторизации

Удаление авторизации возможно только если это не единственный оставшийся у пользователя способ аутентификации под своей учетной записью.

Не допускается параллельная обработка запросов на удаление, в случае появления такой гонки, будет возвращен 409 ответ.

Authorizations:
TalentOAuth
path Parameters
provider
required
string (Символьный ключ провайдера внешней авторизации)

Допускаются значения поддерживаемых для выполнения авторизации провайдеров.

uid
required
string

Внешний идентификатор пользователя

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Список авторизаций пользователя в соц. сетях

Authorizations:
TalentOAuthClientCredentials
path Parameters
user_id
required
integer <int32>

ID пользователя.

query Parameters
provider
string (Имя провайдера внешней авторизации)
Enum: "github" "github_legacy" "gitlab" "leader" "mos" "stackoverflow" "stepik" "unti" "vkid" "vk-oauth2" "yandex"

Фильтрация по провайдеру авторизации

id_offset
integer <int32>

Пропуск объектов с идентификатором равном или менее указанного.

offset
integer <int32> [ 0 .. 200 ]
Default: 0

Кол-во объектов выборки для пропуска.

limit
integer <int32> [ 1 .. 200 ]
Default: 100

Максимум объектов возвращаемых в теле ответа.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Регистрация пользователя

Данные для предзаполнения формы регистрации

query Parameters
partial_token
required
string <uuid>

Responses

Response samples

Content type
application/json
{
  • "property1": "string",
  • "property2": "string"
}

Регистрация пользователя

query Parameters
partial_token
string <uuid>
cookie Parameters
utm
string
Request Body schema: application/json
required
consents
Array of strings (UserConsentKind)
Items Enum: "personal_data_processing" "terms_of_service"
password
string
email
string <email> (Email)
last_name
string (Фамилия)
first_name
string (Имя)
middle_name
string (Отчество)
no_middle_name
boolean (Нет отчества)
birthday
string <date> (Дата рождения)
address
string (Адрес)
sex
string (UserSex)
Enum: "m" "w"
grade
integer <int8> (Класс)
snils
string (СНИЛС)
adult_confirm
integer <int32> (Подтверждение родителей)
redirect_uri
string (URI перенаправления) <= 1000 characters
phone
string (Номер телефона)
session_token
string (Токен подтверждения телефона)

Responses

Request samples

Content type
application/json
{
  • "consents": [
    ],
  • "password": "string",
  • "email": "user@example.com",
  • "last_name": "string",
  • "first_name": "string",
  • "middle_name": "string",
  • "no_middle_name": true,
  • "birthday": "2019-08-24",
  • "address": "string",
  • "sex": "m",
  • "grade": 0,
  • "snils": "string",
  • "adult_confirm": 0,
  • "redirect_uri": "string",
  • "phone": "string",
  • "session_token": "string"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "expires_in": 0,
  • "reg_token": "string"
}

Завершение регистрации пользователя подтверждением почты

path Parameters
uid
required
string
token
required
string

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Профиль пользователя

Изменение аутентифицированного пользователя

Операция еще не доступна

Request Body schema: application/json
required
last_name
string (Фамилия)
first_name
string (Имя)
middle_name
string (Отчество)
no_middle_name
boolean (Нет отчества)
birthday
string <date> (Дата рождения)
address
string (Адрес)
sex
string (UserSex)
Enum: "m" "w"
grade
integer <int8> (Класс)
snils
string (СНИЛС)
phone
string (Номер телефона)
session_token
string (Токен подтверждения телефона)
about
string
status_text
string
public_page_enabled
boolean
first_grade_year
integer <int16>
current_education
integer <int32>

Responses

Request samples

Content type
application/json
{
  • "last_name": "string",
  • "first_name": "string",
  • "middle_name": "string",
  • "no_middle_name": true,
  • "birthday": "2019-08-24",
  • "address": "string",
  • "sex": "m",
  • "grade": 0,
  • "snils": "string",
  • "phone": "string",
  • "session_token": "string",
  • "about": "string",
  • "status_text": "string",
  • "public_page_enabled": true,
  • "first_grade_year": 0,
  • "current_education": 0
}

Response samples

Content type
application/json
{
  • "error": "string"
}

Пользовательские согласия

Параметр user_id в запросе должен содержать идентификатор аутентифицированного пользователя.

Список согласий пользователя

Authorizations:
TalentOAuth
path Parameters
user_id
required
integer <int32> >= 1

ID пользователя

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Проверка наличия согласия пользователя

Authorizations:
TalentOAuth
path Parameters
user_id
required
integer <int32> >= 1

ID пользователя

kind
required
string (UserConsentKind)
Enum: "personal_data_processing" "terms_of_service"

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Фиксация согласия пользователя

Authorizations:
TalentOAuth
path Parameters
user_id
required
integer <int32> >= 1

ID пользователя

kind
required
string (UserConsentKind)
Enum: "personal_data_processing" "terms_of_service"

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Команды пользователей

Чтение параметров команды

Часть данных возвращается только при наличии аутентификации и определенных прав у пользователя, от лица которого выполняется запрос.

Authorizations:
TalentOAuthNone
path Parameters
team_id
required
integer <int32>

ID команды.

Responses

Response samples

Content type
application/json
{
  • "id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "description": "string",
  • "assignment_participation": true,
  • "created_by_assignment": true,
  • "event_id": 0,
  • "project_id": 0,
  • "owner_id": 0,
  • "contact_link": "string",
  • "invite_code": "string"
}

Обновление параметров команды

Доступно только для капитана команды и организатора мероприятия.

Authorizations:
TalentOAuth
path Parameters
team_id
required
integer <int32>

ID команды.

Request Body schema: application/json
required
title
string <= 255 characters
description
string <= 2000 characters
assignment_participation
boolean

Команда участвует в автораспределении.

project_id
integer <int32>

ID проекта команды.

Доступно для обновления только капитану команды.

contact_link
string <uri> (TeamContactLink)

Контактная ссылка.

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "description": "string",
  • "assignment_participation": true,
  • "project_id": 0,
  • "contact_link": "http://example.com"
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "description": "string",
  • "assignment_participation": true,
  • "created_by_assignment": true,
  • "event_id": 0,
  • "project_id": 0,
  • "owner_id": 0,
  • "contact_link": "string",
  • "invite_code": "string"
}

Валидация контактной ссылки

Request Body schema: application/json
required
string <uri> (TeamContactLink)

Контактная ссылка.

Responses

Request samples

Content type
application/json

Response samples

Content type
application/json
{
  • "error": "string"
}

Схемы для команд

Команда пользователей

id
required
integer <int32>

ID команды.

created_at
required
string <date-time>

Дата создания.

updated_at
required
string <date-time>

Дата обновления.

title
required
string

Название команды.

description
required
string

Описание команды.

assignment_participation
required
boolean

Команда участвует в автораспределении.

created_by_assignment
required
boolean

Команда создана автораспределением.

event_id
required
integer <int32>

ID мероприятия команды.

project_id
required
integer <int32>

ID проекта команды.

owner_id
integer <int32>

TalentID капитана команды.

Доступно только для участников команды и организатора мероприятия.

contact_link
string

Контактная ссылка команды.

Доступно только для участников команды и организатора мероприятия.

invite_code
string

Код для вступления в команду.

Доступен только капитану команды.

{
  • "id": 0,
  • "created_at": "2019-08-24T14:15:22Z",
  • "updated_at": "2019-08-24T14:15:22Z",
  • "title": "string",
  • "description": "string",
  • "assignment_participation": true,
  • "created_by_assignment": true,
  • "event_id": 0,
  • "project_id": 0,
  • "owner_id": 0,
  • "contact_link": "string",
  • "invite_code": "string"
}

Файлы любого формата

Файлы пользователей могут быть как приватными так и публичными. Публичные файлы доступны всем, в том числе и без аутентификации. Запрос к приватному файлу может осуществляться только от его владельца. Так же как и запросы на какое либо изменение файла.

Файлы могут быть загружены в хранилище и привязаны к объектам любого сервиса. Как загрузить файл:

  1. Выполнить запрос на создание файла с указанием пространства имен, где он будет использован. После успешного добавления метаинформации о файле в ответе будет получена ссылка на загрузку файла и ID файла.
  2. Загрузить файл в хранилище, используя полученный URL и заголовки.
  3. После успешной загрузки файла сообщить об этом серверу с помощью запроса /files/{file_id}/confirm-upload с указанием ID файла.
  4. При необходимости можно повторно получить ссылку на загрузку того же или альтернативного файла, отправив запрос на /files/{file_id} с указанием его размера.
  5. Для добавления ссылки на объект (ID в пространстве имен), где файл используется, нужно выполнить запрос /files/{file_id}/references/{object_id}. К одному файлу можно добавлять несколько связанных объектов.

Ограничения размера загружаемых файлов

Допустимый размер одного файла ограничен 10 мегабайтами. При его превышении возвращается 413 ответ.

Помимо этого, 413 ответ будет возвращен и когда достигается лимит суммы размера файлов пользователя.

Список файлов

Неаутентифицированный запрос публичных файлов

Допускается запрос без аутентификации при соблюдении условий:

  • присутствуют значения параметра file_id
  • параметр is_public отсутствует либо содержит true

При несоблюдении какого-либо из условий, возвращается 401 ответ.

Authorizations:
TalentOAuthNone
query Parameters
file_id
Array of strings <uuid> <= 30 items [ items <uuid > ]

Чтение метаинформации конкретных файлов. Значения указываются через запятую.

is_public
boolean

Статус публичности файла.

namespace
string

Пространство имен для объекта, где используется файл, в формате <сервис>/<таблица БД>/<поле со ссылкой на файл> (например, polls/questions/picture, venues/venue/cover, etc.)

namespace_startswith
string >= 3 characters

Фильтрация по префиксной подстроке в пространстве имен.

name_like
string >= 3 characters

Фильтрация по подстроке в имени файла.

ext
string

Фильтрация по точному совпадению расширения.

offset
integer <int32> [ 0 .. 200 ]
Default: 0

Кол-во объектов выборки для пропуска.

limit
integer <int32> [ 1 .. 200 ]
Default: 100

Максимум объектов возвращаемых в теле ответа.

order_by
string
Default: "created_at_desc"
Enum: "created_at_asc" "created_at_desc" "uploaded_at_asc" "uploaded_at_desc" "file_id"

Поле, по которому будет отсортирован список файлов.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Создание файла

Authorizations:
TalentOAuth
Request Body schema: application/json
required
namespace
required
string

Пространство имен для объекта, где используется файл, в формате <сервис>/<таблица БД>/<поле со ссылкой на файл> (например, polls/questions/picture, venues/venue/cover, etc.)

is_public
boolean
Default: false

Статус публичности файла.

extension
string [ 2 .. 10 ] characters ^\.[a-zA-Z0-9]+$

Расширение файла (например, .jpg, .png, .pdf, etc.)

content_type
required
string

MIME-тип файла.

content_length
required
integer <int32> (ContentLength) >= 1

Размер файла в байтах.

name
string (FileMetaName) <= 200 characters

Опциональное название файла.

Responses

Request samples

Content type
application/json
{
  • "namespace": "string",
  • "is_public": false,
  • "extension": "string",
  • "content_type": "string",
  • "content_length": 1,
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
  • "name": "string",
  • "content_type": "string",
  • "content_length": 1,
  • "extension": "string",
  • "is_public": true,
  • "namespace": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "uploaded_at": "2019-08-24T14:15:22Z",
  • "version": 0,
  • "method": "string",
  • "headers": {
    }
}

Получение ссылки на файл

По-умолчанию возвращается в форме 307 ответа. С параметром noredir=true возвращается 200.

Чтение приватного файла требует прохождение авторизации. Аутентифицированный пользователь должен быть владельцем файла.

Authorizations:
TalentOAuthNone
path Parameters
file_id
required
string <uuid>

ID файла

query Parameters
noredir
boolean

Responses

Response samples

Content type
application/json

Создание запроса на загрузку файла

Позволяет повторно получить ссылку на загрузку того же файла или сформировать ссылку для загрузки новой версии файла (того же типа, но другого размера).

Authorizations:
TalentOAuth
path Parameters
file_id
required
string <uuid>

ID файла

Request Body schema: application/json
required
content_length
required
integer <int32> (ContentLength) >= 1

Размер файла в байтах.

Responses

Request samples

Content type
application/json
{
  • "content_length": 1
}

Response samples

Content type
application/json
{
  • "method": "string",
  • "headers": {
    }
}

Чтение информации о файле

Чтение приватного файла требует прохождение авторизации. Аутентифицированный пользователь должен быть владельцем файла.

Authorizations:
TalentOAuthNone
path Parameters
file_id
required
string <uuid>

ID файла.

Responses

Response samples

Content type
application/json
{
  • "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
  • "name": "string",
  • "content_type": "string",
  • "content_length": 1,
  • "extension": "string",
  • "is_public": true,
  • "namespace": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "uploaded_at": "2019-08-24T14:15:22Z",
  • "version": 0
}

Обновление информации о файле

Authorizations:
TalentOAuth
path Parameters
file_id
required
string <uuid>

ID файла.

Request Body schema: application/json
required
name
string (FileMetaName) <= 200 characters

Опциональное название файла.

Responses

Request samples

Content type
application/json
{
  • "name": "string"
}

Response samples

Content type
application/json
{
  • "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
  • "name": "string",
  • "content_type": "string",
  • "content_length": 1,
  • "extension": "string",
  • "is_public": true,
  • "namespace": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "uploaded_at": "2019-08-24T14:15:22Z",
  • "version": 0
}

Подтверждение загрузки файла

Authorizations:
TalentOAuth
path Parameters
file_id
required
string <uuid>

ID файла.

Responses

Response samples

Content type
application/json
{
  • "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
  • "name": "string",
  • "content_type": "string",
  • "content_length": 1,
  • "extension": "string",
  • "is_public": true,
  • "namespace": "string",
  • "created_at": "2019-08-24T14:15:22Z",
  • "uploaded_at": "2019-08-24T14:15:22Z",
  • "version": 0
}

Добавление ссылки на файл

Authorizations:
TalentOAuth
path Parameters
file_id
required
string <uuid>

ID файла

object_id
required
string <= 36 characters

ID связанного объекта

Responses

Response samples

Content type
application/json
{
  • "object_id": "string",
  • "file_id": "8a0cfb4f-ddc9-436d-91bb-75133c583767",
  • "created_at": "2019-08-24T14:15:22Z"
}

Удаление ссылки на файл

Authorizations:
TalentOAuth
path Parameters
file_id
required
string <uuid>

ID файла

object_id
required
string <= 36 characters

ID связанного объекта

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}

Блокировки изменений

После загрузки, файл может быть заблокирован от изменений. Каждая блокировка относится к какому-то объекту в системе, для которого файл становится зависимостью. Таких объектов-блокировок на файл может быть назначено несколько. И пока есть хотя бы одна активная блокировка, файл изменить нельзя.

Блокировка может быть снята только системой, ответственной за объект, на который ссылается блок. Для представления этой ссылки, блок имеет два свойства:

  • object_key - символьное представление ключа зависимого объекта;
  • object_namespace - пространство имен ключа, определяющее тип сущности, которую ключ идентифицирует.

Блокировка файлов от изменений

Блокировки создаются только для файлов, принадлежащих пользователю. Чужие файлы, несуществующие файлы, а так же файлы, для которых блокировки уже имеются, будут пропущены и не возвращены в теле 201 ответа.

Authorizations:
TalentOAuth
path Parameters
object_namespace
required
string [ 5 .. 50 ] characters

Имя пространства имен, к которому относится зависимый объект

object_key
required
string [ 1 .. 36 ] characters

Ключ объекта зависящего от блокируемых файлов

Request Body schema: application/json
required
Array ([ 1 .. 20 ] items)
string <uuid>

Идентификатор файла

Responses

Request samples

Content type
application/json
[
  • "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]

Response samples

Content type
application/json
[
  • "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]

Изменение состояния блокировки

Изначально блокировка создается в состоянии активной. После создания, состояние можно декактивировать и активировать обратно.

Неактивная блокировка равнозначна ее отсутствию.

Authorizations:
ClientCredentials
path Parameters
object_namespace
required
string [ 5 .. 50 ] characters

Имя пространства имен, к которому относится зависимый объект

object_key
required
string [ 1 .. 36 ] characters

Ключ объекта зависящего от блокируемых файлов

Request Body schema: application/json
required
active
required
boolean

Responses

Request samples

Content type
application/json
{
  • "active": true
}

Response samples

Content type
application/json
{
  • "active": true
}

Удаление блокировки

Authorizations:
ClientCredentials
path Parameters
object_namespace
required
string [ 5 .. 50 ] characters

Имя пространства имен, к которому относится зависимый объект

object_key
required
string [ 1 .. 36 ] characters

Ключ объекта зависящего от блокируемых файлов

Responses

Response samples

Content type
application/json
{
  • "error": "string"
}