Akteora API docs

Media: video, audio and posters

Every recorded testimonial is processed after the respondent sends it:

There are three ways to get those files, for three different jobs:

You want to… Use How long it works Who can open it
Put the testimonial on a website, in an email, in a spreadsheet public_media Permanently, while the testimonial is published Anyone with the link
Play it on a screen you control, right now playback_url, poster_url About an hour Anyone with the link, until it expires
Download the file, or host it yourself GET /v1/submissions/{id}/media/{variant} Redirects to a link valid for about an hour Only your credentials
"public_media": {
  "video_url": "https://cdn.akteora.com/m/7kq2m9xwzr4tn8vbh3jp/video.mp4",
  "audio_url": null,
  "poster_url": "https://cdn.akteora.com/m/7kq2m9xwzr4tn8vbh3jp/poster.jpg"
}

public_media is on every testimonial the API returns. A testimonial is published, and public_media is filled in, when all of these hold:

Until then public_media is null, and it stays null for a few seconds after the decision while the files are published. Fetch the testimonial again, or, once webhooks arrive, listen for submission.published.

video_url is set for a video testimonial and audio_url for an audio or spoken one. poster_url is set for both.

What the link promises:

On any website

<video
  src="https://cdn.akteora.com/m/7kq2m9xwzr4tn8vbh3jp/video.mp4"
  poster="https://cdn.akteora.com/m/7kq2m9xwzr4tn8vbh3jp/poster.jpg"
  controls
  playsinline
  preload="metadata"
  width="360"
></video>

This works unchanged in:

In an email, where most clients will not play video, use the poster as an image that links to the video.

Every published testimonial for a brand

curl -H "Authorization: Bearer $AKTEORA_API_KEY" \
  "https://api.akteora.com/v1/submissions?brand_id=brd_…&is_approved=true&is_public=true&limit=100"

Keep the testimonials whose public_media is not null, and follow next_cursor for more.

poster_url on each testimonial, and playback_url on each file in a testimonial's assets (GET /v1/submissions/{id}), are signed links that work for about an hour. They exist for every testimonial that has finished processing, published or not.

Use them to show a testimonial on a screen you control, such as your own admin page, at the moment you fetch it. Do not store them. Fetch the testimonial again for fresh ones.

Downloading a file

GET /v1/submissions/{id}/media/{variant}
variant The file
video A video testimonial's processed MP4
audio An audio or spoken testimonial's processed M4A
poster The poster, as a JPEG

The response is 302 Found, and Location holds a signed link to the file that works for about an hour. Follow it:

curl -L -H "Authorization: Bearer $AKTEORA_API_KEY" -o testimonial.mp4 \
  "https://api.akteora.com/v1/submissions/sub_…/media/video"

This works whether or not the testimonial is published: to put it into a video editor, or to host it on your own storage. You get 404 when:

Do not store the Location link; ask again instead.

If you host the files yourself

A copy you make is yours to keep in step. When a testimonial is unpublished, its public link stops working, but Akteora cannot reach a copy on your storage. When a respondent withdraws their consent, that copy has to go too. Prefer public_media wherever a link will do. If you must copy, check that the testimonial is still published before showing your copy (webhooks will make this a push rather than a poll).