Документация по API

Глоссарий

Площадка (site, сайт)
Веб-сайт для размещения статей.
VIP-площадка
Специальные площадки для переразмещений. Переразмещение на них бесплатное независимо от рейтинга.
Проект (project)
Продвигаемый сайт.
Хост
Домен проекта или площадки. Без Punycode. Пример: "президент.рф"
Ключ
Набор ("фраза", "/path") для продвижения площадки.
Статья (article)
Заказ на написание и размещение статьи. Содержит 1-3 ключа. Проект и площадка статьи меняться не могут. При переразмещении создается новая статья.

Общая информация

Все даты выдаются в виде YYYY-MM-DD HH:MM:SS по московскому времени.

Точка входа: https://webartex.ru/api/

Формат ответов: JSON

Content-Type: application/json; charset=utf-8

Авторизация

HTTP Basic Auth. Имя (id) и пароль можно узнать/поменять в настройках профиля.

Форматы ответов

Форматы успешных ответов:

{
  "result": "ok",
  "object": {}
}

Для списка объектов:

{
  "result": "ok",
  "list": [ {obj1}, {obj2} ]
}

Для справочников:

{
  "result": "ok",
  "hash": { id1: "name2", id2: "name2" }
}

Формат неуспешных ответов:

{
  "result": "fail",
  "error": "text",
  "code": "error_code",
  "errors": {"object_field1_name": ["error1", "error2"], ... }
}

errors может отдавать ошибки по полям объекта.
error - первая ошибка из errors или независимое сообщение, если errors нет.
code - идентификатор ошибки (опционально, строка, "not_found" и т.п.)

Описание объектов

Площадка

`id` int(11)
ID
`ctime` timestamp
дата-время создания объекта
`name` varchar(255)
домен в формате юникод
`category_id` int(11)
категория (см. справочник категорий)
`rating` int(11)
рейтинг
`tic` int(11)
Яндекс ТИЦ
`pr` int(11)
Google PR
`yandex_count` bigint(20)
кол-во страниц в Яндексе
`google_count` bigint(20)
кол-во страниц в Google
`domain_age` int(11)
возраст домена в месяцах
`visitors_per_day` int(11)
средняя посещаемость за сутки
`type_anchor` tinyint(1)
разрешен прием обычных статей
`type_non_anchor` tinyint(1)
разрешен прием безанкорных статей
`type_img` tinyint(1)
разрешен прием статей с картинками
`type_serm` tinyint(1)
разрешен прием SERM-статей
`type_own` tinyint(1)
разрешен прием текстов копирайтера
`base_price` float
базовая цена статьи без учета комиссий

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

`status` enum('nobody', 'pause', 'moderate', 'ready', 'approve')
состояние площадки (см. ниже)
`block_status` enum('transferred', 'active', 'pause', 'blocked', 'declined', 'deleted', 'approve')
проблемы площадки (см. ниже)
`rus_status`
статус на русском. собирается из block_status и status
`is_vip_site` tinyint(1)
флаг VIP-площадки
`domain_registered_at` date
дата регистрации домена
`metrika_id` int(11)
идентификатор Я.Метрики
`ga_id` int(11)
идентификатор Google.Analitycs
`articles_new_count` int(11)
кол-во заявок ожидающих подтверждения
`articles_wait_count` int(11)
кол-во статей ожадающих размещения
`articles_dropped_count` int(11)
кол-во размещенных статей с проблемами
`sb_google` enum('goog-malware-shavar', 'googpub-phish-shavar')
наличие в базе SafeBrowsing Google
`sb_yandex` enum('goog-malware-shavar', 'googpub-phish-shavar')
наличие в базе SafeBrowsing Yandex
`confirmation_code` varchar(16)
код подтверждения владения площадкой
`webmaster_price` float
вознаграждение вебмастера за размещение обычной статьи.

Статусы площадки status / block_status

1. status

nobody
'ничей', не подтверждены права
pause
'на паузе',
moderate
'на модерации',
ready
'работает', # принимает заказы
approve
'ждет подтверждения',

2. block_status - проблемы площадки:

active
не заблокирован, # принимает заказы
blocked
'заблокирован',
declined
'отклонен',
deleted
'удален',
approve
'слетели права',
transferred
'передан', другому пользователю

Площадка принимает заказы в состоянии:
status == 'ready' && block_status == 'active'

Если block_status не равен "active", то на статус можно не смотреть, с площадкой определенно нельзя работать.

Статья

`id` int(11)
ID
`ctime` timestamp
дата создания объекта статьи
`project_id` int(11)
ID проекта
`site_id` int(11)
ID площадки
`type` enum('anchor', 'non-anchor', 'img', 'serm', 'nofollow', 'own')
тип статьи
`status` enum('replace', 'new', 'confirmed', 'writing', 'edit', 'moderation', 'moderation_reject', 'wait', 'waitindex', 'ready', 'decline', 'replaced', 'cancel', 'rewrite', 'in_package', 'draft')
состояние статьи (см. ниже)
`block_status` enum('none', 'lost', 'noindex', 'lostlinks')
проблемы статьи (см. ниже)
`rus_status`
статус на русском. собирается из block_status и status
`themes` enum('site','project')
тематика статьи площадки / проекта
`title` varchar(255)
заголовок статьи
`body` text
HTML-код статьи
`url` varchar(2083)
URL размещения статьи (без http://)
`order_date` datetime
опциональная дата создания заказа, может быть раньше ctime (см. ниже)
`site_rating` int(11)
рейтинг площадки на момент заказа
`write_date` datetime
дата написания
`publication_date` datetime
дата размещения статьи
`google_index` tinyint(1)
проиндексирована Google
`yandex_index` tinyint(1)
проиндексирована Yandex
`index_date` datetime
дата индексации статьи
`deadline` datetime
дедлайн на текущий статус: подтверждения (new), написания (копирайтера, write/edit), размещения (wait)
`all_payed` tinyint(1)
все вознаграждение за статью выплачено
`replace_cause` enum('admin', 'webmaster_reject', 'webmaster_confirm_timeout', 'publication_timeout', 'webmaster_decline')
причина отмены статьи (см. ниже)
`rating` tinyint(4)
оценка текста статьи
`rating_comment` text
комментарий к оценке
`rating_date` datetime
дата оценки
`base_price` float
базовая цена статьи без учета комиссий и типа статьи на момент заказа

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

`bonus_time` datetime
дедлайн получения бонуса за быстрое размещение
`bonus_activated` tinyint(1)
будет выплачен бонус за быстрое размещение
`bonus_payed` tinyint(1)
бонус выплачен
`bonus_amount` decimal(16,4)
сумма бонуса

order_date

Некоторые заказы формируются во внешних системах, а затем создаются в webartex. При создании статье устанавливается order_date, site_rating и цена на дату формирования заказа. Все дедлайны рассчитываются от ctime как обычно.

Статусы статьи status / block_status

1. status

Из любого статуса статья может перейти в статус replace или cancel.

draft
'Черновик', в процессе создания, еще не оплачено
new
'Новая', создана, ждет подтверждения
confirmed
'Подтверждена', Подтверждена вебмастером
writing
'На копирайтинге', # сразу при назначении копирайтера (writer_id)
edit
'На копирайтинге', # после первого редактирования
wait
'Ожидает размещения', передана на размещение вебмастеру, ждём url статьи
waitindex
'Ожидает индексации', размещение по указанному url подтверждено, ждём индексации Я/G
ready
'Размещена', начинаем выплаты по статье
decline
'Отклонена', вебмастер отклонил статью. редактор может отправить на доработку или на переразмещение
rewrite
'На доработку', статья дорабатывается копирайтером
replace
'Переразмещение', нужно переразместить заказ на другую площадку
replaced
'Заменена', статус старой статьи после размещения. архивный
cancel
'Отменена'

2. block_status

none
нет проблем
lost
страница недоступна
lostlinks
не все ссылки в порядке
noindex
выпадение из индекса Я/G
links_exists
ссылки не удалены

Причина отмены статьи replace_cause

admin
отмена адмнистратором
webmaster_reject
вебмастер отклонил заявку
webmaster_confirm_timeout
вебмастер не подтвердил заявку
publication_timeout
дедлайн размещения
webmaster_decline
вебмастер отклонил статью

Методы API

Справочники

Список регионов

/api/webmaster/regions

Cписок категорий

/api/webmaster/categories

Площадки

Список площадок

/api/webmaster/sites/list

Просмотр площадки

/api/webmaster/sites/view/:id

Проверка кода подтверждения площадки

/api/webmaster/sites/check_approve/:id

Проверка подключения Яндекс.Метрики

/api/webmaster/sites/check_metrika/:id

result: "ok" и установка object.metrika_id > 0 означает успешное подключение.

Проверка подключения Google Analitycs

/api/webmaster/sites/check_ga/:id

result: "ok" и установка object.ga_id > 0 означает успешное подключение.

Постановка площадки на паузу

/api/webmaster/sites/set_pause/:id/:pause
  • :pause == 0 - снять с паузы
  • :pause == 1 - поставить на паузу

Создание площадки

/api/webmaster/sites/create?url=domain.ru

Статьи

Список статей

  • /api/webmaster/articles/list
  • /api/webmaster/articles/list?site_ids=N1,N2,N3 - фильтр по site.id
  • /api/webmaster/articles/list?status=new - заявки на подтверждение
  • /api/webmaster/articles/list?status=wait - статьи на размещение

Просмотр статьи

/api/webmaster/articles/view/:id

Принять заявку (в статусе new)

/api/webmaster/articles/accept/:id

Отклонить заявку (в статусе new)

/api/webmaster/articles/reject/:id

Опционально:

  • ?message=Не принимаем конкурентов - причина отклонения

Разместить статью (в статусе wait|waitindex|ready)

/api/webmaster/articles/check/:id?url=http://domain.ru/path

Опционально:

  • ?score=N - Оценка текста статьи N = 1-5.
  • ?message=Пишите еще - комментарий к оценке.

Отклонить статью (в статусе wait)

/api/webmaster/articles/decline/:id

Опционально:

  • ?score=N - Оценка текста статьи N = 1-5.
  • ?message=Проверьте ошибки - причина отклонения, что нужно доработать.

Оценить текст статьи

/api/webmaster/articles/rate/:id?score=N

N = 1-5 - оценка

Опционально:

  • ?message=Пишите еще - комментарий к оценке.