Skip to content

Publish Details

Creates a Publish entry using the provided details and generates associated screeners. The screeners are configured based on the metadata and access settings specified in the request, and are made available to the viewers.

Note: Only users who are Owners, Global Admins, Admins, Analysts or Publishers on the project can call this API. Others will be denied access.

Endpoint

POST /v1/admin/products/<product_key>/project/<project_key>/publish

Headers

The JWT Access token should be passed in the authorization header for all APIs.

Header Value
Authorization JWT token

Request Body

{
  "name": "publish-x",
  "delivery": {
        "mode": "Email",
        "reminder_email_enabled": false,
    },
  "user_auth": false,
  "screener_auth": "2FA",
  "offline_streaming": false,
  "start_date": "EPOCH TIME",
  "expiry_date": "EPOCH TIME",
  "max_views": 5,
  "watermark_type": "OVWM",
  "videos": [
    "vid-01jphcn09q0x4csz5f31madp5s",
    "vid-03jphcn09q0x4csz5f31madcvd"
  ],
  "viewer_list": [
    {
      "name": "name1",
      "email": "name1@example.com",
      "watermark_text": "watermark_text_1"
    },
    {
      "name": "name2",
      "email": "name2@example.com",
      "watermark_text": "watermark_text_2"
    }
  ]
}
Parameters Type Description Optional/
Required
start_date Integer Start date for the publish, in epoch format Required
expiry_date Integer Expiry date for the publish, in epoch format Required
max_views Integer Maximum number of views allowed per viewer Required
user_auth Boolean Indicates whether the viewer must log
in to access the screener. When enabled,
users are required to authenticate using
their credentials before being allowed
to view the content.
Required
screener_auth String Specifies the type of authentication required to
view the screener. Supported values include <2FA
(two-factor authentication) and PWD (password-
based authentication). This determines the level of
identity verification the viewer must complete
before accessing the content.
Optional
delivery Dict Contains mode and reminder_email_enabled
fields
Required
mode String Mode of delivery (Email or Link) Required
offline_streaming Boolean Flag that specifies whether the screener can be
downloaded and watched offline. When set to true,
the video will be available for temporary offline
playback. This feature is typically used to enable
secure offline viewing through supported apps or
platforms
Optional
reminder_email_enabled Boolean Indicates whether a reminder email should be sent to
the viewer. This is only applicable when the delivery
mode is Email. If enabled, a screener expiry reminder
email will be sent approximately 24 hours before the
screener expires.
Optional
(Required
if mode is
Email)
name String A name for the publish Optional
watermark_type String Type of watermark: NOWM, OVWM, FOWM, FBWM Required
videos List List of video keys to be published Required
viewer_list JSON List of viewer objects based on delivery and
watermark config
Conditional
(see below)

Watermark Types

Code Description
NOWM No Watermark
OVWM Overlay Watermark
FOWM Forensic Watermark
FBWM Forensic + Burned Watermark

Viewer List Rules

  • watermark_type = NOWM
viewer_list = [
  { "name": "name_1" },
  { "name": "name_2" }
]
  • watermark_type = OVWM / FOWM / FBWM
viewer_list = [
  { "watermark_text": "watermark_text_1" },
  { "watermark_text": "watermark_text_2" }
]

or (name is optional here)

viewer_list = [
  { "name": "name_1", "watermark_text": "watermark_text_1" },
  { "name": "name_2", "watermark_text": "watermark_text_2" }
]
  • watermark_type = OVWM / FOWM / FBWM and screener_auth = PWD
viewer_list = [
  { "watermark_text": "watermark_text_1", "password": "pass1" },
  { "watermark_text": "watermark_text_2", "password": "pass2" }
]
  • watermark_type = OVWM / FOWM / FBWM and screener_auth = 2FA
viewer_list = [
  { "watermark_text": "watermark_text_1" },
  { "watermark_text": "watermark_text_2" }
]

If mode = Email inside delivery dict

  • watermark_type = NOWM
viewer_list = [
  { 
    "name": "name_1",
    "email": "name1@example.com",
  },
  { 
    "name": "name_2",
    "email": "name2@example.com",
  }
]
  • watermark_type = OVWM / FOWM / FBWM
viewer_list = [
  {
    "name": "name1",
    "email": "name1@example.com",
    "watermark_text": "watermark_text_1"
  },
  {
    "name": "name2",
    "email": "name2@example.com",
    "watermark_text": "watermark_text_2"
  }
]
  • watermark_type = OVWM / FOWM / FBWM and screener_auth = PWD
viewer_list = [
  {
    "name": "name1",
    "email": "name1@example.com",
    "watermark_text": "watermark_text_1",
    "password": "pass1"
  },
  {
    "name": "name2",
    "email": "name2@example.com",
    "watermark_text": "watermark_text_2",
    "password": "pass2"
  }
]
  • watermark_type = OVWM / FOWM / FBWM and screener_auth = 2FA
viewer_list = [
  {
    "name": "name1",
    "email": "name1@example.com",
    "watermark_text": "watermark_text_1",
  },
  {
    "name": "name2",
    "email": "name2@example.com",
    "watermark_text": "watermark_text_2",
  }
]

Response Body

    {
        "status_code": "A3200",
        "status_message": " Screener generation completed successfully",
        "key": "cmp-01jpkr210k06fs2h9dsem123sb",
        "name": "publish-x",
        "delivery": {
                "mode": "Email",
                "reminder_email_enabled": false,
            },
        "start_date": "EPOCH TIME",
        "expiry_date": "EPOCH TIME",
        "max_views": 5,
        "watermark_type": "OVWM",
        "screener_auth": "2FA",
        "offline_streaming": false,
        "videos": [
            "vid-01jphcn09q0x4csz5f31madp5s",
            "vid-03jphcn09q0x4csz5f31madcvd"
        ],
        "total_screener_room_count": 2,
        "total_screener_count": 4,
        "generated_screener_count": 4,
        "screener_rooms": [
            {
                "total_screeners": 2,
                "viewer": "name1",
                "screener_room_link": "http://localhost:3001/enterprise/screeners/room?screener_room_key=scr-01k082gm0qzm0tgghx0pqttf7gep3zng"
            },
            {
                "total_screeners": 2,
                "viewer": "name2",
                "screener_room_link": "http://localhost:3001/enterprise/screeners/room?screener_room_key=scr-01k082gkstxsys6yztts7ww6x1rkgqfb"
            }
        ]
    }
Field Type Description
status_code String Indee provided status code.
status_message String The message associated with the status
start_date Integer Start date for the publish, in epoch format
expiry_date Integer Expiry date for the publish, in epoch format
max_views Integer Maximum number of views allowed per viewer
delivery Dict Contains mode and reminder_email_enabled fields
mode String Mode of delivery (Email or Link)
reminder_email_enabled Boolean Indicates whether a reminder email should be sent to the viewer. This is
only applicable when the delivery mode is Email. If enabled, a screener
expiry reminder email will be sent approximately 24 hours before the
screener expires.
name String A name for the publish
watermark_type String Type of watermark: NOWM, OVWM, FOWM, FBWM
key String The unique key of the publish.
videos List List of video keys published
screener_auth String Specifies the type of authentication required to view the screener.
Supported values include 2FA (two-factor authentication) and PWD
(password-based authentication). This determines the level of identity
verification the viewer must complete before accessing the content.
offline_streaming Boolean Flag that specifies whether the screener can be downloaded and watched
offline. When set to true, the video will be available for temporary offline
playback. This feature is typically used to enable secure offline viewing
through supported apps or platforms
total_screener_room_count Integer Total number of screener rooms to be created. This is equal to the number of viewers.
total_screener_count Integer Total number of screeners to be generated. This is calculated as the number of viewers multiplied by the number of published videos.
generated_screener_count Integer Number of screeners that have been generated so far.
screener_rooms Dict A dictionary containing details for each screener room, including total_screeners, viewer, and screener_room_link.
total_screeners Integer Number of screeners in a specific screener room. This equals the number of published videos.
viewer String Name of the viewer provided at the time of publishing. If no name is given, the watermark text is used instead.
screener_room_link URL URL link to access the screener room.

Error and Success Codes

For error codes and success codes, see Common Error Codes section.