Use this endpoint to securely register a project user to Upsolve and pass metadata relating to the user. This metadata payload will be used to secure data when the user accesses an Upsolve dashboard. Unlike registerTenant, this endpoint does not return a JWT token.
Identifier of the project organization the user belongs to. Accepts either the Upsolve-issued UUID or the project organization's externalId (set at /register-organization time).
Upsolve API key, generated under Account → Developer settings in the Upsolve Hub. Keys are user-scoped: pass organizationId alongside the key to select which org to act on.
Your Upsolve organization's UUID — the org that owns the API key and project. This is NOT a project organization: do not pass a value registered via /projects/register-organization, and do not pass an externalId (only projectOrganizationId accepts those). Omit it when using an org-bound API key — the org is read from the key and any value sent here is ignored. Required only for user-scoped API keys (created under Account → Developer settings) and for the Supabase JWT path, where the org is ambiguous and membership is verified against it.
The environment the user belongs to: production (the default) or one the project created, such as staging. It decides which workspace versions and which databases the user's queries are served from, from then on. The project organization must be in the same environment.
Example:
"production"
Response
POST /v1/api/projects/register-user Positive response
{ "message": "User Google Inc registered.", "userId": "123e4567-e89b-12d3-a456-426614174000" }
Was this page helpful?
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Upsolve AI","colors":{"primary":"#F13470","light":"#F13470","dark":"#E05883"},"favicon":"https://mintcdn.com/upsolve/uJJfNnm4qkd0qTuD/favicon.svg?fit=max\u0026auto=format\u0026n=uJJfNnm4qkd0qTuD\u0026q=85\u0026s=57743e080022ecdee9a3d16dc270ee80","logo":{"light":"https://mintcdn.com/upsolve/2iK7L-lfLcwqCcz_/logo/light_logo.svg?fit=max\u0026auto=format\u0026n=2iK7L-lfLcwqCcz_\u0026q=85\u0026s=e2c715b3dad371be16e683c74655b2a8","dark":"https://mintcdn.com/upsolve/2iK7L-lfLcwqCcz_/logo/dark_logo.svg?fit=max\u0026auto=format\u0026n=2iK7L-lfLcwqCcz_\u0026q=85\u0026s=e5b53eb0a41de94b806015890a6b4bdc","href":"https://upsolve.ai/?utm_source=docs\u0026utm_medium=logo\u0026utm_campaign=docs"},"api":{"openapi":["api-reference/upsolve.documentation.yaml"],"mdx":{"server":"https://api.upsolve.ai","auth":{"method":"bearer","name":null}}},"navbar":{"links":[{"label":"Support","href":"mailto:support@upsolve.ai"}],"primary":{"type":"button","label":"Start free","href":"https://ai-hub.upsolve.ai/?utm_source=docs\u0026utm_medium=navbar\u0026utm_campaign=docs\u0026utm_content=start_free"}},"seo":{"metatags":{"slack-app-id":"A0C9DAKJQ49"},"indexing":"navigable"},"footer":{"socials":{"website":"https://upsolve.ai/?utm_source=docs\u0026utm_medium=footer\u0026utm_campaign=docs","linkedin":"https://www.linkedin.com/company/upsolveai","hacker-news":"https://www.ycombinator.com/companies/upsolve-ai"}},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Impact Studies","href":"https://upsolve.ai/impact-study?utm_source=docs\u0026utm_medium=sidebar\u0026utm_campaign=docs","icon":"newspaper"},{"anchor":"Security Trust Center","href":"https://trust.upsolve.ai/?utm_source=docs\u0026utm_medium=sidebar\u0026utm_campaign=docs","icon":"shield-halved"},{"anchor":"Community","href":"https://upsolve-ai-community.slack.com/join/shared_invite/zt-2x9oospxx-vv2uDP_20IafkekwCOMi4A#/shared-invite/email","icon":"slack"},{"anchor":"Blog","href":"https://upsolve.ai/blog?utm_source=docs\u0026utm_medium=sidebar\u0026utm_campaign=docs","icon":"newspaper"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"upsolve","hasAudioNarration":false,"actualSubdomain":"upsolve","customDomains":["docs.upsolve.ai"],"gitSource":{"type":"github","owner":"upsolve-labs","repo":"upsolve-core","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aedc5801fad4dc685c6c029","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"API Reference","count":148},{"language":"default","tag":"API Documentation","count":147},{"language":"default","tag":"Integrations","count":116},{"language":"default","tag":"Documentation","count":48},{"language":"default","tag":"SQL Reference","count":48},{"language":"default","tag":"Canvases","count":29},{"language":"default","tag":"Workspace draft","count":29},{"language":"default","tag":"Functions","count":23},{"language":"default","tag":"Analytics Layer","count":22},{"language":"default","tag":"Connections \u0026 environments","count":19}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/endpoint/register-project-user","slug":"/api-reference/endpoint/register-project-user","pageMetadata":{"title":"Register Project User","openapi":"post /v1/api/projects/register-user","description":"Use this endpoint to securely register a project user to Upsolve and pass metadata relating to the user. This metadata payload will be used to secure data when the user accesses an Upsolve dashboard. Unlike registerTenant, this endpoint does not return a JWT token.","href":"/api-reference/endpoint/register-project-user"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Use this endpoint to securely register a project user to Upsolve and pass metadata relating to the user. This metadata payload will be used to secure data when the user accesses an Upsolve dashboard. Unlike registerTenant, this endpoint does not return a JWT token.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Register Project User","openapi":"post /v1/api/projects/register-user","description":"Use this endpoint to securely register a project user to Upsolve and pass metadata relating to the user. This metadata payload will be used to secure data when the user accesses an Upsolve dashboard. Unlike registerTenant, this endpoint does not return a JWT token.","href":"/api-reference/endpoint/register-project-user"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"PostV1ApiProjectsRegisterUser","summary":"Register project user to Upsolve","description":"Use this endpoint to securely register a project user to Upsolve and pass metadata relating to the user. This metadata payload will be used to secure data when the user accesses an Upsolve dashboard. Unlike registerTenant, this endpoint does not return a JWT token.","requestBody":"60409715-f18c-4905-b067-c43311b36b49","security":["ab803072-5384-45a6-94c7-41ec3662ba6d"],"responses":{"200":"9351927f-ee26-4c7b-9231-80a499b2c17b","400":"2208c3bf-8fc3-4054-93c3-c6a0bd2b8dbd"},"method":"post","type":"path","servers":["90d51626-cc93-457c-a5a2-bf7c26b0ee4a"],"path":"/v1/api/projects/register-user","baseUrlOptions":["https://api.upsolve.ai"],"title":"Register project user to Upsolve","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"description":"POST /v1/api/projects/register-user Request body","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Display name for this user. This will appear in the Upsolve Hub.","examples":["Google Inc"],"isRequired":true,"uniqueKey":"name","typeLabel":"string"},"properties":{"type":"object","propertyNames":{"type":"string","description":"Property key"},"additionalProperties":{"description":"Property value","uniqueKey":"properties.additionalProperties","typeLabel":"any"},"description":"Properties of a user","isRequired":true,"uniqueKey":"properties","typeLabel":"object"},"projectId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","description":"The ID of the project","examples":["123e4567-e89b-12d3-a456-426614174000"],"isRequired":true,"uniqueKey":"projectId","typeLabel":"string\u003cuuid>"},"userRoleId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","description":"The ID of the user role","examples":["123e4567-e89b-12d3-a456-426614174000"],"isRequired":true,"uniqueKey":"userRoleId","typeLabel":"string\u003cuuid>"},"projectOrganizationId":{"type":"string","minLength":1,"description":"Identifier of the project organization the user belongs to. Accepts either the Upsolve-issued UUID or the project organization's `externalId` (set at /register-organization time).","examples":["123e4567-e89b-12d3-a456-426614174000"],"isRequired":true,"uniqueKey":"projectOrganizationId","typeLabel":"string"},"apiKey":{"type":"string","minLength":1,"description":"Upsolve API key, generated under Account → Developer settings in the Upsolve Hub. Keys are user-scoped: pass organizationId alongside the key to select which org to act on.","examples":["up_embed_************"],"uniqueKey":"apiKey","typeLabel":"string"},"organizationId":{"description":"Your Upsolve organization's UUID — the org that owns the API key and project. This is NOT a project organization: do not pass a value registered via /projects/register-organization, and do not pass an `externalId` (only `projectOrganizationId` accepts those). Omit it when using an org-bound API key — the org is read from the key and any value sent here is ignored. Required only for user-scoped API keys (created under Account → Developer settings) and for the Supabase JWT path, where the org is ambiguous and membership is verified against it.","examples":["123e4567-e89b-12d3-a456-426614174000"],"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","uniqueKey":"organizationId","typeLabel":"string\u003cuuid>"},"userId":{"description":"Optional ID for the project user. If provided, this value is used as the project_users.id; otherwise the database generates one.","examples":["123e4567-e89b-12d3-a456-426614174000"],"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","uniqueKey":"userId","typeLabel":"string\u003cuuid>"},"environment":{"description":"The environment the user belongs to: `production` (the default) or one the project created, such as `staging`. It decides which workspace versions and which databases the user's queries are served from, from then on. The project organization must be in the same environment.","examples":["production"],"type":"string","uniqueKey":"environment","typeLabel":"string"}},"required":["name","properties","projectId","userRoleId","projectOrganizationId"],"uniqueKey":"","typeLabel":"object"},"examples":{"example1":{"title":"example1","value":{"name":"Google Inc","properties":{"company_id":"company-google","company_class":"tech"},"projectId":"123e4567-e89b-12d3-a456-426614174000","userRoleId":"123e4567-e89b-12d3-a456-426614174000","projectOrganizationId":"123e4567-e89b-12d3-a456-426614174000","apiKey":"up_embed_************","organizationId":"123e4567-e89b-12d3-a456-426614174000","userId":"123e4567-e89b-12d3-a456-426614174000","environment":"production"}}},"exampleType":"examples"}},"required":true,"exampleType":"examples"},"responses":{"9351927f-ee26-4c7b-9231-80a499b2c17b":{"description":"POST /v1/api/projects/register-user Positive response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","const":"success","isRequired":true,"uniqueKey":"status","typeLabel":"string"},"data":{"type":"object","properties":{"message":{"type":"string","description":"Result of the API returned as a message.","examples":["User Google Inc registered."],"isRequired":true,"uniqueKey":"data.message","typeLabel":"string"},"userId":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$","description":"The ID of the registered user","examples":["123e4567-e89b-12d3-a456-426614174000"],"isRequired":true,"uniqueKey":"data.userId","typeLabel":"string\u003cuuid>"}},"required":["message","userId"],"additionalProperties":false,"examples":[{"message":"User Google Inc registered.","userId":"123e4567-e89b-12d3-a456-426614174000"}],"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["status","data"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"success","data":{"message":"User Google Inc registered.","userId":"123e4567-e89b-12d3-a456-426614174000"}}}},"exampleType":"generated"}},"exampleType":"generated"},"2208c3bf-8fc3-4054-93c3-c6a0bd2b8dbd":{"description":"POST /v1/api/projects/register-user Negative response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","const":"error","isRequired":true,"uniqueKey":"status","typeLabel":"string"},"error":{"type":"object","properties":{"message":{"type":"string","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"code":{"type":"string","uniqueKey":"error.code","typeLabel":"string"},"details":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"oneOf":[{}],"uniqueKey":"error.details.additionalProperties","typeLabel":"any"},"uniqueKey":"error.details","typeLabel":"object"}},"required":["message"],"additionalProperties":false,"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["status","error"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"error","error":{"message":"\u003cstring>","code":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"ab803072-5384-45a6-94c7-41ec3662ba6d":{"APIKEY_1":{"type":"apiKey","in":"query","name":"apiKey","x-in-actual":"body","description":"apiKey MUST be supplied within the request body instead of query","scopes":[],"schemeName":"APIKEY_1"}}},"servers":{"90d51626-cc93-457c-a5a2-bf7c26b0ee4a":{"url":"https://api.upsolve.ai"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"query","name":"apiKey","x-in-actual":"body","description":"apiKey MUST be supplied within the request body instead of query","scopes":[],"schemeName":"APIKEY_1"},"schema":{"title":"apiKey","type":"string","description":"apiKey MUST be supplied within the request body instead of query","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"APIKEY_1","name":"apiKey"}],"title":"APIKEY_1"}]},"originalFileLocation":"api-reference/upsolve.documentation.yaml"},"subdomain":"upsolve","siteName":"Upsolve AI","title":"Register Project User - Upsolve AI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-05-29T13:49:52.995Z","originalFileLocation":"api-reference/endpoint/register-project-user.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Use this endpoint to securely register a project user to Upsolve and pass metadata relating to the user. This metadata payload will be used to secure data when the user accesses an Upsolve dashboard. Unlike registerTenant, this endpoint does not return a JWT token.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Upsolve AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/upsolve/97yzI2eDoRqG7EuN/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/upsolve/97yzI2eDoRqG7EuN/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/upsolve/97yzI2eDoRqG7EuN/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/upsolve/97yzI2eDoRqG7EuN/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/upsolve/97yzI2eDoRqG7EuN/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/upsolve/97yzI2eDoRqG7EuN/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/upsolve/97yzI2eDoRqG7EuN/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/upsolve/97yzI2eDoRqG7EuN/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/upsolve/97yzI2eDoRqG7EuN/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Register Project User - Upsolve AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Use this endpoint to securely register a project user to Upsolve and pass metadata relating to the user. This metadata payload will be used to secure data when the user accesses an Upsolve dashboard. Unlike registerTenant, this endpoint does not return a JWT token.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Upsolve AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.upsolve.ai/api-reference/endpoint/register-project-user\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://upsolve.mintlify.site/_mintlify/api/og/v2?division=Embedding\u0026amp;title=Register+Project+User\u0026amp;description=Use+this+endpoint+to+securely+register+a+project+user+to+Upsolve+and+pass+metadata+relating+to+the+user.+This+metadata+payload+will+be+used+to+secure+data+when+\u0026amp;theme=ee308efe25f936e82bf32ff5\u0026amp;signature=682fa0d43fe4be5ccb25440a9240291fcaafaa671fed89590b89524da0a10cb2\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Register Project User - Upsolve AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Use this endpoint to securely register a project user to Upsolve and pass metadata relating to the user. This metadata payload will be used to secure data when the user accesses an Upsolve dashboard. Unlike registerTenant, this endpoint does not return a JWT token.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://upsolve.mintlify.site/_mintlify/api/og/v2?division=Embedding\u0026amp;title=Register+Project+User\u0026amp;description=Use+this+endpoint+to+securely+register+a+project+user+to+Upsolve+and+pass+metadata+relating+to+the+user.+This+metadata+payload+will+be+used+to+secure+data+when+\u0026amp;theme=ee308efe25f936e82bf32ff5\u0026amp;signature=682fa0d43fe4be5ccb25440a9240291fcaafaa671fed89590b89524da0a10cb2\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/upsolve/97yzI2eDoRqG7EuN/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Upsolve AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#F13470\">\u003cmeta data-mint-head name=\"slack-app-id\" content=\"A0C9DAKJQ49\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.upsolve.ai/api-reference/endpoint/register-project-user\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoint/register-project-user.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.upsolve.ai/#organization\",\"name\":\"Upsolve AI\",\"url\":\"https://docs.upsolve.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/upsolve/2iK7L-lfLcwqCcz_/logo/light_logo.svg?fit=max\u0026auto=format\u0026n=2iK7L-lfLcwqCcz_\u0026q=85\u0026s=e2c715b3dad371be16e683c74655b2a8\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.upsolve.ai#website\",\"name\":\"Upsolve AI\",\"url\":\"https://docs.upsolve.ai\",\"publisher\":{\"@id\":\"https://docs.upsolve.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.upsolve.ai/api-reference/endpoint/register-project-user#webpage\",\"url\":\"https://docs.upsolve.ai/api-reference/endpoint/register-project-user\",\"name\":\"Register Project User\",\"description\":\"Use this endpoint to securely register a project user to Upsolve and pass metadata relating to the user. This metadata payload will be used to secure data when the user accesses an Upsolve dashboard. Unlike registerTenant, this endpoint does not return a JWT token.\",\"dateModified\":\"2026-05-29T13:49:52.995Z\",\"isPartOf\":{\"@id\":\"https://docs.upsolve.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.upsolve.ai/api-reference/endpoint/register-project-user#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.upsolve.ai/api-reference/endpoint/register-project-user#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Documentation\",\"item\":\"https://docs.upsolve.ai/api-reference/endpoint/create-embed-token\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Embedding\",\"item\":\"https://docs.upsolve.ai/api-reference/endpoint/create-embed-token\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Register Project User\",\"item\":\"https://docs.upsolve.ai/api-reference/endpoint/register-project-user\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.upsolve.ai/api-reference/endpoint/register-project-user#apireference\",\"headline\":\"Register Project User\",\"name\":\"Register Project User\",\"description\":\"Use this endpoint to securely register a project user to Upsolve and pass metadata relating to the user. This metadata payload will be used to secure data when the user accesses an Upsolve dashboard. Unlike registerTenant, this endpoint does not return a JWT token.\",\"url\":\"https://docs.upsolve.ai/api-reference/endpoint/register-project-user\",\"mainEntityOfPage\":{\"@id\":\"https://docs.upsolve.ai/api-reference/endpoint/register-project-user#webpage\"},\"dateModified\":\"2026-05-29T13:49:52.995Z\",\"publisher\":{\"@id\":\"https://docs.upsolve.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.upsolve.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Upsolve AI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Upsolve AI","nav":{"global":{"anchors":[{"anchor":"Impact Studies","href":"https://upsolve.ai/impact-study?utm_source=docs\u0026utm_medium=sidebar\u0026utm_campaign=docs","icon":"newspaper"},{"anchor":"Security Trust Center","href":"https://trust.upsolve.ai/?utm_source=docs\u0026utm_medium=sidebar\u0026utm_campaign=docs","icon":"shield-halved"},{"anchor":"Community","href":"https://upsolve-ai-community.slack.com/join/shared_invite/zt-2x9oospxx-vv2uDP_20IafkekwCOMi4A#/shared-invite/email","icon":"slack"},{"anchor":"Blog","href":"https://upsolve.ai/blog?utm_source=docs\u0026utm_medium=sidebar\u0026utm_campaign=docs","icon":"newspaper"}]},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"Analytics Layer","pages":[{"title":"Analytics Layer","href":"/embedded-bi/introduction"}]},{"tab":"Integrations","pages":[{"title":"Integrations","href":"/integrations/introduction"}]},{"tab":"Chart Configurations","pages":[{"title":"Chart Configurations","href":"/content/charts/area-line-chart"}]},{"tab":"API Reference","groups":[{"group":"Applications (legacy)","pages":[{"title":"Migrate from v1 to v2","icon":"arrow-right-arrow-left","href":"/api-reference/v2/migrate-from-v1"}]},{"group":"API Documentation","pages":[{"group":"Embedding","pages":[{"title":"Get Embed Token","openapi":"post /v1/api/projects/embed-token","href":"/api-reference/endpoint/create-embed-token"},{"title":"List Project User Roles","openapi":"get /v1/api/projects/{projectId}/user-roles","href":"/api-reference/endpoint/list-project-user-roles"},{"title":"Create Project User Role","openapi":"post /v1/api/projects/{projectId}/user-roles","href":"/api-reference/endpoint/create-project-user-role"},{"title":"Get Project User Role","openapi":"get /v1/api/projects/{projectId}/user-roles/{projectUserRoleId}","href":"/api-reference/endpoint/get-project-user-role"},{"title":"Update Project User Role","openapi":"put /v1/api/projects/{projectId}/user-roles/{projectUserRoleId}","href":"/api-reference/endpoint/update-project-user-role"},{"title":"Delete Project User Role","openapi":"delete /v1/api/projects/{projectId}/user-roles/{projectUserRoleId}","href":"/api-reference/endpoint/delete-project-user-role"},{"title":"Update Project User","openapi":"put /v1/api/projects/{projectId}/users/{projectUserId}","href":"/api-reference/endpoint/update-project-user"},{"title":"Register Project Organization","openapi":"post /v1/api/projects/register-organization","description":"Use this endpoint to create a new organization. This allows you to organize users and data within a project by organization.","href":"/api-reference/endpoint/register-project-organization"},{"title":"Register Project User","openapi":"post /v1/api/projects/register-user","href":"/api-reference/endpoint/register-project-user"},{"title":"Get Project User Token","openapi":"post /v1/api/projects/user-token","description":"Use this endpoint to get a JWT token for a previously registered project user. Requires userId and apiKey. The token will be generated based on the user's stored data.","href":"/api-reference/endpoint/get-project-user-token"},{"title":"Get Project Chat Usage","openapi":"get /v2/api/projects/{projectId}/chat-usage","href":"/api-reference/endpoint/get-project-chat-usage"}]},{"group":"Workspaces","pages":[{"title":"List Workspaces","openapi":"get /v2/api/projects/{projectId}/workspaces","href":"/api-reference/endpoint/list-workspaces"},{"title":"Create Workspace","openapi":"post /v2/api/projects/{projectId}/workspaces","href":"/api-reference/endpoint/create-workspace"},{"title":"Get Workspace","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}","href":"/api-reference/endpoint/get-workspace"},{"title":"Look Up Workspace","openapi":"get /v2/api/workspaces/by-id/{workspaceId}","href":"/api-reference/endpoint/lookup-workspace"},{"title":"Update Workspace","openapi":"patch /v2/api/projects/{projectId}/workspaces/{workspaceId}","href":"/api-reference/endpoint/update-workspace"},{"title":"Delete Workspace","openapi":"delete /v2/api/projects/{projectId}/workspaces/{workspaceId}","href":"/api-reference/endpoint/delete-workspace"},{"title":"Duplicate Workspace","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/duplicate","href":"/api-reference/endpoint/duplicate-workspace"},{"title":"Validate Workspace","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/validate","href":"/api-reference/endpoint/validate-workspace"},{"title":"Change Workspace Connection","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/change-connection","href":"/api-reference/endpoint/change-workspace-connection"},{"title":"Get Workspace Affected Entities","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/affected-entities","href":"/api-reference/endpoint/get-workspace-affected-entities"},{"title":"Chat with a Workspace","href":"/api-reference/endpoint/chat-with-agent"}]},{"group":"Workspace draft","pages":[{"title":"Get Draft","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft","href":"/api-reference/endpoint/get-draft"},{"title":"Update Draft","openapi":"patch /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft","href":"/api-reference/endpoint/update-draft"},{"title":"Discard Draft","openapi":"delete /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft","href":"/api-reference/endpoint/discard-draft"},{"title":"Get Draft Diff","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/diff","href":"/api-reference/endpoint/get-draft-diff"},{"title":"Check Draft Compatibility","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/compatibility","href":"/api-reference/endpoint/check-draft-compatibility"},{"title":"Get Draft Default View","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/default-view","href":"/api-reference/endpoint/get-draft-default-view"},{"title":"Set Draft Default View","openapi":"put /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/default-view","href":"/api-reference/endpoint/set-draft-default-view"},{"title":"Get Draft Prompts","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/prompts","href":"/api-reference/endpoint/get-draft-prompts"},{"title":"Update Draft Prompts","openapi":"patch /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/prompts","href":"/api-reference/endpoint/update-draft-prompts"},{"title":"List Draft Skills","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/skills","href":"/api-reference/endpoint/list-draft-skills"},{"title":"Create Draft Skill","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/skills","href":"/api-reference/endpoint/create-draft-skill"},{"title":"Update Draft Skill","openapi":"patch /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/skills/{skillId}","href":"/api-reference/endpoint/update-draft-skill"},{"title":"Delete Draft Skill","openapi":"delete /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/skills/{skillId}","href":"/api-reference/endpoint/delete-draft-skill"},{"title":"List Draft Knowledge Base","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/knowledge-base","href":"/api-reference/endpoint/list-draft-knowledge-base"},{"title":"Create Draft Knowledge Base File","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/knowledge-base","href":"/api-reference/endpoint/create-draft-knowledge-base-file"},{"title":"Get Draft Knowledge Base File","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/knowledge-base/{slug}","href":"/api-reference/endpoint/get-draft-knowledge-base-file"},{"title":"Update Draft Knowledge Base File","openapi":"patch /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/knowledge-base/{slug}","href":"/api-reference/endpoint/update-draft-knowledge-base-file"},{"title":"Delete Draft Knowledge Base File","openapi":"delete /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/knowledge-base/{slug}","href":"/api-reference/endpoint/delete-draft-knowledge-base-file"},{"title":"List Draft Knowledge Base Tags","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/knowledge-base/tags","href":"/api-reference/endpoint/list-draft-knowledge-base-tags"},{"title":"Create Draft Knowledge Base Tag","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/knowledge-base/tags","href":"/api-reference/endpoint/create-draft-knowledge-base-tag"},{"title":"Delete Draft Knowledge Base Tag","openapi":"delete /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/knowledge-base/tags/{tagId}","href":"/api-reference/endpoint/delete-draft-knowledge-base-tag"},{"title":"List Draft Metrics","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/metrics","href":"/api-reference/endpoint/list-draft-metrics"},{"title":"Create Draft Metric","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/metrics","href":"/api-reference/endpoint/create-draft-metric"},{"title":"Get Draft Metric","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/metrics/{slug}","href":"/api-reference/endpoint/get-draft-metric"},{"title":"Update Draft Metric","openapi":"patch /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/metrics/{slug}","href":"/api-reference/endpoint/update-draft-metric"},{"title":"Delete Draft Metric","openapi":"delete /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/metrics/{slug}","href":"/api-reference/endpoint/delete-draft-metric"},{"title":"Create Draft RLS Rule","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/rls","href":"/api-reference/endpoint/create-draft-rls-rule"},{"title":"Update Draft RLS Rule","openapi":"patch /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/rls/{ruleId}","href":"/api-reference/endpoint/update-draft-rls-rule"},{"title":"Delete Draft RLS Rule","openapi":"delete /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/rls/{ruleId}","href":"/api-reference/endpoint/delete-draft-rls-rule"}]},{"group":"Versions \u0026 deployments","pages":[{"title":"Publish Workspace","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/publish","href":"/api-reference/endpoint/publish-workspace"},{"title":"List Versions","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/versions","href":"/api-reference/endpoint/list-versions"},{"title":"Get Version","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/versions/{version}","href":"/api-reference/endpoint/get-version"},{"title":"Get Version Publish Status","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/versions/{version}/publish-status","href":"/api-reference/endpoint/get-version-publish-status"},{"title":"Retry Version Publish","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/versions/{version}/publish/retry","href":"/api-reference/endpoint/retry-version-publish"},{"title":"Promote Version","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/versions/{version}/promote","href":"/api-reference/endpoint/promote-version"},{"title":"Restore Version","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/versions/{version}/restore","href":"/api-reference/endpoint/restore-version"},{"title":"Preview Version Restore","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/versions/{version}/restore-preview","href":"/api-reference/endpoint/preview-version-restore"},{"title":"List Version Knowledge Base","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/versions/{version}/knowledge-base","href":"/api-reference/endpoint/list-version-knowledge-base"},{"title":"Get Version Knowledge Base File","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/versions/{version}/knowledge-base/{slug}","href":"/api-reference/endpoint/get-version-knowledge-base-file"},{"title":"List Version Metrics","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/versions/{version}/metrics","href":"/api-reference/endpoint/list-version-metrics"},{"title":"Get Version Metric","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/versions/{version}/metrics/{slug}","href":"/api-reference/endpoint/get-version-metric"},{"title":"List Deployments","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/deployments","href":"/api-reference/endpoint/list-deployments"},{"title":"Get Deployment","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/deployments/{deploymentId}","href":"/api-reference/endpoint/get-deployment"},{"title":"Deploy To Environment","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/environments/{environment}/deployments","href":"/api-reference/endpoint/deploy-to-environment"}]},{"group":"Test cases \u0026 runs","pages":[{"title":"List Test Cases","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/test-cases","href":"/api-reference/endpoint/list-test-cases"},{"title":"Get Test Case","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/test-cases/{caseId}","href":"/api-reference/endpoint/get-test-case"},{"title":"Create Test Case","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/test-cases","href":"/api-reference/endpoint/create-test-case"},{"title":"Replace Test Case","openapi":"put /v2/api/projects/{projectId}/workspaces/{workspaceId}/test-cases","href":"/api-reference/endpoint/replace-test-case"},{"title":"Delete Test Case","openapi":"delete /v2/api/projects/{projectId}/workspaces/{workspaceId}/test-cases","href":"/api-reference/endpoint/delete-test-case"},{"title":"List Draft Test Cases","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/test-cases","href":"/api-reference/endpoint/list-draft-test-cases"},{"title":"Attach Draft Test Case","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/test-cases","href":"/api-reference/endpoint/attach-draft-test-case"},{"title":"Detach Draft Test Case","openapi":"delete /v2/api/projects/{projectId}/workspaces/{workspaceId}/draft/test-cases/{assetId}","href":"/api-reference/endpoint/detach-draft-test-case"},{"title":"List Test Runs","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/test-runs","href":"/api-reference/endpoint/list-test-runs"},{"title":"Get Test Run","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/test-runs/{jobId}","href":"/api-reference/endpoint/get-test-run"},{"title":"Start Test Run","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/test-runs","href":"/api-reference/endpoint/start-test-run"},{"title":"Cancel Test Run","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/test-runs/{jobId}/cancel","href":"/api-reference/endpoint/cancel-test-run"}]},{"group":"Canvases","pages":[{"title":"List Canvases","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases","href":"/api-reference/endpoint/list-canvases"},{"title":"Create Canvas","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases","href":"/api-reference/endpoint/create-canvas"},{"title":"Rename Canvas","openapi":"patch /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}","href":"/api-reference/endpoint/rename-canvas"},{"title":"Delete Canvas","openapi":"delete /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}","href":"/api-reference/endpoint/delete-canvas"},{"title":"Fork Canvas","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/fork","href":"/api-reference/endpoint/fork-canvas"},{"title":"Get Canvas Design","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/design","href":"/api-reference/endpoint/get-canvas-design"},{"title":"Edit Canvas Design","openapi":"patch /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/design","href":"/api-reference/endpoint/edit-canvas-design"},{"title":"List Canvas Filterable Fields","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/filterable-fields","href":"/api-reference/endpoint/list-canvas-filterable-fields"},{"title":"List Canvas Filters","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/filters","href":"/api-reference/endpoint/list-canvas-filters"},{"title":"Add Canvas Filter","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/filters","href":"/api-reference/endpoint/add-canvas-filter"},{"title":"Update Canvas Filter","openapi":"patch /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/filters/{filterId}","href":"/api-reference/endpoint/update-canvas-filter"},{"title":"Remove Canvas Filter","openapi":"delete /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/filters/{filterId}","href":"/api-reference/endpoint/remove-canvas-filter"},{"title":"List Canvas Filter Values","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/filters/values","href":"/api-reference/endpoint/list-canvas-filter-values"},{"title":"Get Canvas Items","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/items","href":"/api-reference/endpoint/get-canvas-items"},{"title":"Add Canvas Item","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/items","href":"/api-reference/endpoint/add-canvas-item"},{"title":"Replace Canvas Items","openapi":"put /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/items","href":"/api-reference/endpoint/replace-canvas-items"},{"title":"Move Canvas Item","openapi":"patch /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/items/{itemId}","href":"/api-reference/endpoint/move-canvas-item"},{"title":"Remove Canvas Item","openapi":"delete /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/items/{itemId}","href":"/api-reference/endpoint/remove-canvas-item"},{"title":"Set Canvas Item Chart","openapi":"put /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/items/{itemId}/chart","href":"/api-reference/endpoint/set-canvas-item-chart"},{"title":"Run Canvas Item","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/items/{itemId}/run","href":"/api-reference/endpoint/run-canvas-item"},{"title":"Get Canvas Link","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/link","href":"/api-reference/endpoint/get-canvas-link"},{"title":"Create Canvas Link","openapi":"put /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/link","href":"/api-reference/endpoint/create-canvas-link"},{"title":"Delete Canvas Link","openapi":"delete /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/link","href":"/api-reference/endpoint/delete-canvas-link"},{"title":"Get Canvas Share","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/share","href":"/api-reference/endpoint/get-canvas-share"},{"title":"Update Canvas Share","openapi":"put /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/share","href":"/api-reference/endpoint/update-canvas-share"},{"title":"List Canvas Share People","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/share/people","href":"/api-reference/endpoint/list-canvas-share-people"},{"title":"List Canvas Versions","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/versions","href":"/api-reference/endpoint/list-canvas-versions"},{"title":"Save Canvas Version","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/versions","href":"/api-reference/endpoint/save-canvas-version"},{"title":"Restore Canvas Version","openapi":"post /v2/api/projects/{projectId}/workspaces/{workspaceId}/canvases/{canvasId}/versions/{version}/restore","href":"/api-reference/endpoint/restore-canvas-version"}]},{"group":"Rules","pages":[{"title":"List Rules","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/rules","href":"/api-reference/endpoint/list-rules"},{"title":"List Rule Runs","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/rule-runs","href":"/api-reference/endpoint/list-rule-runs"},{"title":"Get Rule Settings","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/rule-settings","href":"/api-reference/endpoint/get-rule-settings"},{"title":"Update Rule Settings","openapi":"put /v2/api/projects/{projectId}/workspaces/{workspaceId}/rule-settings","href":"/api-reference/endpoint/update-rule-settings"}]},{"group":"Projects \u0026 users","pages":[{"title":"List Projects","openapi":"get /v1/api/projects","href":"/api-reference/endpoint/list-projects"},{"title":"Get Project","openapi":"get /v1/api/projects/{projectId}","href":"/api-reference/endpoint/get-project"},{"title":"Create Project","openapi":"post /v1/api/projects","href":"/api-reference/endpoint/create-project"},{"title":"Update Project","openapi":"put /v1/api/projects/{projectId}","href":"/api-reference/endpoint/update-project"},{"title":"Delete Project","openapi":"delete /v1/api/projects/{projectId}","href":"/api-reference/endpoint/delete-project"},{"title":"List Project Organizations","openapi":"get /v1/api/projects/{projectId}/organizations","href":"/api-reference/endpoint/list-project-organizations"},{"title":"Get Project Organization","openapi":"get /v1/api/projects/{projectId}/organizations/{projectOrganizationId}","href":"/api-reference/endpoint/get-project-organization"},{"title":"Create Project Organization","openapi":"post /v1/api/projects/{projectId}/organizations","href":"/api-reference/endpoint/create-project-organization"},{"title":"Update Project Organization","openapi":"put /v1/api/projects/{projectId}/organizations/{projectOrganizationId}","href":"/api-reference/endpoint/update-project-organization"},{"title":"Delete Project Organization","openapi":"delete /v1/api/projects/{projectId}/organizations/{projectOrganizationId}","href":"/api-reference/endpoint/delete-project-organization"},{"title":"Move Project Organization Environment","openapi":"post /v1/api/projects/{projectId}/organizations/{projectOrganizationId}/environment","href":"/api-reference/endpoint/move-project-organization-environment"},{"title":"List Project Users","openapi":"get /v1/api/projects/{projectId}/users","href":"/api-reference/endpoint/list-project-users"},{"title":"Get Project User","openapi":"get /v1/api/projects/{projectId}/users/{projectUserId}","href":"/api-reference/endpoint/get-project-user"},{"title":"Delete Project User","openapi":"delete /v1/api/projects/{projectId}/users/{projectUserId}","href":"/api-reference/endpoint/delete-project-user"},{"title":"Move Project User Environment","openapi":"post /v1/api/projects/{projectId}/users/{projectUserId}/environment","href":"/api-reference/endpoint/move-project-user-environment"}]},{"group":"Connections \u0026 environments","pages":[{"title":"Create Connection","openapi":"post /v1/api/connection/create-connection","href":"/api-reference/endpoint/create-connection"},{"title":"Get Connections","openapi":"get /v1/api/connection","href":"/api-reference/endpoint/get-connections"},{"title":"Get Connection","openapi":"get /v1/api/connection/{connectionId}","href":"/api-reference/endpoint/get-connection"},{"title":"Update Connection","openapi":"patch /v1/api/connection","href":"/api-reference/endpoint/update-connection"},{"title":"Delete Connection","openapi":"delete /v1/api/connection","href":"/api-reference/endpoint/delete-connection"},{"title":"Get Connection Affected Data Models","openapi":"get /v1/api/connection/get-affected-data-models","href":"/api-reference/endpoint/get-connection-affected-data-models"},{"title":"Get Enriched Connections","openapi":"get /v1/api/connection/get-enriched-connections","href":"/api-reference/endpoint/get-enriched-connections"},{"title":"Start Connection Metadata Job","openapi":"post /v1/api/connection/compute-metadata-job","href":"/api-reference/endpoint/start-connection-metadata-job"},{"title":"Get Connection Metadata Job","openapi":"get /v1/api/connection/metadata-job/{jobId}","href":"/api-reference/endpoint/get-connection-metadata-job"},{"title":"List Environments","openapi":"get /v2/api/projects/{projectId}/environments","href":"/api-reference/endpoint/list-environments"},{"title":"Create Environment","openapi":"post /v2/api/projects/{projectId}/environments","href":"/api-reference/endpoint/create-environment"},{"title":"Rename Environment","openapi":"patch /v2/api/projects/{projectId}/environments/{environment}","href":"/api-reference/endpoint/rename-environment"},{"title":"Delete Environment","openapi":"delete /v2/api/projects/{projectId}/environments/{environment}","href":"/api-reference/endpoint/delete-environment"},{"title":"Map Environment Connection","openapi":"put /v2/api/projects/{projectId}/environments/{environment}/connections/{sourceConnectionId}","href":"/api-reference/endpoint/map-environment-connection"},{"title":"Remove Environment Connection","openapi":"delete /v2/api/projects/{projectId}/environments/{environment}/connections/{sourceConnectionId}","href":"/api-reference/endpoint/remove-environment-connection"},{"title":"Create Environment Connection Database","openapi":"post /v2/api/projects/{projectId}/environments/{environment}/connections/{sourceConnectionId}/database","href":"/api-reference/endpoint/create-environment-connection-database"},{"title":"Check Environment Connection Compatibility","openapi":"get /v2/api/projects/{projectId}/environments/{environment}/connections/{sourceConnectionId}/compatibility","href":"/api-reference/endpoint/check-environment-connection-compatibility"},{"title":"List Workspace Environments","openapi":"get /v2/api/projects/{projectId}/workspaces/{workspaceId}/environments","href":"/api-reference/endpoint/list-workspace-environments"},{"title":"Set Workspace Environment","openapi":"patch /v2/api/projects/{projectId}/workspaces/{workspaceId}/environments/{environment}","href":"/api-reference/endpoint/set-workspace-environment"}]},{"group":"Dashboard Sync (.ucf)","pages":[{"title":"Overview","href":"/api-reference/endpoint/dashboard-sync-overview"},{"title":"Import Dashboards (.ucf)","openapi":"post /v1/api/ucf/dashboards/import","href":"/api-reference/endpoint/import-dashboards-ucf"}]}]}]},{"tab":"SQL Reference","pages":[{"title":"SQL Reference","href":"/sql/introduction"}]},{"tab":"Demo","pages":[{"title":"Demo","href":"/demo/product-walkthrough"}]}]},"basePath":"","title":"Register Project User - Upsolve AI","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CBsVopKK.js","utils-DZAk68jJ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D32AYZrP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D_A5_cny.js","snippetPresets-xNRfS9th.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BIB25-tq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CydJ4w4j.js","shallow-CYPBeQSG.js","getApiPlaygroundDisplay-A5xJVBOu.js","CodeSnippet-BVRTgi3m.js","CodeSnippets-DjD6BSlt.js","Page-Dr40SSJq.js","getPastedJson-D4V4JyrR.js","icon-uhcnG22T.js","MethodPill-CM-ZQdGH.js","DuplicateIcon-B_WnOiNf.js","createIcon-CJsb8utt.js","DynamicMarkdown-D-2HDKEp.js","SectionHeading-KP5xmMgQ.js","axios-vUo_bRtp.js","Markdown-D_k0dg6k.js","clsx-DK3K4Z1S.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DE3EVdvd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-fN9H9n9g.js"]}