curl --request GET \
--url https://api.tela.com/prompt/{id}/promoted-version \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tela.com/prompt/{id}/promoted-version"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tela.com/prompt/{id}/promoted-version', 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.tela.com/prompt/{id}/promoted-version",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tela.com/prompt/{id}/promoted-version"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tela.com/prompt/{id}/promoted-version")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tela.com/prompt/{id}/promoted-version")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "9d2e4f6a-1b3c-4d5e-8f70-1a2b3c4d5e6f",
"promptId": "5f0c1a2e-8b7d-4c3a-9e1f-2d4b6a8c0e12",
"title": "v12 - stricter totals",
"titleLocked": false,
"content": null,
"markdownContent": null,
"variables": [
{
"name": "invoice",
"type": "file",
"required": true,
"processingOptions": {
"allowMultimodal": true
}
}
],
"configuration": {
"model": "gpt-4.1",
"temperature": 0,
"type": "chat",
"structuredOutput": {
"enabled": true,
"schema": {
"type": "object",
"title": "Invoice",
"description": "Extracted invoice fields",
"properties": {
"total": {
"type": "number"
}
},
"required": [
"total"
]
}
}
},
"promoted": true,
"draft": false,
"originVersionId": null,
"workspaceId": "7c8d9e0f-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
"workflowSpec": null,
"graph": null,
"isWorkflow": false,
"promptCustomTags": [
"finance"
],
"message": {
"id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
"promptVersionId": "9d2e4f6a-1b3c-4d5e-8f70-1a2b3c4d5e6f",
"role": "system",
"content": "Extract the invoice total from {{invoice}}.",
"markdownContent": null,
"index": 0,
"createdBy": "ana@example.com",
"updatedBy": "ana@example.com",
"createdAt": "2026-08-19T09:41:00.000Z",
"updatedAt": "2026-08-19T09:41:00.000Z",
"deletedAt": null
},
"messages": [
{
"id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
"promptVersionId": "9d2e4f6a-1b3c-4d5e-8f70-1a2b3c4d5e6f",
"role": "system",
"content": "Extract the invoice total from {{invoice}}.",
"markdownContent": null,
"index": 0,
"createdBy": "ana@example.com",
"updatedBy": "ana@example.com",
"createdAt": "2026-08-19T09:41:00.000Z",
"updatedAt": "2026-08-19T09:41:00.000Z",
"deletedAt": null
}
],
"environments": [
{
"id": "3e4f5a6b-7c8d-4e9f-8a0b-1c2d3e4f5a6b",
"name": "production",
"isSystem": true,
"publishedAt": "2026-08-19T10:00:00.000Z"
}
],
"createdBy": "ana@example.com",
"updatedBy": "ana@example.com",
"deletedBy": null,
"createdAt": "2026-08-19T09:41:00.000Z",
"updatedAt": "2026-08-19T09:41:00.000Z",
"deletedAt": null
}Get the promoted (production) version of a canvas
Resolves the version that is currently live for the canvas: the version published to the system production environment, falling back to the most recently updated version flagged promoted: true for canvases that predate environments.
curl --request GET \
--url https://api.tela.com/prompt/{id}/promoted-version \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.tela.com/prompt/{id}/promoted-version"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.tela.com/prompt/{id}/promoted-version', 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.tela.com/prompt/{id}/promoted-version",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tela.com/prompt/{id}/promoted-version"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tela.com/prompt/{id}/promoted-version")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tela.com/prompt/{id}/promoted-version")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "9d2e4f6a-1b3c-4d5e-8f70-1a2b3c4d5e6f",
"promptId": "5f0c1a2e-8b7d-4c3a-9e1f-2d4b6a8c0e12",
"title": "v12 - stricter totals",
"titleLocked": false,
"content": null,
"markdownContent": null,
"variables": [
{
"name": "invoice",
"type": "file",
"required": true,
"processingOptions": {
"allowMultimodal": true
}
}
],
"configuration": {
"model": "gpt-4.1",
"temperature": 0,
"type": "chat",
"structuredOutput": {
"enabled": true,
"schema": {
"type": "object",
"title": "Invoice",
"description": "Extracted invoice fields",
"properties": {
"total": {
"type": "number"
}
},
"required": [
"total"
]
}
}
},
"promoted": true,
"draft": false,
"originVersionId": null,
"workspaceId": "7c8d9e0f-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
"workflowSpec": null,
"graph": null,
"isWorkflow": false,
"promptCustomTags": [
"finance"
],
"message": {
"id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
"promptVersionId": "9d2e4f6a-1b3c-4d5e-8f70-1a2b3c4d5e6f",
"role": "system",
"content": "Extract the invoice total from {{invoice}}.",
"markdownContent": null,
"index": 0,
"createdBy": "ana@example.com",
"updatedBy": "ana@example.com",
"createdAt": "2026-08-19T09:41:00.000Z",
"updatedAt": "2026-08-19T09:41:00.000Z",
"deletedAt": null
},
"messages": [
{
"id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
"promptVersionId": "9d2e4f6a-1b3c-4d5e-8f70-1a2b3c4d5e6f",
"role": "system",
"content": "Extract the invoice total from {{invoice}}.",
"markdownContent": null,
"index": 0,
"createdBy": "ana@example.com",
"updatedBy": "ana@example.com",
"createdAt": "2026-08-19T09:41:00.000Z",
"updatedAt": "2026-08-19T09:41:00.000Z",
"deletedAt": null
}
],
"environments": [
{
"id": "3e4f5a6b-7c8d-4e9f-8a0b-1c2d3e4f5a6b",
"name": "production",
"isSystem": true,
"publishedAt": "2026-08-19T10:00:00.000Z"
}
],
"createdBy": "ana@example.com",
"updatedBy": "ana@example.com",
"deletedBy": null,
"createdAt": "2026-08-19T09:41:00.000Z",
"updatedAt": "2026-08-19T09:41:00.000Z",
"deletedAt": null
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Canvas id.
Response
The promoted version.
Full prompt version as returned by the version endpoints. message is the first message by index
(normally the system prompt) and messages is the full ordered list. environments lists the
environments the version is currently published to.
When true the title was set explicitly and is not auto-generated.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
{
"id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
"promptVersionId": "9d2e4f6a-1b3c-4d5e-8f70-1a2b3c4d5e6f",
"role": "system",
"content": "Extract the invoice total from {{invoice}}.",
"markdownContent": null,
"index": 0,
"createdBy": "ana@example.com",
"updatedBy": "ana@example.com",
"createdAt": "2026-08-19T09:41:00.000Z",
"updatedAt": "2026-08-19T09:41:00.000Z",
"deletedAt": null
}
Show child attributes
Show child attributes
Legacy promotion flag. Prefer environments to know where a version is live.
Version this one was derived from through the lifecycle (edit/restore) operations.
Serialized workflow specification for workflow versions.
Serialized workflow graph for workflow versions.
customTags of the parent canvas.
Show child attributes
Show child attributes