API DocsEmbedsUpdate embed settings

Update embed settings

PATCH/api/video/:id/embed-settings
embeds:write

Customize player appearance and behavior. Available options:

Theme & Appearance

  • playerTheme ("flare" | "minimal" | "custom") - Player visual style
  • accentColor (string) - Hex color for controls, e.g. "#FF6702"
  • embedBorderRadius (number) - Corner radius in pixels (0-24)
  • thumbnailTime (number) - Timestamp in seconds for poster frame

Controls

  • controlOptions.showPlayButton (boolean) - Show center play button
  • controlOptions.showProgress (boolean) - Show progress bar
  • controlOptions.showTime (boolean) - Show current/total time
  • controlOptions.showVolume (boolean) - Show volume control
  • controlOptions.showSpeed (boolean) - Show playback speed menu
  • controlOptions.showFullscreen (boolean) - Show fullscreen button
  • controlOptions.showCaptions (boolean) - Show captions toggle

Behavior

  • autoplay (boolean) - Start playing automatically (muted)
  • loop (boolean) - Loop video when it ends
  • muted (boolean) - Start muted
  • showBranding (boolean) - Show Flare branding
  • allowDownload (boolean) - Allow viewers to download

Examples

curl
curl https://flare.link/api/video/VIDEO_ID/embed-settings \
  -H "Authorization: Bearer flr_pat_..." \
  -H "Content-Type: application/json" \
  -d '{
    "embedSettings": {
      "playerTheme": "flare",
      "accentColor": "#FF6702",
      "embedBorderRadius": 12,
      "autoplay": false,
      "loop": false,
      "showBranding": true,
      "allowDownload": false,
      "controlOptions": {
        "showPlayButton": true,
        "showProgress": true,
        "showTime": true,
        "showVolume": true,
        "showSpeed": true,
        "showFullscreen": true,
        "showCaptions": true
      }
    }
  }'
node
await fetch("https://flare.link/api/video/VIDEO_ID/embed-settings", {
  method: "PATCH",
  headers: {
    Authorization: "Bearer flr_pat_...",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    embedSettings: {
      playerTheme: "flare",
      accentColor: "#FF6702",
      embedBorderRadius: 12,
      autoplay: false,
      showBranding: true,
      controlOptions: {
        showSpeed: true,
        showCaptions: true
      }
    }
  })
});
python
import requests

payload = {
  "embedSettings": {
    "playerTheme": "flare",
    "accentColor": "#FF6702",
    "embedBorderRadius": 12,
    "autoplay": False,
    "showBranding": True,
    "controlOptions": {
      "showSpeed": True,
      "showCaptions": True
    }
  }
}
res = requests.patch(
  "https://flare.link/api/video/VIDEO_ID/embed-settings",
  headers={"Authorization": "Bearer flr_pat_..."},
  json=payload
)
print(res.json())
ruby
require "net/http"
require "json"

uri = URI("https://flare.link/api/video/VIDEO_ID/embed-settings")
req = Net::HTTP::Patch.new(uri)
req["Authorization"] = "Bearer flr_pat_..."
req["Content-Type"] = "application/json"
req.body = {
  embedSettings: {
    playerTheme: "flare",
    accentColor: "#FF6702",
    embedBorderRadius: 12,
    autoplay: false,
    showBranding: true,
    controlOptions: { showSpeed: true, showCaptions: true }
  }
}.to_json
res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(req) }
puts res.body
go
package main

import (
  "bytes"
  "fmt"
  "io"
  "net/http"
)

func main() {
  payload := []byte(`{
    "embedSettings": {
      "playerTheme": "flare",
      "accentColor": "#FF6702",
      "embedBorderRadius": 12,
      "controlOptions": { "showSpeed": true }
    }
  }`)
  req, _ := http.NewRequest("PATCH", "https://flare.link/api/video/VIDEO_ID/embed-settings", bytes.NewBuffer(payload))
  req.Header.Set("Authorization", "Bearer flr_pat_...")
  req.Header.Set("Content-Type", "application/json")
  resp, _ := http.DefaultClient.Do(req)
  body, _ := io.ReadAll(resp.Body)
  fmt.Println(string(body))
}
php
<?php
$payload = json_encode([
  "embedSettings" => [
    "playerTheme" => "flare",
    "accentColor" => "#FF6702",
    "embedBorderRadius" => 12,
    "autoplay" => false,
    "showBranding" => true,
    "controlOptions" => [
      "showSpeed" => true,
      "showCaptions" => true
    ]
  ]
]);
$ch = curl_init("https://flare.link/api/video/VIDEO_ID/embed-settings");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PATCH");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "Authorization: Bearer flr_pat_...",
  "Content-Type: application/json"
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
csharp
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;

using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "flr_pat_...");
var payload = JsonSerializer.Serialize(new {
  embedSettings = new {
    playerTheme = "flare",
    accentColor = "#FF6702",
    embedBorderRadius = 12,
    autoplay = false,
    showBranding = true,
    controlOptions = new { showSpeed = true, showCaptions = true }
  }
});
var res = await client.PatchAsync("https://flare.link/api/video/VIDEO_ID/embed-settings", new StringContent(payload, Encoding.UTF8, "application/json"));

Expected response

{
  "success": true,
  "video": {
    "id": "VIDEO_ID",
    "embedSettings": {
      "playerTheme": "flare",
      "accentColor": "#FF6702",
      "embedBorderRadius": 12,
      "autoplay": false,
      "showBranding": true
    }
  }
}