Skip to main content
POST
/
media
/
create
Create media asset
curl --request POST \
  --url https://api.thehaystack.ai/v2/bevly/media/create \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "itemId": 123,
  "externalUrl": "https://www.youtube.com/watch?v=abc123",
  "externalPlatform": "youtube"
}
'
{
  "mediaAsset": {
    "id": 123,
    "itemId": 123,
    "contentType": "video",
    "status": "created",
    "duration": 123,
    "muxAssetId": "<string>",
    "muxPlaybackId": "<string>",
    "variantTypeId": 123,
    "variantType": {
      "id": 123,
      "name": "Sermon Video",
      "contentType": "video",
      "indexable": true,
      "displayOrder": 123,
      "collectionId": 123
    }
  },
  "uploadUrl": "https://storage.example.com/upload/abc123?signature=xyz"
}

Authorizations

Authorization
string
header
required

Enter your API token from the Haystack dashboard

Body

application/json
itemId
integer
required

The item this media belongs to

externalUrl
string

YouTube or Vimeo URL for playback only (not for downloading)

Example:

"https://www.youtube.com/watch?v=abc123"

externalPlatform
enum<string>

Platform for external playback

Available options:
youtube,
vimeo

Response

200 - application/json

Media asset created with upload URL

mediaAsset
object
uploadUrl
string

Secure URL to upload your video/audio file (PUT request)

Example:

"https://storage.example.com/upload/abc123?signature=xyz"