Markdown to PDF

API documentation

Create a short-lived artifact link

Artifacts

Create a short-lived artifact link

Mint a private download URL after both tenant visibility and explicit owner checks. The URL is never stored.

POST/api/v2/artifacts/{artifactId}/links
Required scopedocuments.read

Parameters

artifactId
pathstring<uuid>required

Owner-scoped artifact identifier.

Request body

This operation does not accept a request body.

Operational behavior

Idempotency

Mode: non persisting. No idempotency header is required.

Retries

This operation does not persist or charge. A retry may return a different short-lived URL for the same artifact. Retry statuses: 429, 503. Honor Retry-After.

Retention

The returned URL lasts at most five minutes and does not extend the artifact's expiresAt. Response field: retention.

Responses

201A new short-lived download link.

Response headers

X-Correlation-IdCache-Control

Response schema

ArtifactLinkResponse

Artifact Link Response object used by the Publishing API.

artifactId
string<uuid>required

Artifact Id value.

contractVersion
stringrequired

Contract Version value.

expiresAt
string<date-time>required

Expires At value.

href
string<uri>required

Href value.

retention
objectrequired

Retention value.

201 example
{
  "artifactId": "44444444-4444-4444-8444-444444444444",
  "contractVersion": "publishing.lifecycle.v1",
  "expiresAt": "2026-07-20T12:16:00.000Z",
  "href": "https://storage.example.invalid/object?token=short-lived-example",
  "retention": {
    "deleteRequestedAt": null,
    "deletedAt": null,
    "expiresAt": "2026-07-27T12:10:04.000Z",
    "policy": "managed_default"
  }
}
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
  }
}
410The artifact has expired or was deleted.

Response schema

PublishingErrorEnvelope

Publishing Error Envelope object used by the Publishing API.

contractVersion
stringrequired

Contract Version value.

error
objectrequired

Error value.

410 example
{
  "contractVersion": "publishing.lifecycle.v1",
  "error": {
    "category": "storage",
    "code": "artifact_expired",
    "httpStatus": 410,
    "message": "The artifact has expired and is no longer downloadable.",
    "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.