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, notartifact_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.