Auth API
Authentication API for Celerp users, login, logout, password recovery, company switching, and API access.
Generated from the Celerp 2.8.0 OpenAPI schema, 2 November 2026.
GET /auth/bootstrap-status
Get Initial Setup Status
Return whether initial Celerp setup has been completed, allowing clients to choose between first-time registration and the normal sign-in flow.
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the requested initial setup status result. | object |
Example
curl -X GET http://localhost:8000/auth/bootstrap-status \
-H "Authorization: Bearer $TOKEN"POST /auth/change-password
Change User Password
Change the password for the authenticated Celerp user after validating the supplied current password.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
current_password | string | yes | User's current password, required to authorize a password change. |
new_password | string | yes | New password to set for the user. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns a confirmation message. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/auth/change-password \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'GET /auth/firm-view
Firm View
Every company the user can open, with its accountant sync, last sync and what needs attention, newest activity first; ``q`` searches names, ``sync`` filters.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
q | query | -- | string, optional | Optional search text used to filter companies in the firm's view. |
sync | query | -- | string, optional | Optional accountant synchronization status used to filter companies. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
Example
curl -X GET http://localhost:8000/auth/firm-view \
-H "Authorization: Bearer $TOKEN"POST /auth/login
Log In
Authenticate a Celerp user.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
email | string | yes | Email address associated with the user, contact, or request. |
password | string | yes | Password supplied for authentication or initial user creation. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the access and refresh tokens for the new session. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/auth/login \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'POST /auth/login-force
Log In and Replace Existing Sessions
Authenticate a Celerp user while replacing the user's other active sessions, then return the new session information.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
email | string | yes | Email address associated with the user, contact, or request. |
password | string | yes | Password supplied for authentication or initial user creation. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the access and refresh tokens for the new session. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/auth/login-force \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'POST /auth/logout
Log Out
End the caller's current Celerp authentication session.
Request body
LogoutRequest, optional
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns a confirmation message. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/auth/logout \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'GET /auth/my-companies
List Accessible Companies
Return the companies the authenticated user can access, including the information needed to choose an active company.
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the requested accessible companies. | object |
Example
curl -X GET http://localhost:8000/auth/my-companies \
-H "Authorization: Bearer $TOKEN"POST /auth/password-recovery/reset
Recovery Reset
Reset the password of the user whose email this is, when the relay confirms the code it emailed them for the requester's recovery. A handle that holds no live recovery of this email has no right code and never reaches the relay.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
email | string | yes | |
handle | string | yes | Handle |
code | string | yes | Code |
new_password | string | yes | New Password |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful Response | -- |
422 | Validation Error | HTTPValidationError |
Example
curl -X POST http://localhost:8000/auth/password-recovery/reset \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'POST /auth/password-recovery/send
Recovery Send
Email a recovery code to the user whose email this is, if there is one here, and answer the handle the requester holds this recovery by, alike for any address. "unavailable" says no code is coming: the relay is down, or it could not deliver it. "undeliverable" says the relay never mails such an address, for any address alike.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
email | string | yes | |
handle | string, optional | -- | Handle |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
Example
curl -X POST http://localhost:8000/auth/password-recovery/send \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'GET /auth/password-recovery/terminal
Recovery Terminal
The terminal reset command, for the person at this computer only: it names this computer's folders.
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful Response | object |
Example
curl -X GET http://localhost:8000/auth/password-recovery/terminal \
-H "Authorization: Bearer $TOKEN"GET /auth/password-reset-notices
Reset Notices
The password resets the caller has not acknowledged yet, newest first, timed in the company's timezone. ``own`` marks a reset of the caller's own password. Reading them changes nothing: each stays until it is acknowledged.
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful Response | array of object |
Example
curl -X GET http://localhost:8000/auth/password-reset-notices \
-H "Authorization: Bearer $TOKEN"POST /auth/password-reset-notices/acknowledge
Acknowledge Reset Notices
The caller has seen these resets: their notices are gone. Ids already acknowledged, or not the caller's, change nothing.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
ids | array of string | yes | Ids |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful Response | object |
422 | Validation Error | HTTPValidationError |
Example
curl -X POST http://localhost:8000/auth/password-reset-notices/acknowledge \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'POST /auth/register
Register First Administrator
Create the first Celerp administrator and company during initial setup. Registration is available only before the installation has been bootstrapped.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
company_name | string | yes | Company or organization name. |
email | string | yes | Email address associated with the user, contact, or request. |
name | string | yes | Human-readable name for the record. |
password | string | yes | Password supplied for authentication or initial user creation. |
setup_code | string, optional | -- | Setup code used during supported first-time registration. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the access and refresh tokens for the new administrator. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/auth/register \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'POST /auth/start-company
Start a Company After a Reset
Create a company for a login that has none left, which happens after its last company was reset, and sign in as that company's owner. The request carries the login's email and password and the new company's name.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
email | string | yes | Email address of the login. |
password | string | yes | Password of the login. |
company_name | string | yes | Name of the company to create. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns the session tokens for the new company. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/auth/start-company \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'POST /auth/switch-company/{company_id}
Switch Active Company
Switch the authenticated user's active company to another company they can access.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
company_id | path | yes | string | Identifier of the company. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns new access and refresh tokens scoped to the selected company. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/auth/switch-company/:company_id \
-H "Authorization: Bearer $TOKEN"POST /auth/token/refresh
Refresh Authentication Session
Refresh the authenticated Celerp session.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
refresh_token | string | yes | Refresh credential used to renew the authenticated session. |
Responses
| Status | Description | Body |
|---|---|---|
200 | Returns new access and refresh tokens. | object |
422 | The request failed validation. The response lists each invalid field and why. | HTTPValidationError |
Example
curl -X POST http://localhost:8000/auth/token/refresh \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{ ... }'