/api/v5/post/

Create a post.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string | null

Creates an approval workflow for this post. If the post is already part of an approval workflow, this will overwrite it. (see approvals for details).

string | null

The id of user who is assigned to the post.

string | null

The channel to which this post has been or will be published.

string

When copy_from_id is specified all CU fields become optional overrides of the original data.

  • only works with the same channel_id or another channel_id with the same type - only works if user has the ability to post:create in the target scope - copies all asset_ids to the primary library in the target scope and updates new post attributes with new asset IDs - term_ids are added to the new post only if found by name in the target scope - Plugs are copied over (specifically plug.budget, plug.start_at, plug.end_at) - live_at, url, approval_workflow_id, ingested are set to null - sets created_at and updated_at to now - origin_ids are carried over on the same scope (ex. post created from a brief or another post) - sets status to draft unless specified - links are re-shortened for new scope - replaces original user_id with the current user_id - activity will be the same as creating a new post - comments/Followers do not carry over
    V4 concepts:
  • Targeting does not carry over - Guardrail only carries over on same scope - Analytics does not carry over
    Below is an example of copying a post to a different scope, channel, change the name, and immediately queue it using POST /api/v5/post/. json { "copy_from_id": "post:1", "channel_id": "channel:2", "name": "This is my new post", "scope_id": "license:2", "status": "queued" }
string | null

A short description about the post.

ext
object | null

The structure defined by schema_id.

date-time | null

When this post should/did go live. If null and status is live, live_at will be the current time. In all other cases null indicates that the post should go live ASAP. Note - regardless of whether a post is published or not, live_at reflects when the post goes live to the public.

string | null

The timezone the post was intended to be scheduled in (usually the device's timezone unless an app specifies otherwise). live_at offset isn't enough to know.

string | null

The name of the post.

origin_ids
array

Tracks where the post was created from.

origin_ids
string | null

The unique platform ID.

string | null

ID of the production workflow that the post is attached to. Note: Post's production_workflow_id and approval_workflow_id values are independent of one another.

string | null

The schema defining the type of post (must be a schema of type post matching the channel)

string
required

A valid license ID ^license:\d+$.

string
enum

Below you'll find all possible statuses during a post's life cycle.

draft

The post is in a holding pattern.

approvals

The post is currently part of an approval workflow. A post can be removed from approvals by reverting it back to draft. Users with post:publish permission may bypass approvals by setting the status to queued. Once approved, the post status will either be queued or set back to draft if the current status is approvals.queued or approvals.draft.

queued

The post is queued to be published to the associated channel. Publishing happens only once live_at is in the past or null. A post is either queued automatically upon approval or manually if a user has the post:publish permission. Only a queued or queued.paused status can be changed by the user (usually back to draft).

  • queued.paused: the post is queued but publishing is currently paused (the post cannot be published) - queued.publishing: The post is currently being published - queued.unpublishing: The post is currently being unpublished - queued.published: the post is still queued and has been successfully published. This indicates that the post hasn't gone live yet usually because of an external queue or some privacy controls. - queued.error: there was an error sending the post to the channel

live

The post is now live to the public on the associated channel. This state is either set automatically after queued.published or manually by a user with post:publish permission. In order to change the post's status to live, live_at is required.

Unpublished

The post is now unpublished on the external platform. If post failed to unpublish, it will get reverted back to live from queued.unpublishing.

term_ids
array of strings

An array of term IDs

term_ids
metadata
array of objects

This attribute can be used when post and metadata must be created under the same transaction.
e.g. Publishing a post with metadata immediately with automatic link tracking. (Preview)

metadata
boolean

To indicate whether the new post to be copied should be assign to the user assigned on post to copy from.

Responses

Retry-After header

Language
Credentials
OAuth2
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json