> ## Documentation Index
> Fetch the complete documentation index at: https://exsited.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Portal

> Log portal users in, change, set and reset their passwords, and activate or validate portal accounts.

The portal endpoints act for the people who sign in to your customer portal. You can log a portal user in, change or set their password, request a reset link, reset a password with a code, and activate or validate an account with a code. This area has 7 endpoints, and all seven SDKs call every one.

> [!WARNING]
>
> **Setting a portal password by email does not ask for the current password, and the old password cannot be put back.**

## At a glance

| Endpoint | Method | Path | What it does |
| - | - | - | - |
| [Activate a portal account](https://exsited.mintlify.site/api-reference/portal/activate-a-portal-account.md) | POST | `/portal/activate` | Activates a portal account with an activation code. |
| [Change a portal password](https://exsited.mintlify.site/api-reference/portal/change-a-portal-password.md) | POST | `/portal/change_password` | Changes a portal user's password when you send the current one, and returns a message. |
| [Log in a portal user](https://exsited.mintlify.site/api-reference/portal/log-in-a-portal-user.md) | POST | `/portal/login` | Checks a portal user's email and password and returns the user with the portals they can open. |
| [Reset a portal password with a code](https://exsited.mintlify.site/api-reference/portal/reset-a-portal-password-with-a-code.md) | POST | `/portal/reset` | Sets a new portal password using a reset code. |
| [Request a portal password reset link](https://exsited.mintlify.site/api-reference/portal/request-a-portal-password-reset-link.md) | POST | `/portal/reset_link` | Asks for a password reset link for a portal user's email and returns a message. |
| [Validate a portal account with a code](https://exsited.mintlify.site/api-reference/portal/validate-a-portal-account-with-a-code.md) | POST | `/portal/validate` | Validates a portal account with a code. |
| [Set a portal password by email](https://exsited.mintlify.site/api-reference/portal/set-a-portal-password-by-email.md) | POST | `/portal/change` | Sets a portal user's password from their email alone, without the current password. |

## Before you call

Register your API credentials once when your app starts, as shown in
[Authentication](https://exsited.mintlify.site/authentication.md). Every SDK sample on these pages then gets its client in one line.
With cURL, send the access token in an `Authorization` header: `Authorization: Bearer $ACCESS_TOKEN`.

## Things to know

* **Every request body sits under a `portal` key.** A login, for example, sends `{"portal": {"email": "jane@example.com", "password": "current-password"}}`.
* **A portal user is an account with portal access.** Create the account with `grant_portal_access` set to `true` and a `grant_portal_password`, then log in with its `email_address` and that password.
* **A wrong password returns `400`.** After a password change, a login with the old password is refused.
* **A reset link request for an unknown email returns `202`.** The call does not fail when no portal user has that email.
* **Setting a password by email returns `202`.** `POST /portal/change` sends `email` and `password` under `portal`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.