curl --request POST \
--url https://api.autype.com/api/v1/dev/render/readiness \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"config": {
"document": {
"type": "pdf",
"size": "A4"
},
"variables": {
"companyName": "Acme Inc"
},
"sections": [
{
"id": "section-1",
"type": "flow",
"content": [
{
"type": "h1",
"text": "Hello {{companyName}}"
},
{
"type": "text",
"text": "This is a paragraph."
}
]
}
]
},
"pdfProfile": "standard",
"webhook": {
"webhookUrl": "https://example.com/webhook",
"webhookAuth": {
"headerName": "X-API-Key",
"headerValue": "my-secret-key",
"basicAuthUsername": "user",
"basicAuthPassword": "pass"
}
}
}
'import requests
url = "https://api.autype.com/api/v1/dev/render/readiness"
payload = {
"config": {
"document": {
"type": "pdf",
"size": "A4"
},
"variables": { "companyName": "Acme Inc" },
"sections": [
{
"id": "section-1",
"type": "flow",
"content": [
{
"type": "h1",
"text": "Hello {{companyName}}"
},
{
"type": "text",
"text": "This is a paragraph."
}
]
}
]
},
"pdfProfile": "standard",
"webhook": {
"webhookUrl": "https://example.com/webhook",
"webhookAuth": {
"headerName": "X-API-Key",
"headerValue": "my-secret-key",
"basicAuthUsername": "user",
"basicAuthPassword": "pass"
}
}
}
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({
config: {
document: {type: 'pdf', size: 'A4'},
variables: {companyName: 'Acme Inc'},
sections: [
{
id: 'section-1',
type: 'flow',
content: [
{type: 'h1', text: 'Hello {{companyName}}'},
{type: 'text', text: 'This is a paragraph.'}
]
}
]
},
pdfProfile: 'standard',
webhook: {
webhookUrl: 'https://example.com/webhook',
webhookAuth: {
headerName: 'X-API-Key',
headerValue: 'my-secret-key',
basicAuthUsername: 'user',
basicAuthPassword: 'pass'
}
}
})
};
fetch('https://api.autype.com/api/v1/dev/render/readiness', 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.autype.com/api/v1/dev/render/readiness",
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([
'config' => [
'document' => [
'type' => 'pdf',
'size' => 'A4'
],
'variables' => [
'companyName' => 'Acme Inc'
],
'sections' => [
[
'id' => 'section-1',
'type' => 'flow',
'content' => [
[
'type' => 'h1',
'text' => 'Hello {{companyName}}'
],
[
'type' => 'text',
'text' => 'This is a paragraph.'
]
]
]
]
],
'pdfProfile' => 'standard',
'webhook' => [
'webhookUrl' => 'https://example.com/webhook',
'webhookAuth' => [
'headerName' => 'X-API-Key',
'headerValue' => 'my-secret-key',
'basicAuthUsername' => 'user',
'basicAuthPassword' => 'pass'
]
]
]),
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://api.autype.com/api/v1/dev/render/readiness"
payload := strings.NewReader("{\n \"config\": {\n \"document\": {\n \"type\": \"pdf\",\n \"size\": \"A4\"\n },\n \"variables\": {\n \"companyName\": \"Acme Inc\"\n },\n \"sections\": [\n {\n \"id\": \"section-1\",\n \"type\": \"flow\",\n \"content\": [\n {\n \"type\": \"h1\",\n \"text\": \"Hello {{companyName}}\"\n },\n {\n \"type\": \"text\",\n \"text\": \"This is a paragraph.\"\n }\n ]\n }\n ]\n },\n \"pdfProfile\": \"standard\",\n \"webhook\": {\n \"webhookUrl\": \"https://example.com/webhook\",\n \"webhookAuth\": {\n \"headerName\": \"X-API-Key\",\n \"headerValue\": \"my-secret-key\",\n \"basicAuthUsername\": \"user\",\n \"basicAuthPassword\": \"pass\"\n }\n }\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://api.autype.com/api/v1/dev/render/readiness")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"config\": {\n \"document\": {\n \"type\": \"pdf\",\n \"size\": \"A4\"\n },\n \"variables\": {\n \"companyName\": \"Acme Inc\"\n },\n \"sections\": [\n {\n \"id\": \"section-1\",\n \"type\": \"flow\",\n \"content\": [\n {\n \"type\": \"h1\",\n \"text\": \"Hello {{companyName}}\"\n },\n {\n \"type\": \"text\",\n \"text\": \"This is a paragraph.\"\n }\n ]\n }\n ]\n },\n \"pdfProfile\": \"standard\",\n \"webhook\": {\n \"webhookUrl\": \"https://example.com/webhook\",\n \"webhookAuth\": {\n \"headerName\": \"X-API-Key\",\n \"headerValue\": \"my-secret-key\",\n \"basicAuthUsername\": \"user\",\n \"basicAuthPassword\": \"pass\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.autype.com/api/v1/dev/render/readiness")
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 \"config\": {\n \"document\": {\n \"type\": \"pdf\",\n \"size\": \"A4\"\n },\n \"variables\": {\n \"companyName\": \"Acme Inc\"\n },\n \"sections\": [\n {\n \"id\": \"section-1\",\n \"type\": \"flow\",\n \"content\": [\n {\n \"type\": \"h1\",\n \"text\": \"Hello {{companyName}}\"\n },\n {\n \"type\": \"text\",\n \"text\": \"This is a paragraph.\"\n }\n ]\n }\n ]\n },\n \"pdfProfile\": \"standard\",\n \"webhook\": {\n \"webhookUrl\": \"https://example.com/webhook\",\n \"webhookAuth\": {\n \"headerName\": \"X-API-Key\",\n \"headerValue\": \"my-secret-key\",\n \"basicAuthUsername\": \"user\",\n \"basicAuthPassword\": \"pass\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"scope": "semantic_source",
"scoreLabel": "semantic_source_score",
"requiresRenderInspection": true,
"score": 50,
"checkedAt": "<string>",
"summary": {
"errors": 123,
"warnings": 123,
"images": 123,
"tables": 123,
"headings": 123
},
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>",
"suggestion": "<string>"
}
],
"capabilities": {
"semanticSourceChecks": {
"description": "<string>"
},
"renderedOutputChecks": {
"description": "<string>"
},
"pdfA": {
"description": "<string>"
},
"pdfUa": {
"description": "<string>"
},
"taggedPdf": {
"description": "<string>"
}
}
}Check JSON document export readiness
Checks required metadata, image descriptions, heading hierarchy and table headers without rendering or charging credits. This is not PDF/A or PDF/UA certification.
curl --request POST \
--url https://api.autype.com/api/v1/dev/render/readiness \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"config": {
"document": {
"type": "pdf",
"size": "A4"
},
"variables": {
"companyName": "Acme Inc"
},
"sections": [
{
"id": "section-1",
"type": "flow",
"content": [
{
"type": "h1",
"text": "Hello {{companyName}}"
},
{
"type": "text",
"text": "This is a paragraph."
}
]
}
]
},
"pdfProfile": "standard",
"webhook": {
"webhookUrl": "https://example.com/webhook",
"webhookAuth": {
"headerName": "X-API-Key",
"headerValue": "my-secret-key",
"basicAuthUsername": "user",
"basicAuthPassword": "pass"
}
}
}
'import requests
url = "https://api.autype.com/api/v1/dev/render/readiness"
payload = {
"config": {
"document": {
"type": "pdf",
"size": "A4"
},
"variables": { "companyName": "Acme Inc" },
"sections": [
{
"id": "section-1",
"type": "flow",
"content": [
{
"type": "h1",
"text": "Hello {{companyName}}"
},
{
"type": "text",
"text": "This is a paragraph."
}
]
}
]
},
"pdfProfile": "standard",
"webhook": {
"webhookUrl": "https://example.com/webhook",
"webhookAuth": {
"headerName": "X-API-Key",
"headerValue": "my-secret-key",
"basicAuthUsername": "user",
"basicAuthPassword": "pass"
}
}
}
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({
config: {
document: {type: 'pdf', size: 'A4'},
variables: {companyName: 'Acme Inc'},
sections: [
{
id: 'section-1',
type: 'flow',
content: [
{type: 'h1', text: 'Hello {{companyName}}'},
{type: 'text', text: 'This is a paragraph.'}
]
}
]
},
pdfProfile: 'standard',
webhook: {
webhookUrl: 'https://example.com/webhook',
webhookAuth: {
headerName: 'X-API-Key',
headerValue: 'my-secret-key',
basicAuthUsername: 'user',
basicAuthPassword: 'pass'
}
}
})
};
fetch('https://api.autype.com/api/v1/dev/render/readiness', 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.autype.com/api/v1/dev/render/readiness",
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([
'config' => [
'document' => [
'type' => 'pdf',
'size' => 'A4'
],
'variables' => [
'companyName' => 'Acme Inc'
],
'sections' => [
[
'id' => 'section-1',
'type' => 'flow',
'content' => [
[
'type' => 'h1',
'text' => 'Hello {{companyName}}'
],
[
'type' => 'text',
'text' => 'This is a paragraph.'
]
]
]
]
],
'pdfProfile' => 'standard',
'webhook' => [
'webhookUrl' => 'https://example.com/webhook',
'webhookAuth' => [
'headerName' => 'X-API-Key',
'headerValue' => 'my-secret-key',
'basicAuthUsername' => 'user',
'basicAuthPassword' => 'pass'
]
]
]),
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://api.autype.com/api/v1/dev/render/readiness"
payload := strings.NewReader("{\n \"config\": {\n \"document\": {\n \"type\": \"pdf\",\n \"size\": \"A4\"\n },\n \"variables\": {\n \"companyName\": \"Acme Inc\"\n },\n \"sections\": [\n {\n \"id\": \"section-1\",\n \"type\": \"flow\",\n \"content\": [\n {\n \"type\": \"h1\",\n \"text\": \"Hello {{companyName}}\"\n },\n {\n \"type\": \"text\",\n \"text\": \"This is a paragraph.\"\n }\n ]\n }\n ]\n },\n \"pdfProfile\": \"standard\",\n \"webhook\": {\n \"webhookUrl\": \"https://example.com/webhook\",\n \"webhookAuth\": {\n \"headerName\": \"X-API-Key\",\n \"headerValue\": \"my-secret-key\",\n \"basicAuthUsername\": \"user\",\n \"basicAuthPassword\": \"pass\"\n }\n }\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://api.autype.com/api/v1/dev/render/readiness")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"config\": {\n \"document\": {\n \"type\": \"pdf\",\n \"size\": \"A4\"\n },\n \"variables\": {\n \"companyName\": \"Acme Inc\"\n },\n \"sections\": [\n {\n \"id\": \"section-1\",\n \"type\": \"flow\",\n \"content\": [\n {\n \"type\": \"h1\",\n \"text\": \"Hello {{companyName}}\"\n },\n {\n \"type\": \"text\",\n \"text\": \"This is a paragraph.\"\n }\n ]\n }\n ]\n },\n \"pdfProfile\": \"standard\",\n \"webhook\": {\n \"webhookUrl\": \"https://example.com/webhook\",\n \"webhookAuth\": {\n \"headerName\": \"X-API-Key\",\n \"headerValue\": \"my-secret-key\",\n \"basicAuthUsername\": \"user\",\n \"basicAuthPassword\": \"pass\"\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.autype.com/api/v1/dev/render/readiness")
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 \"config\": {\n \"document\": {\n \"type\": \"pdf\",\n \"size\": \"A4\"\n },\n \"variables\": {\n \"companyName\": \"Acme Inc\"\n },\n \"sections\": [\n {\n \"id\": \"section-1\",\n \"type\": \"flow\",\n \"content\": [\n {\n \"type\": \"h1\",\n \"text\": \"Hello {{companyName}}\"\n },\n {\n \"type\": \"text\",\n \"text\": \"This is a paragraph.\"\n }\n ]\n }\n ]\n },\n \"pdfProfile\": \"standard\",\n \"webhook\": {\n \"webhookUrl\": \"https://example.com/webhook\",\n \"webhookAuth\": {\n \"headerName\": \"X-API-Key\",\n \"headerValue\": \"my-secret-key\",\n \"basicAuthUsername\": \"user\",\n \"basicAuthPassword\": \"pass\"\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"scope": "semantic_source",
"scoreLabel": "semantic_source_score",
"requiresRenderInspection": true,
"score": 50,
"checkedAt": "<string>",
"summary": {
"errors": 123,
"warnings": 123,
"images": 123,
"tables": 123,
"headings": 123
},
"issues": [
{
"code": "<string>",
"path": "<string>",
"message": "<string>",
"suggestion": "<string>"
}
],
"capabilities": {
"semanticSourceChecks": {
"description": "<string>"
},
"renderedOutputChecks": {
"description": "<string>"
},
"pdfA": {
"description": "<string>"
},
"pdfUa": {
"description": "<string>"
},
"taggedPdf": {
"description": "<string>"
}
}
}Authorizations
Short-lived, Developer-API-audience token obtained by the trusted MCP service through token exchange (mcp_at_...). Raw MCP resource tokens are rejected.
Body
Complete document JSON following the Autype document schema. Must include document (with type) and sections. May also include variables, defaults, abbreviations, citations, footnotes, and style — all at the same level inside this object. The output format is determined by the document.type field (pdf, docx, or odt). Variable placeholders can use either {{varName}} or ${varName} syntax — both are accepted on input. See the Document JSON Syntax docs for the full schema reference.
Show child attributes
Show child attributes
{
"document": { "type": "pdf", "size": "A4" },
"variables": { "companyName": "Acme Inc" },
"sections": [
{
"id": "section-1",
"type": "flow",
"content": [
{
"type": "h1",
"text": "Hello {{companyName}}"
},
{
"type": "text",
"text": "This is a paragraph."
}
]
}
]
}
PDF output profile. Only valid for PDF output. PDF/A and PDF/UA profiles flatten interactive form fields to preserve the selected profile.
standard, pdfa-1b, pdfa-2b, pdfa-3b, pdfua-1 Optional webhook configuration. Receives a POST when the job completes or fails.
Show child attributes
Show child attributes
Response
semantic_source semantic_source_score true
ready, needs_attention, blocked 0 <= x <= 100Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
