> For the complete documentation index, see [llms.txt](https://developer.celigo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.celigo.com/api/api-reference/account-and-admin/profile.md).

# Profile

Read and update the currently-authenticated user's profile, including display name, email, timezone, and notification preferences.

### Preferences schema

## The Preferences object

```json
{"openapi":"3.2.0","info":{"title":"Profile","version":"1.0.0"},"components":{"schemas":{"Preferences":{"type":"object","description":"Complete preferences object as returned by `GET /v1/preferences`.","allOf":[{"$ref":"#/components/schemas/PreferencesBase"},{"type":"object","properties":{"lastLoginAt":{"type":"string","format":"date-time","readOnly":true,"description":"Last login timestamp recorded for the user (if present)."},"showReactSneakPeekFromDate":{"type":"string","format":"date","readOnly":true,"description":"Legacy feature-rollout date marker (UI state)."},"showReactBetaFromDate":{"type":"string","format":"date","readOnly":true,"description":"Legacy feature-rollout date marker (UI state)."},"oldDefaultAShareId":{"type":"string","readOnly":true,"description":"Previous default account-share ID, retained after switching accounts."},"resourceDrawerPanelSizes":{"type":"object","readOnly":true,"description":"Persisted panel-size state for the resource drawer (UI layout).","properties":{"left":{"type":"number","description":"Persisted size of the resource drawer's left panel."},"right":{"type":"number","description":"Persisted size of the resource drawer's right panel."}}},"accounts":{"type":"object","readOnly":true,"description":"Per-account UI state keyed by account ID."}}}]},"PreferencesBase":{"type":"object","description":"Writable preference fields shared by the request and response schemas.","properties":{"environment":{"type":"string","enum":["production","sandbox"],"description":"The selected environment context for the user."},"defaultAShareId":{"type":"string","description":"The selected account context for the user."},"defaultEnvId":{"type":"string","format":"objectId","description":"Default environment id to use when applicable."},"dateFormat":{"type":"string","description":"The user's preferred date display format used across the UI.\n\nChoose one of the supported formats.","enum":["MM/DD/YYYY","DD/MM/YYYY","DD-MMM-YYYY","DD.MM.YYYY","DD-MMMM-YYYY","DD MMMM, YYYY","YYYY/MM/DD","YYYY-MM-DD"]},"timeFormat":{"type":"string","description":"The user's preferred time display format used across the UI.","enum":["h:mm:ss A","HH:mm:ss"]},"showRelativeDateTime":{"type":"boolean","description":"Whether timestamps should be displayed as relative time (e.g., \"5 minutes ago\") instead of absolute date/time."},"colorTheme":{"type":"string","description":"UI theme preference.","enum":["system","light","dark"]},"scheduleShiftForFlowsCreatedAfter":{"type":"string","format":"date-time","description":"Threshold timestamp used by scheduling logic for certain flows (UI/system preference)."},"recentActivity":{"type":"object","description":"Recently accessed resources, typically keyed by environment."},"dashboard":{"type":"object","description":"Dashboard UI preferences (filters, tile order, view mode).","properties":{"view":{"type":"string","description":"Dashboard view mode.","enum":["tile","list"]},"filters":{"type":"object","description":"Dashboard filter settings."},"tilesOrder":{"type":"array","description":"Ordered list of dashboard tile ids.","items":{"type":"string"}}}},"pagination":{"type":"object","description":"Per-resource pagination settings (e.g., pageSize)."},"drawerOpened":{"type":"boolean","description":"When true, the main UI drawer/left nav is open."},"expand":{"type":["string","null"],"description":"UI section name last expanded/opened (UI state)."},"fbBottomDrawerHeight":{"type":"integer","description":"Flow Builder bottom drawer height in pixels (UI state)."},"enableAIChatbot":{"type":"boolean","description":"When true, AI chat features are enabled in the UI for this user."},"enableBeginnerGuide":{"type":"boolean","description":"When true, the beginner guide UI is enabled for this user."},"showIconView":{"type":"boolean","description":"When true, Flow Builder icon view is enabled for this user."},"allowPostmanCollectionUpload":{"type":"boolean","description":"When true, Postman collection upload UI is enabled for this user."},"helpContent":{"type":"object","description":"UI help content preferences/state."},"sampleIntegrationRequired":{"type":"boolean","description":"When true, the sample-integration walkthrough is still required for the user."},"hideGettingStarted":{"type":"boolean","description":"When true, the Getting Started banner is hidden."},"isLeftNavExpanded":{"type":"boolean","description":"When true, the left navigation sidebar is expanded."},"isNewGenFlowEnabled":{"type":"boolean","description":"When true, the next-generation Flow Builder UI is enabled for the user."},"useClickHouseForJobs":{"type":"boolean","description":"When true, the account uses ClickHouse-backed job queries."},"featureFlags":{"type":"object","description":"UI/feature flag overrides for the user (if present)."}}}}}}
```

## Get current user preferences

> Returns UI and account/environment preferences for the currently-authenticated user.\
> \
> Examples include:\
> \- date/time display formatting (\`dateFormat\`, \`timeFormat\`)\
> \- current environment selection (\`environment\`)\
> \- UI layout preferences (dashboard/pagination/drawer settings)

```json
{"openapi":"3.2.0","info":{"title":"Profile","version":"1.0.0"},"tags":[{"name":"Profile","description":"Read and update the currently-authenticated user's profile, including\ndisplay name, email, timezone, and notification preferences.\n\n## Preferences schema\n\n{% openapi-schemas spec=\"profile\" schemas=\"Preferences\" grouped=\"true\" %}"}],"servers":[{"url":"https://api.integrator.io","description":"Production (US / default region)"},{"url":"https://api.eu.integrator.io","description":"Production (EU region)"},{"url":"https://api.au.integrator.io","description":"Production (AU region)"},{"url":"https://api.ca.integrator.io","description":"Production (CA region)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Preferences":{"type":"object","description":"Complete preferences object as returned by `GET /v1/preferences`.","allOf":[{"$ref":"#/components/schemas/PreferencesBase"},{"type":"object","properties":{"lastLoginAt":{"type":"string","format":"date-time","readOnly":true,"description":"Last login timestamp recorded for the user (if present)."},"showReactSneakPeekFromDate":{"type":"string","format":"date","readOnly":true,"description":"Legacy feature-rollout date marker (UI state)."},"showReactBetaFromDate":{"type":"string","format":"date","readOnly":true,"description":"Legacy feature-rollout date marker (UI state)."},"oldDefaultAShareId":{"type":"string","readOnly":true,"description":"Previous default account-share ID, retained after switching accounts."},"resourceDrawerPanelSizes":{"type":"object","readOnly":true,"description":"Persisted panel-size state for the resource drawer (UI layout).","properties":{"left":{"type":"number","description":"Persisted size of the resource drawer's left panel."},"right":{"type":"number","description":"Persisted size of the resource drawer's right panel."}}},"accounts":{"type":"object","readOnly":true,"description":"Per-account UI state keyed by account ID."}}}]},"PreferencesBase":{"type":"object","description":"Writable preference fields shared by the request and response schemas.","properties":{"environment":{"type":"string","enum":["production","sandbox"],"description":"The selected environment context for the user."},"defaultAShareId":{"type":"string","description":"The selected account context for the user."},"defaultEnvId":{"type":"string","format":"objectId","description":"Default environment id to use when applicable."},"dateFormat":{"type":"string","description":"The user's preferred date display format used across the UI.\n\nChoose one of the supported formats.","enum":["MM/DD/YYYY","DD/MM/YYYY","DD-MMM-YYYY","DD.MM.YYYY","DD-MMMM-YYYY","DD MMMM, YYYY","YYYY/MM/DD","YYYY-MM-DD"]},"timeFormat":{"type":"string","description":"The user's preferred time display format used across the UI.","enum":["h:mm:ss A","HH:mm:ss"]},"showRelativeDateTime":{"type":"boolean","description":"Whether timestamps should be displayed as relative time (e.g., \"5 minutes ago\") instead of absolute date/time."},"colorTheme":{"type":"string","description":"UI theme preference.","enum":["system","light","dark"]},"scheduleShiftForFlowsCreatedAfter":{"type":"string","format":"date-time","description":"Threshold timestamp used by scheduling logic for certain flows (UI/system preference)."},"recentActivity":{"type":"object","description":"Recently accessed resources, typically keyed by environment."},"dashboard":{"type":"object","description":"Dashboard UI preferences (filters, tile order, view mode).","properties":{"view":{"type":"string","description":"Dashboard view mode.","enum":["tile","list"]},"filters":{"type":"object","description":"Dashboard filter settings."},"tilesOrder":{"type":"array","description":"Ordered list of dashboard tile ids.","items":{"type":"string"}}}},"pagination":{"type":"object","description":"Per-resource pagination settings (e.g., pageSize)."},"drawerOpened":{"type":"boolean","description":"When true, the main UI drawer/left nav is open."},"expand":{"type":["string","null"],"description":"UI section name last expanded/opened (UI state)."},"fbBottomDrawerHeight":{"type":"integer","description":"Flow Builder bottom drawer height in pixels (UI state)."},"enableAIChatbot":{"type":"boolean","description":"When true, AI chat features are enabled in the UI for this user."},"enableBeginnerGuide":{"type":"boolean","description":"When true, the beginner guide UI is enabled for this user."},"showIconView":{"type":"boolean","description":"When true, Flow Builder icon view is enabled for this user."},"allowPostmanCollectionUpload":{"type":"boolean","description":"When true, Postman collection upload UI is enabled for this user."},"helpContent":{"type":"object","description":"UI help content preferences/state."},"sampleIntegrationRequired":{"type":"boolean","description":"When true, the sample-integration walkthrough is still required for the user."},"hideGettingStarted":{"type":"boolean","description":"When true, the Getting Started banner is hidden."},"isLeftNavExpanded":{"type":"boolean","description":"When true, the left navigation sidebar is expanded."},"isNewGenFlowEnabled":{"type":"boolean","description":"When true, the next-generation Flow Builder UI is enabled for the user."},"useClickHouseForJobs":{"type":"boolean","description":"When true, the account uses ClickHouse-backed job queries."},"featureFlags":{"type":"object","description":"UI/feature flag overrides for the user (if present)."}}}},"responses":{"401-unauthorized":{"description":"Unauthorized. The request lacks a valid bearer token, or the provided token\nfailed to authenticate.\n\nNote: the 401 response is produced by the auth middleware **before** the\nrequest reaches the endpoint handler, so it does **not** follow the\nstandard `{errors: [...]}` envelope. Instead the body is a bare\n`{message: string}` object with no `code`, no `errors` array. Callers\nhandling 401s should key off the HTTP status and the `message` string,\nnot try to destructure an `errors[]`.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable description of the auth failure. Known values:\n- `\"Unauthorized\"` — no `Authorization` header on the request.\n- `\"Bearer Authentication Failed\"` — header present but token\n  is invalid, revoked, or expired."}},"required":["message"]}}}}}},"paths":{"/v1/preferences":{"get":{"summary":"Get current user preferences","operationId":"getPreferences","tags":["Profile"],"description":"Returns UI and account/environment preferences for the currently-authenticated user.\n\nExamples include:\n- date/time display formatting (`dateFormat`, `timeFormat`)\n- current environment selection (`environment`)\n- UI layout preferences (dashboard/pagination/drawer settings)","responses":{"200":{"description":"Preferences object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Preferences"}}}},"401":{"$ref":"#/components/responses/401-unauthorized"}}}}}}
```

## Update current user preferences

> Updates user preferences for the currently-authenticated user.\
> Only include fields you intend to change.

```json
{"openapi":"3.2.0","info":{"title":"Profile","version":"1.0.0"},"tags":[{"name":"Profile","description":"Read and update the currently-authenticated user's profile, including\ndisplay name, email, timezone, and notification preferences.\n\n## Preferences schema\n\n{% openapi-schemas spec=\"profile\" schemas=\"Preferences\" grouped=\"true\" %}"}],"servers":[{"url":"https://api.integrator.io","description":"Production (US / default region)"},{"url":"https://api.eu.integrator.io","description":"Production (EU region)"},{"url":"https://api.au.integrator.io","description":"Production (AU region)"},{"url":"https://api.ca.integrator.io","description":"Production (CA region)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Request":{"type":"object","description":"Fields that can be sent when updating the current user's preferences\nvia `PUT /v1/preferences`. Send a partial object with only the\nfields you want to change.","allOf":[{"$ref":"#/components/schemas/PreferencesBase"}]},"PreferencesBase":{"type":"object","description":"Writable preference fields shared by the request and response schemas.","properties":{"environment":{"type":"string","enum":["production","sandbox"],"description":"The selected environment context for the user."},"defaultAShareId":{"type":"string","description":"The selected account context for the user."},"defaultEnvId":{"type":"string","format":"objectId","description":"Default environment id to use when applicable."},"dateFormat":{"type":"string","description":"The user's preferred date display format used across the UI.\n\nChoose one of the supported formats.","enum":["MM/DD/YYYY","DD/MM/YYYY","DD-MMM-YYYY","DD.MM.YYYY","DD-MMMM-YYYY","DD MMMM, YYYY","YYYY/MM/DD","YYYY-MM-DD"]},"timeFormat":{"type":"string","description":"The user's preferred time display format used across the UI.","enum":["h:mm:ss A","HH:mm:ss"]},"showRelativeDateTime":{"type":"boolean","description":"Whether timestamps should be displayed as relative time (e.g., \"5 minutes ago\") instead of absolute date/time."},"colorTheme":{"type":"string","description":"UI theme preference.","enum":["system","light","dark"]},"scheduleShiftForFlowsCreatedAfter":{"type":"string","format":"date-time","description":"Threshold timestamp used by scheduling logic for certain flows (UI/system preference)."},"recentActivity":{"type":"object","description":"Recently accessed resources, typically keyed by environment."},"dashboard":{"type":"object","description":"Dashboard UI preferences (filters, tile order, view mode).","properties":{"view":{"type":"string","description":"Dashboard view mode.","enum":["tile","list"]},"filters":{"type":"object","description":"Dashboard filter settings."},"tilesOrder":{"type":"array","description":"Ordered list of dashboard tile ids.","items":{"type":"string"}}}},"pagination":{"type":"object","description":"Per-resource pagination settings (e.g., pageSize)."},"drawerOpened":{"type":"boolean","description":"When true, the main UI drawer/left nav is open."},"expand":{"type":["string","null"],"description":"UI section name last expanded/opened (UI state)."},"fbBottomDrawerHeight":{"type":"integer","description":"Flow Builder bottom drawer height in pixels (UI state)."},"enableAIChatbot":{"type":"boolean","description":"When true, AI chat features are enabled in the UI for this user."},"enableBeginnerGuide":{"type":"boolean","description":"When true, the beginner guide UI is enabled for this user."},"showIconView":{"type":"boolean","description":"When true, Flow Builder icon view is enabled for this user."},"allowPostmanCollectionUpload":{"type":"boolean","description":"When true, Postman collection upload UI is enabled for this user."},"helpContent":{"type":"object","description":"UI help content preferences/state."},"sampleIntegrationRequired":{"type":"boolean","description":"When true, the sample-integration walkthrough is still required for the user."},"hideGettingStarted":{"type":"boolean","description":"When true, the Getting Started banner is hidden."},"isLeftNavExpanded":{"type":"boolean","description":"When true, the left navigation sidebar is expanded."},"isNewGenFlowEnabled":{"type":"boolean","description":"When true, the next-generation Flow Builder UI is enabled for the user."},"useClickHouseForJobs":{"type":"boolean","description":"When true, the account uses ClickHouse-backed job queries."},"featureFlags":{"type":"object","description":"UI/feature flag overrides for the user (if present)."}}},"Preferences":{"type":"object","description":"Complete preferences object as returned by `GET /v1/preferences`.","allOf":[{"$ref":"#/components/schemas/PreferencesBase"},{"type":"object","properties":{"lastLoginAt":{"type":"string","format":"date-time","readOnly":true,"description":"Last login timestamp recorded for the user (if present)."},"showReactSneakPeekFromDate":{"type":"string","format":"date","readOnly":true,"description":"Legacy feature-rollout date marker (UI state)."},"showReactBetaFromDate":{"type":"string","format":"date","readOnly":true,"description":"Legacy feature-rollout date marker (UI state)."},"oldDefaultAShareId":{"type":"string","readOnly":true,"description":"Previous default account-share ID, retained after switching accounts."},"resourceDrawerPanelSizes":{"type":"object","readOnly":true,"description":"Persisted panel-size state for the resource drawer (UI layout).","properties":{"left":{"type":"number","description":"Persisted size of the resource drawer's left panel."},"right":{"type":"number","description":"Persisted size of the resource drawer's right panel."}}},"accounts":{"type":"object","readOnly":true,"description":"Per-account UI state keyed by account ID."}}}]},"Error":{"type":"object","description":"Standard error response envelope returned by integrator.io APIs.","properties":{"errors":{"type":"array","description":"List of errors that occurred while processing the request.","items":{"type":"object","properties":{"code":{"oneOf":[{"type":"string"},{"type":"integer"}],"description":"Machine-readable error code. Usually a string like\n`invalid_ref`, `missing_required_field`, or `unauthorized`;\nmay be an **integer** when the error mirrors an upstream HTTP\nstatus (e.g. `500`) — most commonly returned by connection-ping\nand adaptor-proxy responses."},"message":{"type":"string","description":"Human-readable description of the error."},"field":{"type":"string","description":"Optional pointer to the document field that caused the error.\nUsed by structural validation errors (`missing_required_field`,\n`invalid_ref`) to indicate which field is at fault\n(e.g. `_id`, `type`, `http.baseURI`)."},"source":{"type":"string","description":"Optional origin layer for the error — e.g. `application` when\nthe error came from the remote system the adaptor called,\n`connector` when the adaptor itself rejected the request."}},"required":["message"]}}},"required":["errors"]}},"responses":{"400-bad-request":{"description":"Bad request. The server could not understand the request because of malformed syntax or invalid parameters.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401-unauthorized":{"description":"Unauthorized. The request lacks a valid bearer token, or the provided token\nfailed to authenticate.\n\nNote: the 401 response is produced by the auth middleware **before** the\nrequest reaches the endpoint handler, so it does **not** follow the\nstandard `{errors: [...]}` envelope. Instead the body is a bare\n`{message: string}` object with no `code`, no `errors` array. Callers\nhandling 401s should key off the HTTP status and the `message` string,\nnot try to destructure an `errors[]`.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Human-readable description of the auth failure. Known values:\n- `\"Unauthorized\"` — no `Authorization` header on the request.\n- `\"Bearer Authentication Failed\"` — header present but token\n  is invalid, revoked, or expired."}},"required":["message"]}}}}}},"paths":{"/v1/preferences":{"put":{"summary":"Update current user preferences","operationId":"updatePreferences","tags":["Profile"],"description":"Updates user preferences for the currently-authenticated user.\nOnly include fields you intend to change.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request"}}}},"responses":{"200":{"description":"Updated preferences object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Preferences"}}}},"204":{"description":"Preferences updated (no body returned)."},"400":{"$ref":"#/components/responses/400-bad-request"},"401":{"$ref":"#/components/responses/401-unauthorized"}}}}}}
```
