Users
For instructions on how to authenticate to use this endpoint, see API overview.
Endpoints
GET | |
PATCH | |
GET | |
DELETE | |
GET | |
GET | |
POST | |
POST | |
POST | |
DELETE |
Retrieve users hedgehog config
Required API key scopes
user:readPath parameters
- uuidstring
Example request
GET /api/users/:uuid/hedgehog_config Example response
Status 200 No response body
Retrieve users hedgehog config
Required API key scopes
user:readPath parameters
- uuidstring
Example request
GET /api/users/:uuid/hedgehog_config Example response
Status 200 No response body
Update users hedgehog config
Required API key scopes
user:writePath parameters
- uuidstring
Request parameters
- first_namestring
- last_namestring
- emailstring
- notification_settingsobject
- anonymize_databooleannull
- allow_impersonationbooleannull
- toolbar_mode
- is_staffboolean
- set_current_organizationstring
- set_current_teamstring
- passwordstring
- current_passwordstring
- events_column_config
- has_seen_product_intro_for
- theme_mode
- hedgehog_config
- allow_sidebar_suggestionsbooleannull
- shortcut_position
- role_at_organization
- passkeys_enabled_for_2fabooleannull
- hide_mcp_hintsboolean
- ui_configuration
Example request
PATCH /api/users/:uuid/hedgehog_config Example response
Status 200 No response body
Update users hedgehog config
Required API key scopes
user:writePath parameters
- uuidstring
Request parameters
- first_namestring
- last_namestring
- emailstring
- notification_settingsobject
- anonymize_databooleannull
- allow_impersonationbooleannull
- toolbar_mode
- is_staffboolean
- set_current_organizationstring
- set_current_teamstring
- passwordstring
- current_passwordstring
- events_column_config
- has_seen_product_intro_for
- theme_mode
- hedgehog_config
- allow_sidebar_suggestionsbooleannull
- shortcut_position
- role_at_organization
- passkeys_enabled_for_2fabooleannull
- hide_mcp_hintsboolean
- ui_configuration
Example request
PATCH /api/users/:uuid/hedgehog_config Example response
Status 200 No response body
List all users integrations
Return the authenticated user's personal integrations of a given
kind (github or slack).
The response shape varies per kind because the underlying UserIntegration
rows carry different identity fields — GitHub rows expose
installation_id / account / uses_shared_installation; Slack
rows expose slack_user_id / slack_team_id / slack_team_name.
Kind-specific destroy and start actions remain split so their distinct
semantics (e.g. Slack's lack of "uninstall on last reference") stay
explicit at the URL layer.
Default of kind=github is load-bearing: mobile (apps/mobile/...)
and the Code SDK (packages/api-client/...) both call this endpoint
without a query param today and rely on receiving GitHub rows.
Required API key scopes
user:readPath parameters
- uuidstring
Query parameters
- kindstringOne of:
"github""slack" - limitinteger
- offsetinteger
Response
Example request
GET /api/users/:uuid/integrations Example response
Status 200
List all users integrations
Return the authenticated user's personal integrations of a given
kind (github or slack).
The response shape varies per kind because the underlying UserIntegration
rows carry different identity fields — GitHub rows expose
installation_id / account / uses_shared_installation; Slack
rows expose slack_user_id / slack_team_id / slack_team_name.
Kind-specific destroy and start actions remain split so their distinct
semantics (e.g. Slack's lack of "uninstall on last reference") stay
explicit at the URL layer.
Default of kind=github is load-bearing: mobile (apps/mobile/...)
and the Code SDK (packages/api-client/...) both call this endpoint
without a query param today and rely on receiving GitHub rows.
Required API key scopes
user:readPath parameters
- uuidstring
Query parameters
- kindstringOne of:
"github""slack" - limitinteger
- offsetinteger
Response
Example request
GET /api/users/:uuid/integrations Example response
Status 200
Delete users integrations github
Remove a specific GitHub installation by its installation_id.
Required API key scopes
user:writePath parameters
- installation_idstring
- uuidstring
Example request
DELETE /api/users/:uuid/integrations/github/:installation_id Example response
Status 204 Integration removed.
Delete users integrations github
Remove a specific GitHub installation by its installation_id.
Required API key scopes
user:writePath parameters
- installation_idstring
- uuidstring
Example request
DELETE /api/users/:uuid/integrations/github/:installation_id Example response
Status 204 Integration removed.
Retrieve users integrations github branches
List branches for a repository accessible to a personal GitHub installation.
Required API key scopes
user:readPath parameters
- installation_idstring
- uuidstring
Query parameters
- limitintegerDefault:
100 - offsetintegerDefault:
0 - repostring
- searchstringDefault:
Response
Example request
GET /api/users/:uuid/integrations/github/:installation_id/branches Example response
Status 200
Retrieve users integrations github branches
List branches for a repository accessible to a personal GitHub installation.
Required API key scopes
user:readPath parameters
- installation_idstring
- uuidstring
Query parameters
- limitintegerDefault:
100 - offsetintegerDefault:
0 - repostring
- searchstringDefault:
Response
Example request
GET /api/users/:uuid/integrations/github/:installation_id/branches Example response
Status 200
Retrieve users integrations github repos
List repositories accessible to a specific GitHub installation (paginated, cached).
Required API key scopes
user:readPath parameters
- installation_idstring
- uuidstring
Query parameters
- limitintegerDefault:
100 - offsetintegerDefault:
0 - searchstringDefault:
Response
Example request
GET /api/users/:uuid/integrations/github/:installation_id/repos Example response
Status 200
Retrieve users integrations github repos
List repositories accessible to a specific GitHub installation (paginated, cached).
Required API key scopes
user:readPath parameters
- installation_idstring
- uuidstring
Query parameters
- limitintegerDefault:
100 - offsetintegerDefault:
0 - searchstringDefault:
Response
Example request
GET /api/users/:uuid/integrations/github/:installation_id/repos Example response
Status 200
Create users integrations github repos refresh
Refresh repositories accessible to a specific GitHub installation.
Required API key scopes
user:writePath parameters
- installation_idstring
- uuidstring
Response
Example request
POST /api/users/:uuid/integrations/github/:installation_id/repos/refresh Example response
Status 200
Create users integrations github repos refresh
Refresh repositories accessible to a specific GitHub installation.
Required API key scopes
user:writePath parameters
- installation_idstring
- uuidstring
Response
Example request
POST /api/users/:uuid/integrations/github/:installation_id/repos/refresh Example response
Status 200
Create users integrations github prepare callback
Seed personal GitHub manage callback state before opening installation settings on GitHub.
Required API key scopes
user:writePath parameters
- uuidstring
Request parameters
- installation_idstring
Example request
POST /api/users/:uuid/integrations/github/prepare_callback Example response
Status 204 No content
Create users integrations github prepare callback
Seed personal GitHub manage callback state before opening installation settings on GitHub.
Required API key scopes
user:writePath parameters
- uuidstring
Request parameters
- installation_idstring
Example request
POST /api/users/:uuid/integrations/github/prepare_callback Example response
Status 204 No content
Create users integrations github start
Start GitHub linking: either full App install or OAuth-only (user-to-server).
**_kwargs absorbs parent_lookup_uuid from the nested
/api/users/{uuid}/integrations/ router (same pattern as local_evaluation
under projects).
Usually returns install_url pointing at /installations/new so the
user can pick any GitHub org (new or already connected). GitHub's install
page handles both cases: orgs where the app is installed show "Configure"
(no admin needed), orgs where it isn't show "Install" (needs admin).
OAuth fast path: when the current project already has a team-level
GitHub installation, and the user has no UserIntegration for that
installation yet, we skip the org picker and redirect straight to
/login/oauth/authorize so the user only authorizes themselves.
connect_from is preserved for first-party clients so they return to
the originating client immediately.
In both cases the response key is install_url for compatibility with callers.
Required API key scopes
user:writePath parameters
- uuidstring
Request parameters
- team_idintegernull
- connect_fromstring
Response
Example request
POST /api/users/:uuid/integrations/github/start Example response
Status 200
Create users integrations github start
Start GitHub linking: either full App install or OAuth-only (user-to-server).
**_kwargs absorbs parent_lookup_uuid from the nested
/api/users/{uuid}/integrations/ router (same pattern as local_evaluation
under projects).
Usually returns install_url pointing at /installations/new so the
user can pick any GitHub org (new or already connected). GitHub's install
page handles both cases: orgs where the app is installed show "Configure"
(no admin needed), orgs where it isn't show "Install" (needs admin).
OAuth fast path: when the current project already has a team-level
GitHub installation, and the user has no UserIntegration for that
installation yet, we skip the org picker and redirect straight to
/login/oauth/authorize so the user only authorizes themselves.
connect_from is preserved for first-party clients so they return to
the originating client immediately.
In both cases the response key is install_url for compatibility with callers.
Required API key scopes
user:writePath parameters
- uuidstring
Request parameters
- team_idintegernull
- connect_fromstring
Response
Example request
POST /api/users/:uuid/integrations/github/start Example response
Status 200
Delete users integrations slack
Remove a Slack identity link by Slack user id. Idempotent and flag-agnostic — users must always be able to unlink even after the feature flag is turned off.
Required API key scopes
user:writePath parameters
- slack_user_idstring
- uuidstring
Example request
DELETE /api/users/:uuid/integrations/slack/:slack_user_id Example response
Status 204 Slack link removed.
Delete users integrations slack
Remove a Slack identity link by Slack user id. Idempotent and flag-agnostic — users must always be able to unlink even after the feature flag is turned off.
Required API key scopes
user:writePath parameters
- slack_user_idstring
- uuidstring
Example request
DELETE /api/users/:uuid/integrations/slack/:slack_user_id