Skip to main content

POST /v1/public/pages/{slug}/unlock

Verifies the password for a gated page and returns a short-lived content token. The token is passed to the content-origin Worker (artifactausercontent.com/c/{slug}?token=...) to fetch the gated bytes. This endpoint is unauthenticated and is called by the Artifacta viewer after the visitor submits the password prompt. The token expires in 5 minutes (expires_in: 300). After expiry the viewer must call this endpoint again.

Authentication

None. This is a public endpoint.

Path parameters

Request body

Response

Error codes

Notes

  • Single failure mode: An incorrect password returns unauthorized, not artifact_not_found. However, a missing or unpublished slug also returns a non-200 status code — callers cannot distinguish wrong-password from missing-slug. This is intentional.
  • Brute-force protection: Attempts are rate-limited per slug plus a separate per-IP edge rule. The per-slug cap is the primary control.
  • Token scope: The token is single-purpose (purpose: "page_content") and accepted only by the content-origin Worker. It cannot be used to call any API endpoint.

Example