GET /v1/public/pages/{slug}/gate-info
Returns a minimal gate signal for a password-protected page. This endpoint is unauthenticated and is called by the Artifacta viewer (artifacta.io/a/{slug}) to decide whether to show the password prompt.
Returns 200 only for pages that are:
- password-protected (
access="password") - live (not unpublished, not expired, not from a suspended account)
404 for everything else — including unlisted and public pages with no password, missing slugs, expired pages, and suspended tenants. This is intentional: the endpoint reveals nothing about page existence beyond “you need a password here.”
Authentication
None. This is a public endpoint.Path parameters
| Parameter | Type | Description |
|---|---|---|
slug | string | Page slug (pg_...) from the public URL. |
Response
| Field | Type | Description |
|---|---|---|
exists | boolean | Always true on a 200 response. |
access | string | Always "password" on a 200 response. |
Error codes
| Code | Status | When |
|---|---|---|
artifact_not_found | 404 | Page not found, not password-protected, unpublished, expired, or from a suspended account. No oracle. |
Notes
- No oracle: The 404 error code does not distinguish between a missing slug and an unlisted page that exists but has no password. This prevents enumeration.
- Rate limiting: This endpoint shares the standard per-tenant rate limit. Abuse patterns (e.g. high-volume slug scanning) are also subject to the Vercel edge rate limit.