Caast API Reference (v1)
Download OpenAPI specification:Download
Caast is a solution to easily create, manage and display live shopping stream and video content on your website directly with just a script.
Caast has an online admin panel where you can manage everything, but you can also use our API to include some Caast content handling in your own solution.
Caast lives are entities that are created to display live streaming content on your website.
Once created, you can retrieve an RTMP url along with a stream key to start sending your video flux.
You can affiliate a seller and some products to a live with their unique ID and also tag it at your will.
Note : They must have at start date and have three states on our side (unstarted, started, and finished). Once finished, a live produce a replay of the stream session
List lives
Get all lives of your app. You can add some parameters to filter the response.
This endpoint will return a paginated response with 20 items per page (along with pagination related response headers).
Authorizations:
query Parameters
name | string Search by live name |
product_id | string Search for live with products of given id |
product_ref | string Search for live with products that match given reference (SKU) |
seller_id | string Filter lives created by seller with given ID |
seller_name | string Search for lives created by seller with given name |
seller_external_id | string Filter lives created by seller with given external ID |
tags | Array of arrays Filter lives that match the given array of tags |
state | string Search for lives with a specific state (not_started, started or finished) |
order | string Sort the results by creation date or start date with or without a direction (ASC, DESC). Possible values created_at:ASC, created_at:DESC, start_date:ASC, start_date:DESC |
page | integer Page number (this endpoint returns 20 items per page) |
Responses
Current-Page | any The current page returned by the API |
Page-Items | any The total of elements return for this page |
Total-Pages | any The number of pages available for this query |
Total-Count | any The total of items for this query |
Response Schema: application/json
Array of objects | |||||||||||||||||||||||||||||||
Array
|
Response samples
- 200
{- "data": [
- {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "seller": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
}, - "products": [
- {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "ref": "string",
- "ean": "string",
- "price": "string",
- "discountPrice": "string",
- "inStock": true,
- "url": "string",
- "complementaryInformations": { }
}
}
], - "tags": [
- "string"
], - "startDate": "string",
- "rtmpUrl": "string",
- "streamKey": "string",
- "state": "string",
- "isFinished": true
}
}
]
}
Create a live
Authorizations:
Request Body schema:
name required | string Content's name |
description | string or null Content's description |
thumbnail | string or null <binary> Content main thumbnail binary |
seller_id | string or null Seller id to link the content to |
tags | Array of strings or null Content's tags |
product_ids | Array of strings or null Array of product ids to link the content to. If you also add a seller_id, the product ids needs to belongs to the seller |
start_date required | string Live planned start date (ISO 8601 format) |
Responses
Response Schema: application/json
object | |||||||||||||||||||||||||||||||||||||||||||||||
|
Request samples
- Payload
{- "name": "string",
- "description": "string",
- "thumbnail": "string",
- "seller_id": "string",
- "tags": [
- "string"
], - "product_ids": [
- "string"
], - "start_date": "string"
}
Response samples
- 201
{- "data": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "seller": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
}, - "products": [
- {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "ref": "string",
- "ean": "string",
- "price": "string",
- "discountPrice": "string",
- "inStock": true,
- "url": "string",
- "complementaryInformations": { }
}
}
], - "tags": [
- "string"
], - "startDate": "string",
- "rtmpUrl": "string",
- "streamKey": "string",
- "state": "string",
- "isFinished": true
}
}
}
Retrieve a live
Get one live
Authorizations:
path Parameters
id required | string ID of live |
Responses
Response Schema: application/json
object | |||||||||||||||||||||||||||||||||||||||||||||||
|
Response samples
- 200
{- "data": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "seller": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
}, - "products": [
- {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "ref": "string",
- "ean": "string",
- "price": "string",
- "discountPrice": "string",
- "inStock": true,
- "url": "string",
- "complementaryInformations": { }
}
}
], - "tags": [
- "string"
], - "startDate": "string",
- "rtmpUrl": "string",
- "streamKey": "string",
- "state": "string",
- "isFinished": true
}
}
}
Update a live
Update one live
Authorizations:
path Parameters
id required | string ID of live |
Request Body schema:
name required | string Content's name |
description | string or null Content's description |
thumbnail | string or null <binary> Content main thumbnail binary |
seller_id | string or null Seller id to link the content to |
tags | Array of strings or null Content's tags |
product_ids | Array of strings or null Array of product ids to link the content to. If you also add a seller_id, the product ids needs to belongs to the seller |
start_date required | string Live planned start date (ISO 8601 format) |
Responses
Response Schema: application/json
object | |||||||||||||||||||||||||||||||||||||||||||||||
|
Request samples
- Payload
{- "name": "string",
- "description": "string",
- "thumbnail": "string",
- "seller_id": "string",
- "tags": [
- "string"
], - "product_ids": [
- "string"
], - "start_date": "string"
}
Response samples
- 200
{- "data": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "seller": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
}, - "products": [
- {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "ref": "string",
- "ean": "string",
- "price": "string",
- "discountPrice": "string",
- "inStock": true,
- "url": "string",
- "complementaryInformations": { }
}
}
], - "tags": [
- "string"
], - "startDate": "string",
- "rtmpUrl": "string",
- "streamKey": "string",
- "state": "string",
- "isFinished": true
}
}
}
Finish a live
Finish a live (will stop current stream, generate a replay and flag the live as finished)
Authorizations:
path Parameters
id required | string ID of live |
Request Body schema: application/json
is_finished required | boolean Set to true to finish the live. Set to false to restart the live |
end_date required | string Live end date (ISO 8601 format) |
Responses
Response Schema: application/json
object | |||||||||||||||||||||||||||||||||||||||||||||||
|
Request samples
- Payload
{- "is_finished": true,
- "end_date": "string"
}
Response samples
- 200
{- "data": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "seller": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
}, - "products": [
- {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "ref": "string",
- "ean": "string",
- "price": "string",
- "discountPrice": "string",
- "inStock": true,
- "url": "string",
- "complementaryInformations": { }
}
}
], - "tags": [
- "string"
], - "startDate": "string",
- "rtmpUrl": "string",
- "streamKey": "string",
- "state": "string",
- "isFinished": true
}
}
}
Caast videos are entities that are created to display video content on your website.
You first have to create the entity to receive an upload link available for one hour where you can upload your video to.
You can affiliate a seller and some products to a live with their unique ID and also tag it at your will.
List videos
Get all videos of your app. You can add some parameters to filter the response.
This endpoint will return a paginated response with 20 items per page (along with pagination related response headers).
Authorizations:
query Parameters
name | string Search by video name |
product_id | string Search for video with products of given id |
product_ref | string Search for video with products that match given reference (SKU) |
seller_id | string Filter videos created by seller with given ID |
seller_name | string Search for videos created by seller with given name |
seller_external_id | string Filter videos created by seller with given external ID |
tags | Array of arrays Filter lives that match the given array of tags |
page | integer Page number (this endpoint returns 20 items per page) |
Responses
Current-Page | any The current page returned by the API |
Page-Items | any The total of elements return for this page |
Total-Pages | any The number of pages available for this query |
Total-Count | any The total of items for this query |
Response Schema: application/json
Array of objects | |||||||||||||||||||||||
Array
|
Response samples
- 200
{- "data": [
- {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "seller": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
}, - "products": [
- {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "ref": "string",
- "ean": "string",
- "price": "string",
- "discountPrice": "string",
- "inStock": true,
- "url": "string",
- "complementaryInformations": { }
}
}
], - "tags": [
- "string"
], - "uploadUrl": "string"
}
}
]
}
Create a video
Authorizations:
Request Body schema:
name required | string Content's name |
description | string or null Content's description |
thumbnail | string or null <binary> Content main thumbnail binary |
seller_id | string or null Seller id to link the content to |
tags | Array of strings or null Content's tags |
product_ids | Array of strings or null Array of product ids to link the content to. If you also add a seller_id, the product ids needs to belongs to the seller |
Responses
Response Schema: application/json
object | |||||||||||||||||||||||||||||||||||||||
|
Request samples
- Payload
{- "name": "string",
- "description": "string",
- "thumbnail": "string",
- "seller_id": "string",
- "tags": [
- "string"
], - "product_ids": [
- "string"
]
}
Response samples
- 201
{- "data": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "seller": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
}, - "products": [
- {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "ref": "string",
- "ean": "string",
- "price": "string",
- "discountPrice": "string",
- "inStock": true,
- "url": "string",
- "complementaryInformations": { }
}
}
], - "tags": [
- "string"
], - "uploadUrl": "string"
}
}
}
Retrieve a video
Get one video
Authorizations:
path Parameters
id required | string ID of video |
Responses
Response Schema: application/json
object | |||||||||||||||||||||||||||||||||||||||
|
Response samples
- 200
{- "data": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "seller": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
}, - "products": [
- {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "ref": "string",
- "ean": "string",
- "price": "string",
- "discountPrice": "string",
- "inStock": true,
- "url": "string",
- "complementaryInformations": { }
}
}
], - "tags": [
- "string"
], - "uploadUrl": "string"
}
}
}
Update a video
Update one video
Authorizations:
path Parameters
id required | string ID of video |
Request Body schema:
name required | string Content's name |
description | string or null Content's description |
thumbnail | string or null <binary> Content main thumbnail binary |
seller_id | string or null Seller id to link the content to |
tags | Array of strings or null Content's tags |
product_ids | Array of strings or null Array of product ids to link the content to. If you also add a seller_id, the product ids needs to belongs to the seller |
Responses
Response Schema: application/json
object | |||||||||||||||||||||||||||||||||||||||
|
Request samples
- Payload
{- "name": "string",
- "description": "string",
- "thumbnail": "string",
- "seller_id": "string",
- "tags": [
- "string"
], - "product_ids": [
- "string"
]
}
Response samples
- 200
{- "data": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "seller": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
}, - "products": [
- {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "ref": "string",
- "ean": "string",
- "price": "string",
- "discountPrice": "string",
- "inStock": true,
- "url": "string",
- "complementaryInformations": { }
}
}
], - "tags": [
- "string"
], - "uploadUrl": "string"
}
}
}
Generate a new upload url
Generate a new upload url for a video
Authorizations:
path Parameters
id required | string ID of video |
Responses
Response Schema: application/json
url | string A signed URL for a Google Cloud Storage bucket where you can upload your media. Your media will automatically be linked to the Caast video. |
Response samples
- 200
{- "url": "string"
}
Sellers are used to organize lives and products under a shop or a brand.
They only can use their own products on the videos and lives they create.
List sellers
Get all sellers of your app. You can add some parameters to filter the response.
This endpoint will return a paginated response with 20 items per page (along with pagination related response headers).
Authorizations:
query Parameters
name | string Search by seller name |
external_id | string Search by external ID |
page | integer Page number (this endpoint returns 20 items per page) |
Responses
Current-Page | any The current page returned by the API |
Page-Items | any The total of elements return for this page |
Total-Pages | any The number of pages available for this query |
Total-Count | any The total of items for this query |
Response Schema: application/json
Array of objects | |||||||||||||||||
Array
|
Response samples
- 200
{- "data": [
- {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
}
]
}
Create a seller
Authorizations:
Request Body schema: application/json
name required | string Name of seller |
url | string Seller's external url |
external_id required | string Use this external id parameter with a string to identify the seller in your system |
moderated | boolean A boolean value that indicates if the seller is moderated |
Responses
Response Schema: application/json
object | |||||||||||||||||
|
Request samples
- Payload
{- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
Response samples
- 201
{- "data": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
}
}
Retrieve a seller
Get one seller
Authorizations:
path Parameters
id required | string ID of seller |
Responses
Response Schema: application/json
object | |||||||||||||||||
|
Response samples
- 200
{- "data": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
}
}
Update a seller
Update one seller
Authorizations:
path Parameters
id required | string ID of seller |
Request Body schema: application/json
name required | string Name of seller |
url | string Seller's external url |
external_id required | string Use this external id parameter with a string to identify the seller in your system |
moderated | boolean A boolean value that indicates if the seller is moderated |
Responses
Response Schema: application/json
object | |||||||||||||||||
|
Request samples
- Payload
{- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
Response samples
- 200
{- "data": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
}
}
Products are displayed on lives and videos. They can be manually created or recovered by a preconfigured product flux
They are linked to your aplpication but they also can be linked to a specific seller.
List products
Get all products of your app. You can add some parameters to filter the response.
This endpoint will return a paginated response with 20 items per page (along with pagination related response headers).
Authorizations:
query Parameters
name | string Search by product name |
ref | string Search by product reference (SKU) |
seller_id | string Search by seller ID |
page | integer Page number (this endpoint returns 20 items per page) |
Responses
Current-Page | any The current page returned by the API |
Page-Items | any The total of elements return for this page |
Total-Pages | any The number of pages available for this query |
Total-Count | any The total of items for this query |
Response Schema: application/json
object | |||||||||||||||||||||||||||||
|
Response samples
- 200
{- "data": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "ref": "string",
- "ean": "string",
- "price": "string",
- "discountPrice": "string",
- "inStock": true,
- "url": "string",
- "complementaryInformations": { }
}
}
}
Create a product
Product creation can either be fully manual or semi-automatic (based on a pre-defined product catalog).
If you wish to create a Caast product based on a product from your catalog, you can give only a ref as parameter of your query. If the ref match a product ref/SKU in your catalog, other parameters will be ignored and the product will only be created.
Otherwise we will try to create a product manually with the query parameters.
Another special parameter is seller_id. If given, the product catalog search by ref will be limited to products that belongs to the given seller in your catalog. If we can't find any matching product, we will link the manual product creation with the given seller.
Authorizations:
Request Body schema:
name required | string Product name |
description | string or null Product description |
thumbnail | string or null <binary> Product thumbnail binary |
ref | string Product reference/SKU |
seller_id | string or null Seller id to link the product to. Seller has to exist |
ean | string or null Product EAN |
price | string or null Product base price (without discount) |
discount_price | string or null Product discounted price (if any) |
in_stock | boolean or null Boolean to indicate if the product is in stock |
url | string or null Product page URL |
complementary_informations | object or null Used to add custom complementary informations to your product |
Responses
Response Schema: application/json
object | |||||||||||||||||||||||||||||
|
Request samples
- Payload
{- "name": "string",
- "description": "string",
- "thumbnail": "string",
- "ref": "string",
- "seller_id": "string",
- "ean": "string",
- "price": "string",
- "discount_price": "string",
- "in_stock": true,
- "url": "string",
- "complementary_informations": { }
}
Response samples
- 201
{- "data": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "ref": "string",
- "ean": "string",
- "price": "string",
- "discountPrice": "string",
- "inStock": true,
- "url": "string",
- "complementaryInformations": { }
}
}
}
Retrieve a product
Get one product
Authorizations:
path Parameters
id required | string ID of product |
Responses
Response Schema: application/json
object | |||||||||||||||||||||||||||||
|
Response samples
- 200
{- "data": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "ref": "string",
- "ean": "string",
- "price": "string",
- "discountPrice": "string",
- "inStock": true,
- "url": "string",
- "complementaryInformations": { }
}
}
}
Update a product
Update one product
Authorizations:
path Parameters
id required | string ID of product |
Request Body schema:
name required | string Product name |
description | string or null Product description |
thumbnail | string or null <binary> Product thumbnail binary |
ref | string Product reference/SKU |
seller_id | string or null Seller id to link the product to. Seller has to exist |
ean | string or null Product EAN |
price | string or null Product base price (without discount) |
discount_price | string or null Product discounted price (if any) |
in_stock | boolean or null Boolean to indicate if the product is in stock |
url | string or null Product page URL |
complementary_informations | object or null Used to add custom complementary informations to your product |
Responses
Response Schema: application/json
object | |||||||||||||||||||||||||||||
|
Request samples
- Payload
{- "name": "string",
- "description": "string",
- "thumbnail": "string",
- "ref": "string",
- "seller_id": "string",
- "ean": "string",
- "price": "string",
- "discount_price": "string",
- "in_stock": true,
- "url": "string",
- "complementary_informations": { }
}
Response samples
- 200
{- "data": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "ref": "string",
- "ean": "string",
- "price": "string",
- "discountPrice": "string",
- "inStock": true,
- "url": "string",
- "complementaryInformations": { }
}
}
}
Get displayed data
Get data displayed related to a context given as parameter. Mimic the basic Caast script usage.
Authorizations:
query Parameters
product_ref | string Will return data displayed for the given product ref. Mutually exclusive with url parameter |
url | string Will return data displayed on the given URL. Mutually exclusive with product ref parameter |
Responses
Response Schema: application/json
Array of objects | |||||||
Array
|
Response samples
- 200
[- {
- "data": [
- {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "seller": {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "url": "string",
- "external_id": "string",
- "moderated": true
}
}, - "products": [
- {
- "id": "string",
- "type": "string",
- "attributes": {
- "name": "string",
- "description": "string",
- "thumbnailUrl": "string",
- "ref": "string",
- "ean": "string",
- "price": "string",
- "discountPrice": "string",
- "inStock": true,
- "url": "string",
- "complementaryInformations": { }
}
}
], - "tags": [
- "string"
], - "startDate": "string",
- "rtmpUrl": "string",
- "streamKey": "string",
- "state": "string",
- "isFinished": true
}
}
]
}
]