API Overview
Base URL, authentication, response format, and versioning for the Unmarkdown™ REST API.
API Overview
The Unmarkdown™ REST API lets you convert, create, publish, and manage documents programmatically.
Base URL
All API requests use the following base URL:
https://api.unmarkdown.com/v1
Authentication
Authenticate by including your API key in the Authorization header as a Bearer token:
Authorization: Bearer um_your_api_key_here
API keys start with the um_ prefix followed by 64 hexadecimal characters. Create keys in the Unmarkdown™ app under Settings > API. Each account can have up to 2 active keys.
Keys are hashed with SHA-256 on the server. The raw key is shown only once at creation time.
IMPORTANT
The demo publish endpoint (POST /v1/demo/publish) does not require authentication. All other endpoints require a valid API key.
Request format
Send request bodies as JSON with the Content-Type: application/json header:
curl -X POST https://api.unmarkdown.com/v1/documents/publish \
-H "Authorization: Bearer um_your_key_here" \
-H "Content-Type: application/json" \
-d '{"content": "# Hello World", "template_id": "swiss"}'
Response format
All responses return JSON. Successful responses include the requested data directly:
{
"id": "d4f7a8b2-1234-5678-9abc-def012345678",
"title": "My Document",
"published_url": "https://unmarkdown.com/u/yourname/my-document"
}
Error responses use a consistent envelope:
{
"error": {
"code": "unauthorized",
"message": "Missing Authorization header. Use: Bearer um_your_key",
"status": 401
}
}
See Error Handling for the full list of error codes.
Rate limits
Every response includes rate limit headers:
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per second |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Timestamp when the window resets |
| Tier | Rate Limit |
|---|---|
| Free | 10 requests/second |
| Pro | 30 requests/second |
See Rate Limits for details.
Monthly quotas
| Tier | Quota |
|---|---|
| Free | 1,000 calls/month |
| Pro | 10,000 calls/month |
The following endpoints do not count toward your monthly quota: GET /v1/templates, GET /v1/usage, GET /v1/documents, GET /v1/documents/:id.
Quotas reset on the 1st of each month at midnight UTC. See Usage Quotas for details.
Versioning
The API is versioned via the URL path (/v1). Breaking changes will be introduced in a new version (/v2). Non-breaking additions (new fields, new optional parameters) may be added to the current version without notice.
Pagination
List endpoints use cursor-based pagination. See Pagination for details.