Skip to main content

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)
Returns 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

ParameterTypeDescription
slugstringPage slug (pg_...) from the public URL.

Response

{
  "exists": true,
  "access": "password"
}
FieldTypeDescription
existsbooleanAlways true on a 200 response.
accessstringAlways "password" on a 200 response.

Error codes

CodeStatusWhen
artifact_not_found404Page 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.

Example

curl https://api.artifacta.io/v1/public/pages/pg_aB3xK9mP1qR5sT2u/gate-info