# Add a video for use in content of type article

Add a new video to a content record. Response body is the attributes of the video record. Insert the returned <code>embed_html</code> into the <code>body</code> of the article at the location you want the video to appear in the article.

Endpoint: PUT /v2/content/{content_id}/videos
Version: 2026-05-01
Security: oauth2_as_a_user, oauth2_as_a_server

## Path parameters:

  - `content_id` (integer, required)
    ID or UUID of the content post

## Request fields (application/json):

  - `video_url` (string, required)
    URL of the video to add.
    Example: https://some.video.url

  - `caption` (string)
    Video caption
    Example: Watch out!

  - `preview_image_url` (string)
    Video preview image URL
    Example: https://preview_image.video.url

## Response 201 fields (application/json):

  - `data` (object, required)

  - `data.id` (integer)
    The unique identifier of this video record

  - `data.uuid` (string)
    The unique uuid identifier of this video record. Used in public urls.
    Example: 205ba32a-7f12-439d-b33d-df1c611c8e9c

  - `data.caption` (string)
    A caption description of this video.
    Example: Example video caption

  - `data.source` (string)
    Enum: "youtube", "vimeo", "socialchorus", "socialchorus_galaxy", "office365"

  - `data.state` (string)
    Enum: "completed", "submitted", "error"

  - `data.duration` (integer)
    Length of the video in seconds
    Example: 30

  - `data.preview_image_url` (string)
    A url to an image that acts as a poster for the video before the video is loaded.

  - `data.embed_html` (string)
    An HTML iframe widget that can be used to embed the video in an article.
    Example: <iframe href='https://onfirstup.com/acme/acmetimes/sc4#contents/456/videos/abc123'></iframe>


  - `data.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.created_at` (string)
    Example: 2000-01-01T00:00:00Z

## 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)

