/v1/demo/publishDemo Publish
Publish markdown instantly without authentication. Documents expire after 72 hours.
Publish a markdown document instantly without creating an account or providing an API key. This is the fastest way to try Unmarkdown™. Demo pages are live immediately and expire after 72 hours.
This endpoint is designed for LLM agents, quick integrations, and trying the platform before signing up. There are no rate limits or usage quotas on demo publishing.
To keep a demo page permanently, use the Claim endpoint.
Request Body
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
content | string | Yes | The markdown content to publish. Max 100KB. | |
title | string | "Untitled" | Page title | |
template_id | string | "swiss" | Template ID from the template catalog | |
theme_mode | "light" | "dark" | "light" | Color theme |
Response
Returns the published URL and a claim token.
| Field | Type | Description |
|---|---|---|
url | string | Public URL where the page is live |
claim_token | string | UUID token to claim this page later |
expires_at | string | ISO 8601 timestamp when the page expires |
template_id | string | Template applied to the page |
id | string | Document UUID |
Content Limits
- Maximum content size: 100KB
- Content is scanned for abuse patterns (phishing, scams). Flagged content is rejected with a 400 error.
- Expired pages are automatically cleaned up.
Errors
| Status | Code | Description |
|---|---|---|
| 400 | validation_error | Missing content field, exceeds 100KB, or invalid template |
| 400 | content_rejected | Content flagged by abuse scanner |
| 500 | internal_error | Unexpected server error |
TIP
Save the claim_token from the response. You will need it to convert the demo page into a permanent document after creating an account.
curl -X POST https://api.unmarkdown.com/v1/demo/publish \
-H "Content-Type: application/json" \
-d '{
"content": "# Hello World\n\nPublished in one API call.",
"title": "Quick Demo"
}'
const res = await fetch('https://api.unmarkdown.com/v1/demo/publish', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
content: '# Hello World\n\nPublished in one API call.',
title: 'Quick Demo'
})
});
const data = await res.json();
console.log(data.url); // live page URL
console.log(data.claim_token); // save this to claim later
import requests
res = requests.post(
'https://api.unmarkdown.com/v1/demo/publish',
json={
'content': '# Hello World\n\nPublished in one API call.',
'title': 'Quick Demo'
}
)
data = res.json()
print(data['url'])
print(data['claim_token'])
Response (201)
{
"url": "https://unmarkdown.com/p/a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"claim_token": "f0e1d2c3-b4a5-6789-0fed-cba987654321",
"expires_at": "2026-02-18T10:30:00.000Z",
"template_id": "swiss",
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
No authentication required. This is the only Unmarkdown™ endpoint that works without an API key.