Shoplive Developers
한국어KOEnglishEN日本語JA

Shoplive API Reference

This page is the complete endpoint reference for the Shoplive External API v2, generated from the same source as the official docs. New to the API? Start with the Getting Started guide, which walks through authentication and three end-to-end topics.

Request Header

Generating a JWT

When you generate the JWT payload:

  1. Set exp far enough ahead (the example below sets 3 years)

  2. Put accessKey in the payload, with the same value as the {accessKey} path parameter

  3. Sign the JWT with HS256, using your Base64-decoded secret key as the signing key

Send the JWT in the HTTP request header.

java
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
public class JwtAuthorizationGeneratorSample {
    public static void main(String[] args) {

        String algorithm = "HS256";
        String base64EncodedSecretKey = "{secretKey}";
        long expiration = System.currentTimeMillis() + 3 * 365 * 24 * (60 * 60 * 1000L);
        String accessKey = "{accessKey}";

        JwtBuilder builder = Jwts.builder()
            .signWith(SignatureAlgorithm.forName(algorithm), base64EncodedSecretKey)
            .setExpiration(new Date(expiration))
            .setIssuedAt(new Date())
            .claim("accessKey", accessKey);
      
        String jwt = builder.compact();
        System.out.printf("jwt: " + jwt);
    }
}

Check the following example of how to use JWT in the header.

bash
curl --location --request GET 'https://private.shopliveapi.com/v2/{accessKey}/campaign/{campaignKey}' \ 
--header 'Authorization: Bearer {JWT_TOKEN}'

A missing or invalid token returns 401 (_s: -824), and an expired token returns 401 (_s: -412).

Next → Campaign object

Campaign API

Campaign object

Property name

Type

Description

campaignMeta

CampaignMeta!

Meta information of the campaign

stream

Stream!

Stream information of the campaign

campaignProductList

List<CampaignProduct>?

List of CampaignProduct objects.

seller

Seller?

Seller information of the campaign

CampaignMeta object

Property name

Type

Read only

Description

campaignId

String!

O

Automatically generated identifier of the campaign. (numeric string)

campaignKey

String!

O

Automatically generated alphanumeric key (max 32 bytes). Use this key to specify a campaign in API calls.

accessKey

String!

O

Unique key for each customer. Most Shoplive APIs require this accessKey.

shoplivePlayerUrl

String!

O

Player URL provided by Shoplive for test viewing

title

String!

Title of the campaign

description

String?

Description of the campaign

campaignStatus

String!

O

RESERVED, READY, REHEARSAL, ONAIR, ENDED

rerun

Boolean!

O

Boolean flag indicating whether the campaign is a rerun campaign.

userCount

Integer?

O

Number of viewers in real-time when the campaign status is ONAIR or REHEARSAL.

The total number of viewers when the campaign has ended. (when the campaign status is ENDED)

* Null when the campaign status is READY.

concurrentUserCount

Integer?

O

Number of concurrent viewers in real-time when the campaign status is ONAIR or REHEARSAL.

* Null when the campaign status is READY or ENDED.

likeCount

Integer?

O

campaignStatus READY: null campaignStatus REHEARSAL: Number of likes in real-time campaignStatus ONAIR: Number of likes in real-time campaignStatus ENDED: Total number of likes

rehearsalPasscode

String!

Passcode to enter the live streaming in rehearsal mode

serveReplay

Boolean!

Whether to serve a replay after the campaign ends.

logoImageUrl

String?

O

Logo image URL

brand

Brand?

Brand object

preCampaignVideoUrl

String?

Pre-campaign Video URL

preCampaignImageUrl

String?

Pre-campaign Image URL

postCampaignImageUrl

String?

Post-campaign Image URL

backgroundImageUrl

String?

Background Image URL

ieUnsupportImageUrl

String?

Image for the IE browser

tags

List?

Tag information set for the campaign (Max 10 tags can be set)

scheduledStartAt

String!

Scheduled start DateTime of the campaign (format: YYYY-MM-DD'T'HH:mm:ss'Z')

scheduledEndAt

String?

Scheduled end DateTime of the campaign (format: YYYY-MM-DD'T'HH:mm:ss'Z')

campaignStartedAt

String?

O

Actual start DateTime of the campaign (format: YYYY-MM-DD'T'HH:mm:ss'Z')

campaignEndedAt

String?

O

Actual end DateTime of the campaign (format: YYYY-MM-DD'T'HH:mm:ss'Z')

createdAt

String!

O

Campaign Created At (UTC) (format: YYYY-MM-DD'T'HH:mm:ss'Z')

updatedAt

String!

O

Campaign Last Updated At (UTC) (format: YYYY-MM-DD'T'HH:mm:ss'Z')

Stream object

Property name

Type

Description

streamUrl

String!

RTMP stream URL info for the streaming software (e.g., OBS)

streamKey

String!

RTMP stream key info for the streaming software (e.g., OBS)

videoAspectRatio

String!

Video aspect ratio. 9:16 (portrait) or 16:9 (landscape)

liveUrl

String!

Master m3u8 URL of the live streaming.

liveUrls

Map<String, String>?

Set of m3u8 URL of the live streaming by resolution (320p, 480p, 720p, 1080p).

previewLiveUrl

String!

m3u8 URL of the preview video (320p resolution). Preview is a video format to implement a video thumbnail on the web browser.

replayLiveUrl

String?

Master m3u8 URL of the replay streaming. This value is set only after the campaign is ended.

replayLiveUrls

Map<String, String>?

Set of m3u8 URL of the replay streaming by resolution (320p, 480p, 720p, 1080p).

previewReplayLiveUrl

String?

m3u8 URL of the preview replay video (320p resolution). Preview is a video format to implement a video thumbnail on the web browser. This value is set only after the campaign is ended. If the preview parameter is specified with a value of 1 in the query string of the URL, it indicates that the data usage for playing the preview replay video is included in your quota usage.

CampaignProduct object

Property name

Type

Description

productId

String!

Automatically generated unique product ID

customerProductId

String?

Customer-defined product ID. Must be unique. customerProductId can be set through the Product API only; the Shoplive Admin tool has no input field for it.

name

String!

Product name

brand

String?

Brand name

description

String?

Description of the product

brandIdentifier

String?

Brand key

url

String!

Product URL. Viewers go to this URL when they click the product info on the Shoplive Player.

sku

String?

Product SKU information (defined by the customer)

imageUrl

String?

Product thumbnail image URL. Shoplive automatically generates a thumbnail URL when creating a product object.

currency

String!

Currency of the price

showPrice

Boolean!

Whether to show the price.

originalPrice

Double?

e.g. 20.00 ($20.00 if the currency is USD)

discountPrice

Double?

e.g. 15.00 ($15.00 if the currency is USD)

discountRate

Double?

e.g. 25.00 (if the discount rate is 25%)

enableAuction

Boolean!

Whether the product is an auction product

bidStartingPrice

Double?

Starting price of the auction (e.g. 0.99)

bidDuration

Integer?

Bidding time of the auction (seconds)

bidIncrementalAmount

Double?

Incremental amount of the bidding

extendBidDuration

Boolean?

Whether to extend the remaining time to bid when a bid is placed near the end of the auction. The extension time follows the customer's auction settings.

ctaButtonTitle

String?

Title of the call-to-action (CTA) button shown for the product. As it requires UI customization, it needs to be discussed with Shoplive.

seller

Seller?

Seller information that owns the product

createdAt

String!

Date and time when the product was created (format: YYYY-MM-DD'T'HH:mm:ss'Z')

updatedAt

String!

Date and time when the product was last updated (format: YYYY-MM-DD'T'HH:mm:ss'Z')

campaignId

String!

Automatically generated identifier of the campaign. (numeric string)

visible

Boolean?

‘visible’ status of the product.

purchasable

Boolean?

‘purchasable’ status of the product.

showingNow

Boolean!

Whether to show the "Now" status of the product. (=pin)

sortOrder

Integer!

Order of the product presentation. (=listOrder)

stockStatus

String!

IN_STOCK, LOW_IN_STOCK , SOLD_OUT

auction

Auction?

Auction information of the product.

Auction object

Property name

Type

Description

productId

String!

Automatically generated unique product ID

auctionStatus

String!

READY, ONGOING, ENDING, ENDED

startingPrice

Double!

Starting price of the auction

bidRound

Integer!

Bidding round of the auction

currentPrice

Double!

Current price of the auction

winningPrice

Double?

Winning price of the auction

recommendedPrices

List<Double>?

Recommended bidding price of the auction

winner

Bidder?

Winning bidder of the auction.

leader

Bidder?

The highest bidder of the auction.

winnerCheckoutScheme

String?

App scheme through which the winner can purchase the product.

startedAt

Number?

Actual start DateTime of the auction (format: Timestamp in milliseconds)

endingAt

Number?

Estimated end DateTime of the auction (format: Timestamp in milliseconds)

endedAt

Number?

Actual end DateTime of the auction (format: Timestamp in milliseconds)

Bidder object

Property name

Type

Description

uid

String!

Automatically generated identifier of the user. (numeric string)

userId

String?

Identifier of the user. (defined by the customer)

name

String!

Name of the user.


Sample

json
{
    "campaignMeta": {
        "campaignId": "1234",
        "campaignKey": "{campaignKey}",
        "accessKey": "{accessKey}",
        "shoplivePlayerUrl": "https://www.shoplive.show/v1/player.html?ak={accessKey}&ck={campaignKey}",
        "title": "Shoplive Liveshow",
        "description": "Liveshow description",
        "tags": [ "tag1", "tag2" ],
        "campaignStatus": "READY",
        "userCount": null,
        "likeCount": null,
        "rehearsalPasscode": "9876",
        "serveReplay": false,
        "logoImageUrl": null,
        "preCampaignVideoUrl": null,
        "preCampaignImageUrl": "https://image.shoplive.cloud/14352cf2-ef40-4ba9-93af-279a104cb3c8.png",
        "postCampaignImageUrl": "https://image.shoplive.cloud/6da19c2d-8d53-4cea-801f-7b39913f7c35.png",
        "backgroundImageUrl": "https://image.shoplive.cloud/0b1bd566-4087-40ef-b376-fb863a888d72.png",
        "ieUnsupportImageUrl": "https://image.shoplive.cloud/5a0fd01c-8889-4d28-8a15-8b7661a422a2.png",
        "scheduledStartAt": "2026-11-01T09:00:00Z",
        "scheduledEndAt": "2026-11-01T10:00:00Z",
        "campaignStartedAt": null,
        "campaignEndedAt": null,
        "createdAt": "2026-11-01T08:15:00Z",
        "updatedAt": "2026-11-01T08:29:09Z"
    },
    "stream": {
        "streamUrl": "rtmp://stream.shoplive.cloud:1935/stream",
        "streamKey": "{streamKey}",
        "videoAspectRatio": "9:16",
        "liveUrl": "https://live.shoplive.cloud/live/{streamKey}.m3u8",
        "liveUrls": {
            "720p": "https://live.shoplive.cloud/live/{streamKey}_720p/playlist.m3u8",
            "480p": "https://live.shoplive.cloud/live/{streamKey}_480p/playlist.m3u8" 
        },
        "previewLiveUrl": "https://live.shoplive.cloud/live/{streamKey}_480p/index.m3u8",
        "replayLiveUrl": null,
        "replayLiveUrls": null,
        "previewReplayLiveUrl": "https://api.shoplive.cloud/v1/replay/{accessKey}/{campaignKey}/replay_320p/ORIGINAL/index.m3u8?preview=1"
    },
    "campaignProductList": [
        {
            "productId": "1001",
            "customerProductId": "SHOPLIVE_PRODUCT_1",
            "name": "Keyring",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU001",
            "imageUrl": "https://image.shoplive.cloud/e05d1464-1942-4e4e-bb0b-c4310167d465.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 20.0,
            "discountPrice": 10.0,
            "discountRate": 50.0,
            "enableAuction": false,
            "bidStartingPrice": null,
            "bidDuration": null,
            "bidIncrementalAmount": null,
            "extendBidDuration": null,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": true,
            "sortOrder": 1,
            "stockStatus": "IN_STOCK",
            "auction": null
        },
        {
            "productId": "1002",
            "customerProductId": "SHOPLIVE_PRODUCT_2",
            "name": "Hoodie",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU002",
            "imageUrl": "https://image.shoplive.cloud/40afe353-0d23-47b6-acdf-10d1fca10c57.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 50.0,
            "discountPrice": 37.0,
            "discountRate": 26.0,
            "enableAuction": false,
            "bidStartingPrice": null,
            "bidDuration": null,
            "bidIncrementalAmount": null,
            "extendBidDuration": null,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": true,
            "sortOrder": 2,
            "stockStatus": "LOW_IN_STOCK",
            "auction": null
        },
        {
            "productId": "1003",
            "customerProductId": "SHOPLIVE_PRODUCT_3",
            "name": "T-Shirts",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU003",
            "imageUrl": "https://image.shoplive.cloud/67129efb-d859-48b6-94b9-d411fb6de550.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 30.0,
            "discountPrice": 28.0,
            "discountRate": 6.0,
            "enableAuction": false,
            "bidStartingPrice": null,
            "bidDuration": null,
            "bidIncrementalAmount": null,
            "extendBidDuration": null,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": false,
            "sortOrder": 3,
            "stockStatus": "SOLD_OUT",
            "auction": null
        },
        {
            "productId": "1004",
            "customerProductId": "SHOPLIVE_PRODUCT_4",
            "name": "Mug",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU004",
            "imageUrl": "https://image.shoplive.cloud/b22c72c7-d2f8-49c3-83f0-314c59740649.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 10.0,
            "discountPrice": 7.0,
            "discountRate": 30.0,
            "enableAuction": true,
            "bidStartingPrice": 7.0,
            "bidDuration": 120,
            "bidIncrementalAmount": 1.0,
            "extendBidDuration": true,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": false,
            "sortOrder": 4,
            "stockStatus": "IN_STOCK",
            "auction": {
                "productId": "1004",
                "auctionStatus": "READY",
                "startingPrice": 7.0,
                "bidRound": 1,
                "currentPrice": 7.0,
                "winningPrice": null,
                "recommendedPrices": null,
                "winner": null,
                "leader": null,
                "winnerCheckoutScheme": null,
                "startedAt": null,
                "endingAt": null,
                "endedAt": null
            }
        },
        {
            "productId": "1005",
            "customerProductId": "SHOPLIVE_PRODUCT_5",
            "name": "Ballcap",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU005",
            "imageUrl": "https://image.shoplive.cloud/ae4d67b6-9d92-4a19-a457-6566420c5b9b.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 18.0,
            "discountPrice": 14.0,
            "discountRate": 22.0,
            "enableAuction": false,
            "bidStartingPrice": null,
            "bidDuration": null,
            "bidIncrementalAmount": null,
            "extendBidDuration": null,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": false,
            "sortOrder": 5,
            "stockStatus": "IN_STOCK",
            "auction": null
        }
    ],
    "seller": {
        "sellerId": "1",
        "name": "Shoplive Product Store",
        "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
        "storeUrl": "https://shoplive.cloud",
        "description": "Description of the seller",
        "schemes": null,
        "sellerIdentifier": "seller_identifier"
    }
}

 

campaignStatus: ONAIR

json
{
    "campaignMeta": {
        "campaignId": "1234",
        "campaignKey": "{campaignKey}",
        "accessKey": "{accessKey}",
        "shoplivePlayerUrl": "https://www.shoplive.show/v1/player.html?ak={accessKey}&ck={campaignKey}",
        "title": "Shoplive Liveshow",
        "description": "Liveshow description",
        "tags": [ "tag1", "tag2" ],
        "campaignStatus": "ONAIR",
        "userCount": 123,
        "likeCount": 3132,
        "rehearsalPasscode": "9876",
        "serveReplay": false,
        "logoImageUrl": null,
        "preCampaignVideoUrl": null,
        "preCampaignImageUrl": "https://image.shoplive.cloud/14352cf2-ef40-4ba9-93af-279a104cb3c8.png",
        "postCampaignImageUrl": "https://image.shoplive.cloud/6da19c2d-8d53-4cea-801f-7b39913f7c35.png",
        "backgroundImageUrl": "https://image.shoplive.cloud/0b1bd566-4087-40ef-b376-fb863a888d72.png",
        "ieUnsupportImageUrl": "https://image.shoplive.cloud/5a0fd01c-8889-4d28-8a15-8b7661a422a2.png",
        "scheduledStartAt": "2026-11-01T09:00:00Z",
        "scheduledEndAt": "2026-11-01T10:00:00Z",
        "campaignStartedAt": "2026-11-01T09:10:05Z",
        "campaignEndedAt": null,
        "createdAt": "2026-11-01T08:15:00Z",
        "updatedAt": "2026-11-01T08:29:09Z"
    },
    "stream": {
        "streamUrl": "rtmp://stream.shoplive.cloud:1935/stream",
        "streamKey": "{streamKey}",
        "videoAspectRatio": "9:16",
        "liveUrl": "https://live.shoplive.cloud/live/{streamKey}.m3u8",
        "liveUrls": {
            "720p": "https://live.shoplive.cloud/live/{streamKey}_720p/playlist.m3u8" 
        },
        "previewLiveUrl": "https://live.shoplive.cloud/live/{streamKey}_320p/index.m3u8",
        "replayLiveUrl": null,
        "replayLiveUrls": null,
        "previewReplayLiveUrl": "https://api.shoplive.cloud/v1/replay/{accessKey}/{campaignKey}/replay_320p/ORIGINAL/index.m3u8?preview=1"
    },
    "campaignProductList": [
        {
            "productId": "1001",
            "customerProductId": "SHOPLIVE_PRODUCT_1",
            "name": "Keyring",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU001",
            "imageUrl": "https://image.shoplive.cloud/e05d1464-1942-4e4e-bb0b-c4310167d465.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 20.0,
            "discountPrice": 10.0,
            "discountRate": 50.0,
            "enableAuction": false,
            "bidStartingPrice": null,
            "bidDuration": null,
            "bidIncrementalAmount": null,
            "extendBidDuration": null,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": true,
            "sortOrder": 1,
            "stockStatus": "SOLD_OUT",
            "auction": null
        },
        {
            "productId": "1002",
            "customerProductId": "SHOPLIVE_PRODUCT_2",
            "name": "Hoodie",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU002",
            "imageUrl": "https://image.shoplive.cloud/40afe353-0d23-47b6-acdf-10d1fca10c57.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 50.0,
            "discountPrice": 37.0,
            "discountRate": 26.0,
            "enableAuction": false,
            "bidStartingPrice": null,
            "bidDuration": null,
            "bidIncrementalAmount": null,
            "extendBidDuration": null,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": true,
            "sortOrder": 2,
            "stockStatus": "LOW_IN_STOCK",
            "auction": null
        },
        {
            "productId": "1003",
            "customerProductId": "SHOPLIVE_PRODUCT_3",
            "name": "T-Shirts",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU003",
            "imageUrl": "https://image.shoplive.cloud/67129efb-d859-48b6-94b9-d411fb6de550.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 30.0,
            "discountPrice": 28.0,
            "discountRate": 6.0,
            "enableAuction": false,
            "bidStartingPrice": null,
            "bidDuration": null,
            "bidIncrementalAmount": null,
            "extendBidDuration": null,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": false,
            "sortOrder": 3,
            "stockStatus": "IN_STOCK",
            "auction": null
        },
        {
            "productId": "1004",
            "customerProductId": "SHOPLIVE_PRODUCT_4",
            "name": "Mug",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU004",
            "imageUrl": "https://image.shoplive.cloud/b22c72c7-d2f8-49c3-83f0-314c59740649.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 10.0,
            "discountPrice": 7.0,
            "discountRate": 30.0,
            "enableAuction": true,
            "bidStartingPrice": 7.0,
            "bidDuration": 120,
            "bidIncrementalAmount": 1.0,
            "extendBidDuration": true,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": true,
            "sortOrder": 4,
            "stockStatus": "IN_STOCK",
            "auction": {
                "productId": "1004",
                "auctionStatus": "ONGOING",
                "startingPrice": 7.0,
                "bidRound": 3,
                "currentPrice": 9.0,
                "winningPrice": null,
                "recommendedPrices": [
                    10.0
                ],
                "winner": null,
                "leader": {
                    "uid": "350964901054939144",
                    "userId": "test@shoplive.cloud",
                    "name": "ShopliveUser-1"
                },
                "winnerCheckoutScheme": null,
                "startedAt": 1793524830000,
                "endingAt": 1793524950000,
                "endedAt": null
            }
        },
        {
            "productId": "1005",
            "customerProductId": "SHOPLIVE_PRODUCT_5",
            "name": "Ballcap",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU005",
            "imageUrl": "https://image.shoplive.cloud/ae4d67b6-9d92-4a19-a457-6566420c5b9b.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 18.0,
            "discountPrice": 14.0,
            "discountRate": 22.0,
            "enableAuction": false,
            "bidStartingPrice": null,
            "bidDuration": null,
            "bidIncrementalAmount": null,
            "extendBidDuration": null,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": false,
            "sortOrder": 5,
            "stockStatus": "IN_STOCK",
            "auction": null
        }
    ],
    "seller": {
        "sellerId": "1",
        "name": "Shoplive Product Store",
        "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
        "storeUrl": "https://shoplive.cloud",
        "description": "Description of the seller",
        "schemes": null
    }
}

 

campaignStatus: ENDED

json
{
    "campaignMeta": {
        "campaignId": "1234",
        "campaignKey": "{campaignKey}",
        "accessKey": "{accessKey}",
        "shoplivePlayerUrl": "https://www.shoplive.show/v1/player.html?ak={accessKey}&ck={campaignKey}",
        "title": "Shoplive Liveshow",
        "description": "Liveshow description",
        "tags": [ "tag1", "tag2" ],
        "campaignStatus": "ENDED",
        "userCount": 15923,
        "likeCount": 102683,
        "rehearsalPasscode": "9876",
        "serveReplay": false,
        "logoImageUrl": null,
        "preCampaignVideoUrl": null,
        "preCampaignImageUrl": "https://image.shoplive.cloud/14352cf2-ef40-4ba9-93af-279a104cb3c8.png",
        "postCampaignImageUrl": "https://image.shoplive.cloud/6da19c2d-8d53-4cea-801f-7b39913f7c35.png",
        "backgroundImageUrl": "https://image.shoplive.cloud/0b1bd566-4087-40ef-b376-fb863a888d72.png",
        "ieUnsupportImageUrl": "https://image.shoplive.cloud/5a0fd01c-8889-4d28-8a15-8b7661a422a2.png",
        "scheduledStartAt": "2026-11-01T09:00:00Z",
        "scheduledEndAt": "2026-11-01T10:00:00Z",
        "campaignStartedAt": "2026-11-01T09:10:05Z",
        "campaignEndedAt": "2026-11-01T10:05:05Z",
        "createdAt": "2026-11-01T08:15:00Z",
        "updatedAt": "2026-11-01T08:29:09Z"
    },
    "stream": {
        "streamUrl": "rtmp://stream.shoplive.cloud:1935/stream",
        "streamKey": "{streamKey}",
        "videoAspectRatio": "9:16",
        "liveUrl": "https://live.shoplive.cloud/live/{streamKey}.m3u8",
        "liveUrls": {
            "720p": "https://live.shoplive.cloud/live/{streamKey}_720p/playlist.m3u8" 
        },
        "previewLiveUrl": "https://live.shoplive.cloud/live/{streamKey}_320p/index.m3u8",
        "replayLiveUrl": "https://private.shopliveapi.com/v1/replay/{accessKey}/{campaignKey}/replay.m3u8?replayMode=ORIGINAL",
        "replayLiveUrls": {
            "720p": "https://private.shopliveapi.com/v1/replay/{accessKey}/{campaignKey}/ORIGINAL/720p/index.m3u8"
        },
        "previewReplayLiveUrl": "https://api.shoplive.cloud/v1/replay/{accessKey}/{campaignKey}/replay_320p/ORIGINAL/index.m3u8?preview=1"
    },
    "campaignProductList": [
        {
            "productId": "1001",
            "customerProductId": "SHOPLIVE_PRODUCT_1",
            "name": "Keyring",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU001",
            "imageUrl": "https://image.shoplive.cloud/e05d1464-1942-4e4e-bb0b-c4310167d465.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 20.0,
            "discountPrice": 10.0,
            "discountRate": 50.0,
            "enableAuction": false,
            "bidStartingPrice": null,
            "bidDuration": null,
            "bidIncrementalAmount": null,
            "extendBidDuration": null,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": true,
            "sortOrder": 1,
            "stockStatus": "SOLD_OUT",
            "auction": null
        },
        {
            "productId": "1002",
            "customerProductId": "SHOPLIVE_PRODUCT_2",
            "name": "Hoodie",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU002",
            "imageUrl": "https://image.shoplive.cloud/40afe353-0d23-47b6-acdf-10d1fca10c57.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 50.0,
            "discountPrice": 37.0,
            "discountRate": 26.0,
            "enableAuction": false,
            "bidStartingPrice": null,
            "bidDuration": null,
            "bidIncrementalAmount": null,
            "extendBidDuration": null,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": true,
            "sortOrder": 2,
            "stockStatus": "LOW_IN_STOCK",
            "auction": null
        },
        {
            "productId": "1003",
            "customerProductId": "SHOPLIVE_PRODUCT_3",
            "name": "T-Shirts",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU003",
            "imageUrl": "https://image.shoplive.cloud/67129efb-d859-48b6-94b9-d411fb6de550.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 30.0,
            "discountPrice": 28.0,
            "discountRate": 6.0,
            "enableAuction": false,
            "bidStartingPrice": null,
            "bidDuration": null,
            "bidIncrementalAmount": null,
            "extendBidDuration": null,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": true,
            "sortOrder": 3,
            "stockStatus": "SOLD_OUT",
            "auction": null
        },
        {
            "productId": "1004",
            "customerProductId": "SHOPLIVE_PRODUCT_4",
            "name": "Mug",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU004",
            "imageUrl": "https://image.shoplive.cloud/b22c72c7-d2f8-49c3-83f0-314c59740649.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 10.0,
            "discountPrice": 7.0,
            "discountRate": 30.0,
            "enableAuction": true,
            "bidStartingPrice": 7.0,
            "bidDuration": 120,
            "bidIncrementalAmount": 1,
            "extendBidDuration": true,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": true,
            "sortOrder": 4,
            "stockStatus": "SOLD_OUT",
            "auction": {
                "productId": "1004",
                "auctionStatus": "ENDED",
                "startingPrice": 7.0,
                "bidRound": 3,
                "currentPrice": 0.0,
                "winningPrice": 9.0,
                "recommendedPrices": null,
                "winner": {
                    "uid": "350964901054939144",
                    "userId": "test@shoplive.cloud",
                    "name": "ShopliveUser-1"
                },
                "leader": null,
                "winnerCheckoutScheme": null,
                "startedAt": 1793524830000,
                "endingAt": null,
                "endedAt": 1793524950000
            }
        },
        {
            "productId": "1005",
            "customerProductId": "SHOPLIVE_PRODUCT_5",
            "name": "Ballcap",
            "brand": "SHOPLIVE",
            "description": null,
            "url": "https://www.shoplive.cloud/en",
            "sku": "SKU005",
            "imageUrl": "https://image.shoplive.cloud/ae4d67b6-9d92-4a19-a457-6566420c5b9b.jpeg",
            "currency": "USD",
            "showPrice": true,
            "originalPrice": 18.0,
            "discountPrice": 14.0,
            "discountRate": 22.0,
            "enableAuction": false,
            "bidStartingPrice": null,
            "bidDuration": null,
            "bidIncrementalAmount": null,
            "extendBidDuration": null,
            "seller": {
                "sellerId": "1",
                "name": "Shoplive Product Store",
                "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
                "storeUrl": "https://shoplive.cloud",
                "description": "Description of the seller",
                "schemes": null
            },
            "createdAt": "2026-05-20T08:01:05Z",
            "updatedAt": "2026-05-20T11:27:34Z",
            "campaignId": "1234",
            "showingNow": true,
            "sortOrder": 5,
            "stockStatus": "SOLD_OUT",
            "auction": null
        }
    ],
    "seller": {
        "sellerId": "1",
        "name": "Shoplive Product Store",
        "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
        "storeUrl": "https://shoplive.cloud",
        "description": "Description of the seller",
        "schemes": null
    }
}

Previous ← Generating a JWTNext → Search campaigns

Campaign API

Search campaigns

GET/v2/{accessKey}/campaign

Search campaigns

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Query parameters

from
string
Start of the scheduledStartAt range to search (format: YYYY-MM-DD'T'HH:mm:ss'Z', e.g. 2026-05-20T08:00:00Z)
to
string
End of the scheduledStartAt range to search (format: YYYY-MM-DD'T'HH:mm:ss'Z', e.g. 2026-05-20T09:00:00Z)
keyword
string
Keyword to search title and description of campaigns
tags
string
Comma-separated tags to search for. Use tagSearchOperator to specify an AND or OR query.
tagSearchOperator
stringenum
ANDOR
Search operator to use when searching by tags
DefaultOR
campaignStatus
string
Status (RESERVED, READY, REHEARSAL, ONAIR, ENDED). Case-insensitive.
sellerId
integer (int64)
ID of the seller to search for.
campaignIds
string
Search by campaign IDs. You can enter multiple IDs separated by commas, e.g., 1234,1235,1236.
campaignKeys
string
Search by campaign keys instead of campaignIds. You can enter multiple campaign keys separated by commas, e.g., c7671aa83bd2,6229da3b75d4.
sortAscending
boolean
Sort by scheduled start time. The default is false (latest first).
Defaultfalse
page
integer (int32)
Parameter for pagination. Default is 1.
Default1
count
integer (int32)
Number of results per page (max: 20)
Default10

Responses

200 OKapplication/json

Each item in results is a Campaign object.

object
resultsArray of object
campaignMetaobject
campaignId
string
campaignKey
string
accessKey
string
shoplivePlayerUrl
string
title
string
description
string
tags
array
campaignStatus
string
rerun
boolean
Whether the campaign is a rerun created from another campaign
userCount
integer (int32)
Viewer count of the campaign. While the campaign is on air, it follows the count method set for the customer (concurrent viewers, page views or cumulative viewers). After the campaign ends, it is the final recorded count. null before the campaign starts
concurrentUserCount
integer (int32)
Number of concurrent viewers. Only while the campaign is on air; null otherwise
likeCount
integer (int32)
Number of likes. Provided while the campaign is on air or after it ends; null before it starts
rehearsalPasscode
string
serveReplay
boolean
Defaulttrue
logoImageUrl
brandobject
Brand set to the campaign
brandId
string
name
string
identifier
string
description
string
imageUrl
string
imageWidth
integer
Default0
imageHeight
integer
Default0
createdAt
string
updatedAt
string
preCampaignVideoUrl
preCampaignImageUrl
string
postCampaignImageUrl
string
backgroundImageUrl
string
ieUnsupportImageUrl
string
scheduledStartAt
string
scheduledEndAt
string
campaignStartedAt
campaignEndedAt
createdAt
string
updatedAt
string
streamobject
streamUrl
string
streamKey
string
videoAspectRatio
string
liveUrl
string
liveUrlsobject
480p
string
720p
string
previewLiveUrl
string
replayLiveUrl
replayLiveUrls
previewReplayLiveUrl
string
sellerobject
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
Description of the seller
schemes
totalCount
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Campaign objectNext → Create a campaign

Campaign API

Create a campaign

POST/v2/{accessKey}/campaign

Example of the request body

{
  "campaignMeta": {
    "title": "New campaign name here",
    "description": "Description of the campaign here",
    "tags": ["tag1", "tag2"],
    "rehearsalPasscode": "1234",
    "serveReplay": true
  }
}

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Body parameters

application/json
object
campaignMetaobjectRequired
title
stringRequired
Title of the campaign
description
string
Description of the campaign (memo in the campaign setting)
tags
array[string]
Tag information set for the campaign (Max 10 tags can be set)
rehearsalPasscode
string
Passcode to access the campaign when it is in rehearsal state
serveReplay
boolean
Whether replays are public
brandobject
brandId
integer (int64)Required
Brand ID
scheduledStartAt
string
ISO 8601 date-time with time zone offset, e.g. YYYY-MM-DDTHH:mm:ss±HH:MM (Z for UTC). Returned in UTC
scheduledEndAt
string
ISO 8601 date-time with time zone offset, e.g. YYYY-MM-DDTHH:mm:ss±HH:MM (Z for UTC). Returned in UTC
sellerobject
sellerId
integer (int64)Required
Seller ID

Responses

200 OKapplication/json

The response body is a Campaign object.

object
campaignMetaobject
campaignId
string
campaignKey
string
accessKey
string
shoplivePlayerUrl
string
title
string
description
string
campaignStatus
string
rehearsalPasscode
string
serveReplay
boolean
logoImageUrl
null
brandobject
brandId
string
name
string
identifier
string
description
string
imageUrl
string
imageWidth
integer
imageHeight
integer
createdAt
string
updatedAt
string
preCampaignVideoUrl
null
preCampaignImageUrl
string
postCampaignImageUrl
string
backgroundImageUrl
string
ieUnsupportImageUrl
string
scheduledStartAt
string
scheduledEndAt
string
campaignStartedAt
null
campaignEndedAt
null
createdAt
string
updatedAt
string
streamobject
streamUrl
string
streamKey
string
videoAspectRatio
string
liveUrl
string
liveUrlsobject
480p
string
720p
string
previewLiveUrl
string
replayLiveUrl
null
replayLiveUrls
null
previewReplayLiveUrl
string
campaignProductList
array
sellerobject
sellerId
string
name
string
profileUrl
string
storeUrl
string
description
string
schemes
object
4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Search campaignsNext → Create a rerun campaign

Campaign API

Create a rerun campaign

POST/v2/{accessKey}/campaign/{campaignKeyOrId}/rerun

Creates a rerun campaign by duplicating an ended campaign.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Body parameters

application/json
object
campaignMetaobjectRequired
title
string
Title of the rerun campaign
scheduledStartAt
stringRequired
Scheduled start time of the rerun campaign (required). ISO 8601 date-time with time zone offset, e.g. YYYY-MM-DDTHH:mm:ss±HH:MM (Z for UTC). Returned in UTC
copyPopups
boolean
Whether to copy the popups of the source campaign. The default is true.
Defaulttrue
copyProducts
boolean
Whether to copy the products of the source campaign. The default is true.
Defaulttrue

Responses

200 OKapplication/json

The response body is a Campaign object.

object
campaignMetaobject
campaignId
string
campaignKey
string
accessKey
string
shoplivePlayerUrl
string
title
string
description
string
campaignStatus
string
rehearsalPasscode
string
serveReplay
boolean
logoImageUrl
null
brandobject
brandId
string
name
string
identifier
string
description
string
imageUrl
string
imageWidth
integer
imageHeight
integer
createdAt
string
updatedAt
string
preCampaignVideoUrl
null
preCampaignImageUrl
string
postCampaignImageUrl
string
backgroundImageUrl
string
ieUnsupportImageUrl
string
scheduledStartAt
string
scheduledEndAt
string
campaignStartedAt
null
campaignEndedAt
null
createdAt
string
updatedAt
string
streamobject
streamUrl
string
streamKey
string
videoAspectRatio
string
liveUrl
string
liveUrlsobject
480p
string
720p
string
previewLiveUrl
string
replayLiveUrl
null
replayLiveUrls
null
previewReplayLiveUrl
string
campaignProductList
array
sellerobject
sellerId
string
name
string
profileUrl
string
storeUrl
string
description
string
schemes
object
4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Create a campaignNext → Retrieve campaign info

Campaign API

Retrieve campaign info

GET/v2/{accessKey}/campaign/{campaignKeyOrId}

Retrieves a campaign by campaign key or campaign ID.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Query parameters

includeAuctionDetail
boolean
When this parameter is set to true, the response includes the auction details of auction products in campaignProductList.
Defaultfalse
resolutionLevel
integer (int32)
This parameter determines the preview video URL resolution, ranging from 1 (lowest) to 4 (highest).
Default1

Responses

200 OKapplication/json

The response body is a Campaign object.

object
campaignMetaobject
campaignId
string
campaignKey
string
accessKey
string
shoplivePlayerUrl
string
title
string
tags
array
description
string
campaignStatus
string
rerun
boolean
Whether the campaign is a rerun created from another campaign
userCount
integer (int32)
Viewer count of the campaign. While the campaign is on air, it follows the count method set for the customer (concurrent viewers, page views or cumulative viewers). After the campaign ends, it is the final recorded count. null before the campaign starts
concurrentUserCount
integer (int32)
Number of concurrent viewers. Only while the campaign is on air; null otherwise
likeCount
integer (int32)
Number of likes. Provided while the campaign is on air or after it ends; null before it starts
rehearsalPasscode
string
serveReplay
boolean
Defaulttrue
logoImageUrl
brandobject
Brand set to the campaign
brandId
string
name
string
identifier
string
description
string
imageUrl
string
imageWidth
integer
Default0
imageHeight
integer
Default0
createdAt
string
updatedAt
string
preCampaignVideoUrl
preCampaignImageUrl
string
postCampaignImageUrl
string
backgroundImageUrl
string
ieUnsupportImageUrl
string
scheduledStartAt
string
scheduledEndAt
string
campaignStartedAt
string
campaignEndedAt
string
createdAt
string
updatedAt
string
streamobject
streamUrl
string
streamKey
string
videoAspectRatio
string
liveUrl
string
liveUrlsobject
480p
string
720p
string
previewLiveUrl
string
replayLiveUrl
string
replayLiveUrlsobject
480p
string
720p
string
previewReplayLiveUrl
string
campaignProductListArray of object
productId
string
customerProductId
string
name
string
brand
string
brandIdentifier
string
Brand key (identifier) of the product
description
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
Defaulttrue
originalPrice
number
Default0
discountPrice
number
Default0
discountRate
number
Default0
enableAuction
boolean
Defaulttrue
bidStartingPrice
number
bidDuration
integer (int32)
bidIncrementalAmount
number
extendBidDuration
boolean
ctaButtonTitle
string
Title of the call-to-action button shown for the product
sellerobject
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
createdAt
string
updatedAt
string
campaignId
string
showingNow
boolean
Defaulttrue
sortOrder
integer
Default0
stockStatus
string
auction
sellerobject
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Create a rerun campaignNext → Delete a campaign

Campaign API

Delete a campaign

DELETE/v2/{accessKey}/campaign/{campaignKeyOrId}

Deletes the campaign. You can delete a campaign only when its campaignStatus is READY or RESERVED; otherwise the request returns 403 (_s: -114). A campaign that is the source of a rerun campaign cannot be deleted (403, _s: -706). Delete the rerun campaigns first.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Responses

200 OKapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Retrieve campaign infoNext → Duplicate a campaign

Campaign API

Duplicate a campaign

POST/v2/{accessKey}/campaign/{campaignKeyOrId}/duplicate

Creates a new campaign by duplicating an existing campaign.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Query parameters

duplicatePopups
boolean
Whether to duplicate the popups of the campaign
Defaulttrue
duplicateProducts
boolean
Whether to duplicate the products of the campaign
Defaulttrue

Responses

200 OKapplication/json

The response body is a Campaign object.

object
campaignMetaobject
campaignId
string
campaignKey
string
accessKey
string
shoplivePlayerUrl
string
title
string
tags
array
description
string
campaignStatus
string
rerun
boolean
Whether the campaign is a rerun created from another campaign
userCount
integer (int32)
Viewer count of the campaign. While the campaign is on air, it follows the count method set for the customer (concurrent viewers, page views or cumulative viewers). After the campaign ends, it is the final recorded count. null before the campaign starts
concurrentUserCount
integer (int32)
Number of concurrent viewers. Only while the campaign is on air; null otherwise
likeCount
integer (int32)
Number of likes. Provided while the campaign is on air or after it ends; null before it starts
rehearsalPasscode
string
serveReplay
boolean
Defaulttrue
logoImageUrl
brandobject
Brand set to the campaign
brandId
string
name
string
identifier
string
description
string
imageUrl
string
imageWidth
integer
Default0
imageHeight
integer
Default0
createdAt
string
updatedAt
string
preCampaignVideoUrl
preCampaignImageUrl
string
postCampaignImageUrl
string
backgroundImageUrl
string
ieUnsupportImageUrl
string
scheduledStartAt
string
scheduledEndAt
string
campaignStartedAt
string
campaignEndedAt
string
createdAt
string
updatedAt
string
streamobject
streamUrl
string
streamKey
string
videoAspectRatio
string
liveUrl
string
liveUrlsobject
480p
string
720p
string
previewLiveUrl
string
replayLiveUrl
string
replayLiveUrlsobject
480p
string
720p
string
previewReplayLiveUrl
string
sellerobject
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
campaignProductCount
integer
Number of products in the campaign
4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Delete a campaignNext → Update a campaign

Campaign API

Update a campaign

PUT/v2/{accessKey}/campaign/{campaignKeyOrId}

Modifiable fields of CampaignMeta object

Field Name Type Description
title string Title of the campaign
description string Description of the campaign
rehearsalPasscode string Passcode to enter the live streaming in rehearsal mode
serveReplay boolean Whether replays are public
scheduledStartAt string Scheduled start DateTime of the campaign. ISO 8601 with time zone offset, e.g. YYYY-MM-DDTHH:mm:ss±HH:MM (Z for UTC). Returned in UTC
scheduledEndAt string Scheduled end DateTime of the campaign. ISO 8601 with time zone offset, e.g. YYYY-MM-DDTHH:mm:ss±HH:MM (Z for UTC). Returned in UTC
tags array of string Tags of the campaign. Send [] to remove all tags; omit to keep the current tags
brand object Brand of the campaign as {"brandId": …}. Send {} to unlink the brand; omit to keep the current brand

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Body parameters

application/json
object
campaignMetaobjectRequired
title
string
Title of the campaign
description
string
Description of the campaign (memo in the campaign setting)
tags
array[string]
Tag information set for the campaign (Max 10 tags can be set)
rehearsalPasscode
string
Passcode to access the campaign when it is in rehearsal state
serveReplay
boolean
Whether replays are public
brandobject
Brand of the campaign
brandId
integer (int64)
Brand ID
scheduledStartAt
string
ISO 8601 date-time with time zone offset, e.g. YYYY-MM-DDTHH:mm:ss±HH:MM (Z for UTC). Returned in UTC
scheduledEndAt
string
ISO 8601 date-time with time zone offset, e.g. YYYY-MM-DDTHH:mm:ss±HH:MM (Z for UTC). Returned in UTC

Responses

200 OKapplication/json

The response body is a Campaign object.

object
campaignMetaobject
campaignId
string
campaignKey
string
accessKey
string
shoplivePlayerUrl
string
title
string
description
string
campaignStatus
string
rehearsalPasscode
string
serveReplay
boolean
logoImageUrl
null
brandobject
brandId
string
name
string
identifier
string
description
string
imageUrl
string
imageWidth
integer
imageHeight
integer
createdAt
string
updatedAt
string
preCampaignVideoUrl
null
preCampaignImageUrl
string
postCampaignImageUrl
string
backgroundImageUrl
string
ieUnsupportImageUrl
string
scheduledStartAt
string
scheduledEndAt
string
campaignStartedAt
null
campaignEndedAt
null
createdAt
string
updatedAt
string
streamobject
streamUrl
string
streamKey
string
videoAspectRatio
string
liveUrl
string
liveUrlsobject
480p
string
720p
string
previewLiveUrl
string
replayLiveUrl
null
replayLiveUrls
null
previewReplayLiveUrl
string
campaignProductList
array
seller
null
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Duplicate a campaignNext → Search products in a campaign

Campaign API

Search products in a campaign

GET/v2/{accessKey}/campaign/{campaignKeyOrId}/product

Search products in a campaign

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Responses

200 OKapplication/json

Each item in results is a CampaignProduct object.

object
resultsArray of object
productId
string
customerProductId
string
name
string
brand
string
brandIdentifier
string
Brand key (identifier) of the product
description
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
Defaulttrue
originalPrice
number
Default0
discountPrice
number
Default0
discountRate
number
Default0
enableAuction
boolean
Defaulttrue
bidStartingPrice
number
bidDuration
integer (int32)
bidIncrementalAmount
number
extendBidDuration
boolean
ctaButtonTitle
string
Title of the call-to-action button shown for the product
sellerobject
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
createdAt
string
updatedAt
string
campaignId
string
showingNow
boolean
Defaulttrue
sortOrder
integer
Default0
stockStatus
string
auction
totalCount
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Update a campaignNext → Add products to the campaign

Campaign API

Add products to the campaign

POST/v2/{accessKey}/campaign/{campaignKeyOrId}/product

Add products to the campaign

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Body parameters

At least one item is required. Each item must specify either productId or customerProductId. Use the same identifier type for all items in one request.

application/json
Array of object
productId
integer (int64)
Automatically generated unique product ID
customerProductId
string
Customer-defined product ID. Must be unique.

Responses

200 OKapplication/json
object
resultsArray of object
productId
string
message
status
string
successCount
integer
Default0
warnCount
integer
Default0
failCount
integer
Default0
totalCount
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Search products in a campaignNext → Remove products from the campaign

Campaign API

Remove products from the campaign

DELETE/v2/{accessKey}/campaign/{campaignKeyOrId}/product

Remove products from the campaign

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Body parameters

At least one item is required. Each item must specify either productId or customerProductId. Use the same identifier type for all items in one request.

application/json
Array of object
productId
integer (int64)
Automatically generated unique product ID
customerProductId
string
Customer-defined product ID. Must be unique.

Responses

200 OKapplication/json
object
resultsArray of object
productId
string
message
null
status
string
successCount
integer
warnCount
integer
failCount
integer
totalCount
integer
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Add products to the campaignNext → Transfer campaign to parent

Campaign API

Transfer campaign to parent

PUT/v2/{accessKey}/campaign/{campaignKeyOrId}/transferToParent

Transfers the campaign from the seller to its parent account.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Query parameters

withProduct
boolean
Whether to move the products to the parent account together
Defaultfalse

Responses

200 OKapplication/json

The response body is a Campaign object.

object
campaignMetaobject
campaignId
string
campaignKey
string
accessKey
string
shoplivePlayerUrl
string
title
string
description
string
campaignStatus
string
rehearsalPasscode
string
serveReplay
boolean
logoImageUrl
null
preCampaignVideoUrl
null
preCampaignImageUrl
string
postCampaignImageUrl
string
backgroundImageUrl
string
ieUnsupportImageUrl
string
scheduledStartAt
string
scheduledEndAt
string
campaignStartedAt
null
campaignEndedAt
null
createdAt
string
updatedAt
string
streamobject
streamUrl
string
streamKey
string
videoAspectRatio
string
liveUrl
string
liveUrlsobject
480p
string
720p
string
previewLiveUrl
string
replayLiveUrl
null
replayLiveUrls
null
previewReplayLiveUrl
string
campaignProductList
array
seller
null
4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Remove products from the campaignNext → Search auction products in a campaign

Campaign API

Search auction products in a campaign

GET/v2/{accessKey}/campaign/{campaignKeyOrId}/product/auction

Search auction products in a campaign

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Query parameters

groupId
integer (int64)
Product group ID set in the console.

Responses

200 OKapplication/json

Each item in results is a CampaignProduct object.

object
resultsArray of object
productId
string
customerProductId
string
name
string
brand
string
brandIdentifier
string
Brand key (identifier) of the product
description
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
Defaulttrue
originalPrice
number
Default0
discountPrice
number
Default0
discountRate
number
Default0
enableAuction
boolean
Defaulttrue
bidStartingPrice
number
Default0
bidDuration
integer
Default0
bidIncrementalAmount
number
Default0
extendBidDuration
boolean
Defaulttrue
ctaButtonTitle
string
Title of the call-to-action button shown for the product
sellerobject
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
createdAt
string
updatedAt
string
campaignId
string
showingNow
boolean
Defaulttrue
sortOrder
integer
Default0
stockStatus
string
auctionobject
productId
string
auctionStatus
stringenum
READYONGOINGENDINGENDED
startingPrice
number
Default0
bidRound
integer
Default0
currentPrice
number
Default0
winningPrice
number
recommendedPrices
winnerobject
Bidder who won the auction. null until the auction ends with a winning bid.
uid
string
userId
string
User ID of the bidder
name
string
leaderobject
Bidder who currently holds the highest bid.
uid
string
userId
string
User ID of the bidder
name
string
winnerCheckoutScheme
startedAt
integer (int64)
Epoch milliseconds (UTC).
endingAt
integer (int64)
Epoch milliseconds (UTC).
endedAt
integer (int64)
Epoch milliseconds (UTC).
totalCount
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Transfer campaign to parentNext → Remove all products from the campaign

Campaign API

Remove all products from the campaign

DELETE/v2/{accessKey}/campaign/{campaignKeyOrId}/product/all

Remove all products from the campaign

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Responses

200 OKapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Search auction products in a campaignNext → Change the order of products in a campaign

Campaign API

Change the order of products in a campaign

PUT/v2/{accessKey}/campaign/{campaignKeyOrId}/product/order

This API first sorts the products in the order specified in the request body, and then appends the remaining products registered in the campaign in their original order.


Example of the ordering by customerProductId

The original order of the customerProductId values registered in the campaign: sl09, sl08, sl07, sl06, sl05, sl04
Order of the customerProductId values after processing the request: sl04, sl05, sl07, sl09, sl08, sl06

 curl --location --request PUT 
'https://private.shopliveapi.com/v2/{accessKey}/campaign/{campaignKeyOrId}/product/order'
 --header 'Accept: application/json'
 --header 'Authorization: Bearer {JWT_TOKEN}'
 --header 'Content-Type: application/json'
 --data-raw
 '[
    {"customerProductId": "sl04"},
    {"customerProductId": "sl05"},
    {"customerProductId": "sl07"}
]' 

Error code

HTTP Status Code Error code(_s) Error Message(_e)
404 -710 Campaign does not exist
404 -848 No products to reorder were found in the campaign
400 -840 Either the list does not exist or the data does not exist

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Body parameters

At least one item is required. Each item must specify either productId or customerProductId. Use the same identifier type for all items in one request.

application/json
Array of object
productId
integer (int64)
Automatically generated unique product ID
customerProductId
string
Customer-defined product ID. Must be unique.

Responses

200 OKapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Remove all products from the campaignNext → Retrieve an auction in progress

Campaign API

Retrieve an auction in progress

GET/v2/{accessKey}/campaign/{campaignKeyOrId}/product/auction/inprogress

Retrieve an auction in progress

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Responses

200 OKapplication/json

The response body is a CampaignProduct object.

object
productId
string
customerProductId
string
name
string
brand
string
brandIdentifier
string
Brand key (identifier) of the product
description
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
Defaulttrue
originalPrice
number
Default0
discountPrice
number
Default0
discountRate
number
Default0
enableAuction
boolean
Defaulttrue
bidStartingPrice
number
Default0
bidDuration
integer
Default0
bidIncrementalAmount
number
Default0
extendBidDuration
boolean
Defaulttrue
ctaButtonTitle
string
Title of the call-to-action button shown for the product
sellerobject
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
createdAt
string
updatedAt
string
campaignId
string
showingNow
boolean
Defaulttrue
sortOrder
integer
Default0
stockStatus
string
auctionobject
productId
string
auctionStatus
stringenum
READYONGOINGENDINGENDED
startingPrice
number
Default0
bidRound
integer
Default0
currentPrice
number
Default0
winningPrice
number
recommendedPrices
array[number]
winnerobject
Bidder who won the auction. null until the auction ends with a winning bid.
uid
string
userId
string
User ID of the bidder
name
string
leaderobject
Bidder who currently holds the highest bid.
uid
string
userId
string
User ID of the bidder
name
string
winnerCheckoutScheme
startedAt
integer
Epoch milliseconds (UTC).
Default0
endingAt
integer
Epoch milliseconds (UTC).
Default0
endedAt
integer (int64)
Epoch milliseconds (UTC).
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Change the order of products in a campaignNext → Transfer campaign to seller

Campaign API

Transfer campaign to seller

PUT/v2/{accessKey}/campaign/{campaignKeyOrId}/transferToSeller/{sellerId}

Transfer campaign to seller

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID
sellerId
integer (int64)Required

Query parameters

withProduct
boolean
Whether the products will be moved to the seller together
Defaultfalse

Responses

200 OKapplication/json

The response body is a Campaign object.

object
campaignMetaobject
campaignId
string
campaignKey
string
accessKey
string
shoplivePlayerUrl
string
title
string
description
string
campaignStatus
string
rehearsalPasscode
string
serveReplay
boolean
logoImageUrl
null
preCampaignVideoUrl
null
preCampaignImageUrl
string
postCampaignImageUrl
string
backgroundImageUrl
string
ieUnsupportImageUrl
string
scheduledStartAt
string
scheduledEndAt
string
campaignStartedAt
null
campaignEndedAt
null
createdAt
string
updatedAt
string
streamobject
streamUrl
string
streamKey
string
videoAspectRatio
string
liveUrl
string
liveUrlsobject
480p
string
720p
string
previewLiveUrl
string
replayLiveUrl
null
replayLiveUrls
null
previewReplayLiveUrl
string
campaignProductList
array
sellerobject
sellerId
string
name
string
profileUrl
string
storeUrl
string
description
string
schemes
object
4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Retrieve an auction in progressNext → Popup object

Popup API

Search popups in a campaign

GET/v2/{accessKey}/campaign/{campaignKeyOrId}/popup

Retrieves the list of popups registered to a campaign. The response is a JSON array of popup items.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Responses

200 OKapplication/json

Each item in the array is a Popup list item.

Array of object
popupResourceId
string
Identifier of the popup
title
string
Popup title
description
string
Popup description
contentsobjectRequired
Popup content. The fields below describe the COUPON popup. Contents of other popup types have different fields and are not documented here
popupType
stringRequired
Popup type of the content. Same as the top-level popupType (COUPON for coupon popups)
title
string
Title of the popup content
description
string
Description of the popup content
couponDeliveryType
stringenum
INSTANTDWELL_TIME
Coupon delivery method. INSTANT (immediately) or DWELL_TIME (after a dwell time). If empty, it works as INSTANT.
couponDeliverySeconds
integer
Takes effect only when couponDeliveryType is DWELL_TIME
imageUrl
string
Coupon image URL. External URLs sent in create/update requests are converted to a Shoplive CDN URL (image.shoplive.cloud)
imageWidth
integer
Display width in pixels. When 0 (default), the player renders it at its default width of 164px
Default0
textImageListTitle
string
Title of the text+image list
textImageListArray of object
List of text+image items
imageUrl
string
Image URL
text
string
Text to display
popupType
stringenum
TEXT_IMAGE
Fixed to TEXT_IMAGE
DefaultTEXT_IMAGE
action
string
Action on click. Free-form string.
payload
string
Payload of the action on click. Free-form string.
action
stringenum
CUSTOM_ACTION
Only CUSTOM_ACTION or null (omitted) is allowed. Any other value returns 400
payload
string
A JSON-serialized string. Returns 400 if it is not valid JSON. To match the coupon, include {"coupon":"<couponId>"}.
link
string
Deprecated. Do not use for new integrations
dismissType
stringenum
KEEPAUTOMANUAL
popupType
string
Type of the popup. The list can also include popups of other types created in the console, so skip popups whose type is not COUPON.
dimmed
boolean
duration
integer
showingNow
boolean
Whether the popup is currently shown live
clickCount
integer
Cumulative click count
usedAt
integer (int64)
Epoch milliseconds (UTC) of the first time the popup was shown. null if it has never been shown.
createdAt
integer (int64)
Epoch milliseconds (UTC) when the popup was created.
updatedAt
integer (int64)
Epoch milliseconds (UTC) when the popup was last updated.

Previous ← Popup objectNext → Create a coupon popup

Popup API

Create a coupon popup

POST/v2/{accessKey}/campaign/{campaignKeyOrId}/popup/coupon

Creates one coupon popup and links it to the campaign. This is handled atomically in a single transaction. The response returns only the identifier of the created popup — use the popup list endpoint (GET) to check the full state.

Validation rules: popupType must be COUPON both at the top level and inside contents. contents.action only allows CUSTOM_ACTION or omission; any other value returns 400. contents.payload, when present, must be a valid JSON string, or the request returns 400. To match the coupon, include {"coupon":"<couponId>"} in contents.payload. Only one of contents.imageUrl or contents.imageBase64 may be sent (sending both returns 400); an external image is synchronously downloaded by the server and converted to the Shoplive CDN (image.shoplive.cloud) before saving. A base64 image larger than 5MB (decoded bytes) returns 400.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Body parameters

application/json
object
title
string
Popup title (admin-facing label). Optional
description
string
Popup description (admin-facing memo)
popupType
stringRequiredenum
COUPON
Fixed to COUPON. Any other value returns 400
DefaultCOUPON
contentsobjectRequired
Popup content. popupType is fixed to COUPON
popupType
stringRequiredenum
COUPON
Fixed to COUPON. Must match the top-level popupType
DefaultCOUPON
title
string
Title of the popup content
description
string
Description of the popup content
couponDeliveryType
stringenum
INSTANTDWELL_TIME
Coupon delivery method. INSTANT (immediately) or DWELL_TIME (after a dwell time). Optional — when omitted, it behaves as INSTANT
couponDeliverySeconds
integer
Takes effect only when couponDeliveryType is DWELL_TIME
imageUrl
string
Coupon image URL. Cannot be used together with imageBase64 (400). PNG, JPEG or GIF up to 5MB only; redirecting URLs are not supported. External URLs are converted to a Shoplive CDN URL (image.shoplive.cloud).
imageBase64
string
Base64-encoded image (without the data: prefix). PNG, JPEG or GIF up to 5MB only. Cannot be used together with imageUrl (400).
imageContentType
string
MIME type of the image. Optional.
imageWidth
integer
Display width in pixels. When 0 (default), the player renders it at its default width of 164px
Default0
textImageListTitle
string
Title of the text+image list
textImageListArray of object
List of text+image items
imageUrl
string
Image URL
text
string
Text to display
popupType
stringenum
TEXT_IMAGE
Fixed to TEXT_IMAGE
DefaultTEXT_IMAGE
action
string
Action on click. Free-form string.
payload
string
Payload of the action on click. Free-form string.
action
stringenum
CUSTOM_ACTION
Only CUSTOM_ACTION or null (omitted) is allowed. Any other value returns 400
payload
string
A JSON-serialized string. Returns 400 if it is not valid JSON. To match the coupon, include {"coupon":"<couponId>"}.
link
string
Deprecated. Do not use for new integrations
dismissType
stringenum
KEEPAUTOMANUAL
Behavior on click. Defaults to AUTO
DefaultAUTO
dimmed
boolean
Whether the background dim is applied. Defaults to false. Not applied to COUPON popups.
Defaultfalse
duration
integer
Display duration in seconds. Defaults to 0 (no limit)
Default0
broadcastStrategyobject
Delivery strategy. Defaults to {"type":"ALL_AT_ONCE"}
type
stringenum
ALL_AT_ONCECOUNT_PER_SECONDTERM_DISTRIBUTED
Delivery strategy type
DefaultALL_AT_ONCE
tags
array[string]
Tags assigned to the popup

Responses

200 OKapplication/json
object
popupResourceId
string
Identifier of the created popup
4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Search popups in a campaignNext → Update a coupon popup

Popup API

Update a coupon popup

PUT/v2/{accessKey}/campaign/{campaignKeyOrId}/popup/coupon/{popupResourceId}

Updates the metadata/content of a coupon popup registered to the campaign. The request shape is the same as create. You don't need to send id/customerId/seller/adminId/adminName/createdAt/updatedAt; the server sets them. Only COUPON popups can be updated. Returns 404 if the target {popupResourceId} is not registered to this campaign or is not a COUPON popup. There is no response body — check the updated state with the popup list endpoint (GET).

Validation rules are the same as create: contents.action only allows CUSTOM_ACTION or omission, contents.payload must be a valid JSON string when present, contents.imageUrl/contents.imageBase64 cannot be used together (400), and the 5MB limit applies.

If this popup is also linked to other campaigns, changes to contents/dismissType/duration are applied to all linked campaigns at once.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID
popupResourceId
integerRequired
Popup resource ID

Body parameters

application/json
object
title
string
Popup title (admin-facing label). Optional
description
string
Popup description (admin-facing memo)
popupType
stringRequiredenum
COUPON
Fixed to COUPON. Any other value returns 400
DefaultCOUPON
contentsobjectRequired
Popup content. popupType is fixed to COUPON
popupType
stringRequiredenum
COUPON
Fixed to COUPON. Must match the top-level popupType
DefaultCOUPON
title
string
Title of the popup content
description
string
Description of the popup content
couponDeliveryType
stringenum
INSTANTDWELL_TIME
Coupon delivery method. INSTANT (immediately) or DWELL_TIME (after a dwell time). Optional — when omitted, it behaves as INSTANT
couponDeliverySeconds
integer
Takes effect only when couponDeliveryType is DWELL_TIME
imageUrl
string
Coupon image URL. Cannot be used together with imageBase64 (400). PNG, JPEG or GIF up to 5MB only; redirecting URLs are not supported. External URLs are converted to a Shoplive CDN URL (image.shoplive.cloud).
imageBase64
string
Base64-encoded image (without the data: prefix). PNG, JPEG or GIF up to 5MB only. Cannot be used together with imageUrl (400).
imageContentType
string
MIME type of the image. Optional.
imageWidth
integer
Display width in pixels. When 0 (default), the player renders it at its default width of 164px
Default0
textImageListTitle
string
Title of the text+image list
textImageListArray of object
List of text+image items
imageUrl
string
Image URL
text
string
Text to display
popupType
stringenum
TEXT_IMAGE
Fixed to TEXT_IMAGE
DefaultTEXT_IMAGE
action
string
Action on click. Free-form string.
payload
string
Payload of the action on click. Free-form string.
action
stringenum
CUSTOM_ACTION
Only CUSTOM_ACTION or null (omitted) is allowed. Any other value returns 400
payload
string
A JSON-serialized string. Returns 400 if it is not valid JSON. To match the coupon, include {"coupon":"<couponId>"}.
link
string
Deprecated. Do not use for new integrations
dismissType
stringenum
KEEPAUTOMANUAL
Behavior on click. Defaults to AUTO
DefaultAUTO
dimmed
boolean
Whether the background dim is applied. Defaults to false. Not applied to COUPON popups.
Defaultfalse
duration
integer
Display duration in seconds. Defaults to 0 (no limit)
Default0
broadcastStrategyobject
Delivery strategy. Defaults to {"type":"ALL_AT_ONCE"}
type
stringenum
ALL_AT_ONCECOUNT_PER_SECONDTERM_DISTRIBUTED
Delivery strategy type
DefaultALL_AT_ONCE
tags
array[string]
Tags assigned to the popup

Responses

204 No Contentapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Create a coupon popupNext → Unlink a popup from the campaign

Popup API

Activate a popup

PUT/v2/{accessKey}/campaign/{campaignKeyOrId}/popup/{popupResourceId}/activate

Shows the popup to live viewers immediately. After this call, the popup's showingNow is true in the popup list response.

Idempotent: calling this again when showingNow is already true returns 204 without changing anything (safe to retry or call more than once).

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID
popupResourceId
integerRequired
Popup resource ID

Query parameters

broadcastDelay
integer
Broadcast delay in milliseconds. Defaults to 0. A negative value returns 400
Default0

Responses

204 No Contentapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Unlink a popup from the campaignNext → Deactivate a popup

Popup API

Deactivate a popup

PUT/v2/{accessKey}/campaign/{campaignKeyOrId}/popup/{popupResourceId}/deactivate

Hides the popup from live viewers immediately. After this call, the popup's showingNow is false in the popup list response.

Idempotent: calling this again when showingNow is already false returns 204 without changing anything (safe to retry or call more than once).

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID
popupResourceId
integerRequired
Popup resource ID

Query parameters

broadcastDelay
integer
Broadcast delay in milliseconds. Defaults to 0. A negative value returns 400
Default0

Responses

204 No Contentapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Activate a popupNext → Product object

Product API

Product object

Property name

Type

Description

productId

String!

Automatically generated unique product ID.

customerProductId

String?

Customer-defined product ID. Must be unique. customerProductId can be set through the Product API only; the Shoplive Admin tool has no input field for it.

name

String!

Product name.

brand

String?

Brand name.

brandIdentifier

String?

Brand key (identifier) of the product, set by the customer.

description

String?

Description of the product.

url

String!

Product URL. Viewers go to this URL when they click the product info on the Shoplive Player.

sku

String?

Product SKU information (defined by the customer)

imageUrl

String?

Product image URL.

currency

String!

Currency of the price.

showPrice

Boolean!

Whether to show the price on the Shoplive Player.

originalPrice

Double?

e.g. 20.00 ($20.00 if the currency is USD)

discountPrice

Double?

e.g. 15.00 ($15.00 if the currency is USD)

discountRate

Double?

e.g. 25.00 (if the discount rate is 25%)

enableAuction

Boolean!

Whether the product supports an auction.

bidStartingPrice

Double?

Starting price of the auction (e.g. 0.99). Required when enableAuction is true.

bidDuration

Integer?

Bidding duration of the auction in seconds. This value is required when the enableAuction is true.

bidIncrementalAmount

Double?

Bid increment amount (e.g. 1.00). Required when enableAuction is true.

extendBidDuration

Boolean?

Whether to extend the remaining time to bid when a bid is placed near the end of the auction. The extension time follows the customer's auction settings.

ctaButtonTitle

String?

You can customize the CTA(call-to-action) title of the product. As it requires UI customization, it needs to be discussed with Shoplive. Please contact ask@shoplive.cloud if you want to use this feature.

locked

Boolean!

true when the product is registered in a campaign or a shortform. When you delete a locked product with force=true (the default), it is detached from its campaigns and then deleted. With force=false, it is not deleted. A product registered in a shortform is never deleted.

seller

Seller?

Seller information that owns the product.

createdAt

String!

Date and time when the product was created (format: YYYY-MM-DD'T'HH:mm:ss'Z')

updatedAt

String!

Date and time when the product was last updated (format: YYYY-MM-DD'T'HH:mm:ss'Z')


Sample

General product

json
{
    "productId": "1001",
    "customerProductId": "SHOPLIVE_PRODUCT_1",
    "name": "Keyring",
    "brand": "SHOPLIVE",
    "brandIdentifier": "SHOPLIVE_BRAND_IDENTIFIER",
    "description": null,
    "url": "https://www.shoplive.cloud/en",
    "sku": "SKU001",
    "imageUrl": "https://image.shoplive.cloud/e05d1464-1942-4e4e-bb0b-c4310167d465.jpeg",
    "currency": "USD",
    "showPrice": true,
    "originalPrice": 20.0,
    "discountPrice": 10.0,
    "discountRate": 50.0,
    "enableAuction": false,
    "bidStartingPrice": null,
    "bidDuration": null,
    "bidIncrementalAmount": null,
  	"extendBidDuration": null,
    "ctaButtonTitle": "Buy It Now",
    "locked": false,
    "seller": {
        "sellerId": "1",
        "name": "Shoplive Product Store",
        "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
        "storeUrl": "https://shoplive.cloud",
        "description": "Description of the seller",
        "schemes": null
    },
    "createdAt": "2026-05-20T08:01:05Z",
    "updatedAt": "2026-05-20T11:27:34Z"
}

Auction product

json
{
    "productId": "1004",
    "customerProductId": "SHOPLIVE_PRODUCT_4",
    "name": "Mug",
    "brand": "SHOPLIVE",
    "brandIdentifier": "SHOPLIVE_BRAND_IDENTIFIER",
    "description": null,
    "url": "https://www.shoplive.cloud/en",
    "sku": "SKU004",
    "imageUrl": "https://image.shoplive.cloud/b22c72c7-d2f8-49c3-83f0-314c59740649.jpeg",
    "currency": "USD",
    "showPrice": true,
    "originalPrice": 10.0,
    "discountPrice": 7.0,
    "discountRate": 30.0,
    "enableAuction": true,
    "bidStartingPrice": 7.0,
    "bidDuration": 120,
    "bidIncrementalAmount": 1.0,
    "extendBidDuration": true,
    "ctaButtonTitle": "Bid",
    "locked": false,
    "seller": {
        "sellerId": "1",
        "name": "Shoplive Product Store",
        "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
        "storeUrl": "https://shoplive.cloud",
        "description": "Description of the seller",
        "schemes": null
    },
    "createdAt": "2026-05-20T08:01:05Z",
    "updatedAt": "2026-05-20T11:27:34Z"
}

Previous ← Deactivate a popupNext → Search products

Product API

Search products

GET/v2/{accessKey}/product

Search products

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Query parameters

name
string
Keyword to search product names
brand
string
Keyword to search product brands
description
string
Keyword to search product descriptions
sellerId
integer (int64)
ID of the seller to search for
sku
string
Keyword to search product SKUs
url
string
Keyword to search product URLs
sortAscending
boolean
Sort by creation order (product ID). The default is false (newest first).
Defaultfalse
page
integer (int32)
Parameter for pagination. Default is 1.
Default1
count
integer (int32)
Number of results per page (max: 100)
Default30

Responses

200 OKapplication/json

Each item in results is a Product object.

object
resultsArray of object
productId
string
customerProductId
string
name
string
brand
string
brandIdentifier
string
Brand key (identifier) of the product
description
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
Defaulttrue
originalPrice
number
Default0
discountPrice
number
Default0
discountRate
number
Default0
enableAuction
boolean
Defaulttrue
bidStartingPrice
number
bidDuration
integer (int32)
bidIncrementalAmount
number
extendBidDuration
boolean
ctaButtonTitle
string
Title of the call-to-action button shown for the product
locked
boolean
Defaulttrue
sellerobject
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
createdAt
string
updatedAt
string
totalCount
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Product objectNext → Create products

Product API

Create products

POST/v2/{accessKey}/product

Creates products. This is not an upsert: an item whose customerProductId already exists returns status: FAIL. Each item's status is CREATE, WARN (created, but the image could not be loaded) or FAIL.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Body parameters

At least one item is required.

application/json
Array of object
customerProductId
string
Customer-defined product ID. Must be unique.
name
stringRequired
Product name (required). An item without it returns status FAIL.
brand
string
Brand name
brandIdentifier
string
Brand key
description
string
Description of the product
url
stringRequired
Product URL (required). Viewers go to this URL when they click the product info on the Shoplive Player. If missing, that item fails (status FAIL)
sku
string
Product SKU information (defined by the customer)
imageUrl
string
Product thumbnail image URL
currency
string
Currency of the price
showPrice
boolean
Whether to show the price.
originalPrice
number (double)
e.g. 20.00 ($20.00 if the currency is USD)
discountPrice
number (double)
e.g. 15.00 ($15.00 if the currency is USD)
discountRate
number (double)
e.g. 25.00 (if the discount rate is 25%)
enableAuction
boolean
Whether the product supports an auction
bidStartingPrice
number (double)
Starting price of the auction (e.g. 0.99). Required when enableAuction is true.
bidDuration
integer (int32)
Bidding time of the auction in seconds. This value is required when the enableAuction is true.
bidIncrementalAmount
number (double)
Bid increment amount (e.g. 1.00). Required when enableAuction is true.
extendBidDuration
boolean
Whether to extend the remaining time to bid when a bid is placed near the end of the auction. Send true to turn it on. The extension time follows the customer's auction settings.
sellerobject
sellerId
integer (int64)Required
Seller ID

Responses

200 OKapplication/json
object
resultsArray of object
productId
string
customerProductId
string
name
string
brand
string
brandIdentifier
string
Brand key (identifier) of the product
description
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
Defaulttrue
originalPrice
number
Default0
discountPrice
number
Default0
discountRate
number
Default0
enableAuction
boolean
Defaulttrue
bidStartingPrice
number
bidDuration
integer (int32)
bidIncrementalAmount
number
extendBidDuration
boolean
ctaButtonTitle
string
Title of the call-to-action button shown for the product
locked
boolean
Defaulttrue
sellerobject
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
createdAt
string
updatedAt
string
message
string
status
string
successCount
integer
Default0
warnCount
integer
Default0
failCount
integer
Default0
totalCount
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Search productsNext → Retrieve product info

Product API

Retrieve product info

GET/v2/{accessKey}/product/{productId}

Retrieve product info

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
productId
integer (int64)Required
Product ID

Responses

200 OKapplication/json

The response body is a Product object.

object
productId
string
customerProductId
string
name
string
brand
string
brandIdentifier
string
Brand key (identifier) of the product
description
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
Defaulttrue
originalPrice
number
Default0
discountPrice
number
Default0
discountRate
number
Default0
enableAuction
boolean
Defaulttrue
bidStartingPrice
number
bidDuration
integer (int32)
bidIncrementalAmount
number
extendBidDuration
boolean
ctaButtonTitle
string
Title of the call-to-action button shown for the product
locked
boolean
Defaulttrue
sellerobject
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
createdAt
string
updatedAt
string
4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Create productsNext → Retrieve product info by customerProductId

Product API

Retrieve product info by customerProductId

GET/v2/{accessKey}/product/customerProductId/{customerProductId}

Retrieve product info by customerProductId

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
customerProductId
stringRequired
Customer product ID

Responses

200 OKapplication/json

The response body is a Product object.

object
productId
string
customerProductId
string
name
string
brand
string
brandIdentifier
string
Brand key (identifier) of the product
description
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
Defaulttrue
originalPrice
number
Default0
discountPrice
number
Default0
discountRate
number
Default0
enableAuction
boolean
Defaulttrue
bidStartingPrice
number
bidDuration
integer (int32)
bidIncrementalAmount
number
extendBidDuration
boolean
ctaButtonTitle
string
Title of the call-to-action button shown for the product
locked
boolean
Defaulttrue
sellerobject
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
createdAt
string
updatedAt
string
4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Retrieve product infoNext → Update products

Product API

Update products

PUT/v2/{accessKey}/product

Updates products. Identify each item by customerProductId or productId, and use one identifier type per request. Each item's status is UPDATE or FAIL.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Body parameters

At least one item is required. Each item must specify either productId or customerProductId. Use the same identifier type for all items in one request.

application/json
Array of object
productId
integer (int64)
Automatically generated unique product ID(either productId or customerProductId is required)
customerProductId
string
Customer-defined product ID. Must be unique. Either productId or customerProductId is required.
name
string
Product name. If omitted or blank, the current name is kept
brand
string
Brand name
brandIdentifier
string
Brand key
description
string
Description of the product
url
string
Product URL. Viewers go to this URL when they click the product info on the Shoplive Player. If omitted or blank, the current URL is kept
sku
string
Product SKU information (defined by the customer)
imageUrl
string
Product thumbnail image URL
currency
string
Currency of the price
showPrice
boolean
Whether to show the price.
originalPrice
number (double)
e.g. 20.00 ($20.00 if the currency is USD)
discountPrice
number (double)
e.g. 15.00 ($15.00 if the currency is USD)
discountRate
number (double)
e.g. 25.00 (if the discount rate is 25%)
enableAuction
boolean
Whether the product supports an auction
bidStartingPrice
number (double)
Starting price of the auction (e.g. 0.99). Required when enableAuction is true.
bidDuration
integer (int32)
Bidding time of the auction in seconds. This value is required when the enableAuction is true.
bidIncrementalAmount
number (double)
Bid increment amount (e.g. 1.00). Required when enableAuction is true.
extendBidDuration
boolean
Whether to extend the remaining time to bid when a bid is placed near the end of the auction. true turns it on, false turns it off, and if omitted the current setting of the product is kept. The extension time follows the customer's auction settings.
sellerobject
sellerId
integer (int64)Required
Seller ID

Responses

200 OKapplication/json
object
resultsArray of object
productId
string
name
string
brand
string
description
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
Defaulttrue
originalPrice
number
Default0
discountPrice
number
Default0
discountRate
number
Default0
enableAuction
boolean
Defaulttrue
bidStartingPrice
number
bidDuration
bidIncrementalAmount
number
extendBidDuration
locked
boolean
Defaulttrue
seller
createdAt
string
updatedAt
string
message
status
string
successCount
integer
Default0
warnCount
integer
Default0
failCount
integer
Default0
totalCount
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Retrieve product info by customerProductIdNext → Delete products

Product API

Delete products

DELETE/v2/{accessKey}/product

Deletes products. Identify each item by customerProductId or productId, and use one identifier type per request. Each item's status is DELETE or FAIL.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Query parameters

force
boolean
Whether to force the deletion. When true (default), a product that is registered in campaigns is detached from those campaigns and then deleted. When false, a product registered in a campaign is not deleted and is returned as a failed item (status is FAIL in results[]). A product registered in a shortform is never deleted, regardless of this value.
Defaulttrue

Body parameters

At least one item is required. Each item must specify either productId or customerProductId. Use the same identifier type for all items in one request.

application/json
Array of object
productId
integer (int64)
Automatically generated unique product ID
customerProductId
string
Customer-defined product ID. Must be unique.

Responses

200 OKapplication/json
object
resultsArray of object
productId
string
message
string
status
string
successCount
integer
Default0
warnCount
integer
Default0
failCount
integer
Default0
totalCount
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Update productsNext → Transfer products to seller

Product API

Transfer products to seller

PUT/v2/{accessKey}/product/transferToSeller/{sellerId}

Transfer products to seller

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
sellerId
integer (int64)Required

Body parameters

At least one item is required. Each item must specify either productId or customerProductId. Use the same identifier type for all items in one request.

application/json
Array of object
productId
integer (int64)
Automatically generated unique product ID
customerProductId
string
Customer-defined product ID. Must be unique.

Responses

200 OKapplication/json
object
resultsArray of object
productId
string
customerProductId
string
name
string
brand
string
brandIdentifier
string
Brand key (identifier) of the product
description
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
Defaulttrue
originalPrice
number
Default0
discountPrice
number
Default0
discountRate
number
Default0
enableAuction
boolean
Defaulttrue
bidStartingPrice
number
bidDuration
integer (int32)
bidIncrementalAmount
number
extendBidDuration
boolean
ctaButtonTitle
string
Title of the call-to-action button shown for the product
locked
boolean
Defaulttrue
sellerobject
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
createdAt
string
updatedAt
string
message
status
string
successCount
integer
Default0
warnCount
integer
Default0
failCount
integer
Default0
totalCount
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Delete productsNext → Transfer products to parent

Product API

Transfer products to parent

PUT/v2/{accessKey}/product/transferToParent

Transfer products to parent

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Body parameters

At least one item is required. Each item must specify either productId or customerProductId. Use the same identifier type for all items in one request.

application/json
Array of object
productId
integer (int64)
Automatically generated unique product ID
customerProductId
string
Customer-defined product ID. Must be unique.

Responses

200 OKapplication/json
object
resultsArray of object
productId
string
customerProductId
string
name
string
brand
string
brandIdentifier
string
Brand key (identifier) of the product
description
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
Defaulttrue
originalPrice
number
Default0
discountPrice
number
Default0
discountRate
number
Default0
enableAuction
boolean
Defaulttrue
bidStartingPrice
number
bidDuration
integer (int32)
bidIncrementalAmount
number
extendBidDuration
boolean
ctaButtonTitle
string
Title of the call-to-action button shown for the product
locked
boolean
Defaulttrue
sellerobject
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
createdAt
string
updatedAt
string
message
string
status
string
successCount
integer
Default0
warnCount
integer
Default0
failCount
integer
Default0
totalCount
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Transfer products to sellerNext → Start broadcast/rehearsal

Console API

Start broadcast/rehearsal

POST/v2/{accessKey}/console/{campaignKeyOrId}/start

Starts the campaign. Add rehearsal=true to start a rehearsal.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Query parameters

rehearsal
boolean
Whether the campaign starts as a rehearsal
Defaultfalse

Responses

200 OKapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Transfer products to parentNext → Change product stock status in console

Console API

Change product stock status in console

PUT/v2/{accessKey}/console/{campaignKeyOrId}/product/stockStatus

Change product stock status in console

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Query parameters

stockStatus
stringenum
IN_STOCKLOW_IN_STOCKSOLD_OUT
Stock status applied to all of the listed products. The default is SOLD_OUT.
DefaultSOLD_OUT

Body parameters

At least one item is required. Each item must specify either productId or customerProductId. Use the same identifier type for all items in one request.

application/json
Array of object
productId
integer (int64)
Automatically generated unique product ID
customerProductId
string
Customer-defined product ID. Must be unique.

Responses

200 OKapplication/json
object
resultsArray of object
productId
string
message
status
string
successCount
integer
Default0
warnCount
integer
Default0
failCount
integer
Default0
totalCount
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Start broadcast/rehearsalNext → Show/hide "Now" status of products in the console

Console API

Show/hide "Now" status of products in the console

PUT/v2/{accessKey}/console/{campaignKeyOrId}/product/show

Show/hide "Now" status of products in the console

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Query parameters

show
boolean
Whether to show the "Now" status of the product
Defaulttrue

Body parameters

At least one item is required. Each item must specify either productId or customerProductId. Use the same identifier type for all items in one request.

application/json
Array of object
productId
integer (int64)
Automatically generated unique product ID
customerProductId
string
Customer-defined product ID. Must be unique.

Responses

200 OKapplication/json
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Change product stock status in consoleNext → End broadcast/rehearsal

Console API

End broadcast/rehearsal

POST/v2/{accessKey}/console/{campaignKeyOrId}/end

Ends the campaign. Ending a rehearsal returns the campaign to READY.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Responses

200 OKapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Show/hide "Now" status of products in the consoleNext → Show/hide "Now" status of all products in the console

Console API

Show/hide "Now" status of all products in the console

PUT/v2/{accessKey}/console/{campaignKeyOrId}/product/showAll

Show/hide "Now" status of all products in the console

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Query parameters

show
boolean
Whether to show the "Now" status of the product
Defaulttrue

Responses

200 OKapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← End broadcast/rehearsalNext → Start auction

Console API

Start auction

PUT/v2/{accessKey}/console/{campaignKeyOrId}/product/auction/start

Start auction

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Body parameters

Specify either productId or customerProductId (one of them is required). If both are given, customerProductId is used.

application/json
object
productId
integer (int64)
Automatically generated unique product ID
customerProductId
string
Customer-defined product ID. Must be unique.

Responses

200 OKapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Show/hide "Now" status of all products in the consoleNext → End auction

Console API

End auction

PUT/v2/{accessKey}/console/{campaignKeyOrId}/product/auction/end

End auction

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Body parameters

Specify either productId or customerProductId (one of them is required). If both are given, customerProductId is used.

application/json
object
productId
integer (int64)
Automatically generated unique product ID
customerProductId
string
Customer-defined product ID. Must be unique.

Responses

200 OKapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Start auctionNext → Seller object

Seller API

Seller object

Property name

Type

Description

sellerId

String!

Automatically generated identifier of the seller. (numeric string, e.g. "1")

name

String!

Name of the seller

profileUrl

String?

Profile image URL of the seller

storeUrl

String?

Store URL of the seller

description

String?

Description of the seller

schemes

Map<String, String>?

App schemes that open the seller's page when the user clicks each button in the player.

sellerIdentifier

String?

String identifier of the seller


Sample

json
{
    "sellerId": "1",
    "name": "Shoplive Product Store",
    "profileUrl": "https://image.shoplive.cloud/7910e586-19a4-4740-804b-5f9da02e6939.jpg",
    "storeUrl": "https://shoplive.cloud",
    "description": "Description of the seller",
    "schemes": {},
    "sellerIdentifier": "Identifier_of_the_seller"
}

Previous ← End auctionNext → Search sellers

Seller API

Search sellers

GET/v2/{accessKey}/seller

Search sellers

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Query parameters

keyword
string
Keyword to search the name of sellers
sortAscending
boolean
Sort by creation order (seller ID). The default is false (newest first).
Defaultfalse
page
integer (int32)
Parameter for pagination. Default is 1.
Default1
count
integer (int32)
Number of results per page (max: 20)
Default10

Responses

200 OKapplication/json

Each item in results is a Seller object.

object
resultsArray of object
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
object
totalCount
integer
Total number of sellers that match the search condition
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Seller objectNext → Create a seller

Seller API

Create a seller

POST/v2/{accessKey}/seller

Create a seller

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Body parameters

application/json
object
name
stringRequired
Name of the seller
profileUrl
string
Profile image URL of the seller
storeUrl
string
Store URL of the seller
description
string
Description of the seller

Responses

200 OKapplication/json

The response body is a Seller object.

object
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
object
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Search sellersNext → Update a seller

Seller API

Update a seller

PUT/v2/{accessKey}/seller/{sellerId}

Update a seller

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
sellerId
integer (int64)Required
Seller ID

Body parameters

application/json
object
name
string
Name of the seller
profileUrl
string
Profile image URL of the seller
storeUrl
string
Store URL of the seller
description
string
Description of the seller

Responses

200 OKapplication/json

The response body is a Seller object.

object
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
object
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Create a sellerNext → Delete a seller

Seller API

Delete a seller

DELETE/v2/{accessKey}/seller/{sellerId}

Deletes the seller. A deleted seller no longer appears in Search sellers and can't be retrieved or updated. The response has no body.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
sellerId
integer (int64)Required
Seller ID

Responses

200 OKapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Update a sellerNext → Retrieve seller info

Seller API

Retrieve seller info

GET/v2/{accessKey}/seller/{sellerId}

Retrieve seller info

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
sellerId
integer (int64)Required
Seller ID

Responses

200 OKapplication/json

The response body is a Seller object.

object
sellerId
string
name
string
sellerIdentifier
string
Identifier of the seller defined by the customer
profileUrl
string
storeUrl
string
description
string
schemes
object
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Delete a sellerNext → Brand object

Brand API

Brand object

Property name

Type

Description

brandId

String!

Automatically generated unique ID of the brand. Read only.

name

String!

Brand name. Max 255 characters.

identifier

String!

Brand identifier. 

description

String?

Brand description.

imageUrl

String!

Brand image URL.

imageWidth

Integer!

Brand image width (pixel). Automatically generated. Read only.

imageHeight

Integer!

Brand image height (pixel). Automatically generated. Read only.

createdAt

String!

Brand creation time. Read only. (format: YYYY-MM-DD'T'HH:mm:ss'Z')

updatedAt

String!

Brand update time. Read only. (format: YYYY-MM-DD'T'HH:mm:ss'Z')



Sample

json
{
    "brandId": "1",
    "name": "Shoplive",
    "identifier": "shoplive_brand",
    "description": "Shoplive Brand.",
    "imageUrl": "https://image.shoplive.cloud/{UUID}.png",
    "imageWidth": 2110,
    "imageHeight": 317,
    "createdAt": "2026-02-01T08:34:33Z",
    "updatedAt": "2026-02-22T08:09:38Z"
}

Previous ← Retrieve seller infoNext → Search brands

Brand API

Search brands

GET/v2/{accessKey}/brand

Search brands

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Query parameters

keyword
string
Keyword to search from name, identifier, and description of brands
sortAscending
boolean
Sort by creation order (brand ID). The default is false (newest first).
Defaultfalse
page
integer (int32)
Parameter for pagination. Default is 1.
Default1
count
integer (int32)
Number of results per page (max: 20)
Default10

Responses

200 OKapplication/json

Each item in results is a Brand object.

object
resultsArray of object
brandId
string
name
string
identifier
string
description
string
imageUrl
string
imageWidth
integer
Default0
imageHeight
integer
Default0
createdAt
string
Created time (ISO 8601 date-time with offset)
updatedAt
string
Last updated time (ISO 8601 date-time with offset)
totalCount
integer
Total number of brands that match the search condition
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Brand objectNext → Create a brand

Brand API

Create a brand

POST/v2/{accessKey}/brand

Create a brand

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Body parameters

application/json
object
name
stringRequired
Name of the brand
imageUrl
stringRequired
Image URL of the brand
identifier
stringRequired
Identifier of the brand
description
string
Description of the brand

Responses

200 OKapplication/json

The response body is a Brand object.

object
brandId
string
name
string
identifier
string
description
string
imageUrl
string
imageWidth
integer
Default0
imageHeight
integer
Default0
createdAt
string
Created time (ISO 8601 date-time with offset)
updatedAt
string
Last updated time (ISO 8601 date-time with offset)
4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Search brandsNext → Retrieve a brand

Brand API

Retrieve a brand

GET/v2/{accessKey}/brand/{brandId}

Retrieve a brand

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
brandId
integer (int64)Required
ID of the brand to retrieve

Responses

200 OKapplication/json

The response body is a Brand object.

object
brandId
string
name
string
identifier
string
description
string
imageUrl
string
imageWidth
integer
Default0
imageHeight
integer
Default0
createdAt
string
Created time (ISO 8601 date-time with offset)
updatedAt
string
Last updated time (ISO 8601 date-time with offset)
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Create a brandNext → Update brand info

Brand API

Update brand info

PUT/v2/{accessKey}/brand/{brandId}

Update brand info

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
brandId
integer (int64)Required
ID of the brand to update

Body parameters

application/json
object
name
string
Name of the brand
imageUrl
string
Image URL of the brand
identifier
string
Identifier of the brand
description
string
Description of the brand

Responses

200 OKapplication/json

The response body is a Brand object.

object
brandId
string
name
string
identifier
string
description
string
imageUrl
string
imageWidth
integer
Default0
imageHeight
integer
Default0
createdAt
string
Created time (ISO 8601 date-time with offset)
updatedAt
string
Last updated time (ISO 8601 date-time with offset)
4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Retrieve a brandNext → Delete a brand

Brand API

Delete a brand

DELETE/v2/{accessKey}/brand/{brandId}

Delete a brand

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
brandId
integer (int64)Required
ID of the brand to delete

Responses

200 OKapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Update brand infoNext → Shortform object

Shortform API

Shortform object

The Shortform object contains the video and various metadata that make up an individual shortform. You can use this object to create a preview screen composed of multiple thumbnails or to construct feeds for playing individual shortforms. The Shortform search, retrieval, creation, and update APIs return this object.

You can also create, update, and delete shortforms directly through the API (Create a shortform, Update a shortform, Delete a shortform).


Shortform object

Property name

Type

Description

shortformId

String!

Unique ID assigned to each Shortform generated by the Shoplive system.

createdAt

String!

Date and time when the Shortform was created is in the following format: (format: YYYY-MM-DD'T'HH:mm:ss'Z', e.g. 2026-12-25T08:00:00Z)

updatedAt

String!

Date and time when the Shortform was updated is in the following format: (format: YYYY-MM-DD'T'HH:mm:ss'Z', e.g. 2026-12-25T08:00:00Z)

status

String!

Status flag of the visibility of a shortform (OPEN | HIDDEN | SCHEDULED)

details

Details

The details of each shortform include the following properties.

  • title

  • description

  • brand

  • tags

  • productCount

  • productBanner

  • products

activity

Activity

The activity information associated with each shortform includes the following properties.

  • viewCount

  • likeCount

  • commentCount

  • bookmarkCount

  • shareCount

video

Video

The video associated with the shortform includes the following properties.

  • duration

  • videoId

  • videoUrl

  • previewVideoUrl

  • screenshotUrl

Details object

The details of each shortform include the following properties.

Property name

Type

Description

title

String!

Title of the shortform

description

String?

Description of the shortform

brand

brand

Brand information set for the shortform

tags

List<String>?

Tag information set for the shortform

productCount

Integer!

Number of products set in the shortform

productBanner

productBanner

Product banner information set in the shortform

products

products

Information about the products associated with the shortform.

Activity object

The activity of each shortform includes the following properties. In the items returned by Search shortforms, only viewCount is included; to get likeCount, commentCount, bookmarkCount, and shareCount, call Retrieve a shortform.

Property name

Type

Description

viewCount

Integer!

Number of users who have watched the shortform

likeCount

Integer!

Number of times the shortform has been liked (not available in the Search API)

commentCount

Integer!

Number of comments on the shortform (not available in the Search API)

bookmarkCount

Integer!

Number of times the shortform has been bookmarked (not available in the Search API)

shareCount

Integer!

Number of times the shortform has been shared (not available in the Search API)

Video object

The video associated with the shortform includes the following properties.

Property name

Type

Description

duration

Integer!

Total playback duration of the shortform video (in milliseconds).

videoId

String!

Unique video ID (string) of the shortform video managed by Shoplive.

videoUrl

String!

Playback URL (m3u8) of the shortform video. This is the original video of the shortform and should not be used for preview screens. It is recommended for client implementation of feeds. Adaptive Bitrate needs to be implemented manually.

previewVideoUrl

String!

Preview video URL (m3u8) of the shortform video. This URL is used to play a low-resolution (320P) video for preview screens. If repeated playback of a video with a length of X seconds is required, it needs to be implemented manually.

screenshotUrl

String!

URL for displaying the thumbnail image of the shortform video.

Brand object

Property name

Type

Description

brandId

String!

Brand ID

identifier

String!

Unique string for brand identification

name

String!

Brand Name

imageUrl

String!

Brand image URL

ProductBanner object

A product banner is a banner that can be displayed at the top of a UI where a list of products is shown. It is commonly used on product campaigns or promotion pages, with a link inserted into the banner.

Property name

Type

Description

title

String!

Product Banner Title

imageUrl

String!

Product Banner Image URL

scheme

String!

URL or Scheme to which the Product Banner will redirect when clicked.

Products object

In search API results, products contains one product per shortform. To get all products, use the Retrieve a shortform API.

Property name

Type

Description

productId

String!

The unique product ID managed by the Shoplive system.

name

String!

Product Title

brand

String!

Brand Information of the Product

url

String!

Product Detail Page URL

sku

String!

Product SKU Information

imageUrl

String!

Product Image URL

currency

String!

Currency information of the Product

showPrice

Boolean!

Flag to indicate if the Product Price should be displayed (true | false)

originalPrice

Double!

Original Price of the Product

discountPrice

Double!

Discounted Price of the Product

discountRate

Double!

Discount Percentage of the Product Price

stockStatus

String!

Stock Status of the Product (IN_STOCK | LOW_IN_STOCK | SOLD_OUT)


Sample

json
{
    "shortformId": "123456789012345678",
    "createdAt": "2026-12-25T08:00:00Z", 
    "updatedAt": "2026-12-26T08:00:00Z",
    "status": "OPEN",
    "details": {
        "title": "Shortform Title",
        "description": "This is a sample description",
        "brand": {
            "brandId": "123",
            "identifier": "shoplive", 
            "name": "Shoplive",
            "imageUrl": "https://image.shoplive.cloud/brand-image.png"
        },
        "tags": [ "food", "snack" ],
        "productCount": 3,
        "productBanner": {
            "title": "Product Banner Title",
            "imageUrl": "https://image.shoplive.cloud/product-banner-image.png",
            "scheme": "https://www.shoplive.cloud/product" 
        },
        "products": [ {
            "productId": "54321",
            "name": "Shoplive T-shirts",
            "brand": "Shoplive Brand",
            "url": "https://shoplivedemo.com/product/54321",
            "sku": "sku001",
            "imageUrl": "https://image.shoplive.cloud/product-image.png",
            "currency": "KRW",
            "showPrice": true,
            "originalPrice": 3400.0,
            "discountPrice": 2500.0,
            "discountRate": 26.0,
            "stockStatus": "IN_STOCK"
      } ]
    },
    "activity": {
        "viewCount": 2345,
        "likeCount": 123,
        "commentCount": 123,
        "bookmarkCount": 123,
        "shareCount": 321 
    },
    "video": {
        "duration": 3600,
        "videoId": "1234",
        "videoUrl": "https://resource.shoplive.cloud/video/shortsform/video.m3u8",
        "previewVideoUrl": "https://resource.shoplive.cloud/video/shortsform/previewVideo.m3u8",
        "screenshotUrl": "https://image.shoplive.cloud/shortform/screenshot.png"
    }
}

Previous ← Delete a brandNext → Search shortform objects

Shortform API

Search shortform objects

GET/v2/{accessKey}/shortform

When you use the Shortform search API, keep the following in mind:

  • In search results, details.products contains one product per shortform. To get all products, call Retrieve a shortform.
  • When using the API for the preview screen of a shortform, it is recommended to use the video.previewVideoUrl field of each item in results. The video.videoUrl field contains the original video, which has a higher resolution and requires a larger amount of data for playback.
  • You can set the search condition as either AND or OR when searching with multiple tags. (e.g., &tags=tag1,tag2,tag3&tagSearchOperator=AND|OR)
  • When querying the results from the API, you can decide which column to use as the sorting criterion among sortOrder, createdAt, and updatedAt. The sorting order can be specified using the sortAscending parameter.
  • In the items of results, activity includes only viewCount. To get likeCount, commentCount, bookmarkCount and shareCount, call Retrieve a shortform.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Query parameters

from
string
Start of the createdAt range to search (format: YYYY-MM-DD'T'HH:mm:ss'Z', e.g. 2026-05-20T08:00:00Z)
to
string
End of the createdAt range to search (format: YYYY-MM-DD'T'HH:mm:ss'Z', e.g. 2026-05-20T08:00:00Z)
status
stringenum
OPENHIDDENSCHEDULED
Status flag of the visibility of a shortform
title
string
Title of the shortform
description
string
Description of the shortform
brand
string
Brand information set for the shortform
tags
string
Comma-separated tags to search for. Use tagSearchOperator to specify an AND or OR query.
skus
string
Comma-separated SKUs to search for. Multiple SKUs are combined with OR.
tagSearchOperator
stringenum
ANDOR
Search operator to use when searching by tags
DefaultOR
shortformCollectionId
integer (int64)
Used to search for shortform using collections.
page
integer (int32)
Parameter for pagination. Default is 1.
Default1
count
integer (int32)
Number of results per page (max: 100)
Default10
sortColumn
stringenum
sortOrdercreatedAtupdatedAt
Column to sort by: sortOrder (display order set in the admin console, default), createdAt (creation time), or updatedAt (update time).
sortAscending
boolean
Sort by the column in sortColumn. The default is true (ascending).
Defaulttrue

Responses

200 OKapplication/json

Each item in results is a Shortform object.

object
resultsArray of object
shortformId
string
createdAt
string
updatedAt
string
status
string
detailsobject
title
string
description
string
brandobject
brandId
string
identifier
string
name
string
imageUrl
string
tags
array[string]
productCount
integer
productBannerobject
title
string
imageUrl
string
scheme
string
productsArray of object
productId
string
name
string
brand
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
originalPrice
number
discountPrice
number
discountRate
number
stockStatus
string
activityobject
viewCount
integer
videoobject
duration
integer
videoId
string
videoUrl
string
previewVideoUrl
string
screenshotUrl
string
totalCount
integer
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Shortform objectNext → Create a shortform

Shortform API

Create a shortform

POST/v2/{accessKey}/shortform

Create a shortform object

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Body parameters

application/json
object
detailsobjectRequired
title
stringRequired
Title of the shortform
description
string
Description of the shortform
tags
array[string]
Tag information set to the shortform
brandobject
brandId
integer (int64)
Brand ID
productsArray of object
productId
integer (int64)
product ID
scheduledOpenAt
string
ISO 8601 date-time with time zone offset, e.g. YYYY-MM-DDTHH:mm:ss±HH:MM (Z for UTC). Returned in UTC
scheduledCloseAt
string
ISO 8601 date-time with time zone offset, e.g. YYYY-MM-DDTHH:mm:ss±HH:MM (Z for UTC). Returned in UTC
sellerobject
sellerId
integer (int64)
Seller ID
videoobjectRequired
Video to use for the shortform. Specify either videoId or customerVideoId (one of them is required). If both are given, customerVideoId is used.
videoId
integer (int64)
video ID
customerVideoId
string
customer video ID
status
string
status of the shortform: OPEN|HIDDEN|SCHEDULED

Responses

200 OKapplication/json

The response body is a Shortform object.

object
shortformId
string
createdAt
string
updatedAt
string
status
string
detailsobject
title
string
description
string
brandobject
brandId
string
identifier
string
name
string
imageUrl
string
tags
array[string]
productCount
integer
productBannerobject
title
string
imageUrl
string
scheme
string
productsArray of object
productId
string
name
string
brand
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
originalPrice
number
discountPrice
number
discountRate
number
stockStatus
string
activityobject
viewCount
integer
likeCount
integer
commentCount
integer
bookmarkCount
integer
shareCount
integer
videoobject
duration
integer
videoId
string
videoUrl
string
previewVideoUrl
string
screenshotUrl
string
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Search shortform objectsNext → Retrieve a shortform

Shortform API

Retrieve a shortform

GET/v2/{accessKey}/shortform/{shortformId}

Retrieve a shortform object

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
shortformId
integer (int64)Required
shortformId

Responses

200 OKapplication/json

The response body is a Shortform object.

object
shortformId
string
createdAt
string
updatedAt
string
status
string
detailsobject
title
string
description
string
brandobject
brandId
string
identifier
string
name
string
imageUrl
string
tags
array[string]
productCount
integer
productBannerobject
title
string
imageUrl
string
scheme
string
productsArray of object
productId
string
name
string
brand
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
originalPrice
number
discountPrice
number
discountRate
number
stockStatus
string
activityobject
viewCount
integer
likeCount
integer
commentCount
integer
bookmarkCount
integer
shareCount
integer
videoobject
duration
integer
videoId
string
videoUrl
string
previewVideoUrl
string
screenshotUrl
string
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Create a shortformNext → Update a shortform

Shortform API

Update a shortform

PUT/v2/{accessKey}/shortform/{shortformId}

Update a shortform object

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
shortformId
integer (int64)Required
shortformId

Body parameters

application/json
object
detailsobject
title
string
Title of the shortform
description
string
Description of the shortform
tags
array[string]
Tag information set to the shortform
brandobject
brandId
integer (int64)
Brand ID
scheduledOpenAt
string
ISO 8601 date-time with time zone offset, e.g. YYYY-MM-DDTHH:mm:ss±HH:MM (Z for UTC). Returned in UTC
scheduledCloseAt
string
ISO 8601 date-time with time zone offset, e.g. YYYY-MM-DDTHH:mm:ss±HH:MM (Z for UTC). Returned in UTC
videoobject
videoId
integer (int64)
video ID
customerVideoId
string
customer video ID
status
string
status of the shortform: OPEN|HIDDEN|SCHEDULED

Responses

200 OKapplication/json

The response body is a Shortform object.

object
shortformId
string
createdAt
string
updatedAt
string
status
string
detailsobject
title
string
description
string
brandobject
brandId
string
identifier
string
name
string
imageUrl
string
tags
array[string]
productCount
integer
productBannerobject
title
string
imageUrl
string
scheme
string
productsArray of object
productId
string
name
string
brand
string
url
string
sku
string
imageUrl
string
currency
string
showPrice
boolean
originalPrice
number
discountPrice
number
discountRate
number
stockStatus
string
activityobject
viewCount
integer
likeCount
integer
commentCount
integer
bookmarkCount
integer
shareCount
integer
videoobject
duration
integer
videoId
string
videoUrl
string
previewVideoUrl
string
screenshotUrl
string
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Retrieve a shortformNext → Delete a shortform

Shortform API

Delete a shortform

DELETE/v2/{accessKey}/shortform/{shortformId}

Delete a shortform

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
shortformId
integer (int64)Required
shortformId to delete

Responses

200 OKapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Update a shortformNext → Add products to a shortform

Shortform API

Add products to a shortform

POST/v2/{accessKey}/shortform/{shortformId}/product

Add products to a shortform

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
shortformId
integer (int64)Required
shortform id

Body parameters

At least one item is required. Each item must specify either productId or customerProductId. Use the same identifier type for all items in one request.

application/json
Array of object
productId
integer (int64)
Automatically generated unique product ID
customerProductId
string
Customer-defined product ID. Must be unique.

Responses

200 OKapplication/json
object
resultsArray of object
productId
string
message
status
string
customerProductId
string
successCount
integer
Default0
warnCount
integer
Default0
failCount
integer
Default0
totalCount
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Delete a shortformNext → Remove products from a shortform

Shortform API

Remove products from a shortform

DELETE/v2/{accessKey}/shortform/{shortformId}/product

Remove products from a shortform

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
shortformId
integer (int64)Required
shortform id

Body parameters

At least one item is required. Each item must specify either productId or customerProductId. Use the same identifier type for all items in one request.

application/json
Array of object
productId
integer (int64)
Automatically generated unique product ID
customerProductId
string
Customer-defined product ID. Must be unique.

Responses

200 OKapplication/json
object
resultsArray of object
productId
string
message
null
status
string
successCount
integer
warnCount
integer
failCount
integer
totalCount
integer
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Add products to a shortformNext → Video object

Video API

Video object

Property name

Type

Description

videoId

String!

Automatically generated identifier of the video. (numeric string)

customerVideoId

String?

Customer-defined video ID. Must be unique.

title

String!

Title of the video. max. 255 characters.

description

String?

Description of the video. max. 65535 characters.

tags

List<String>?

Tag of the video. max 10 tags

filename

String!

Original filename when the video was uploaded.

width

Integer!

Width of the video in pixels.

height

Integer!

Height of the video in pixels.

filesize

String!

File size of the video in bytes. (numeric string)

videoSourceUrl

String!

Uploaded file URL of the video.

thumbnailImageUrl

String?

Thumbnail image URL of the video. If not specified, Shoplive automatically generates a thumbnail image URL when creating a video.

liveStreamUrl

String?

Adaptive-quality HLS(m3u8) URL to play the video like a live stream. It is not included in the response right after the video is created.

liveStreamUrls

Map<String, String>?

Live-style (m3u8) URLs per resolution. The key is the resolution (e.g. 720p, 480p, 320p) and the value is the playback URL.

vodStreamUrl

String?

Automatic quality HLS(m3u8) replay video URL.

vodStreamUrls

Map<String, String>?

Replay-style (m3u8) URLs per resolution. The key is the resolution (e.g. 720p, 480p, 320p) and the value is the playback URL.

duration

Integer!

Length of the video in milliseconds.

uploadProgress

Integer!

Upload progress of the video. (0-100) It will be 100(%) when all transcoding is finished.

createdAt

String!

Created DateTime when the video is created (format: YYYY-MM-DD'T'HH:mm:ss'Z')

updatedAt

String!

Updated DateTime when the video is updated (format: YYYY-MM-DD'T'HH:mm:ss'Z')


Sample

json
{
    "videoId": "100",
    "customerVideoId": "SHOPLIVE_VIDEO_1",
    "title": "Shoplive Introduction Video",
    "description": "Introduction video description",
    "tags": ["interstitial","cocacola","cpg","test"],
    "filename": "shoplive_introduction_video.mp4",
    "width": 720,
    "height": 1280,
    "filesize": "38128539",
    "videoSourceUrl": "https://resource.shoplive.cloud/videos/vod/archive/{accessKey}/{streamKey}.mp4",
    "thumbnailImageUrl": "https://image.shoplive.cloud/{streamKey}.jpg",
    "liveStreamUrl": "https://api.shoplive.cloud/v1/videos/{accessKey}/rt_1240.m3u8",
    "liveStreamUrls": {
        "720p": "https://api.shoplive.cloud/v1/videos/{accessKey}/rt_1240/720p.m3u8",
        "480p": "https://api.shoplive.cloud/v1/videos/{accessKey}/rt_1240/480p.m3u8"
    },
    "vodStreamUrl": "https://resource.shoplive.cloud/videos/vod/hls/{streamKey}.m3u8",
    "vodStreamUrls": {
        "720p": "https://resource.shoplive.cloud/videos/vod/hls/{streamKey}_720p/index.m3u8",
        "480p": "https://resource.shoplive.cloud/videos/vod/hls/{streamKey}_480p/index.m3u8"
    },
    "duration": 202000,
    "uploadProgress": 100,
    "createdAt": "2026-12-09T09:17:04Z",
    "updatedAt": "2026-12-09T09:23:15Z"
}


Previous ← Remove products from a shortformNext → Search videos

Video API

Search videos

GET/v2/{accessKey}/video

Search videos

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Query parameters

keyword
string
Keyword to search title and description of videos
sortAscending
boolean
Sort by creation order (video ID). The default is false (newest first).
Defaultfalse
page
integer (int32)
Parameter for pagination. Default is 1.
Default1
count
integer (int32)
Number of results per page (max: 100)
Default20
customerVideoId
string
Customer-defined video ID. Must be unique.
tags
array[string]
Comma-separated tags to search for. Use tagSearchOperator to specify an AND or OR query.
tagSearchOperator
stringenum
ANDOR
Search operator to use when searching by tags (AND / OR)
DefaultOR

Responses

200 OKapplication/json

Each item in results is a Video object.

object
resultsArray of object
videoId
string
customerVideoId
string
title
string
description
string
tags
array[string]
filename
string
width
integer
Default0
height
integer
Default0
filesize
string
videoSourceUrl
string
thumbnailImageUrl
string
liveStreamUrl
string
liveStreamUrls
object
Live-style (m3u8) URLs per resolution. The key is the resolution (e.g. 720p, 480p, 320p) and the value is the playback URL.
vodStreamUrl
string
vodStreamUrls
object
Replay-style (m3u8) URLs per resolution. The key is the resolution (e.g. 720p, 480p, 320p) and the value is the playback URL.
duration
integer
Default0
uploadProgress
integer
Default0
createdAt
string
updatedAt
string
totalCount
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Video objectNext → Create a video

Video API

Create a video

POST/v2/{accessKey}/video


This API uploads a video file to Shoplive media storage and creates a video resource.

When the API call is received by the Shoplive server, a response is returned to the requester after the video file upload is completed. (excluding thumbnail image URL and live/replay URLs)
When the video upload is complete, the Shoplive server transcodes for the uploaded video, and you can check the progress through the uploadProgress of the video retrieve/search API response.
You may also configure the Webhook URL to receive notifications once transcoding finishes. (Please contact the Shoplive account representative to setup Webhook)

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Body parameters

application/json
object
customerVideoId
string
Customer-defined video ID. Must be unique.
title
string
Title of the video. max. 255 characters. If not specified, default value is original filename.
description
string
Description of the video. max. 65535 characters.
video
string (binary)Required
Video file(mp4,mov) of multipart/form-data type
image
string (binary)
Thumbnail image(screenshot) file of multipart/form-data type. If not specified, Shoplive automatically generates a thumbnail image URL when creating a video.
tags
array[string]
Tags of the video (max 10). Send the field once per tag (e.g. tags=tag1&tags=tag2). A single comma-separated value is also accepted.

Responses

200 OKapplication/json

The response body is a Video object.

object
videoId
string
customerVideoId
string
title
string
description
string
tags
array[string]
filename
string
width
integer
Default0
height
integer
Default0
filesize
string
videoSourceUrl
string
thumbnailImageUrl
string
vodStreamUrl
vodStreamUrls
duration
integer
Default0
uploadProgress
integer
Default0
createdAt
string
updatedAt
string
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Search videosNext → Retrieve a video info

Video API

Retrieve a video info

GET/v2/{accessKey}/video/{videoId}

Retrieve a video info

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
videoId
integer (int64)Required
Video ID

Responses

200 OKapplication/json

The response body is a Video object.

object
videoId
string
customerVideoId
string
title
string
description
string
tags
array[string]
filename
string
width
integer
Default0
height
integer
Default0
filesize
string
videoSourceUrl
string
thumbnailImageUrl
string
liveStreamUrl
string
liveStreamUrls
object
Live-style (m3u8) URLs per resolution. The key is the resolution (e.g. 720p, 480p, 320p) and the value is the playback URL.
vodStreamUrl
string
vodStreamUrls
object
Replay-style (m3u8) URLs per resolution. The key is the resolution (e.g. 720p, 480p, 320p) and the value is the playback URL.
duration
integer
Default0
uploadProgress
integer
Default0
createdAt
string
updatedAt
string
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Create a videoNext → Retrieve a video info by customerVideoId

Video API

Retrieve a video info by customerVideoId

GET/v2/{accessKey}/video/customerVideoId/{customerVideoId}

Retrieve a video info by customerVideoId

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
customerVideoId
stringRequired
Customer-defined video ID. Must be unique.

Responses

200 OKapplication/json

The response body is a Video object.

object
videoId
string
customerVideoId
string
title
string
description
string
tags
array[string]
filename
string
width
integer
Default0
height
integer
Default0
filesize
string
videoSourceUrl
string
thumbnailImageUrl
string
liveStreamUrl
string
liveStreamUrls
object
Live-style (m3u8) URLs per resolution. The key is the resolution (e.g. 720p, 480p, 320p) and the value is the playback URL.
vodStreamUrl
string
vodStreamUrls
object
Replay-style (m3u8) URLs per resolution. The key is the resolution (e.g. 720p, 480p, 320p) and the value is the playback URL.
duration
integer
Default0
uploadProgress
integer
Default0
createdAt
string
updatedAt
string
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Retrieve a video infoNext → Update a video by videoId

Video API

Update a video by videoId

PUT/v2/{accessKey}/video/{videoId}

You can change the title, description, tags and customerVideoId for a video using videoId

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
videoId
integer (int64)Required
ID of the video whose metadata you want to update

Body parameters

application/json
object
customerVideoId
string
Customer video ID to be used after the update
title
string
Title of the video. max. 255 characters. If omitted, the current title is kept.
description
string
Description of the video. max. 65535 characters.
tags
array[string]
Tags in array form.

Responses

200 OKapplication/json

The response body is a Video object.

object
videoId
string
customerVideoId
string
title
string
description
string
tags
array[string]
filename
string
width
integer
Default0
height
integer
Default0
filesize
string
videoSourceUrl
string
thumbnailImageUrl
string
liveStreamUrl
string
liveStreamUrls
object
Live-style (m3u8) URLs per resolution. The key is the resolution (e.g. 720p, 480p, 320p) and the value is the playback URL.
vodStreamUrl
string
vodStreamUrls
object
Replay-style (m3u8) URLs per resolution. The key is the resolution (e.g. 720p, 480p, 320p) and the value is the playback URL.
duration
integer
Default0
uploadProgress
integer
Default0
createdAt
string
updatedAt
string
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Retrieve a video info by customerVideoIdNext → Update a video by customerVideoId

Video API

Update a video by customerVideoId

PUT/v2/{accessKey}/video/customerVideoId/{customerVideoId}

You can change the title, description, and tags of a video using customerVideoId

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
customerVideoId
stringRequired
Target customerVideoId to update meta data

Body parameters

application/json
object
title
string
Title of the video. max. 255 characters. If omitted, the current title is kept.
description
string
Description of the video. max. 65535 characters.
tags
array[string]
Tags in array form.

Responses

200 OKapplication/json

The response body is a Video object.

object
videoId
string
customerVideoId
string
title
string
description
string
tags
array[string]
filename
string
width
integer
Default0
height
integer
Default0
filesize
string
videoSourceUrl
string
thumbnailImageUrl
string
liveStreamUrl
string
liveStreamUrls
object
Live-style (m3u8) URLs per resolution. The key is the resolution (e.g. 720p, 480p, 320p) and the value is the playback URL.
vodStreamUrl
string
vodStreamUrls
object
Replay-style (m3u8) URLs per resolution. The key is the resolution (e.g. 720p, 480p, 320p) and the value is the playback URL.
duration
integer
Default0
uploadProgress
integer
Default0
createdAt
string
updatedAt
string
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Update a video by videoIdNext → Delete a video by videoId

Video API

Delete a video by videoId

DELETE/v2/{accessKey}/video/{videoId}

Delete a video by videoId

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
videoId
integer (int64)Required
videoId to delete

Responses

200 OKapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Update a video by customerVideoIdNext → Delete a video by customerVideoId

Video API

Delete a video by customerVideoId

DELETE/v2/{accessKey}/video/customerVideoId/{customerVideoId}

Delete a video by customerVideoId

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
customerVideoId
stringRequired
customerVideoId to delete

Responses

200 OKapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Delete a video by videoIdNext → Stats object

Stats API

Stats object

Property name

Type

Description

campaignId

String!

Automatically generated identifier of the campaign. (numeric string)

campaignKey

String!

Automatically generated alphanumeric key (max 32 bytes). Use this key to specify a campaign in API calls.

accessKey

String!

Unique key for each customer. Most Shoplive APIs require this accessKey.

title

String!

Title of the campaign

scheduledStartAt

String!

Scheduled starting DateTime of the campaign (format: YYYY-MM-DD'T'HH:mm:ss'Z')

campaignStartedAt

String!

Actual starting DateTime of the campaign (format: YYYY-MM-DD'T'HH:mm:ss'Z')

campaignEndedAt

String!

Actual ending DateTime of the campaign (format: YYYY-MM-DD'T'HH:mm:ss'Z')

totalViewers

Integer!

Total number of viewers

totalLoginViewers

Integer!

Total number of viewers who logged in to the customer's web or app

peakConcurrentViewers

Integer!

Number of concurrent viewers at peak

newLoginViewers

Integer!

Number of viewers who watched the customer's campaign for the first time

averageViewingTime

Integer!

Average viewing time in seconds (totalViewingTime / totalViewers)

totalViewingTime

Integer!

Total viewing time in seconds (all viewers)

likes

Integer!

Total number of likes

likeViewers

Integer!

Total number of viewers who clicked the like button

averageLikes

Double!

likes/likeViewers

chats

Integer!

Total number of chats

chatViewers

Integer!

Total number of viewers who sent chat messages

averageChats

Double!

chats/chatViewers

productClicks

Integer!

Total number of clicks on products

productClickViewers

Integer!

Total number of viewers who clicked the product

averageProductClicks

Double!

productClicks/productClickViewers

bannerClicks

Integer!

Total number of clicks on the product banner (the banner displayed at the top of the product list)


Sample

json
{
    "campaignId": "1234",
    "campaignKey": "1234fef8e8e3",
    "accessKey": "a1b2c3d4",
    "title": "test campaign",
    "scheduledStartAt": "2026-07-08T06:30:00Z",
    "campaignStartedAt": "2026-07-08T06:21:06Z",
    "campaignEndedAt": "2026-07-11T12:38:59Z",
    "totalViewers": 123456,
    "totalLoginViewers": 100000,
    "peakConcurrentViewers": 12345,
    "newLoginViewers": 123455,
    "averageViewingTime": 15,
    "totalViewingTime": 1851840,
    "likes": 123456,
    "likeViewers": 123456,
    "averageLikes": 1.0,
    "chats": 123456,
    "chatViewers": 123456,
    "averageChats": 1.0,
    "productClicks": 123456,
    "productClickViewers": 123456,
    "averageProductClicks": 1.0,
    "bannerClicks": 123456
}

Previous ← Delete a video by customerVideoIdNext → Retrieve campaign stats by date range

Stats API

Retrieve campaign stats by date range

GET/v2/{accessKey}/campaign/stats

Retrieves the statistics of campaigns within a specific date range. The maximum period is one week.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Query parameters

from
stringRequired
Retrieve stats of campaigns that ended between FROM and TO (based on the campaign end time). (format: YYYY-MM-DD'T'HH:mm:ss'Z', e.g. 2026-09-07T00:00:00Z) Both from and to are required and the range cannot exceed 7 days.
to
stringRequired
Retrieve stats of campaigns that ended between FROM and TO (based on the campaign end time). (format: YYYY-MM-DD'T'HH:mm:ss'Z', e.g. 2026-09-07T00:00:00Z) Both from and to are required and the range cannot exceed 7 days.
campaignKeys
string
Specific campaign keys, separated by commas, to retrieve statistics between the FROM and TO date range.

Responses

200 OKapplication/json

Each item in results is a Stats object.

object
resultsArray of object
campaignId
string
campaignKey
string
accessKey
string
title
string
scheduledStartAt
string
campaignStartedAt
string
campaignEndedAt
string
totalViewers
integer
Default0
totalLoginViewers
integer
Default0
peakConcurrentViewers
integer
Default0
newLoginViewers
integer
Default0
averageViewingTime
integer
Default0
totalViewingTime
integer
Default0
likes
integer
Default0
likeViewers
integer
Default0
averageLikes
number
Default0
chats
integer
Default0
chatViewers
integer
Default0
averageChats
number
Default0
productClicks
integer
Default0
productClickViewers
integer
Default0
averageProductClicks
number
Default0
bannerClicks
integer
Default0
totalCount
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Stats objectNext → Retrieve stats of a campaign

Stats API

Retrieve stats of a campaign

GET/v2/{accessKey}/campaign/{campaignKeyOrId}/stats

Retrieve stats of a campaign

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key
campaignKeyOrId
stringRequired
Campaign key or campaign ID

Responses

200 OKapplication/json

The response body is a Stats object.

object
campaignId
string
campaignKey
string
accessKey
string
title
string
scheduledStartAt
string
campaignStartedAt
string
campaignEndedAt
string
totalViewers
integer
Default0
totalLoginViewers
integer
Default0
peakConcurrentViewers
integer
Default0
newLoginViewers
integer
Default0
averageViewingTime
integer
Default0
totalViewingTime
integer
Default0
likes
integer
Default0
likeViewers
integer
Default0
averageLikes
number
Default0
chats
integer
Default0
chatViewers
integer
Default0
averageChats
number
Default0
productClicks
integer
Default0
productClickViewers
integer
Default0
averageProductClicks
number
Default0
bannerClicks
integer
Default0
4XX Client Errorapplication/json
object
_s
integer
Default0
_e
string

Previous ← Retrieve campaign stats by date rangeNext → Download log files

Stats API

Download log files

GET/v2/{accessKey}/log

Downloads log data as a file in the requested format.

Header parameters

Authorization
stringRequired
JWT Token

Path parameters

accessKey
stringRequired
Customer access key

Query parameters

type
stringRequiredenum
likeLogchatLogproductClickLogpopupClickLogviewerAccessLogviewerActivityLoghighlightedChatLogfilteredChatLog
Type of log to download.
format
stringRequiredenum
jsoncsvtsv
Please specify the log file format to download
from
string
Restrict the search scope of logs between the specified from and to in YYYY-MM-DD'T'HH:mm:ss'Z' format (e.g. 2026-05-20T09:00:00Z). The from and to parameters must be specified together and the date range can't be greater than 7 days. Required unless ck is specified.
to
string
Restrict the search scope of logs between the specified from and to in YYYY-MM-DD'T'HH:mm:ss'Z' format (e.g. 2026-05-20T09:00:00Z). The from and to parameters must be specified together and the date range can't be greater than 7 days. Required unless ck is specified.
ck
string
Campaign key or campaign ID. When specified, from and to are optional and the range is automatically set from the campaign start time to 4 days after it (the campaign must have been started). The 7-day limit does not apply.
excludeAdmin
boolean
Whether to exclude the activity of admins/operators from viewerAccessLog and viewerActivityLog. The default is true. It does not filter chats.
Defaulttrue

Responses

200 OKapplication/json

No response body

4XX Client Errorapplication/json
object
_s
integer
_e
string

Previous ← Retrieve stats of a campaignNext → Health check API

Healthcheck API

Health check API

Shoplive provides a health check for its services.


Player initialization code

javascript
function initPlayer() {
  (function (s,h,o,p,l,i,v,e) {s["ShoplivePlayer"]=l;(s[l]=s[l]||function(){
  (s[l].q=s[l].q||[]).push(arguments);}),(i=h.createElement(o)),
  (v=h.getElementsByTagName(o)[0]);i.async=1;i.src=p;v.parentNode.insertBefore(i,v);
  })(window,document,"script","https://static.shoplive.cloud/live.js","mplayer");

  mplayer("init", "{{ access_key }}", "{{ campaign_key }}", "{{ user authorization }}", {{ options }});
  mplayer("run", "{{ id }}");
}


Add Health Check Function



jQuery

javascript
$.get("https://config.shoplive.cloud/ping.json", function(_data_, status) {
  if (status === "success") {
    initPlayer();
  }
}).fail(function() {
  // error handling
});



Vanilla.js

javascript
var request;
if (window.XMLHttpRequest) {
  request = new XMLHttpRequest();
} else if (window.ActiveXObject) {
  request = new ActiveXObject("Microsoft.XMLHTTP");
}

request.open("GET", "https://config.shoplive.cloud/ping.json", true);

request.onreadystatechange = function() {
  if (request.readyState === 4) {
    if (request.status === 200) {
      initPlayer();
    } else {
      // error handling
    }
  }
};

request.send(null);


Previous ← Download log filesNext → Webhook

Webhook

Webhook

A webhook is a callback that Shoplive sends to your server as a POST request when an event occurs in a broadcast, such as a campaign start or end. You receive the data as it happens, instead of polling the API frequently.

Webhook setup is not self-service. Shoplive registers it for you, so send your receiving URLs to your account manager or ask@shoplive.cloud. The following events are available:

  • Campaign start: sends the Campaign object when a campaign starts.

  • Campaign end: sends the Campaign object when a campaign ends.

  • Auction start · end · reset: sends an AuctionWebhook object when an auction's state changes in a campaign.

Start and end events are sent to separate URLs, and auction events are sent to a third URL. The events you receive are configurable. Rehearsal broadcasts do not send webhooks unless that option is enabled at registration.

Delivery

Each event is sent once. Return 200 within about 1 second and process the event asynchronously. Also poll Search campaigns with campaignStatus=ENDED periodically, and process campaigns idempotently by campaignKey.

Signature verification

Start and end events are signed only if a webhook secret key was configured at registration. Two headers are sent with the request: X-SHOPLIVE-WEBHOOK-TIMESTAMP (Unix epoch milliseconds, as a string) and X-SHOPLIVE-WEBHOOK-SIGNATURE (lowercase hex HMAC-SHA256). The signed message is the timestamp, a ., and the raw request body bytes exactly as received (before JSON parsing). The key is the UTF-8 bytes of the secret string. Compare the signatures in constant time. Auction events don't include signature headers.

For code samples in Node.js, Python, and Java, see Mission 11 · Detect the end via webhook in the Getting Started guide.

Previous ← Health check APINext → AuctionWebhook object

Webhook

AuctionWebhook object

Property name

Type

Description

action

string

START_AUCTION, END_AUCTION, RESET_AUCTION

campaignMeta

CampaignMeta

Meta information of the campaign

campaignProduct

CampaignProduct

CampaignProduct object.


Sample

json
{
  "action": "START_AUCTION",
  "campaignMeta": {
    "campaignId": 1234,
    "campaignKey": "{campaignKey}",
    "accessKey": "{accessKey}",
    "shoplivePlayerUrl": "https://www.shoplive.show/v1/player.html?ak={accessKey}&ck={campaignKey}",
    "title": "Shoplive Liveshow",
    "description": "",
    "campaignStatus": "ONAIR",
    "rerun": false,
    "userCount": 0,
    "likeCount": 0,
    "rehearsalPasscode": "9876",
    "serveReplay": true,
    "logoImageUrl": null,
    "brand": null,
    "preCampaignVideoUrl": null,
    "preCampaignImageUrl": "https://image.shoplive.cloud/bg_shoplive.png",
    "postCampaignImageUrl": "https://image.shoplive.cloud/bg_shoplive.png",
    "backgroundImageUrl": "https://image.shoplive.cloud/bg_shoplive.png",
    "ieUnsupportImageUrl": "https://image.shoplive.cloud/bg_shoplive.png",
    "tags": null,
    "scheduledStartAt": "2026-11-01T09:00:00Z",
    "scheduledEndAt": null,
    "campaignStartedAt": "2026-11-01T09:00:05Z",
    "campaignEndedAt": null,
    "createdAt": "2026-11-01T08:15:00Z",
    "updatedAt": "2026-11-01T09:00:05Z"
  },
  "campaignProduct": {
    "productId": "1234",
    "customerProductId": "SHOPLIVE_PRODUCT_1",
    "name": "Keyring",
    "brand": "SHOPLIVE",
    "description": null,
    "url": "https://www.shoplive.cloud/en",
    "sku": "SKU001",
    "imageUrl": "https://image.shoplive.cloud/e05d1464-1942-4e4e-bb0b-c4310167d465.jpeg",
    "currency": "USD",
    "showPrice": true,
    "originalPrice": 20.0,
    "discountPrice": 20.0,
    "discountRate": 0,
    "enableAuction": true,
    "bidStartingPrice": 100,
    "bidDuration": 1000,
    "bidIncrementalAmount": 1,
    "extendBidDuration": false,
    "ctaButtonTitle": null,
    "seller": null,
    "extendedProperties": null,
    "createdAt": "2026-05-20T08:01:05Z",
    "updatedAt": "2026-11-01T09:05:00Z",
    "campaignId": 1234,
    "showingNow": true,
    "sortOrder": 1,
    "stockStatus": "IN_STOCK",
    "auction": {
      "productId": 1234,
      "auctionStatus": "ONGOING",
      "startingPrice": 100,
      "bidRound": 1,
      "currentPrice": 100,
      "winningPrice": null,
      "recommendedPrices": [
        100
      ],
      "winner": null,
      "leader": null,
      "winnerCheckoutScheme": null,
      "startedAt": 1793523900000,
      "endingAt": 1793524900000,
      "endedAt": null
    }
  }
}

Previous ← Webhook