The Profile area is the configuration hub for every authenticated user in Stay Sidekick. Any logged-in user can view their own account details and change their password directly from this area. Company admins go further: from the same set of endpoints they can wire up PMS and AI integrations, map XLSX column layouts for bulk imports, and configure late check-in notification rules — all without touching code or triggering a redeployment.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/sdurutr436/stay-sidekick/llms.txt
Use this file to discover all available pages before exploring further.
User profile
These two endpoints are available to every authenticated user, regardless of role.GET /api/perfil
Returns the authenticated user’s email, role, company identifier, and the timestamp of their last password change.200:
PUT /api/perfil/password
Changes the password for the currently authenticated user. Requires the current password (password_actual) and the desired new password (password_nueva). An optional password_confirm field may be included — if provided it must match password_nueva.
200:
password_actual does not match the stored hash the API returns 422 with a descriptive error. This endpoint is the standard path for users completing their first login after being assigned a temporary password by an admin.
Company integrations
Integration configuration is scoped to the company, not to individual users. Any authenticated user can read the integration status; only an admin can write to it.GET /api/perfil/integraciones
Returns the connection status of the PMS, AI, and Google integrations for the authenticated user’s company.200:
PUT /api/perfil/integraciones/pms
Sets or replaces the PMS API key for the company. Requires both theproveedor and api_key fields. Supported providers: smoobu, beds24, hostaway, cloudbeds. The key is encrypted with Fernet symmetric encryption before being written to the database and is never returned in plaintext by any endpoint.
PMS and AI API keys are stored encrypted using Fernet symmetric encryption (
app/common/crypto.py). The raw key material is never returned via any API response — only a configurado boolean status is exposed. If you need to rotate a key, simply call this endpoint again with the new value.200:
DELETE /api/perfil/integraciones/pms. This removes the stored key and marks the integration as disconnected.
PUT /api/perfil/integraciones/ia
Sets or replaces the company’s own AI provider API key (BYOK — Bring Your Own Key). Requires aproveedor value; api_key and modelo are optional. Supported providers: default, gemini, openai, claude. When a company configures its own key it bypasses the platform’s shared free-tier usage counters and routes AI requests through its own account.
200:
DELETE /api/perfil/integraciones/ia removes the key and reverts the company to the platform’s shared AI tier.
XLSX column configuration
When a company does not have an active PMS API integration, operational tools (heat map, late check-in notifications, contact sync) fall back to XLSX file uploads. The column mapping tells the backend which zero-based spreadsheet column indices correspond to each apartment field.Read mapping
GET /api/perfil/xlsx-apartamentos — Returns the current column mapping for the company, or null if none has been saved yet. Available to all authenticated users.Save mapping
PUT /api/perfil/xlsx-apartamentos — Persists a new column mapping for the company. Admin only. The mapping is stored as a JSON object in the company’s configuration.200:
Column indices are zero-based integers (column A =
0, column B = 1, etc.). col_id_externo and col_nombre are required; col_direccion and col_ciudad default to 0 if omitted.Late check-in cutoff
Stay Sidekick can flag check-ins that arrive after a company-defined cutoff hour and apply notification rules automatically. The cutoff and column mappings are stored per company so different operations teams can define their own thresholds.Read config
GET /api/perfil/notificaciones-tardio-config — Returns the current cutoff time and XLSX column mappings for the company. Available to all authenticated users.Save config
PUT /api/perfil/notificaciones-tardio-config — Persists a new cutoff time and column mappings. Admin only.200:
Integration route summary
| Method | Endpoint | Role required | Description |
|---|---|---|---|
GET | /api/perfil | Any | Current user profile |
PUT | /api/perfil/password | Any | Change own password |
GET | /api/perfil/integraciones | Any | Integration status for company |
PUT | /api/perfil/integraciones/pms | Admin | Set PMS API key (encrypted) |
DELETE | /api/perfil/integraciones/pms | Admin | Remove PMS integration |
PUT | /api/perfil/integraciones/ia | Admin | Set AI API key (BYOK, encrypted) |
DELETE | /api/perfil/integraciones/ia | Admin | Remove AI integration |
GET | /api/perfil/xlsx-apartamentos | Any | Read XLSX column mapping |
PUT | /api/perfil/xlsx-apartamentos | Admin | Save XLSX column mapping |
GET | /api/perfil/notificaciones-tardio-config | Any | Read late check-in config |
PUT | /api/perfil/notificaciones-tardio-config | Admin | Save late check-in config |

