Find best matching template slides/layouts for the given input data.
POST
/
api
/
v1
/
templates
/
match
Match input to templates
curl --request POST \
--url https://api.example.com/api/v1/templates/match \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"slide_data": {},
"org_name": "<string>",
"match_against": "slides",
"top_k": 5
}
'import requests
url = "https://api.example.com/api/v1/templates/match"
payload = {
"slide_data": {},
"org_name": "<string>",
"match_against": "slides",
"top_k": 5
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({slide_data: {}, org_name: '<string>', match_against: 'slides', top_k: 5})
};
fetch('https://api.example.com/api/v1/templates/match', 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://api.example.com/api/v1/templates/match",
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([
'slide_data' => [
],
'org_name' => '<string>',
'match_against' => 'slides',
'top_k' => 5
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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://api.example.com/api/v1/templates/match"
payload := strings.NewReader("{\n \"slide_data\": {},\n \"org_name\": \"<string>\",\n \"match_against\": \"slides\",\n \"top_k\": 5\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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://api.example.com/api/v1/templates/match")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"slide_data\": {},\n \"org_name\": \"<string>\",\n \"match_against\": \"slides\",\n \"top_k\": 5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/templates/match")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"slide_data\": {},\n \"org_name\": \"<string>\",\n \"match_against\": \"slides\",\n \"top_k\": 5\n}"
response = http.request(request)
puts response.read_body{
"input_signature": {},
"matches": [
{
"template_id": "<string>",
"slide_id": "<string>",
"slide_index": 123,
"score": 123,
"is_exact_match": true,
"matched_counts": {
"title": 123,
"subtitle": 123,
"body": 123,
"footer": 123,
"table": 123,
"chart": 123,
"textbox": 123,
"object": 123,
"custom_field": 123
},
"layout_name": "<string>",
"overflow_counts": {
"title": 123,
"subtitle": 123,
"body": 123,
"footer": 123,
"table": 123,
"chart": 123,
"textbox": 123,
"object": 123,
"custom_field": 123
},
"unused_counts": {
"title": 123,
"subtitle": 123,
"body": 123,
"footer": 123,
"table": 123,
"chart": 123,
"textbox": 123,
"object": 123,
"custom_field": 123
}
}
],
"total_templates_searched": 123,
"total_slides_searched": 123,
"best_match": {
"template_id": "<string>",
"slide_id": "<string>",
"slide_index": 123,
"score": 123,
"is_exact_match": true,
"matched_counts": {
"title": 123,
"subtitle": 123,
"body": 123,
"footer": 123,
"table": 123,
"chart": 123,
"textbox": 123,
"object": 123,
"custom_field": 123
},
"layout_name": "<string>",
"overflow_counts": {
"title": 123,
"subtitle": 123,
"body": 123,
"footer": 123,
"table": 123,
"chart": 123,
"textbox": 123,
"object": 123,
"custom_field": 123
},
"unused_counts": {
"title": 123,
"subtitle": 123,
"body": 123,
"footer": 123,
"table": 123,
"chart": 123,
"textbox": 123,
"object": 123,
"custom_field": 123
}
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Production API key. Development/test deployments may also allow X-Org-Name.
Body
application/json
Request schema for template matching.
Slide data input (same format as SlideDataInput for generation)
Organization name to scope the search. If provided, must match the API key's organization. If omitted, the API key's organization is used.
Match against 'slides' or 'layouts'
Number of top matches to return
Required range:
1 <= x <= 20Response
Successful Response
Response schema for template matching.
Parsed input signature
Ranked match results
Show child attributes
Show child attributes
Number of templates searched
Number of slides/layouts searched
Top match
Show child attributes
Show child attributes
⌘I
Match input to templates
curl --request POST \
--url https://api.example.com/api/v1/templates/match \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"slide_data": {},
"org_name": "<string>",
"match_against": "slides",
"top_k": 5
}
'import requests
url = "https://api.example.com/api/v1/templates/match"
payload = {
"slide_data": {},
"org_name": "<string>",
"match_against": "slides",
"top_k": 5
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({slide_data: {}, org_name: '<string>', match_against: 'slides', top_k: 5})
};
fetch('https://api.example.com/api/v1/templates/match', 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://api.example.com/api/v1/templates/match",
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([
'slide_data' => [
],
'org_name' => '<string>',
'match_against' => 'slides',
'top_k' => 5
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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://api.example.com/api/v1/templates/match"
payload := strings.NewReader("{\n \"slide_data\": {},\n \"org_name\": \"<string>\",\n \"match_against\": \"slides\",\n \"top_k\": 5\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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://api.example.com/api/v1/templates/match")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"slide_data\": {},\n \"org_name\": \"<string>\",\n \"match_against\": \"slides\",\n \"top_k\": 5\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/templates/match")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"slide_data\": {},\n \"org_name\": \"<string>\",\n \"match_against\": \"slides\",\n \"top_k\": 5\n}"
response = http.request(request)
puts response.read_body{
"input_signature": {},
"matches": [
{
"template_id": "<string>",
"slide_id": "<string>",
"slide_index": 123,
"score": 123,
"is_exact_match": true,
"matched_counts": {
"title": 123,
"subtitle": 123,
"body": 123,
"footer": 123,
"table": 123,
"chart": 123,
"textbox": 123,
"object": 123,
"custom_field": 123
},
"layout_name": "<string>",
"overflow_counts": {
"title": 123,
"subtitle": 123,
"body": 123,
"footer": 123,
"table": 123,
"chart": 123,
"textbox": 123,
"object": 123,
"custom_field": 123
},
"unused_counts": {
"title": 123,
"subtitle": 123,
"body": 123,
"footer": 123,
"table": 123,
"chart": 123,
"textbox": 123,
"object": 123,
"custom_field": 123
}
}
],
"total_templates_searched": 123,
"total_slides_searched": 123,
"best_match": {
"template_id": "<string>",
"slide_id": "<string>",
"slide_index": 123,
"score": 123,
"is_exact_match": true,
"matched_counts": {
"title": 123,
"subtitle": 123,
"body": 123,
"footer": 123,
"table": 123,
"chart": 123,
"textbox": 123,
"object": 123,
"custom_field": 123
},
"layout_name": "<string>",
"overflow_counts": {
"title": 123,
"subtitle": 123,
"body": 123,
"footer": 123,
"table": 123,
"chart": 123,
"textbox": 123,
"object": 123,
"custom_field": 123
},
"unused_counts": {
"title": 123,
"subtitle": 123,
"body": 123,
"footer": 123,
"table": 123,
"chart": 123,
"textbox": 123,
"object": 123,
"custom_field": 123
}
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}