# Profile

## 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.1.0","info":{"title":"Profile","version":"1.0.0"},"servers":[{"url":"https://api.integrator.io","description":"Production (US / default region)"},{"url":"https://api.eu.integrator.io","description":"Production (EU region)"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"schemas":{"Response":{"type":"object","description":"Complete preferences object as returned by the API.","allOf":[{"$ref":"#/components/schemas/Request"},{"type":"object","properties":{"lastLoginAt":{"type":"string","format":"date-time","readOnly":true,"description":"Last login timestamp recorded for the user (if present)."},"showReactSneakPeekFromDate":{"type":"string","readOnly":true,"description":"Feature rollout date marker used by the UI (if present)."},"showReactBetaFromDate":{"type":"string","readOnly":true,"description":"Feature rollout date marker used by the UI (if present)."}}}]},"Request":{"type":"object","description":"Fields that can be sent when updating the current user's preferences via `PUT /api/preferences`.\n\nAI guidance:\n- Send a partial object with only the fields you want to change.\n- Use this endpoint (not `/api/profile`) to change `dateFormat` and `timeFormat`.","properties":{"environment":{"type":"string","enum":["production"],"description":"The selected environment context for the user."},"defaultAShareId":{"type":"string","description":"The selected account context for the user.\n\nCommon values:\n- `own` for the user's own account\n- an AShare/account-share id when working in a shared account"},"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.\n\n- `h:mm:ss A` shows 12-hour time with AM/PM\n- `HH:mm:ss` shows 24-hour time","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.\n\n- `system`: follow the OS theme\n- `light`: force light theme\n- `dark`: force dark theme","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":"Whether the main UI drawer/left nav is open."},"expand":{"type":"string","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":"Whether AI chat features are enabled in the UI for this user."},"enableBeginnerGuide":{"type":"boolean","description":"Whether beginner guide UI is enabled for this user."},"showIconView":{"type":"boolean","description":"Whether Flow Builder icon view is enabled for this user."},"allowPostmanCollectionUpload":{"type":"boolean","description":"Whether Postman collection upload UI is enabled for this user."},"helpContent":{"type":"object","description":"UI help content preferences/state."},"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/Response"}}}},"401":{"$ref":"#/components/responses/401-unauthorized"}}}}}}
```

## Update current user preferences

> Updates user preferences for the currently-authenticated user.\
> \
> AI guidance:\
> \- Only include fields you intend to change.\
> \- Prefer updating \`dateFormat\` / \`timeFormat\` here (not in \`/api/profile\`).

```json
{"openapi":"3.1.0","info":{"title":"Profile","version":"1.0.0"},"servers":[{"url":"https://api.integrator.io","description":"Production (US / default region)"},{"url":"https://api.eu.integrator.io","description":"Production (EU 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 via `PUT /api/preferences`.\n\nAI guidance:\n- Send a partial object with only the fields you want to change.\n- Use this endpoint (not `/api/profile`) to change `dateFormat` and `timeFormat`.","properties":{"environment":{"type":"string","enum":["production"],"description":"The selected environment context for the user."},"defaultAShareId":{"type":"string","description":"The selected account context for the user.\n\nCommon values:\n- `own` for the user's own account\n- an AShare/account-share id when working in a shared account"},"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.\n\n- `h:mm:ss A` shows 12-hour time with AM/PM\n- `HH:mm:ss` shows 24-hour time","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.\n\n- `system`: follow the OS theme\n- `light`: force light theme\n- `dark`: force dark theme","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":"Whether the main UI drawer/left nav is open."},"expand":{"type":"string","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":"Whether AI chat features are enabled in the UI for this user."},"enableBeginnerGuide":{"type":"boolean","description":"Whether beginner guide UI is enabled for this user."},"showIconView":{"type":"boolean","description":"Whether Flow Builder icon view is enabled for this user."},"allowPostmanCollectionUpload":{"type":"boolean","description":"Whether Postman collection upload UI is enabled for this user."},"helpContent":{"type":"object","description":"UI help content preferences/state."},"featureFlags":{"type":"object","description":"UI/feature flag overrides for the user (if present)."}}},"Response":{"type":"object","description":"Complete preferences object as returned by the API.","allOf":[{"$ref":"#/components/schemas/Request"},{"type":"object","properties":{"lastLoginAt":{"type":"string","format":"date-time","readOnly":true,"description":"Last login timestamp recorded for the user (if present)."},"showReactSneakPeekFromDate":{"type":"string","readOnly":true,"description":"Feature rollout date marker used by the UI (if present)."},"showReactBetaFromDate":{"type":"string","readOnly":true,"description":"Feature rollout date marker used by the UI (if present)."}}}]},"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.\n\nAI guidance:\n- Only include fields you intend to change.\n- Prefer updating `dateFormat` / `timeFormat` here (not in `/api/profile`).","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Request"}}}},"responses":{"200":{"description":"Updated preferences object","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response"}}}},"204":{"description":"Preferences updated (no body returned)."},"400":{"$ref":"#/components/responses/400-bad-request"},"401":{"$ref":"#/components/responses/401-unauthorized"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.celigo.com/api/api-reference/profile.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
