ParrotPosterParrotPoster
Начало работы
Аккаунты
Публикации
Автоматизация
API
Сайт
  • English
  • Русский
Начало работы
Аккаунты
Публикации
Автоматизация
API
Сайт
  • English
  • Русский
  • Введение
  • Начало работы
  • Методы API

    • Аутентификация
    • Аккаунты соцсетей
    • Посты

      • Посты
      • Структура Post
      • Получение постов
      • Создание поста
      • Обновление поста
      • Удаление поста
  • Ошибки

Создание поста

Мутация createPost создаёт пост: он публикуется сразу, по расписанию или сохраняется как черновик. Требуется токен с правом записи (не «только чтение») и активный тариф.

mutation {
  createPost(
    post: {
      fields: { ... }
      networks: { accounts: ["account_id"] }
    }
  ) {
    id
    status
  }
}

Параметры post (PostCreate)

ПолеТипОбязательноеОписание
fieldsPostFieldsInput!ДаСодержимое поста
networksPostNetworksInput!ДаКуда публиковать
publishAtDateTimeНетТочное время публикации
publishDelayMinutesIntНетОпубликовать через N минут от текущего момента
draftBooleanНетtrue — сохранить как черновик, не публикуя. По умолчанию false
draftParamsDraftParamsInputНетРасписание черновика (когда публиковать после перевода в публикацию)
fieldOverridesPostFieldOverridesInputНетСвой текст, ссылка, теги, файлы для отдельной соцсети или отдельного аккаунта

fields — содержимое (PostFieldsInput)

Все поля необязательные, но пост должен содержать текст или изображения/файлы, иначе сервер вернёт ошибку о незаполненных обязательных полях.

ПолеТипОписание
textStringТекст поста
linkStringСсылка, которую нужно прикрепить к посту
tagsStringТеги одной строкой
imageUrls[String!]URL изображений: сервис сам скачает и обработает их
fileUrls[String!]URL файлов (например, видео): сервис скачает их по ссылке
imageIds[ID!]Идентификаторы уже загруженных изображений
fileIds[ID!]Идентификаторы уже загруженных файлов
needUtmBooleanДобавить к ссылке UTM-метки
utmParamsUtmParamsInputUTM-метки: source, medium, campaign, content, term (все — строки)
extraPostFieldsExtraInputДополнительные параметры для отдельных соцсетей (см. ниже)

Ссылки на медиа должны быть доступны серверу ParrotPoster по HTTP(S). Если изображение по ссылке скачать не удалось, запрос завершится ошибкой.

fields.extra — настройки соцсетей (PostFieldsExtraInput)

ВКонтакте:

ПолеТипОписание
vkFromGroupBooleantrue — публиковать от имени группы, иначе от имени пользователя
vkSignedBooleanПодписать пост автором (работает при vkFromGroup: true)
vkCloseCommentsBooleanОтключить комментарии к посту
vkFirstCommentStringТекст первого комментария, который будет добавлен после публикации
vkMarkAsAdsBooleanПометить пост как рекламный
vkMuteNotificationsBooleanНе уведомлять подписчиков о посте
vkPrimaryAttachmentsModeStringСпособ показа вложений: carousel (по умолчанию) или grid

Facebook:

ПолеТипОписание
fbCtaEnabledBooleanДобавить кнопку призыва к действию для постов, где есть только ссылка
fbCtaTypeStringТип кнопки (например, LEARN_MORE, SHOP_NOW)
fbFirstCommentStringТекст первого комментария после публикации на странице

Поля bxIblockId, bxId, bxTemplateId, wpPostId, wpSiteDomain заполняют плагины 1C-Битрикс и WordPress; в своих интеграциях они не нужны.

networks — куда публиковать (PostNetworksInput)

ПолеТипОписание
accounts[ID!]Идентификаторы аккаунтов из listSocialAccounts. Нужен минимум один аккаунт

Время публикации: publishAt и publishDelayMinutes

Это взаимоисключающие параметры: указывать оба сразу нельзя — сервер вернёт ошибку.

  • Ничего не указано — публикация как можно скорее.
  • publishAt — дата и время в формате RFC 3339. Время в прошлом приравнивается к «сейчас».
  • publishDelayMinutes — число минут от текущего момента, от 0 до 525 600 (около 365 дней).

Время всегда в UTC: "2026-01-12T04:00:19.123Z". Допустима разная точность: "2026-01-12T04:00:19Z", "2026-01-12T04:00Z".

Интервал между постами

Фактическое время отправки может быть сдвинуто, если рядом уже запланированы другие посты: действует интервал между публикациями из Настройки → Посты (по умолчанию 60 секунд, допустимо от 1 до 3600). Сами посты через API можно создавать с любой частотой. К автоматизации этот интервал не применяется.

Черновики: draft и draftParams

Черновик сохраняется без публикации и виден в кабинете (Черновики и календарь).

mutation {
  createPost(
    post: {
      draft: true
      fields: { text: "Черновик" }
      networks: { accounts: ["account_id"] }
      draftParams: { schedule: { kind: DELAY, delayMinutes: 60 } }
    }
  ) {
    id
    draft
    draftParams {
      schedule {
        kind
        at
        delayMinutes
      }
    }
  }
}

schedule.kind — одно из значений NOW, DELAY (с delayMinutes), AT (с at). Если draft: true, а draftParams не указан, расписание берётся из publishAt/publishDelayMinutes (или «сразу»). Когда черновик переводят в публикацию (updatePost с draft: false), расписание превращается в publishAt.

fieldOverrides — разные тексты для разных соцсетей

Позволяет изменить text, link, tags, fileIds и linkPreview (title, caption, imageUrl) для соцсети целиком (bySocialType) или для конкретного аккаунта (byAccount):

mutation {
  createPost(
    post: {
      fields: { text: "Общий текст" }
      networks: { accounts: ["account_vk", "account_tg"] }
      fieldOverrides: {
        bySocialType: [{ socialType: TG, partial: { text: "Текст для Telegram" } }]
        byAccount: [{ accountId: "account_vk", partial: { tags: "#новости" } }]
      }
    }
  ) {
    id
    hasFieldOverrides
  }
}

Примеры

Текстовый пост в один аккаунт, публикация сразу:

mutation {
  createPost(
    post: {
      fields: { text: "Привет, мир! Это мой первый пост через API" }
      networks: { accounts: ["account_id"] }
    }
  ) {
    id
    status
  }
}

Ссылка и изображения в несколько соцсетей, от имени группы ВКонтакте:

mutation {
  createPost(
    post: {
      fields: {
        text: "Новая статья на нашем сайте"
        link: "https://example.com/article"
        imageUrls: [
          "https://example.com/images/preview1.jpg"
          "https://example.com/images/preview2.jpg"
        ]
        needUtm: true
        utmParams: { source: "parrotposter", medium: "social", campaign: "spring" }
        extra: { vkFromGroup: true, vkSigned: false }
      }
      networks: { accounts: ["account_vk", "account_tg"] }
    }
  ) {
    id
  }
}

Отложенный пост на конкретное время (UTC):

mutation {
  createPost(
    post: {
      fields: { text: "Этот пост выйдет 13 января в полдень по UTC" }
      networks: { accounts: ["account_id"] }
      publishAt: "2026-01-13T12:00:00Z"
    }
  ) {
    id
    status
    publishAt
  }
}

Пост через 30 минут:

mutation {
  createPost(
    post: {
      fields: { text: "Опубликуется через полчаса" }
      networks: { accounts: ["account_id"] }
      publishDelayMinutes: 30
    }
  ) {
    id
    publishAt
  }
}

Ответ

Мутация возвращает объект Post: запросите нужные поля. Публикация выполняется асинхронно: сразу после создания пост ещё не опубликован, а результаты по аккаунтам появятся позже в поле results (получение поста).

Требования соцсетей

Каждая соцсеть предъявляет свои требования к посту. Например, для Instagram нужно хотя бы одно изображение. Нарушение не приводит к ошибке самой мутации: причина появится в results[].errorMsg этого аккаунта. См. Ошибки.

Редактировать в Github
Последнее обновление: 10.10.2026, 02:44
Prev
Получение постов
Next
Обновление поста