Portfolio Supported AIs Solutions Tasks Email Archive Integrations Pricing

Get Started

ChatGPT

ChatGPT

Start directly →

Ready
Claude

Claude

Directory Connector →

Ready
Mistral

Mistral

Directory Connector →

Ready

Dashboard Always available
Admin Auth

Admin Auth

⚡ Built-in — Platform Built-in

Password-protected access for PAPI pages. Per-user accounts with peppered bcrypt hashing, 8-hour session tokens, session audit log, self-service password reset, cross-project lead aggregation via project linking. There is no dashboard screen for user management — admin users are created by the AI assistant through create_user, and each user then sets their own password. How to apply it (bootstrap order, pages you must build, browser calls, token handling, pitfalls) is returned in the guidance block of this response.

⚡ Built-in — No Setup Required This integration is built into the WebsitePublisher platform. All endpoints are available immediately — no API key needed.

Endpoints (15)

POST login

Authenticate with email + password. Body: {email, password}. Returns {success, token (wsa_, 8h TTL), refresh_token (rfa_, 30d TTL)}.

Field Type Required Description
email string ✓ Yes Admin user email address
password string ✓ Yes Admin password
POST request-reset

Request a password reset. Body: {email}. Requires NO session. Sends the link via the AuthMailer cascade (project custom SMTP -> project Resend -> platform mail), so no per-project mail setup is needed. Always returns success — no user enumeration possible, which also means an unknown address returns success while sending nothing. Works only for an existing, active user: this endpoint alone cannot bootstrap the first admin — call create_user first.

Field Type Required Description
email string ✓ Yes Email address of the admin user
base_url string No DEPRECATED — ignored, URL resolved server-side. Kept for backward compatibility.
POST reset-password

Set a new password using a valid reset token (rst_...). Body: {token, password, password_confirmation} — all three required, password min 8 characters; omitting password_confirmation returns 422. Token is single-use and valid for 1 hour. Invalidates all active sessions. The emailed link is built server-side and always points at /reset-password.html?token=...&project=... — that page must exist in the project or the link lands on a 404. It is not created automatically; the assistant builds it, together with a forgot-password.html linked from the login page.

Field Type Required Description
token string ✓ Yes Reset token (rst_...) from email link
password string ✓ Yes New password (min 8 characters)
password_confirmation string ✓ Yes Must match password
POST verify

Verify a session token is still valid. Updates last_used_at for audit trail.

Field Type Required Description
token string ✓ Yes Session token (wsa_...)
POST logout

Invalidate a session token.

Field Type Required Description
token string ✓ Yes Session token to invalidate (wsa_...)
POST refresh

Exchange a refresh token (rfa_) for a new session. Rotates in-place; old tokens become invalid. Returns {success, token (new wsa_), refresh_token (new rfa_)}.

Field Type Required Description
refresh_token string ✓ Yes Refresh token (rfa_...)
POST create_user

Prefer invite_user when the client cannot or should not send a password. Create a new admin user for this project. Password stored as peppered bcrypt hash. This is the only way to create an admin user — there is no dashboard screen for it, and being logged in as admin does not grant the right to create the next user (that needs the project token, not a wsa_ session). Recommended: pass a random throwaway password and then call request-reset, so the user sets their own password from the emailed link and the real password never passes through the assistant.

Field Type Required Description
email string ✓ Yes Email address for the new admin user
password string ✓ Yes Password for the new admin user
POST invite_user

Create an admin user WITHOUT a password and email them a link to set their own (#1495). Preferred way to bootstrap the first admin: no credential ever passes through the assistant. The account gets an unknown random password; the user sets theirs via the emailed link to /reset-password.html (valid 1 hour; afterwards forgot-password sends a new one). Returns 409 if the user already exists and is active. Requires login.html, forgot-password.html and reset-password.html to exist in the project.

Field Type Required Description
email string ✓ Yes Email address of the admin user to invite
POST list_users

List all active admin users for this project.

No input parameters required.

POST delete_user

Deactivate an admin user and invalidate all their active sessions.

Field Type Required Description
email string ✓ Yes Email address of the admin user to deactivate
POST update_password

Reset the password for an existing admin user (admin-side). Invalidates all active sessions. Note there is no change-password endpoint for a logged-in user: the browser endpoints are login, verify, logout, refresh, request-reset and reset-password only. A user changing their own password goes through request-reset -> reset-password; that is the intended route, not a fallback.

Field Type Required Description
email string ✓ Yes Email address of the admin user
password string ✓ Yes New password
POST list_sessions

List all active sessions for this project. Shows email, IP, created_at, last_used_at.

Field Type Required Description
email string No Optional: filter sessions by user email
POST list_linked_projects

List all microsite projects linked to this dashboard project.

No input parameters required.

MCP Tool Names

When using this integration through an AI assistant (Claude, ChatGPT, Cursor, etc.), the endpoints are available as MCP tools:

EndpointMCP Tool Name
login admin_auth_login
request-reset admin_auth_request_reset
reset-password admin_auth_reset_password
verify admin_auth_verify
logout admin_auth_logout
refresh admin_auth_refresh
create_user admin_auth_create_user
invite_user admin_auth_invite_user
list_users admin_auth_list_users
delete_user admin_auth_delete_user
update_password admin_auth_update_password
list_sessions admin_auth_list_sessions
link_project admin_auth_link_project
unlink_project admin_auth_unlink_project
list_linked_projects admin_auth_list_linked_projects
← Back to all integrations