Перейти к основному содержимому

Объявления

Создание объявления​

Метод API предназначен для создания нового объявления о задаче от имени компании.

Запрос​

Метод: POST URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/announcements

Path Parameters​

ПараметрТипОбязательныйОписание
organisationIdstring (uuid)ДаИдентификатор организации

Request Body​

ПараметрТипОбязательныйОписание
categoriesarray[string]ДаID категории и подкатегории в формате Mongo ObjectId
addressstringДаАдрес выполнения задачи
descriptionstringДаПодробное описание задачи
servicestringДаКраткое название услуги
priceint32НетСтоимость выполнения В КОПЕЙКАХ
rewardstringНетОписание вознаграждения в виде строки (напр. "1000 руб/час")
workTimestringДаОписание времени исполнения задачи

Правила валидации​

ПараметрПравило
categoriesМассив не может быть пустым. Каждый элемент — строка в формате Mongo ObjectId
addressСтрока длиной 1–2000 символов
descriptionСтрока длиной 1–2000 символов
serviceСтрока длиной 1–255 символов
priceЦелое положительное число, максимум 100 000 000 копеек (1 000 000 рублей)
rewardСтрока длиной 1–255 символов
workTimeСтрока длиной 1–200 символов

Пример​

curl -X POST "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/announcements" \
-H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
-H "Content-Type: application/json" \
-d '{
"categories": ["5f2d2604af74f046a9a86844", "5f2d2643af74f046a9a86846"],
"address": "г. Москва, ул. Ленина, д. 1",
"description": "Требуется доставка комплекта документов в офис",
"service": "Курьерская доставка",
"price": 50000,
"reward": "500 рублей за доставку",
"workTime": "с 10:00 до 12:00"
}'

Пример успешного ответа​

{
"requestId": "51427d6d-8c2a-4577-82b4-dfafc29a5479",
"result": {
"id": 809,
"createdBy": "6942bde29c4ba8df5b14653f",
"executors": [],
"categories": ["5f2d2604af74f046a9a86844", "5f2d2643af74f046a9a86846"],
"status": "PUBLISHED",
"type": "companyTask",
"address": "г. Москва, ул. Ленина, д. 1",
"description": "Требуется доставка комплекта документов в офис",
"service": "Курьерская доставка",
"workTime": "с 10:00 до 12:00",
"reward": "500 рублей за доставку",
"photos": [],
"price": 50000,
"blockedText": null,
"stats": {
"viewCount": 1,
"offerCount": 0
},
"notifySettings": {
"pushNotification": true
},
"publish_notify": false,
"createdAt": "2026-02-09T12:06:55.764Z",
"updatedAt": "2026-02-09T12:06:55.764Z"
},
"success": true
}

Описание ответа:​

КлючОписание
requestIdУникальный идентификатор запроса
successСтатус выполнения (true/false)
resultОбъект созданного объявления
- idИдентификатор объявления
- createdByID пользователя (ObjectId), создавшего объявление
- executorsМассив ID выбранных исполнителей
- categoriesМассив ID категорий (Mongo ObjectId)
- statusТекущий статус (см. справочник ниже)
- typeТип объявления
- addressАдрес выполнения задачи
- descriptionОписание задачи
- serviceКраткое название услуги
- workTimeОписание времени исполнения задачи
- rewardТекстовое описание вознаграждения
- photosМассив ссылок на фотографии объявления
- priceИтоговая сумма в копейках; null — цена не указана («По договорённости»)
- blockedTextТекст блокировки объявления модерацией (null, если нет)
- statsСтатистика просмотров и откликов (см. «Поля статистики» ниже)
- notifySettingsНастройки уведомлений (см. «Настройки уведомлений» ниже)
- publish_notifyФлаг отправки уведомления о публикации
- createdAtДата и время создания (ISO 8601)
- updatedAtДата и время последнего обновления (ISO 8601)

Дополнительно объявление может содержать поля targetExecutorsQuantity (целевое количество исполнителей), options (опции объявления) и groups (тэги объявления) — см. сводные таблицы ниже.

Поля статистики (stats)​

ПолеТипОписание
viewCountnumberКоличество просмотров объявления
offerCountnumberКоличество откликов от исполнителей

Настройки уведомлений (notifySettings)​

ПолеТипОписание
pushNotificationbooleanPush-уведомления

Опции объявления (options)​

ПолеТипОписание
closeOnTargetExecutorsReachedbooleanАвтозакрытие объявления при достижении целевого количества исполнителей

Поля тэга объявления (groups[])​

ПолеТипОписание
idstringID тэга
namestringНазвание тэга

Справочник статусов (status)​

СтатусОписание
PUBLISHEDОбъявление опубликовано и принимает отклики
IN_PROGRESSНабор закрыт (close-recruitment), идёт работа по уже принятым откликам
CLOSEDРаботы по объявлению завершены
CANCELОбъявление отменено
ARCHIVEDОбъявление перемещено в архив

Возможные ошибки​

CodeОписание
VALIDATION_ERRORОшибка валидации
FORBIDDEN_ERRORОшибка авторизации
UNKNOWN_ERRORОшибка сервера

 

Закрытие набора по объявлению​

Метод API предназначен для прекращения приема откликов и закрытия набора исполнителей по конкретному объявлению компании. После вызова объявление переходит в статус IN_PROGRESS.

Запрос​

Метод: POST URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/announcements/{announcementId}/close-recruitment

Path Parameters​

ПараметрТипОбязательныйОписание
organisationIdstring (uuid)ДаИдентификатор организации
announcementIdint32ДаИдентификатор объявления

Request Body​

Тело запроса не требуется (Empty Body).

Пример​

curl --location --request POST "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/announcements/123/close-recruitment" \
--header "accept: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ"

Пример успешного ответа:​

{
"requestId": "b4002774-00ad-4ab5-8f5f-d660a49d04ec",
"success": true
}

Описание ответа:​

КлючОписание
requestIdУникальный идентификатор запроса
successСтатус выполнения (true/false)

 

Фильтрация объявлений​

Метод предназначен для получения списка объявлений компании с расширенной фильтрацией.

Запрос​

Метод: POST URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/announcements/filter

Общая структура запроса описана в разделе Фильтрация: общая структура.

Доступные фильтры (filters)​

Имя (name)Тип значения (value)Пример значенияОписание
IDnumber / array[number][795, 811]Фильтрация по конкретным ID объявлений
STATUSstring / array[string]["PUBLISHED", "CLOSED"]Строгое соответствие статусам объявления (см. справочник ниже)
CATEGORY_IDstring / array[string]["5f2d2604af74f046a9a86844"]Соответствие указанным категориям (Mongo ObjectId)
GROUP_IDstring / array[string]["6942bde29c4ba8df5b14653f"]Фильтрация по ID тэгов объявлений (Mongo ObjectId)
GROUP_PRESENCEbooleantruetrue — только объявления, имеющие хотя бы один тэг; false — только без тэгов
CREATED_ATдиапазон дат{"from": "2026-01-01T00:00:00.000Z", "to": "2026-01-31T23:59:59.999Z"}Поиск в диапазоне дат создания (включительно)
UPDATED_ATдиапазон дат{"from": "2026-01-01T00:00:00.000Z", "to": "2026-01-31T23:59:59.999Z"}Поиск в диапазоне дат последнего обновления
ADDRESSstring"Москва"Поиск по полному совпадению адреса

Доступные сортировки​

Поле (field)Описание
CREATED_ATДата создания объявления

Других полей сортировки нет.

Поля, обрабатываемые по query​

Текстовый поиск (query) выполняет поиск частичного совпадения по названию услуги и вознаграждению. Если строка запроса является числом — дополнительно ищет по идентификатору объявления.

Статусы объявления​

СтатусОписание
PUBLISHEDОбъявление опубликовано и принимает отклики
IN_PROGRESSНабор закрыт (close-recruitment), идёт работа по уже принятым откликам
CLOSEDРаботы по объявлению завершены
CANCELОбъявление отменено
ARCHIVEDОбъявление перемещено в архив

Пример​

curl "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/announcements/filter" \
-H "content-type: application/json" \
--data-raw '{
"filters": [
{
"name": "CATEGORY_ID",
"value": ["5f2d2604af74f046a9a86844"]
},
{
"name": "STATUS",
"value": ["PUBLISHED", "CLOSED"]
},
{
"name": "CREATED_AT",
"value": {
"from": "2026-01-01T00:00:00.000Z",
"to": "2026-02-09T23:59:59.999Z"
}
},
{
"name": "ADDRESS",
"value": "Москва"
}
],
"order": [
{ "field": "CREATED_AT", "sort": "DESC" }
],
"pagination": {
"limit": 20,
"lastId": null
}
}'

Пример успешного ответа:​

{
"requestId": "9a3b8c2d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"result": {
"lastId": 795,
"items": [
{
"id": 795,
"categories": ["5f2d2604af74f046a9a86844", "5fc9606aaf6b9e0514304f06"],
"service": "Пеший курьер (документы)",
"createdAt": "2026-01-15T14:30:00.000Z",
"price": 50000,
"stats": {
"viewCount": 42,
"offerCount": 5
},
"address": "г. Москва, БЦ Сити",
"status": "PUBLISHED",
"reward": "500 руб.",
"workTime": "В течение дня",
"description": "Забрать документы в офисе А и отвезти в офис Б."
}
]
},
"success": true
}
КлючОписание
requestIdУникальный UUID запроса для логирования и отслеживания транзакции
successФлаг успешности выполнения запроса (true при успешной выборке)
resultКонтейнер с данными выборки
lastIdИдентификатор (id) последнего элемента в текущем списке. Используется для пагинации в следующем запросе
itemsМассив объектов объявлений, соответствующих заданным фильтрам
idСистемный порядковый номер объявления
categoriesСписок идентификаторов категорий (Mongo ObjectId), к которым относится задача
serviceКраткое название или заголовок услуги
descriptionПолное текстовое описание условий задачи
addressТекстовый адрес места выполнения задачи
statusТекущий статус объявления
priceСтоимость выполнения задачи в копейках; null — цена не указана («По договорённости»)
rewardТекстовое описание вознаграждения
workTimeОписание временных рамок или срока выполнения задачи
statsОбъект статистических данных объявления
viewCountОбщее количество просмотров данного объявления
offerCountКоличество откликов/предложений, полученных от исполнителей
createdAtДата и время создания объявления в формате ISO 8601

 

Получение информации об объявлении​

Метод API предназначен для получения подробных данных по конкретному объявлению компании по его идентификатору.

Запрос​

Метод: GET URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/announcements/{announcementId}

Path Parameters​

ПараметрТипОбязательныйОписание
organisationIdstring (uuid)ДаИдентификатор организации
announcementIdint32ДаИдентификатор объявления

Пример​

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/announcements/123" \
--header "accept: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ"

Пример успешного ответа:​

{
"requestId": "0ab376b1-f4d7-4d0e-9653-7f897477a1a8",
"result": {
"id": 759,
"createdBy": "6942bde29c4ba8df5b14653f",
"executors": ["6964d3202c5f0714d4ef6c0e"],
"categories": ["5f2d2620af74f046a9a86845", "5f2d28b5af74f046a9a8684b"],
"status": "PUBLISHED",
"type": "companyTask",
"address": "Москва, МГУ",
"description": "APIDog test",
"service": "Test a",
"workTime": "Завтра",
"reward": "350 в час",
"photos": [],
"price": 5000,
"blockedText": null,
"stats": {
"viewCount": 43,
"offerCount": 1
},
"notifySettings": {},
"publish_notify": false,
"createdAt": "2026-02-04T10:00:15.250Z",
"updatedAt": "2026-02-04T10:00:15.250Z"
},
"success": true
}

Описание полей ответа (result)​

КлючОписание
idУникальный ID объявления в системе
createdByID пользователя (ObjectId), создавшего объявление
executorsМассив ID выбранных исполнителей
categoriesМассив ID категорий (Mongo ObjectId)
statusТекущий статус объявления (см. справочник выше)
typeТип объявления
addressАдрес места выполнения задачи
descriptionПолное описание задачи
serviceКраткое название услуги
workTimeОписание времени исполнения задачи
rewardТекстовое описание вознаграждения
photosМассив ссылок на фотографии объявления
priceСтоимость выполнения в копейках; null — цена не указана («По договорённости»)
blockedTextТекст блокировки объявления модерацией (null, если нет)
statsСтатистика просмотров и откликов (см. «Поля статистики» в методе «Создание объявления»)
notifySettingsНастройки уведомлений (см. «Настройки уведомлений» в методе «Создание объявления»)
publish_notifyФлаг отправки уведомления о публикации
createdAtДата и время создания (ISO 8601)
updatedAtДата и время последнего обновления (ISO 8601)