---
title: "Create social posts for multiple locations."
method: POST
path: "/api/v4/bulk-posts"
tags: ["Posts"]
---

# Create social posts for multiple locations.

`POST /api/v4/bulk-posts`

Creates one social post and publishes it across many locations in a single request.

## Request body

- object
  - `input` CreateSocialPostMutationInput, required
    - `postName` string, required
    - `locationIds` string[], required
    - `postType` 'EVENT' | 'OFFER' | 'ANNOUNCEMENT' | 'COVID19' | 'PRODUCT', required — Social Post types.
    - `postSites` SitesType[], required
    - `postMessage` PostMessageInput[]
      - `site` 'GOOGLE' | 'FACEBOOK', required — Sites a post can be published to.
      - `message` string, required
    - `postCta` PostCtaInput[]
      - `site` 'GOOGLE' | 'FACEBOOK', required — Sites a post can be published to.
      - `type` string, required
      - `url` string, required
    - `postMediaUrl` SocialPostMediaInput[]
      - `site` 'GOOGLE' | 'FACEBOOK', required — Sites a post can be published to.
      - `url` string, required
      - `type` 'IMAGE' | 'VIDEO' — Media type for social posts.
    - `postScheduledDates` PostScheduledDatesInput
      - `startDatetime` string, required — Custom scalar Datetime
      - `endDatetime` string, required — Custom scalar Datetime
      - `removalSites` SitesType[]
    - `postContextInfo` PostContextInfoInput — Additional details for post based on post_type.
      - `couponCode` string
      - `redeemUrl` string
      - `termsConditions` string
      - `title` string
      - `discount` string
      - `locationType` string
      - `startDay` string, date
      - `startTime` string
      - `endDay` string, date
      - `endTime` string
    - `componentIdentifier` string
    - `componentType` string
    - `products` ProductInfoInput[]
      - `productId` string
      - `name` string
      - `category` string
      - `price` string
      - `minPrice` string
      - `maxPrice` string
      - `description` string
      - `photo` string
      - `cta` PostCtaInput[]
        - `site` 'GOOGLE' | 'FACEBOOK', required — Sites a post can be published to.
        - `type` string, required
        - `url` string, required
      - `sites` SitesType[]
    - `clientMutationId` string

## Response `200`

Successful response

- SocialPostMutation — Result of a social post create/edit mutation.
  - `clientMutationId` string
  - `success` boolean, required
  - `errors` MutationError[]
    - `message` string
    - `code` string
    - `contextInfo` ContextError[]
      - `key` string
      - `value` string
  - `socialPost` SocialPost — A newer multi-site/multi-location post campaign.
    - `id` string, required
    - `name` string, required
    - `status` 'INPROGRESS' | 'SCHEDULED' | 'SUCCESS' | 'ERROR' | 'DELETED' | 'EXPIRED', required — Social Post lifecycle statuses.
    - `type` 'EVENT' | 'OFFER' | 'ANNOUNCEMENT' | 'COVID19' | 'PRODUCT', required — Social Post types.
    - `createdAt` string, date, required
    - `deletedAt` string, date
    - `expiredAt` string, date
    - `scheduledStartDate` string, date
    - `scheduledEndDate` string, date
    - `views` integer
    - `clicks` integer
    - `shares` integer
    - `reactions` integer
    - `comments` integer
    - `sites` SitesType[], required
    - `message` PostMessage[]
      - `message` string
      - `site` 'GOOGLE' | 'FACEBOOK' — Sites a post can be published to.
    - `cta` PostCta[]
      - `type` SiteCtaTypes
        - `value` string
        - `label` string
      - `url` string
      - `site` 'GOOGLE' | 'FACEBOOK' — Sites a post can be published to.
      - `tinyUrl` string
    - `contextInfo` PostContextInfo
      - `couponCode` string
      - `redeemUrl` string
      - `termsConditions` string
      - `title` string
      - `discount` string
      - `locationType` string
      - `startDay` string, date
      - `startTime` string
      - `endDay` string, date
      - `endTime` string
    - `mediaUrl` SocialPostMedia[]
      - `url` string
      - `site` 'GOOGLE' | 'FACEBOOK' — Sites a post can be published to.
      - `type` 'IMAGE' | 'VIDEO' — Media type for social posts.
    - `publishDetails` SocialPostPublishDetail[]
      - `site` 'GOOGLE' | 'FACEBOOK' — Sites a post can be published to.
      - `status` 'PUBLISHING' | 'PUBLISHED' | 'DELETED' | 'EXPIRED' | 'ERROR' — Publish statuses per site.
      - `createdDate` string, date
      - `publishedDate` string, date
      - `deletedDate` string, date
      - `expiredDate` string, date
      - `submissionError` string
    - `postLinks` SocialPostPublishedLink[]
      - `site` 'GOOGLE' | 'FACEBOOK' — Sites a post can be published to.
      - `link` string
    - `locationIds` integer[], required

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `500` — Server error

## Changes

> 4 revisions in range; 1 could not be searched.

- **2026-07-26** `f41a4d1dfdb8` — 1 breaking, 13 warning
  - added the new required request property `input`
  - removed the request property `clientMutationId`
  - removed the request property `componentIdentifier`
  - removed the request property `componentType`
  - …10 more

[Change history](https://skmtc.dev/listingsapi/apis/listings-api/changes/api/v4/bulk-posts/post.md)

---

[API](https://skmtc.dev/listingsapi/apis/listings-api.md) · [All operations](https://skmtc.dev/listingsapi/apis/listings-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/listingsapi/listings-api/revisions/2d0f7a88fc45/schema)
