---
title: "Create Content"
method: POST
path: "/cx/social-messaging/v1/contents"
tags: ["Contents"]
---

# Create Content

`POST /cx/social-messaging/v1/contents`

Creates new content for use in discussions.

This request is used to reply to already-posted content or to initiate a discussion. If authorized, the
authenticated user will be used as the content author.

Content will be created and pushed asynchronously to the channel. When the content is successfully pushed to
the channel, the Content.Exported event will be reported.

The account context of this request is determined by the RC Account Id associated with the access token provided
in the Authorization header.

Replying to customer content is usually possible unless the channel or conversation is read only. Composing
content, on the contrary, depends on the channel itself.

* The channel may not support it (and be purely reactive like Instagram, Messenger, etc.).

* Some channels (usually public accounts like Twitter or Facebook pages) allow for the publishing of content
without targeting specific individuals.

* Some channels (usually non-public media) require specific targeting (phone number for SMS, email address
for email, customer_id, etc.) to be able to create content. This is channel-specific and detailed under the
generic parameters.

## Request body

- CreateContentRequest
  - `authorIdentityId` string — Identity identifier of the author of content. Not mandatory on creation, by default it uses the token's user first identity on channel.
  - `body` string — The content's body. On creation this field is mandatory except for WhatsApp content using templates. The following are the max length restrictions for the different channels supported. Channel and max length * Apple Messages For Business (max length 10000) * Email (max length 262144) * RingCX Digital Messaging (max length 1024) * Facebook (max length 8000) * GoogleBusinessMessages (max length 3000) * Google My Business (max length 4000) * Instagram (max length 950) * Instagram Messaging (max length 1000) * LinkedIn (max length 3000) * Messenger (max length 2000) * Twitter (max length 280) * Viber (max length 7000) * WhatsApp (max length 3800) * Youtube (max length 8000)
  - `inReplyToContentId` string — The content identifier to which this content is a reply to. On creation, if omitted, a new discussion will be created. If the channel does not support to initiate discussion this parameter is mandatory.
  - `public` boolean — True if the content is publicly visible on the remote channel (default). Private content is NOT supported on every channel.
  - `sourceId` string — Identifier of the channel. On creation if `inReplyToContentId` is specified, the channel will be determined from it. Otherwise, this parameter is mandatory.
  - `attachmentIds` AttachmentId[] — An array containing the attachment identifiers that need to be attached to the content.
  - `title` string — Applicable to Email channels only. The subject of the email. This field is mandatory when initiating a discussion.
  - `to` union
    - SocMsgPhoneNumber[] — Applicable on SMS/WhatsApp channels only. Must be a phone number to which the message will be sent. It must be in the E.164 format. For example: +33634231224. This parameter is mandatory when initiating a discussion.
    - SocMsgEmailAddress[] — Applicable on Email channels only. An array containing the email addresses used in sections of the email. This parameter is mandatory when initiating a discussion.
  - `cc` SocMsgEmailAddress[] — Applicable on Email channels only. An array containing the email addresses used in sections of the email. This parameter is mandatory when initiating a discussion.
  - `bcc` SocMsgEmailAddress[] — Applicable on Email channels only. An array containing the email addresses used in sections of the email. This parameter is mandatory when initiating a discussion.
  - `templateName` string — Applicable to WhatsApp channels only. Name of the Whatsapp template to use for the content. All available template names are visible on the Whatsapp Business Manager interface.
  - `templateLanguage` string — Applicable to WhatsApp channels only. Language of the Whatsapp template to use for the content. All available template languages are visible on the Whatsapp Business Manager interface. Language specified must conform to the ISO 639-1 alpha-2 codes for representing the names of languages.
  - `components` object[] — Applicable to WhatsApp channels only. Component configuration of the Whatsapp template to use for the content. All available components are visible on the Whatsapp Business Manager interface.
    - `type` string
    - `parameters` object[]
      - `type` string
      - `text` string
  - `contextData` ContentContextData — Additional data of the content. The contextData hash keys are the custom fields keys.
  - `autoSubmitted` boolean — Auto submitted content: - won't reopen tasks or interventions - can be used to send automatic messages like asking an user to follow on twitter, sending a survey, etc, - doesn't get included in statistics

## Response `201`

Successful response.

- ContentModel
  - `attachments` ContentAttachment[], required — An array containing the attachments that are attached to the content.
    - `contentType` string — Type of the attachment, which is generally a MIME attachment type like "image/jpeg", etc. Security level in ED determines what type of attachment is allowed. Based on the security level the following attachment types are supported. "Strict" level allows safe extensions below: Content name and supported types * audio (supports aac mp3 ogg m4a) * image (supports bmp gif jpg jpeg png svg webp) * pdf (supports pdf) * text (supports csv txt log) * video (supports avi flv m4v mkv mov mp4 mpg qt wmv) * other (supports amr dms vcard tif tiff mpeg) "Relaxed" level allows documents: Content name and supported types * excel (supports xls xlsm xlsx xlc xlt xltm xltx) * presentation (supports key odp otp) * powerpoint (supports pps ppt pptx pot) * spreadsheet (supports numbers ods ots) * word (supports doc docm docx dotm dotx) * word_processing (supports pages odt ott rtf) "Permissive" level allows all documents. However, there are no security level restrictions for content posted through the channel.
    - `creationTime` string, date-time — Creation time of the attachment.
    - `embedded` boolean — Embedded in a content.
    - `filename` string — Filename of the attachment.
    - `id` string — Identifier of the attachment.
    - `public` boolean — Privacy setting of the attachment.
    - `size` integer — Size of the attachment.
    - `lastModifiedTime` string, date-time — The time when the last modification was completed.
    - `uri` string, uri — Uri of the attachment.
  - `authorIdentityId` string, required — Identity identifier of the author of content. Not mandatory on creation, by default it uses the token's user first identity on channel.
  - `autoSubmitted` boolean, required — Auto submitted content: - won't reopen tasks or interventions - can be used to send automatic messages like asking an user to follow on twitter, sending a survey, etc, - doesn't get included in statistics
  - `body` string, required — The content's body. On creation this field is mandatory except for WhatsApp content using templates. The following are the max length restrictions for the different channels supported. Channel and max length * Apple Messages For Business (max length 10000) * Email (max length 262144) * RingCX Digital Messaging (max length 1024) * Facebook (max length 8000) * GoogleBusinessMessages (max length 3000) * Google My Business (max length 4000) * Instagram (max length 950) * Instagram Messaging (max length 1000) * LinkedIn (max length 3000) * Messenger (max length 2000) * Twitter (max length 280) * Viber (max length 7000) * WhatsApp (max length 3800) * Youtube (max length 8000)
  - `bodyFormatted` ContentBodyFormatted, required — Text and HTML formatted versions of the content body.
    - `html` string
    - `text` string
  - `bodyInputFormat` 'Text' | 'Html', required — Values can be Text or Html.
  - `categoryIds` string[], required — List of the category identifiers of the content.
  - `contextData` ContentContextData — Additional data of the content. The contextData hash keys are the custom fields keys.
  - `creationTime` string, date-time, required — Creation time of the resource.
  - `createdFrom` 'Synchronizer' | 'Interface' | 'Api' | 'AutoSurvey' | 'AutoResponseTrigger' | 'AutoRequestEmail', required — Created from of the content.
  - `creatorId` string, required — RC user id of the creator
  - `foreignCategories` string[] — External categories of the content. Present only if the content has foreignCategories.
  - `id` string, required — Identifier of the content.
  - `inReplyToAuthorIdentityId` string, required — The identity identifier of the content to which this content is a reply to.
  - `inReplyToContentId` string, required — The content identifier to which this content is a reply to. On creation, if omitted, a new discussion will be created. If the channel does not support to initiate discussion this parameter is mandatory.
  - `interventionId` string, required — The intervention identifier of the content.
  - `language` string, required — Language of the content.
  - `public` boolean, required — True if the content is publicly visible on the remote channel (default). Private content is NOT supported on every channel.
  - `published` boolean, required — True if the content is published on the remote channel.
  - `rating` integer, required — Rating of the content. Present only if the content supports rating and rating is filled.
  - `remotelyDeleted` boolean, required — True if the content has been deleted on the remote channel.
  - `sourceId` string, required — Identifier of the channel. On creation if `inReplyToContentId` is specified, the channel will be determined from it. Otherwise, this parameter is mandatory.
  - `sourceType` 'AppleMessagesForBusiness' | 'Email' | 'EngageMessaging' | 'Facebook' | 'GoogleBusinessMessages' | 'GoogleMyBusiness' | 'Instagram' | 'InstagramMessaging' | 'Linkedin' | 'Messenger' | 'Twitter' | 'Viber' | 'WhatsApp' | 'Youtube', required — Type of the channel.
  - `sourceUri` string, uri, required — External Uri of the content channel.
  - `status` 'New' | 'Assigned' | 'Replied' | 'UserReply' | 'UserInitiated' | 'Ignored', required — Content status.
  - `synchronizationStatus` string, required — Synchronization status.
  - `synchronizationError` string, required — Synchronization error details.
  - `threadId` string, required — Content thread identifier of the content.
  - `title` string, required — Applicable to Email channels only. The subject of the email. This field is mandatory when initiating a discussion.
  - `type` 'Album' | 'AuthenticateMessage' | 'AuthenticateResponse' | 'Carousel' | 'CarouselMessage' | 'Comment' | 'ContactMessage' | 'Content' | 'Email' | 'FormMessage' | 'FormResponse' | 'HsmMessage' | 'Link' | 'ListMessage' | 'Media' | 'Message' | 'OutboundMessage' | 'PaymentMessage' | 'Photo' | 'PostbackMessage' | 'PrivateTweet' | 'PromptMessage' | 'Question' | 'Review' | 'ReviewResponse' | 'RichLinkMessage' | 'SelectMessage' | 'Status' | 'TemplateMessage' | 'TimePickerMessage' | 'Tweet' | 'Video' | 'VideoCallRequestMessage', required — Type of the content.
  - `lastModifiedTime` string, date-time, required — The time when the last modification was completed.
  - `capabilitiesSupported` string[], required — Types of structured messages that can be used to reply to this type of message.

## Other responses

- `400` — Error 400 on content creation
- `403` — Error 403 on content creation
- `404` — Error 404
- `422` — Error 422 on content creation

---

[API](https://skmtc.net/ringcentral/apis/ringcentral-api.md) · [All operations](https://skmtc.net/ringcentral/apis/ringcentral-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ringcentral/ringcentral-api/revisions/8d602198ec97/schema)
