# Create a new content post Create a new content item and select what topics will include the content. The new content will be created in the “draft” state. This endpoint only creates the post. If applicable, an image may be added later via the appropriate endpoint. If author.user_id is provided, it will be used to determine display_name and avatar_url, overriding any values provided for display_name and avatar_url. Response body data will be the newly created record. Endpoint: POST /v2/content Version: v2 Security: oauth2_as_a_user, oauth2_as_a_server ## Request fields (application/json): - `content_type` (string) The type of content to create Enum: "article", "link", "video", "image" - `title` (any) A title for the post Example: "Example Post Title" - `body` (any) The body text for the post. HTML is permitted. Example: "Example post body" - `summary` (any) Post summary blurb Example: "Example post summary" - `author` (object) - `author.avatar_url` (string) Path to an image representing the author. Example: "https://example.com/avatar.png" - `author.display_name` (string) The name to display as the author. Example: "Some User" - `author.user_id` (integer) The Firstup user_id of the author. Example: 123 - `featured` (boolean) Whether the post is featured. Example: true - `featured_label` (string) The featured label. Example: "A Label" - `visibility` (string) An indication of the native availability of the post within the Firstup platform. If 'public', the post has a public_link_url and shares of the post should use that url as the canonical url. If 'private', the post requires user authentication to view. Enum: "private", "public" - `channels` (array) A list of topics the content will be published to. - `channels.id` (integer, required) Example: 789 - `channels.hidden` (boolean) - `source` (object) - `source.post_id` (string) The unique identifier of the post on the source system, if it is republished from another platform or application. - `source.posted_at` (string) The timestamp at which the post was published on the source system, if it is republished from another platform or application. - `images` (array) An ordered list of images for this content. Images are only validated for content of type. There is a limit of ten images. The content returned immediately after content creation or modification contains will not contain the final image URIs due to additional post-processing - `images.image_url` (string, required) Example: "https://image.site.com/an_image.png" - `template` (object) - `link_url` (any) The url if the content_type is link ## Response 201 fields (application/json): - `data` (array, required) - `data.id` (integer) Unique identifier for this post. Example: 456 - `data.version` (integer) The version of the content creation studio used to generate the content. - - Legacy Studio - - Creator Studio Enum: 1, 2 - `data.uuid` (string) Example: "8b358e6b-11d4-4e89-bf7f-ec670e3398ed" - `data.content_type` (string) The type of content. One of: article, image, link, note, or video. The content_type can determine how the post should be presented. Example: "article" - `data.cover_image_alt` (string) The url of the post on the Firstup platform. This property will only be returned for V2 content which can be viewed but not created via the Firstup API. Example: "Image of an elephant" - `data.permalink_url` (string) The url of the post on the Firstup platform. Example: "https://onfirstup.com/acme/acmetimes/sc4#contents/456" - `data.title` (string) The post title. Can also be considered the headline. Example: "Example Article Title" - `data.summary` (string) Short summary of the post. Example: "Example article summary" - `data.body` (string) The body of the post. Example: "Example article body" - `data.state` (string) The state of the post. One of: archived, draft, processing, processing_error, published, review or scheduled. Example: "published" - `data.accent_color` (string) The color of the post, currently only applicable to notes. Example: "#ae2225" - `data.featured_label` (string) The content's feature label Example: "Save Pandora!" - `data.featured` (boolean) Whether the post is featured. - `data.author` (object) - `data.author.avatar_url` (string) Path to an image representing the author. Example: "https://example.com/avatar.png" - `data.author.display_name` (string) The name to display as the author. Example: "Some User" - `data.author.user_id` (integer) The Firstup user_id of the author. Example: 123 - `data.channels` (array) A list of the topics this post is published to. - `data.channels.id` (integer) Unique identifier for the topic. Example: 789 - `data.channels.name` (string) Example: "Example Topic Name" - `data.source` (object) - `data.source.type` (string) Example: "studio" - `data.source.post_id` (string) The unique identifier of the post on the source system, if it is republished from another platform or application. Example: "abc123" - `data.source.posted_at` (string) The timestamp at which the post was published on the source system, if it is republished from another platform or application. Example: "2000-01-01T00:00:00Z" - `data.template` (object) - `data.template.id` (integer) Example: 234 - `data.visibility` (string) An indication of the native availability of the post within the Firstup platform. If 'public', the post has a public_link_url and shares of the post should use that url as the canonical url. If 'private', the post requires user authentication to view. Enum: "private", "public", "any" - `data.shareable_url` (string) The publicly shareable url of the post if its visibility is public. Private visibility posts will have no shareable_url. Example: "https://onfirstup.com/acme/acmetimes/sc4#contents/456" - `data.language` (string) The language. For non-translatable posts, this value will be null. Example: "en" - `data.is_translatable` (boolean) Whether the content is translatable. Example: true - `data.is_commentable` (boolean) Whether the content allows comments. Example: true - `data.comment_count` (integer) The number of comments on the content. Example: 5 - `data.created_at` (string) When this content was created in ISO8601 format and UTC timezone. Example: "2000-01-01T00:00:00Z" - `data.updated_at` (string) When this content was last updated in ISO8601 format and UTC timezone. Example: "2000-01-01T00:00:00Z" - `data.published_at` (string) When this content was published in ISO8601 format and UTC timezone. Example: "2000-01-01T00:00:00Z" - `data.links` (array) - `data.links.link_url` (string) Example: "https://google.com" - `data.images` (array) - `data.images.id` (integer) The unique identifier of this image record Example: 678 - `data.images.image_url` (string) Example: "https://cdn.example.com/acme/acmetimes/images/abc123" - `data.images.width` (integer) The width of the image in pixels Example: 1024 - `data.images.height` (integer) The height of the image in pixels Example: 768 - `data.image_blocks` (array) All image blocks of Creator Studio content - `data.image_blocks.id` (integer) The unique identifier of this image block record Example: 678 - `data.image_blocks.alt_text` (string) The alt text of the image Example: "Example alt text" - `data.videos` (array) - `data.videos.id` (integer) The unique identifier of this video record - `data.videos.uuid` (string) The unique uuid identifier of this video record. Used in public urls. Example: "205ba32a-7f12-439d-b33d-df1c611c8e9c" - `data.videos.caption` (string) A caption description of this video. Example: "Example video caption" - `data.videos.state` (string) Enum: "completed", "submitted", "error" - `data.videos.duration` (integer) Length of the video in seconds Example: 30 - `data.videos.preview_image_url` (string) A url to an image that acts as a poster for the video before the video is loaded. - `data.videos.embed_html` (string) An HTML iframe widget that can be used to embed the video in an article. Example: "\n" - `data.videos.link_url` (string) A link to the video where it can be played Example: "https://onfirstup.com/acme/acmetimes/sc4#contents/456/videos/abc123" - `data.videos.created_at` (string) Example: "2000-01-01T00:00:00Z" - `data.initiatives` (array) A list of the initiatives. - `data.initiatives.id` (integer) Unique identifier for the initiative. Example: 2 ## Response 401 fields (*/*): - `errors` (array) - `errors.code` (integer) Example: 401 - `errors.title` (string) Example: "Unauthenticated" - `errors.detail` (string) Example: "Access token was not provided or not recognized." ## Response 403 fields (*/*): - `errors` (array) - `errors.code` (integer) Example: 403 - `errors.title` (string) Example: "Unauthorized" - `errors.detail` (string)