PostHog · Capability

PostHog API — users

PostHog API — users. 31 operations. Lead operation: List personal GitHub integrations. Self-contained Naftiko capability covering one Posthog business surface.

Run with Naftiko Posthogusers

What You Can Do

GET
Userslist — userslist
/v1/api/users
PATCH
Userscancelemailchangerequestpartialupdate — userscancelemailchangerequestpartialupdate
/v1/api/users/cancel-email-change-request
POST
Usersrequestemailverificationcreate — usersrequestemailverificationcreate
/v1/api/users/request-email-verification
POST
Usersverifyemailcreate — usersverifyemailcreate
/v1/api/users/verify-email
GET
Userssignalautonomyretrieve — Per-user signal autonomy config (singleton keyed by user).
/v1/api/users/{user-id}/signal-autonomy
GET
Userssignalautonomyretrieve — Per-user signal autonomy config (singleton keyed by user).
/v1/api/users/{user-id}/signal-autonomy
POST
Userssignalautonomycreate — Per-user signal autonomy config (singleton keyed by user).
/v1/api/users/{user-id}/signal-autonomy
POST
Userssignalautonomycreate — Per-user signal autonomy config (singleton keyed by user).
/v1/api/users/{user-id}/signal-autonomy
DELETE
Userssignalautonomydestroy — Per-user signal autonomy config (singleton keyed by user).
/v1/api/users/{user-id}/signal-autonomy
DELETE
Userssignalautonomydestroy — Per-user signal autonomy config (singleton keyed by user).
/v1/api/users/{user-id}/signal-autonomy
GET
Usersretrieve — Retrieve a user's profile and settings. Pass `@me` as the UUID to fetch the authenticated user; non-staff callers may only access their own account.
/v1/api/users/{uuid}
PUT
Usersupdate — Replace the authenticated user's profile and settings. Pass `@me` as the UUID to update the authenticated user. Prefer the PATCH endpoint for partial updates — PUT requires every writable field to be provided.
/v1/api/users/{uuid}
PATCH
Userspartialupdate — Update one or more of the authenticated user's profile fields or settings.
/v1/api/users/{uuid}
DELETE
Usersdestroy — usersdestroy
/v1/api/users/{uuid}
GET
Usersgithubloginretrieve — usersgithubloginretrieve
/v1/api/users/{uuid}/github-login
GET
Usershedgehogconfigretrieve — usershedgehogconfigretrieve
/v1/api/users/{uuid}/hedgehog-config
PATCH
Usershedgehogconfigpartialupdate — usershedgehogconfigpartialupdate
/v1/api/users/{uuid}/hedgehog-config
GET
Usersintegrationslist — List personal GitHub integrations
/v1/api/users/{uuid}/integrations
POST
Usersintegrationsgithubstartcreate — Start GitHub personal integration linking
/v1/api/users/{uuid}/integrations/github/start
DELETE
Usersintegrationsgithubdestroy — Disconnect a personal GitHub integration
/v1/api/users/{uuid}/integrations/github/{installation-id}
GET
Usersintegrationsgithubbranchesretrieve — List branches for a personal GitHub installation repository
/v1/api/users/{uuid}/integrations/github/{installation-id}/branches
GET
Usersintegrationsgithubreposretrieve — List repositories for a personal GitHub installation
/v1/api/users/{uuid}/integrations/github/{installation-id}/repos
POST
Usersintegrationsgithubreposrefreshcreate — Refresh repositories for a personal GitHub installation
/v1/api/users/{uuid}/integrations/github/{installation-id}/repos/refresh
POST
Usersscenepersonalisationcreate — usersscenepersonalisationcreate
/v1/api/users/{uuid}/scene-personalisation
GET
Usersstart2fasetupretrieve — usersstart2fasetupretrieve
/v1/api/users/{uuid}/start-2fa-setup
POST
Userstwofactorbackupcodescreate — Generate new backup codes, invalidating any existing ones
/v1/api/users/{uuid}/two-factor-backup-codes
POST
Userstwofactordisablecreate — Disable 2FA and remove all related devices
/v1/api/users/{uuid}/two-factor-disable
GET
Userstwofactorstartsetupretrieve — userstwofactorstartsetupretrieve
/v1/api/users/{uuid}/two-factor-start-setup
GET
Userstwofactorstatusretrieve — Get current 2FA status including backup codes if enabled
/v1/api/users/{uuid}/two-factor-status
POST
Userstwofactorvalidatecreate — userstwofactorvalidatecreate
/v1/api/users/{uuid}/two-factor-validate
POST
Usersvalidate2facreate — usersvalidate2facreate
/v1/api/users/{uuid}/validate-2fa

MCP Tools

userslist

userslist

read-only idempotent
userscancelemailchangerequestpartialupdate

userscancelemailchangerequestpartialupdate

idempotent
usersrequestemailverificationcreate

usersrequestemailverificationcreate

usersverifyemailcreate

usersverifyemailcreate

per-user-signal-autonomy-config

Per-user signal autonomy config (singleton keyed by user).

read-only idempotent
per-user-signal-autonomy-config-2

Per-user signal autonomy config (singleton keyed by user).

read-only idempotent
per-user-signal-autonomy-config-3

Per-user signal autonomy config (singleton keyed by user).

per-user-signal-autonomy-config-4

Per-user signal autonomy config (singleton keyed by user).

per-user-signal-autonomy-config-5

Per-user signal autonomy config (singleton keyed by user).

idempotent
per-user-signal-autonomy-config-6

Per-user signal autonomy config (singleton keyed by user).

idempotent
retrieve-user-s-profile-and-settings

Retrieve a user's profile and settings. Pass `@me` as the UUID to fetch the authenticated user; non-staff callers may only access their own account.

read-only idempotent
replace-authenticated-user-s-profile-and

Replace the authenticated user's profile and settings. Pass `@me` as the UUID to update the authenticated user. Prefer the PATCH endpoint for partial updates — PUT requires every writable field to be provided.

idempotent
update-one-more-authenticated-user-s

Update one or more of the authenticated user's profile fields or settings.

idempotent
usersdestroy

usersdestroy

idempotent
usersgithubloginretrieve

usersgithubloginretrieve

read-only idempotent
usershedgehogconfigretrieve

usershedgehogconfigretrieve

read-only idempotent
usershedgehogconfigpartialupdate

usershedgehogconfigpartialupdate

idempotent
list-personal-github-integrations

List personal GitHub integrations

read-only idempotent
start-github-personal-integration-linking

Start GitHub personal integration linking

disconnect-personal-github-integration

Disconnect a personal GitHub integration

idempotent
list-branches-personal-github-installation

List branches for a personal GitHub installation repository

read-only idempotent
list-repositories-personal-github-installation

List repositories for a personal GitHub installation

read-only idempotent
refresh-repositories-personal-github-installation

Refresh repositories for a personal GitHub installation

usersscenepersonalisationcreate

usersscenepersonalisationcreate

usersstart2fasetupretrieve

usersstart2fasetupretrieve

read-only idempotent
generate-new-backup-codes-invalidating

Generate new backup codes, invalidating any existing ones

disable-2fa-and-remove-all

Disable 2FA and remove all related devices

userstwofactorstartsetupretrieve

userstwofactorstartsetupretrieve

read-only idempotent
get-current-2fa-status-including

Get current 2FA status including backup codes if enabled

read-only idempotent
userstwofactorvalidatecreate

userstwofactorvalidatecreate

read-only
usersvalidate2facreate

usersvalidate2facreate

read-only

Capability Spec

posthog-users.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: PostHog API — users
  description: 'PostHog API — users. 31 operations. Lead operation: List personal GitHub integrations. Self-contained Naftiko
    capability covering one Posthog business surface.'
  tags:
  - Posthog
  - users
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    POSTHOG_API_KEY: POSTHOG_API_KEY
capability:
  consumes:
  - type: http
    namespace: posthog-users
    baseUri: ''
    description: PostHog API — users business capability. Self-contained, no shared references.
    resources:
    - name: api-users
      path: /api/users/
      operations:
      - name: userslist
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: email
          in: query
          type: string
        - name: is_staff
          in: query
          type: boolean
        - name: limit
          in: query
          type: integer
          description: Number of results to return per page.
        - name: offset
          in: query
          type: integer
          description: The initial index from which to return the results.
    - name: api-users-cancel_email_change_request
      path: /api/users/cancel_email_change_request/
      operations:
      - name: userscancelemailchangerequestpartialupdate
        method: PATCH
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-users-request_email_verification
      path: /api/users/request_email_verification/
      operations:
      - name: usersrequestemailverificationcreate
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-users-verify_email
      path: /api/users/verify_email/
      operations:
      - name: usersverifyemailcreate
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-users-user_id-signal_autonomy
      path: /api/users/{user_id}/signal_autonomy/
      operations:
      - name: userssignalautonomyretrieve
        method: GET
        description: Per-user signal autonomy config (singleton keyed by user).
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          required: true
      - name: userssignalautonomyretrieve
        method: GET
        description: Per-user signal autonomy config (singleton keyed by user).
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          required: true
      - name: userssignalautonomycreate
        method: POST
        description: Per-user signal autonomy config (singleton keyed by user).
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: userssignalautonomycreate
        method: POST
        description: Per-user signal autonomy config (singleton keyed by user).
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: userssignalautonomydestroy
        method: DELETE
        description: Per-user signal autonomy config (singleton keyed by user).
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          required: true
      - name: userssignalautonomydestroy
        method: DELETE
        description: Per-user signal autonomy config (singleton keyed by user).
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user_id
          in: path
          type: string
          required: true
    - name: api-users-uuid
      path: /api/users/{uuid}/
      operations:
      - name: usersretrieve
        method: GET
        description: Retrieve a user's profile and settings. Pass `@me` as the UUID to fetch the authenticated user; non-staff
          callers may only access their own account.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
      - name: usersupdate
        method: PUT
        description: Replace the authenticated user's profile and settings. Pass `@me` as the UUID to update the authenticated
          user. Prefer the PATCH endpoint for partial updates — PUT requires every writable field to be provided.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: userspartialupdate
        method: PATCH
        description: Update one or more of the authenticated user's profile fields or settings.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: usersdestroy
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
    - name: api-users-uuid-github_login
      path: /api/users/{uuid}/github_login/
      operations:
      - name: usersgithubloginretrieve
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
    - name: api-users-uuid-hedgehog_config
      path: /api/users/{uuid}/hedgehog_config/
      operations:
      - name: usershedgehogconfigretrieve
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
      - name: usershedgehogconfigpartialupdate
        method: PATCH
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-users-uuid-integrations
      path: /api/users/{uuid}/integrations/
      operations:
      - name: usersintegrationslist
        method: GET
        description: List personal GitHub integrations
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
          description: Number of results to return per page.
        - name: offset
          in: query
          type: integer
          description: The initial index from which to return the results.
        - name: uuid
          in: path
          type: string
          required: true
    - name: api-users-uuid-integrations-github-start
      path: /api/users/{uuid}/integrations/github/start/
      operations:
      - name: usersintegrationsgithubstartcreate
        method: POST
        description: Start GitHub personal integration linking
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-users-uuid-integrations-github-installation_id
      path: /api/users/{uuid}/integrations/github/{installation_id}/
      operations:
      - name: usersintegrationsgithubdestroy
        method: DELETE
        description: Disconnect a personal GitHub integration
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: installation_id
          in: path
          type: string
          required: true
        - name: uuid
          in: path
          type: string
          required: true
    - name: api-users-uuid-integrations-github-installation_id-branches
      path: /api/users/{uuid}/integrations/github/{installation_id}/branches/
      operations:
      - name: usersintegrationsgithubbranchesretrieve
        method: GET
        description: List branches for a personal GitHub installation repository
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: installation_id
          in: path
          type: string
          required: true
        - name: limit
          in: query
          type: integer
          description: Maximum number of branches to return
        - name: offset
          in: query
          type: integer
          description: Number of branches to skip
        - name: repo
          in: query
          type: string
          description: Repository in owner/repo format
          required: true
        - name: search
          in: query
          type: string
          description: Optional case-insensitive branch name search query.
        - name: uuid
          in: path
          type: string
          required: true
    - name: api-users-uuid-integrations-github-installation_id-repos
      path: /api/users/{uuid}/integrations/github/{installation_id}/repos/
      operations:
      - name: usersintegrationsgithubreposretrieve
        method: GET
        description: List repositories for a personal GitHub installation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: installation_id
          in: path
          type: string
          required: true
        - name: limit
          in: query
          type: integer
          description: Maximum number of repositories to return per request (max 500).
        - name: offset
          in: query
          type: integer
          description: Number of repositories to skip before returning results.
        - name: search
          in: query
          type: string
          description: Optional case-insensitive repository name search query.
        - name: uuid
          in: path
          type: string
          required: true
    - name: api-users-uuid-integrations-github-installation_id-repos-refresh
      path: /api/users/{uuid}/integrations/github/{installation_id}/repos/refresh/
      operations:
      - name: usersintegrationsgithubreposrefreshcreate
        method: POST
        description: Refresh repositories for a personal GitHub installation
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: installation_id
          in: path
          type: string
          required: true
        - name: uuid
          in: path
          type: string
          required: true
    - name: api-users-uuid-scene_personalisation
      path: /api/users/{uuid}/scene_personalisation/
      operations:
      - name: usersscenepersonalisationcreate
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-users-uuid-start_2fa_setup
      path: /api/users/{uuid}/start_2fa_setup/
      operations:
      - name: usersstart2fasetupretrieve
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
    - name: api-users-uuid-two_factor_backup_codes
      path: /api/users/{uuid}/two_factor_backup_codes/
      operations:
      - name: userstwofactorbackupcodescreate
        method: POST
        description: Generate new backup codes, invalidating any existing ones
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-users-uuid-two_factor_disable
      path: /api/users/{uuid}/two_factor_disable/
      operations:
      - name: userstwofactordisablecreate
        method: POST
        description: Disable 2FA and remove all related devices
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-users-uuid-two_factor_start_setup
      path: /api/users/{uuid}/two_factor_start_setup/
      operations:
      - name: userstwofactorstartsetupretrieve
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
    - name: api-users-uuid-two_factor_status
      path: /api/users/{uuid}/two_factor_status/
      operations:
      - name: userstwofactorstatusretrieve
        method: GET
        description: Get current 2FA status including backup codes if enabled
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
    - name: api-users-uuid-two_factor_validate
      path: /api/users/{uuid}/two_factor_validate/
      operations:
      - name: userstwofactorvalidatecreate
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-users-uuid-validate_2fa
      path: /api/users/{uuid}/validate_2fa/
      operations:
      - name: usersvalidate2facreate
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.POSTHOG_API_KEY}}'
  exposes:
  - type: rest
    namespace: posthog-users-rest
    port: 8080
    description: REST adapter for PostHog API — users. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/api/users
      name: api-users
      description: REST surface for api-users.
      operations:
      - method: GET
        name: userslist
        description: userslist
        call: posthog-users.userslist
        with:
          email: rest.email
          is_staff: rest.is_staff
          limit: rest.limit
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/cancel-email-change-request
      name: api-users-cancel-email-change-request
      description: REST surface for api-users-cancel_email_change_request.
      operations:
      - method: PATCH
        name: userscancelemailchangerequestpartialupdate
        description: userscancelemailchangerequestpartialupdate
        call: posthog-users.userscancelemailchangerequestpartialupdate
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/request-email-verification
      name: api-users-request-email-verification
      description: REST surface for api-users-request_email_verification.
      operations:
      - method: POST
        name: usersrequestemailverificationcreate
        description: usersrequestemailverificationcreate
        call: posthog-users.usersrequestemailverificationcreate
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/verify-email
      name: api-users-verify-email
      description: REST surface for api-users-verify_email.
      operations:
      - method: POST
        name: usersverifyemailcreate
        description: usersverifyemailcreate
        call: posthog-users.usersverifyemailcreate
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{user-id}/signal-autonomy
      name: api-users-user-id-signal-autonomy
      description: REST surface for api-users-user_id-signal_autonomy.
      operations:
      - method: GET
        name: userssignalautonomyretrieve
        description: Per-user signal autonomy config (singleton keyed by user).
        call: posthog-users.userssignalautonomyretrieve
        with:
          user_id: rest.user_id
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: userssignalautonomyretrieve
        description: Per-user signal autonomy config (singleton keyed by user).
        call: posthog-users.userssignalautonomyretrieve
        with:
          user_id: rest.user_id
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: userssignalautonomycreate
        description: Per-user signal autonomy config (singleton keyed by user).
        call: posthog-users.userssignalautonomycreate
        with:
          user_id: rest.user_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: userssignalautonomycreate
        description: Per-user signal autonomy config (singleton keyed by user).
        call: posthog-users.userssignalautonomycreate
        with:
          user_id: rest.user_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: userssignalautonomydestroy
        description: Per-user signal autonomy config (singleton keyed by user).
        call: posthog-users.userssignalautonomydestroy
        with:
          user_id: rest.user_id
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: userssignalautonomydestroy
        description: Per-user signal autonomy config (singleton keyed by user).
        call: posthog-users.userssignalautonomydestroy
        with:
          user_id: rest.user_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}
      name: api-users-uuid
      description: REST surface for api-users-uuid.
      operations:
      - method: GET
        name: usersretrieve
        description: Retrieve a user's profile and settings. Pass `@me` as the UUID to fetch the authenticated user; non-staff
          callers may only access their own account.
        call: posthog-users.usersretrieve
        with:
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: usersupdate
        description: Replace the authenticated user's profile and settings. Pass `@me` as the UUID to update the authenticated
          user. Prefer the PATCH endpoint for partial updates — PUT requires every writable field to be provided.
        call: posthog-users.usersupdate
        with:
          uuid: rest.uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: userspartialupdate
        description: Update one or more of the authenticated user's profile fields or settings.
        call: posthog-users.userspartialupdate
        with:
          uuid: rest.uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: usersdestroy
        description: usersdestroy
        call: posthog-users.usersdestroy
        with:
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/github-login
      name: api-users-uuid-github-login
      description: REST surface for api-users-uuid-github_login.
      operations:
      - method: GET
        name: usersgithubloginretrieve
        description: usersgithubloginretrieve
        call: posthog-users.usersgithubloginretrieve
        with:
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/hedgehog-config
      name: api-users-uuid-hedgehog-config
      description: REST surface for api-users-uuid-hedgehog_config.
      operations:
      - method: GET
        name: usershedgehogconfigretrieve
        description: usershedgehogconfigretrieve
        call: posthog-users.usershedgehogconfigretrieve
        with:
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: usershedgehogconfigpartialupdate
        description: usershedgehogconfigpartialupdate
        call: posthog-users.usershedgehogconfigpartialupdate
        with:
          uuid: rest.uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/integrations
      name: api-users-uuid-integrations
      description: REST surface for api-users-uuid-integrations.
      operations:
      - method: GET
        name: usersintegrationslist
        description: List personal GitHub integrations
        call: posthog-users.usersintegrationslist
        with:
          limit: rest.limit
          offset: rest.offset
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/integrations/github/start
      name: api-users-uuid-integrations-github-start
      description: REST surface for api-users-uuid-integrations-github-start.
      operations:
      - method: POST
        name: usersintegrationsgithubstartcreate
        description: Start GitHub personal integration linking
        call: posthog-users.usersintegrationsgithubstartcreate
        with:
          uuid: rest.uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/integrations/github/{installation-id}
      name: api-users-uuid-integrations-github-installation-id
      description: REST surface for api-users-uuid-integrations-github-installation_id.
      operations:
      - method: DELETE
        name: usersintegrationsgithubdestroy
        description: Disconnect a personal GitHub integration
        call: posthog-users.usersintegrationsgithubdestroy
        with:
          installation_id: rest.installation_id
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/integrations/github/{installation-id}/branches
      name: api-users-uuid-integrations-github-installation-id-branches
      description: REST surface for api-users-uuid-integrations-github-installation_id-branches.
      operations:
      - method: GET
        name: usersintegrationsgithubbranchesretrieve
        description: List branches for a personal GitHub installation repository
        call: posthog-users.usersintegrationsgithubbranchesretrieve
        with:
          installation_id: rest.installation_id
          limit: rest.limit
          offset: rest.offset
          repo: rest.repo
          search: rest.search
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/integrations/github/{installation-id}/repos
      name: api-users-uuid-integrations-github-installation-id-repos
      description: REST surface for api-users-uuid-integrations-github-installation_id-repos.
      operations:
      - method: GET
        name: usersintegrationsgithubreposretrieve
        description: List repositories for a personal GitHub installation
        call: posthog-users.usersintegrationsgithubreposretrieve
        with:
          installation_id: rest.installation_id
          limit: rest.limit
          offset: rest.offset
          search: rest.search
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/integrations/github/{installation-id}/repos/refresh
      name: api-users-uuid-integrations-github-installation-id-repos-refresh
      description: REST surface for api-users-uuid-integrations-github-installation_id-repos-refresh.
      operations:
      - method: POST
        name: usersintegrationsgithubreposrefreshcreate
        description: Refresh repositories for a personal GitHub installation
        call: posthog-users.usersintegrationsgithubreposrefreshcreate
        with:
          installation_id: rest.installation_id
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/scene-personalisation
      name: api-users-uuid-scene-personalisation
      description: REST surface for api-users-uuid-scene_personalisation.
      operations:
      - method: POST
        name: usersscenepersonalisationcreate
        description: usersscenepersonalisationcreate
        call: posthog-users.usersscenepersonalisationcreate
        with:
          uuid: rest.uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/start-2fa-setup
      name: api-users-uuid-start-2fa-setup
      description: REST surface for api-users-uuid-start_2fa_setup.
      operations:
      - method: GET
        name: usersstart2fasetupretrieve
        description: usersstart2fasetupretrieve
        call: posthog-users.usersstart2fasetupretrieve
        with:
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/two-factor-backup-codes
      name: api-users-uuid-two-factor-backup-codes
      description: REST surface for api-users-uuid-two_factor_backup_codes.
      operations:
      - method: POST
        name: userstwofactorbackupcodescreate
        description: Generate new backup codes, invalidating any existing ones
        call: posthog-users.userstwofactorbackupcodescreate
        with:
          uuid: rest.uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/two-factor-disable
      name: api-users-uuid-two-factor-disable
      description: REST surface for api-users-uuid-two_factor_disable.
      operations:
      - method: POST
        name: userstwofactordisablecreate
        description: Disable 2FA and remove all related devices
        call: posthog-users.userstwofactordisablecreate
        with:
          uuid: rest.uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/two-factor-start-setup
      name: api-users-uuid-two-factor-start-setup
      description: REST surface for api-users-uuid-two_factor_start_setup.
      operations:
      - method: GET
        name: userstwofactorstartsetupretrieve
        description: userstwofactorstartsetupretrieve
        call: posthog-users.userstwofactorstartsetupretrieve
        with:
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/two-factor-status
      name: api-users-uuid-two-factor-status
      description: REST surface for api-users-uuid-two_factor_status.
      operations:
      - method: GET
        name: userstwofactorstatusretrieve
        description: Get current 2FA status including backup codes if enabled
        call: posthog-users.userstwofactorstatusretrieve
        with:
          uuid: rest.uuid
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/two-factor-validate
      name: api-users-uuid-two-factor-validate
      description: REST surface for api-users-uuid-two_factor_validate.
      operations:
      - method: POST
        name: userstwofactorvalidatecreate
        description: userstwofactorvalidatecreate
        call: posthog-users.userstwofactorvalidatecreate
        with:
          uuid: rest.uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/users/{uuid}/validate-2fa
      name: api-users-uuid-validate-2fa
      description: REST surface for api-users-uuid-validate_2fa.
      operations:
      - method: POST
        name: usersvalidate2facreate
        description: usersvalidate2facreate
        call: posthog-users.usersvalidate2facreate
        with:
          uuid: rest.uuid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: posthog-users-mcp
    port: 9090

# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/posthog/refs/heads/main/capabilities/posthog-users.yaml