curl --request POST \
--url https://api.autype.com/api/v1/dev/render/markdown \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"content": "# Hello ${companyName}\n\nThis is a **professional** document.\n\n## Features\n\n- Item 1\n- Item 2\n",
"document": {
"type": "pdf",
"size": "A4",
"orientation": "portrait"
},
"variables": {
"name": "Acme Inc",
"date": "2024-01-01"
},
"abbreviations": {
"API": "Application Programming Interface"
},
"defaults": {},
"stylePresetId": "550e8400-e29b-41d4-a716-446655440000",
"citations": [
{}
],
"style": {},
"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/markdown"
payload = {
"content": "# Hello ${companyName}
This is a **professional** document.
## Features
- Item 1
- Item 2
",
"document": {
"type": "pdf",
"size": "A4",
"orientation": "portrait"
},
"variables": {
"name": "Acme Inc",
"date": "2024-01-01"
},
"abbreviations": { "API": "Application Programming Interface" },
"defaults": {},
"stylePresetId": "550e8400-e29b-41d4-a716-446655440000",
"citations": [{}],
"style": {},
"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({
content: '# Hello ${companyName}\n\nThis is a **professional** document.\n\n## Features\n\n- Item 1\n- Item 2\n',
document: {type: 'pdf', size: 'A4', orientation: 'portrait'},
variables: {name: 'Acme Inc', date: '2024-01-01'},
abbreviations: {API: 'Application Programming Interface'},
defaults: {},
stylePresetId: '550e8400-e29b-41d4-a716-446655440000',
citations: [{}],
style: {},
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/markdown', 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/markdown",
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([
'content' => '# Hello ${companyName}
This is a **professional** document.
## Features
- Item 1
- Item 2
',
'document' => [
'type' => 'pdf',
'size' => 'A4',
'orientation' => 'portrait'
],
'variables' => [
'name' => 'Acme Inc',
'date' => '2024-01-01'
],
'abbreviations' => [
'API' => 'Application Programming Interface'
],
'defaults' => [
],
'stylePresetId' => '550e8400-e29b-41d4-a716-446655440000',
'citations' => [
[
]
],
'style' => [
],
'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/markdown"
payload := strings.NewReader("{\n \"content\": \"# Hello ${companyName}\\n\\nThis is a **professional** document.\\n\\n## Features\\n\\n- Item 1\\n- Item 2\\n\",\n \"document\": {\n \"type\": \"pdf\",\n \"size\": \"A4\",\n \"orientation\": \"portrait\"\n },\n \"variables\": {\n \"name\": \"Acme Inc\",\n \"date\": \"2024-01-01\"\n },\n \"abbreviations\": {\n \"API\": \"Application Programming Interface\"\n },\n \"defaults\": {},\n \"stylePresetId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"citations\": [\n {}\n ],\n \"style\": {},\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/markdown")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"content\": \"# Hello ${companyName}\\n\\nThis is a **professional** document.\\n\\n## Features\\n\\n- Item 1\\n- Item 2\\n\",\n \"document\": {\n \"type\": \"pdf\",\n \"size\": \"A4\",\n \"orientation\": \"portrait\"\n },\n \"variables\": {\n \"name\": \"Acme Inc\",\n \"date\": \"2024-01-01\"\n },\n \"abbreviations\": {\n \"API\": \"Application Programming Interface\"\n },\n \"defaults\": {},\n \"stylePresetId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"citations\": [\n {}\n ],\n \"style\": {},\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/markdown")
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 \"content\": \"# Hello ${companyName}\\n\\nThis is a **professional** document.\\n\\n## Features\\n\\n- Item 1\\n- Item 2\\n\",\n \"document\": {\n \"type\": \"pdf\",\n \"size\": \"A4\",\n \"orientation\": \"portrait\"\n },\n \"variables\": {\n \"name\": \"Acme Inc\",\n \"date\": \"2024-01-01\"\n },\n \"abbreviations\": {\n \"API\": \"Application Programming Interface\"\n },\n \"defaults\": {},\n \"stylePresetId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"citations\": [\n {}\n ],\n \"style\": {},\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{
"jobId": "<string>",
"status": "PENDING",
"format": "PDF",
"creditCost": 123,
"createdAt": "2023-11-07T05:31:56Z",
"downloadUrl": "<string>",
"filename": "<string>",
"filloutId": "<string>",
"error": "<string>",
"completedAt": "2023-11-07T05:31:56Z"
}Render a document from Extended Markdown (temporary)
Submit Extended Markdown content for rendering to PDF, DOCX, or ODT. This is a temporary render — the Markdown is not persisted and the render output expires. No document is created in your Autype workspace. Supports all Autype Extended Markdown syntax (directives, charts, math, tables, etc.). Returns a job ID for status polling. Credits are charged on successful completion.
curl --request POST \
--url https://api.autype.com/api/v1/dev/render/markdown \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"content": "# Hello ${companyName}\n\nThis is a **professional** document.\n\n## Features\n\n- Item 1\n- Item 2\n",
"document": {
"type": "pdf",
"size": "A4",
"orientation": "portrait"
},
"variables": {
"name": "Acme Inc",
"date": "2024-01-01"
},
"abbreviations": {
"API": "Application Programming Interface"
},
"defaults": {},
"stylePresetId": "550e8400-e29b-41d4-a716-446655440000",
"citations": [
{}
],
"style": {},
"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/markdown"
payload = {
"content": "# Hello ${companyName}
This is a **professional** document.
## Features
- Item 1
- Item 2
",
"document": {
"type": "pdf",
"size": "A4",
"orientation": "portrait"
},
"variables": {
"name": "Acme Inc",
"date": "2024-01-01"
},
"abbreviations": { "API": "Application Programming Interface" },
"defaults": {},
"stylePresetId": "550e8400-e29b-41d4-a716-446655440000",
"citations": [{}],
"style": {},
"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({
content: '# Hello ${companyName}\n\nThis is a **professional** document.\n\n## Features\n\n- Item 1\n- Item 2\n',
document: {type: 'pdf', size: 'A4', orientation: 'portrait'},
variables: {name: 'Acme Inc', date: '2024-01-01'},
abbreviations: {API: 'Application Programming Interface'},
defaults: {},
stylePresetId: '550e8400-e29b-41d4-a716-446655440000',
citations: [{}],
style: {},
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/markdown', 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/markdown",
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([
'content' => '# Hello ${companyName}
This is a **professional** document.
## Features
- Item 1
- Item 2
',
'document' => [
'type' => 'pdf',
'size' => 'A4',
'orientation' => 'portrait'
],
'variables' => [
'name' => 'Acme Inc',
'date' => '2024-01-01'
],
'abbreviations' => [
'API' => 'Application Programming Interface'
],
'defaults' => [
],
'stylePresetId' => '550e8400-e29b-41d4-a716-446655440000',
'citations' => [
[
]
],
'style' => [
],
'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/markdown"
payload := strings.NewReader("{\n \"content\": \"# Hello ${companyName}\\n\\nThis is a **professional** document.\\n\\n## Features\\n\\n- Item 1\\n- Item 2\\n\",\n \"document\": {\n \"type\": \"pdf\",\n \"size\": \"A4\",\n \"orientation\": \"portrait\"\n },\n \"variables\": {\n \"name\": \"Acme Inc\",\n \"date\": \"2024-01-01\"\n },\n \"abbreviations\": {\n \"API\": \"Application Programming Interface\"\n },\n \"defaults\": {},\n \"stylePresetId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"citations\": [\n {}\n ],\n \"style\": {},\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/markdown")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"content\": \"# Hello ${companyName}\\n\\nThis is a **professional** document.\\n\\n## Features\\n\\n- Item 1\\n- Item 2\\n\",\n \"document\": {\n \"type\": \"pdf\",\n \"size\": \"A4\",\n \"orientation\": \"portrait\"\n },\n \"variables\": {\n \"name\": \"Acme Inc\",\n \"date\": \"2024-01-01\"\n },\n \"abbreviations\": {\n \"API\": \"Application Programming Interface\"\n },\n \"defaults\": {},\n \"stylePresetId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"citations\": [\n {}\n ],\n \"style\": {},\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/markdown")
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 \"content\": \"# Hello ${companyName}\\n\\nThis is a **professional** document.\\n\\n## Features\\n\\n- Item 1\\n- Item 2\\n\",\n \"document\": {\n \"type\": \"pdf\",\n \"size\": \"A4\",\n \"orientation\": \"portrait\"\n },\n \"variables\": {\n \"name\": \"Acme Inc\",\n \"date\": \"2024-01-01\"\n },\n \"abbreviations\": {\n \"API\": \"Application Programming Interface\"\n },\n \"defaults\": {},\n \"stylePresetId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"citations\": [\n {}\n ],\n \"style\": {},\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{
"jobId": "<string>",
"status": "PENDING",
"format": "PDF",
"creditCost": 123,
"createdAt": "2023-11-07T05:31:56Z",
"downloadUrl": "<string>",
"filename": "<string>",
"filloutId": "<string>",
"error": "<string>",
"completedAt": "2023-11-07T05:31:56Z"
}Authorizations
Short-lived, Developer-API-audience token obtained by the trusted MCP service through token exchange (mcp_at_...). Raw MCP resource tokens are rejected.
Query Parameters
Enable strict validation mode (validates anchors, references, citations, abbreviations, and footnotes)
Body
Extended Markdown content. Supports all Autype Extended Markdown syntax (directives, charts, math, etc.)
"# Hello ${companyName}\n\nThis is a **professional** document.\n\n## Features\n\n- Item 1\n- Item 2\n"
Document settings (page size, margins, orientation, metadata). Must include "type" field.
Show child attributes
Show child attributes
{
"type": "pdf",
"size": "A4",
"orientation": "portrait"
}
{ "name": "Acme Inc", "date": "2024-01-01" }
Abbreviations map. Keys are abbreviations, values are full text
{
"API": "Application Programming Interface"
}
Default styles and formatting options (fontFamily, fontSize, styles, header, footer, etc.)
Optional workspace style UUID or immutable built-in system:. The preset is resolved server-side and merged with inline defaults. Inline defaults win.
"550e8400-e29b-41d4-a716-446655440000"
Citations array (CSL-JSON format) for bibliography
Style configuration for the document
PDF output profile. Only valid when document.type is pdf. PDF/A and PDF/UA profiles flatten interactive form fields.
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
Render job created
Render job ID for status polling
PENDING, PROCESSING, COMPLETED, FAILED PDF, DOCX, ODT, PNG, JPEG Credit cost for this render job
Autype API download URL with signed token (only when completed). Supports direct browser download.
Filename for download
Saved record ID when rendering a persistent document with variable values.
Error message if failed
