Manage your users' experience by storing their personal settings and tracking their progress through multi-step setup wizards. This guide covers the API endpoints available for handling global user preferences and organization-specific documentation wizard states.
User Preferences
User preferences allow you to store custom settings for an individual user, such as UI themes, notification toggles, or dashboard layouts. These preferences are tied directly to the authenticated user and persist across different sessions.
Available Endpoints
| Action | Method & Endpoint | Description |
|---|---|---|
| List all | GET /preferences | Retrieves all saved preferences for the authenticated user. |
| Get one | GET /preference | Retrieves a specific preference by its key. |
| Set/Update | PUT /preference | Creates a new preference or updates an existing one. |
| Delete | DELETE /preference | Removes a specific preference. |
Example Workflow
Here is a common pattern for managing user settings in your application:
- 1
Retrieve existing preferences
When a user logs in, call
GET /preferencesto load their saved settings and apply them to the UI. - 2
Update a specific setting
When the user changes a setting (like switching to dark mode), use
PUT /preferenceto save the change.curl -X PUT https://api.yourdomain.com/preference -H "Authorization: Bearer YOUR_TOKEN" -H "Content-Type: application/json" -d '{"key": "theme", "value": "dark"}' - 3
Clear a setting
If the user wants to revert to the system default, use
DELETE /preferenceto remove their custom override.
Because preferences are tied to the authenticated user's token, you do not need to pass a user ID in the URL path. The API automatically resolves the user from the Authorization header.
Wizard Progress
When users create or configure new documentation, you can track their progress through multi-step wizards. This ensures they can safely pause and resume their onboarding without losing data.
Unlike global preferences, wizard progress is scoped to a specific organization and documentation project.
Available Endpoints
| Action | Method & Endpoint | Description |
|---|---|---|
| Get progress | GET /v1/organization/{organization_id}/wizard-progress/{documentation_id} | Retrieves the current saved state of the wizard. |
| Upsert progress | POST /v1/organization/{organization_id}/wizard-progress/{documentation_id} | Saves or updates the user's progress. |
| Delete progress | DELETE /v1/organization/{organization_id}/wizard-progress/{documentation_id} | Clears the wizard state. |
Wizard Lifecycle
The following diagram illustrates how a client application should interact with the wizard progress endpoints during a standard onboarding flow:
sequenceDiagram
participant User
participant Client
participant API
User->>Client: Open Setup Wizard
Client->>API: GET /wizard-progress/{doc_id}
API-->>Client: Return saved state (e.g., Step 2)
User->>Client: Complete Step 2
Client->>API: POST /wizard-progress/{doc_id}
API-->>Client: Confirm saved
User->>Client: Finish Wizard
Client->>API: DELETE /wizard-progress/{doc_id}
API-->>Client: State clearedDeleting wizard progress is permanent. Only call the DELETE endpoint when the user has fully completed the wizard or explicitly clicks a "Start Over" button.
Frequently Asked Questions
Are user preferences shared across organizations?
Yes. Endpoints under /preference and /preferences are tied to the authenticated user globally. This means their personal settings (like language or theme) persist regardless of which organization workspace they are currently viewing.
How do I know which documentation ID to use for the wizard?
The documentation_id is generated when you first initialize a documentation project. You must pass this ID along with the organization_id to track progress for that specific project.