curl --request POST \
--url https://api.autype.com/api/v1/dev/render/markdown/images \
--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"
}
},
"image": {
"format": "png",
"dpi": 150,
"pages": [
"1-3"
]
}
}
'import requests
url = "https://api.autype.com/api/v1/dev/render/markdown/images"
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"
}
},
"image": {
"format": "png",
"dpi": 150,
"pages": ["1-3"]
}
}
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'
}
},
image: {format: 'png', dpi: 150, pages: ['1-3']}
})
};
fetch('https://api.autype.com/api/v1/dev/render/markdown/images', 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/images",
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'
]
],
'image' => [
'format' => 'png',
'dpi' => 150,
'pages' => [
'1-3'
]
]
]),
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/images"
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 \"image\": {\n \"format\": \"png\",\n \"dpi\": 150,\n \"pages\": [\n \"1-3\"\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/images")
.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 \"image\": {\n \"format\": \"png\",\n \"dpi\": 150,\n \"pages\": [\n \"1-3\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.autype.com/api/v1/dev/render/markdown/images")
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 \"image\": {\n \"format\": \"png\",\n \"dpi\": 150,\n \"pages\": [\n \"1-3\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"jobId": "<string>",
"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 as page images (temporary)
Submit Extended Markdown content for rendering to page images. This is the recommended image render endpoint for MCP/AI clients. The Markdown is converted to document sections, rendered to PDF internally, and converted to PNG/JPEG pages. Single-page output is a direct image; multi-page output is a ZIP archive.
curl --request POST \
--url https://api.autype.com/api/v1/dev/render/markdown/images \
--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"
}
},
"image": {
"format": "png",
"dpi": 150,
"pages": [
"1-3"
]
}
}
'import requests
url = "https://api.autype.com/api/v1/dev/render/markdown/images"
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"
}
},
"image": {
"format": "png",
"dpi": 150,
"pages": ["1-3"]
}
}
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'
}
},
image: {format: 'png', dpi: 150, pages: ['1-3']}
})
};
fetch('https://api.autype.com/api/v1/dev/render/markdown/images', 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/images",
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'
]
],
'image' => [
'format' => 'png',
'dpi' => 150,
'pages' => [
'1-3'
]
]
]),
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/images"
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 \"image\": {\n \"format\": \"png\",\n \"dpi\": 150,\n \"pages\": [\n \"1-3\"\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/images")
.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 \"image\": {\n \"format\": \"png\",\n \"dpi\": 150,\n \"pages\": [\n \"1-3\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.autype.com/api/v1/dev/render/markdown/images")
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 \"image\": {\n \"format\": \"png\",\n \"dpi\": 150,\n \"pages\": [\n \"1-3\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"jobId": "<string>",
"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. Will be converted to document sections automatically. 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
Image output options.
Show child attributes
Show child attributes
Response
Image 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
