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:

HeaderDescription
X-RateLimit-LimitMaximum requests per second
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetTimestamp when the window resets
TierRate Limit
Free10 requests/second
Pro30 requests/second

See Rate Limits for details.

Monthly quotas

TierQuota
Free1,000 calls/month
Pro10,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.