Markdown to PDF

API documentation

Get a managed document

Documents

Get a managed document

Retrieve an owner-scoped document and its latest immutable revision summary.

GET/api/v2/documents/{documentId}
Required scopedocuments.read

Parameters

documentId
pathstring<uuid>required

Owner-scoped managed document identifier.

Request body

This operation does not accept a request body.

Operational behavior

Idempotency

Mode: naturally safe. No idempotency header is required.

Retries

Retry transport failures, 429, and 503 with exponential backoff and full jitter. Honor Retry-After. Retry statuses: 429, 503. Honor Retry-After.

Retention

The response states source/document expiry. Deleted and cross-tenant documents resolve as not found. Response field: retention.

Responses

200The managed document and latest revision summary.

Response headers

X-Correlation-Id

Response schema

DocumentDetailResponse

Document Detail Response object used by the Publishing API.

contractVersion
stringrequired

Contract Version value.

document
objectrequired

Document value.

latestRevision
Revision | nullrequired

Latest Revision value.

links
objectrequired

Links value.

200 example
{
  "contractVersion": "publishing.lifecycle.v1",
  "document": {
    "createdAt": "2026-07-20T12:00:00.000Z",
    "id": "11111111-1111-4111-8111-111111111111",
    "lastActivityAt": "2026-07-20T12:10:00.000Z",
    "latestRevisionId": "22222222-2222-4222-8222-222222222222",
    "locale": "en",
    "retention": {
      "deleteRequestedAt": null,
      "deletedAt": null,
      "expiresAt": "2026-08-19T12:10:00.000Z",
      "policy": "managed_default"
    },
    "status": "active",
    "taskId": "executive-brief",
    "title": "Northstar Launch Brief",
    "updatedAt": "2026-07-20T12:10:00.000Z"
  },
  "latestRevision": {
    "createdAt": "2026-07-20T12:00:00.000Z",
    "documentId": "11111111-1111-4111-8111-111111111111",
    "id": "22222222-2222-4222-8222-222222222222",
    "parentRevisionId": null,
    "sequence": 1,
    "sourceBytes": 74,
    "sourceSha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "specSha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
  },
  "links": {
    "preview": "/api/v2/documents/11111111-1111-4111-8111-111111111111/previews",
    "publish": "/api/v2/documents/11111111-1111-4111-8111-111111111111/publishes",
    "revisions": "/api/v2/documents/11111111-1111-4111-8111-111111111111/revisions",
    "self": "/api/v2/documents/11111111-1111-4111-8111-111111111111"
  }
}
401The bearer credential is missing, malformed, expired, revoked, or belongs to the wrong environment.

Response headers

X-Correlation-Id

Response schema

PublishingErrorEnvelope

Publishing Error Envelope object used by the Publishing API.

contractVersion
stringrequired

Contract Version value.

error
objectrequired

Error value.

401 example
{
  "contractVersion": "publishing.lifecycle.v1",
  "error": {
    "category": "authentication",
    "code": "unauthorized",
    "httpStatus": 401,
    "message": "A valid API key is required.",
    "retryable": false
  }
}
403The principal is authenticated but lacks the operation's required scope.

Response headers

X-Correlation-Id

Response schema

PublishingErrorEnvelope

Publishing Error Envelope object used by the Publishing API.

contractVersion
stringrequired

Contract Version value.

error
objectrequired

Error value.

403 example
{
  "contractVersion": "publishing.lifecycle.v1",
  "error": {
    "category": "authorization",
    "code": "forbidden",
    "httpStatus": 403,
    "message": "The API key does not have the required scope.",
    "retryable": false
  }
}
404The resource does not exist or is not visible to this principal. Cross-tenant misses use the same response.

Response headers

X-Correlation-Id

Response schema

PublishingErrorEnvelope

Publishing Error Envelope object used by the Publishing API.

contractVersion
stringrequired

Contract Version value.

error
objectrequired

Error value.

404 example
{
  "contractVersion": "publishing.lifecycle.v1",
  "error": {
    "category": "authorization",
    "code": "not_found",
    "httpStatus": 404,
    "message": "The requested resource was not found.",
    "retryable": false
  }
}
429The request is temporarily rate limited. No final publication unit is consumed.

Response headers

X-Correlation-IdRetry-After

Response schema

PublishingErrorEnvelope

Publishing Error Envelope object used by the Publishing API.

contractVersion
stringrequired

Contract Version value.

error
objectrequired

Error value.

429 example
{
  "contractVersion": "publishing.lifecycle.v1",
  "error": {
    "category": "entitlement",
    "code": "rate_limited",
    "details": {
      "retryAfterSeconds": 30
    },
    "httpStatus": 429,
    "message": "Too many publishing requests. Retry after 30 seconds.",
    "retryable": true
  }
}
503A transient publishing, queue, renderer, or storage dependency is unavailable. No failed render consumes a final publication unit.

Response headers

X-Correlation-IdRetry-After

Response schema

PublishingErrorEnvelope

Publishing Error Envelope object used by the Publishing API.

contractVersion
stringrequired

Contract Version value.

error
objectrequired

Error value.

503 example
{
  "contractVersion": "publishing.lifecycle.v1",
  "error": {
    "category": "internal",
    "code": "service_unavailable",
    "details": {
      "retryAfterSeconds": 30
    },
    "httpStatus": 503,
    "message": "Publishing is temporarily unavailable.",
    "retryable": true
  }
}

Checking API access

Loading your activation state.