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.
/api/v2/artifacts/{artifactId}/linksdocuments.readParameters
artifactIdstring<uuid>requiredOwner-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-ControlResponse schema
ArtifactLinkResponseArtifact Link Response object used by the Publishing API.
artifactIdstring<uuid>requiredArtifact Id value.
contractVersionstringrequiredContract Version value.
expiresAtstring<date-time>requiredExpires At value.
hrefstring<uri>requiredHref value.
retentionobjectrequiredRetention value.
{
"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-IdResponse schema
PublishingErrorEnvelopePublishing Error Envelope object used by the Publishing API.
contractVersionstringrequiredContract Version value.
errorobjectrequiredError value.
{
"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-IdResponse schema
PublishingErrorEnvelopePublishing Error Envelope object used by the Publishing API.
contractVersionstringrequiredContract Version value.
errorobjectrequiredError value.
{
"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-IdResponse schema
PublishingErrorEnvelopePublishing Error Envelope object used by the Publishing API.
contractVersionstringrequiredContract Version value.
errorobjectrequiredError value.
{
"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
PublishingErrorEnvelopePublishing Error Envelope object used by the Publishing API.
contractVersionstringrequiredContract Version value.
errorobjectrequiredError value.
{
"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-AfterResponse schema
PublishingErrorEnvelopePublishing Error Envelope object used by the Publishing API.
contractVersionstringrequiredContract Version value.
errorobjectrequiredError value.
{
"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-AfterResponse schema
PublishingErrorEnvelopePublishing Error Envelope object used by the Publishing API.
contractVersionstringrequiredContract Version value.
errorobjectrequiredError value.
{
"contractVersion": "publishing.lifecycle.v1",
"error": {
"category": "internal",
"code": "service_unavailable",
"details": {
"retryAfterSeconds": 30
},
"httpStatus": 503,
"message": "Publishing is temporarily unavailable.",
"retryable": true
}
}