Skip to main content
POST
/
projects
/
{slug}
/
slides
/
{slideId}
/
plugins
Configure a plugin on a slide
curl --request POST \
  --url https://faces.app/api/v1/projects/{slug}/slides/{slideId}/plugins \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "pluginId": "<string>",
  "localName": "<string>",
  "config": {},
  "overwrite": true
}
'
import requests

url = "https://faces.app/api/v1/projects/{slug}/slides/{slideId}/plugins"

payload = {
"pluginId": "<string>",
"localName": "<string>",
"config": {},
"overwrite": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({pluginId: '<string>', localName: '<string>', config: {}, overwrite: true})
};

fetch('https://faces.app/api/v1/projects/{slug}/slides/{slideId}/plugins', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://faces.app/api/v1/projects/{slug}/slides/{slideId}/plugins",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'pluginId' => '<string>',
'localName' => '<string>',
'config' => [

],
'overwrite' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

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

func main() {

url := "https://faces.app/api/v1/projects/{slug}/slides/{slideId}/plugins"

payload := strings.NewReader("{\n \"pluginId\": \"<string>\",\n \"localName\": \"<string>\",\n \"config\": {},\n \"overwrite\": true\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://faces.app/api/v1/projects/{slug}/slides/{slideId}/plugins")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pluginId\": \"<string>\",\n \"localName\": \"<string>\",\n \"config\": {},\n \"overwrite\": true\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://faces.app/api/v1/projects/{slug}/slides/{slideId}/plugins")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pluginId\": \"<string>\",\n \"localName\": \"<string>\",\n \"config\": {},\n \"overwrite\": true\n}"

response = http.request(request)
puts response.read_body
{
  "slideId": "<string>",
  "versionId": "<string>",
  "instanceId": "<string>",
  "pluginId": "<string>",
  "created": true,
  "warning": "<string>"
}
{
"error": "<string>",
"hint": "<string>"
}
{
"error": "<string>",
"hint": "<string>"
}
{
"error": "<string>",
"hint": "<string>"
}

Authorizations

Authorization
string
header
required

API key with "faces_" prefix. Create one at Settings > Developers.

Path Parameters

slug
string
required
slideId
string
required

Body

application/json
pluginId
string
required

The plugin ID from listPlugins.

localName
string
required

Identifier for this instance, referenced in code as useFormPlugin/usePresenterPlugin(localName). camelCase or snake_case, starting with a letter.

config
object
required

Config object matching the plugin's config schema (see getPluginDocs).

overwrite
boolean

Set true to replace an existing instance with the same localName. Defaults to false.

Response

Plugin configured

slideId
string
required
versionId
string
required

The new project version ID.

instanceId
string
required

The configured instance id, formatted as ${slideId}.${localName}.

pluginId
string
required
created
boolean
required

True if a new instance was created, false if an existing one was overwritten.

warning
string

Present when the config was saved but a post-save side effect (e.g. presenter avatar provisioning) failed. The instance is configured; address the warning and call setupPlugin again with overwrite: true to retry.