PostHog users API

The users API from PostHog — 22 operation(s) for users.

OpenAPI Specification

posthog-users-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: PostHog actions users API
  version: 1.0.0
  description: ''
tags:
- name: users
paths:
  /api/users/:
    get:
      operationId: users_list
      parameters:
      - in: query
        name: email
        schema:
          type: string
      - in: query
        name: is_staff
        schema:
          type: boolean
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      tags:
      - users
      security:
      - PersonalAPIKeyAuth:
        - user:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUserList'
          description: ''
      x-explicit-tags:
      - core
  /api/users/{user_id}/signal_autonomy/:
    get:
      operationId: users_signal_autonomy_retrieve
      description: 'Per-user signal autonomy config (singleton keyed by user).


        GET    /api/users/<id>/signal_autonomy/ → current config (or 404)

        POST   /api/users/<id>/signal_autonomy/ → create or update

        DELETE /api/users/<id>/signal_autonomy/ → remove (opt out)'
      parameters:
      - in: path
        name: user_id
        schema:
          type: string
        required: true
      tags:
      - users
      security:
      - PersonalAPIKeyAuth:
        - user:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignalUserAutonomyConfig'
          description: ''
      x-explicit-tags:
      - users
      - signals
    post:
      operationId: users_signal_autonomy_create
      description: 'Per-user signal autonomy config (singleton keyed by user).


        GET    /api/users/<id>/signal_autonomy/ → current config (or 404)

        POST   /api/users/<id>/signal_autonomy/ → create or update

        DELETE /api/users/<id>/signal_autonomy/ → remove (opt out)'
      parameters:
      - in: path
        name: user_id
        schema:
          type: string
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SignalUserAutonomyConfig'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/SignalUserAutonomyConfig'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SignalUserAutonomyConfig'
      security:
      - PersonalAPIKeyAuth:
        - user:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SignalUserAutonomyConfig'
          description: ''
      x-explicit-tags:
      - users
      - signals
    delete:
      operationId: users_signal_autonomy_destroy
      description: 'Per-user signal autonomy config (singleton keyed by user).


        GET    /api/users/<id>/signal_autonomy/ → current config (or 404)

        POST   /api/users/<id>/signal_autonomy/ → create or update

        DELETE /api/users/<id>/signal_autonomy/ → remove (opt out)'
      parameters:
      - in: path
        name: user_id
        schema:
          type: string
        required: true
      tags:
      - users
      security:
      - PersonalAPIKeyAuth:
        - user:write
      responses:
        '204':
          description: No response body
      x-explicit-tags:
      - users
      - signals
  /api/users/{uuid}/:
    get:
      operationId: users_retrieve
      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.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - PersonalAPIKeyAuth:
        - user:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
      x-explicit-tags:
      - core
    put:
      operationId: users_update
      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.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      security:
      - PersonalAPIKeyAuth:
        - user:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
      x-explicit-tags:
      - core
    patch:
      operationId: users_partial_update
      description: Update one or more of the authenticated user's profile fields or settings.
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUser'
      security:
      - PersonalAPIKeyAuth:
        - user:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          description: ''
      x-explicit-tags:
      - core
    delete:
      operationId: users_destroy
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      responses:
        '204':
          description: No response body
      x-explicit-tags:
      - core
  /api/users/{uuid}/github_login/:
    get:
      operationId: users_github_login_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - PersonalAPIKeyAuth:
        - user:read
      responses:
        '200':
          description: No response body
      x-explicit-tags:
      - core
  /api/users/{uuid}/hedgehog_config/:
    get:
      operationId: users_hedgehog_config_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      security:
      - PersonalAPIKeyAuth:
        - user:read
      responses:
        '200':
          description: No response body
      x-explicit-tags:
      - core
    patch:
      operationId: users_hedgehog_config_partial_update
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUser'
      security:
      - PersonalAPIKeyAuth:
        - user:write
      responses:
        '200':
          description: No response body
      x-explicit-tags:
      - core
  /api/users/{uuid}/integrations/:
    get:
      operationId: users_integrations_list
      description: '`/api/users/@me/integrations/` — manage the user''s personal GitHub integrations.'
      summary: List personal GitHub integrations
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - users
      security:
      - PersonalAPIKeyAuth:
        - user:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedUserGitHubIntegrationListResponseList'
          description: ''
      x-explicit-tags:
      - core
  /api/users/{uuid}/integrations/github/{installation_id}/:
    delete:
      operationId: users_integrations_github_destroy
      description: Remove a specific GitHub installation by its installation_id.
      summary: Disconnect a personal GitHub integration
      parameters:
      - in: path
        name: installation_id
        schema:
          type: string
          pattern: ^\d+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - users
      security:
      - PersonalAPIKeyAuth:
        - user:write
      responses:
        '204':
          description: Integration removed.
      x-explicit-tags:
      - core
  /api/users/{uuid}/integrations/github/{installation_id}/branches/:
    get:
      operationId: users_integrations_github_branches_retrieve
      description: List branches for a repository accessible to a personal GitHub installation.
      summary: List branches for a personal GitHub installation repository
      parameters:
      - in: path
        name: installation_id
        schema:
          type: string
          pattern: ^\d+$
        required: true
      - in: query
        name: limit
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          default: 100
        description: Maximum number of branches to return
      - in: query
        name: offset
        schema:
          type: integer
          minimum: 0
          default: 0
        description: Number of branches to skip
      - in: query
        name: repo
        schema:
          type: string
          minLength: 1
        description: Repository in owner/repo format
        required: true
      - in: query
        name: search
        schema:
          type: string
          default: ''
        description: Optional case-insensitive branch name search query.
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - users
      security:
      - PersonalAPIKeyAuth:
        - user:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GitHubBranchesResponse'
          description: ''
      x-explicit-tags:
      - core
  /api/users/{uuid}/integrations/github/{installation_id}/repos/:
    get:
      operationId: users_integrations_github_repos_retrieve
      description: List repositories accessible to a specific GitHub installation (paginated, cached).
      summary: List repositories for a personal GitHub installation
      parameters:
      - in: path
        name: installation_id
        schema:
          type: string
          pattern: ^\d+$
        required: true
      - in: query
        name: limit
        schema:
          type: integer
          maximum: 500
          minimum: 1
          default: 100
        description: Maximum number of repositories to return per request (max 500).
      - in: query
        name: offset
        schema:
          type: integer
          minimum: 0
          default: 0
        description: Number of repositories to skip before returning results.
      - in: query
        name: search
        schema:
          type: string
          default: ''
        description: Optional case-insensitive repository name search query.
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - users
      security:
      - PersonalAPIKeyAuth:
        - user:read
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GitHubReposResponse'
          description: ''
      x-explicit-tags:
      - core
  /api/users/{uuid}/integrations/github/{installation_id}/repos/refresh/:
    post:
      operationId: users_integrations_github_repos_refresh_create
      description: Refresh repositories accessible to a specific GitHub installation.
      summary: Refresh repositories for a personal GitHub installation
      parameters:
      - in: path
        name: installation_id
        schema:
          type: string
          pattern: ^\d+$
        required: true
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - users
      security:
      - PersonalAPIKeyAuth:
        - user:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GitHubReposRefreshResponse'
          description: ''
      x-explicit-tags:
      - core
  /api/users/{uuid}/integrations/github/start/:
    post:
      operationId: users_integrations_github_start_create
      description: '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).


        **PostHog Code fast path:** when ``connect_from`` is ``"posthog_code"``,

        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 and returns to PostHog Code immediately.


        In both cases the response key is ``install_url`` for compatibility with callers.'
      summary: Start GitHub personal integration linking
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserGitHubLinkStartRequest'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/UserGitHubLinkStartRequest'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UserGitHubLinkStartRequest'
      security:
      - PersonalAPIKeyAuth:
        - user:write
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserGitHubLinkStartResponse'
          description: ''
      x-explicit-tags:
      - core
  /api/users/{uuid}/scene_personalisation/:
    post:
      operationId: users_scene_personalisation_create
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      responses:
        '200':
          description: No response body
      x-explicit-tags:
      - core
  /api/users/{uuid}/start_2fa_setup/:
    get:
      operationId: users_start_2fa_setup_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      responses:
        '200':
          description: No response body
      x-explicit-tags:
      - core
  /api/users/{uuid}/two_factor_backup_codes/:
    post:
      operationId: users_two_factor_backup_codes_create
      description: Generate new backup codes, invalidating any existing ones
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      responses:
        '200':
          description: No response body
      x-explicit-tags:
      - core
  /api/users/{uuid}/two_factor_disable/:
    post:
      operationId: users_two_factor_disable_create
      description: Disable 2FA and remove all related devices
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      responses:
        '200':
          description: No response body
      x-explicit-tags:
      - core
  /api/users/{uuid}/two_factor_start_setup/:
    get:
      operationId: users_two_factor_start_setup_retrieve
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      responses:
        '200':
          description: No response body
      x-explicit-tags:
      - core
  /api/users/{uuid}/two_factor_status/:
    get:
      operationId: users_two_factor_status_retrieve
      description: Get current 2FA status including backup codes if enabled
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      responses:
        '200':
          description: No response body
      x-explicit-tags:
      - core
  /api/users/{uuid}/two_factor_validate/:
    post:
      operationId: users_two_factor_validate_create
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      responses:
        '200':
          description: No response body
      x-explicit-tags:
      - core
  /api/users/{uuid}/validate_2fa/:
    post:
      operationId: users_validate_2fa_create
      parameters:
      - in: path
        name: uuid
        schema:
          type: string
          format: uuid
        required: true
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      responses:
        '200':
          description: No response body
      x-explicit-tags:
      - core
  /api/users/cancel_email_change_request/:
    patch:
      operationId: users_cancel_email_change_request_partial_update
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUser'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedUser'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedUser'
      responses:
        '200':
          description: No response body
      x-explicit-tags:
      - core
  /api/users/request_email_verification/:
    post:
      operationId: users_request_email_verification_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      security:
      - {}
      responses:
        '200':
          description: No response body
      x-explicit-tags:
      - core
  /api/users/verify_email/:
    post:
      operationId: users_verify_email_create
      tags:
      - users
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/User'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/User'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/User'
        required: true
      security:
      - {}
      responses:
        '200':
          description: No response body
      x-explicit-tags:
      - core
components:
  schemas:
    GitHubReposResponse:
      type: object
      properties:
        repositories:
          type: array
          items:
            $ref: '#/components/schemas/GitHubRepo'
        has_more:
          type: boolean
          description: Whether more repositories are available beyond this page.
      required:
      - has_more
      - repositories
    GitHubReposRefreshResponse:
      type: object
      properties:
        repositories:
          type: array
          items:
            $ref: '#/components/schemas/GitHubRepo'
          description: The refreshed repository cache.
      required:
      - repositories
    PaginatedUserGitHubIntegrationListResponseList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/UserGitHubIntegrationListResponse'
    UserGitHubLinkStartResponse:
      type: object
      properties:
        install_url:
          type: string
          description: URL to open in the browser to install or authorize the GitHub App for this user.
        connect_flow:
          type: string
          description: OAuth or install flow used for this GitHub connection.
      required:
      - connect_flow
      - install_url
    PendingInvite:
      type: object
      description: Shape of each item in UserSerializer.pending_invites.
      properties:
        id:
          type: string
        target_email:
          type: string
          format: email
        organization_id:
          type: string
        organization_name:
          type: string
        created_at:
          type: string
          format: date-time
      required:
      - created_at
      - id
      - organization_id
      - organization_name
      - target_email
    RoleAtOrganizationEnum:
      enum:
      - engineering
      - data
      - product
      - founder
      - leadership
      - marketing
      - sales
      - other
      type: string
      description: '* `engineering` - Engineering

        * `data` - Data

        * `product` - Product Management

        * `founder` - Founder

        * `leadership` - Leadership

        * `marketing` - Marketing

        * `sales` - Sales / Success

        * `other` - Other'
    User:
      type: object
      properties:
        date_joined:
          type: string
          format: date-time
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        distinct_id:
          type: string
          readOnly: true
          nullable: true
        first_name:
          type: string
          maxLength: 150
        last_name:
          type: string
          maxLength: 150
        email:
          type: string
          format: email
          title: Email address
          maxLength: 254
        pending_email:
          type: string
          format: email
          readOnly: true
          nullable: true
          title: Pending email address awaiting verification
        is_email_verified:
          type: boolean
          readOnly: true
          nullable: true
        notification_settings:
          type: object
          additionalProperties: true
          description: Map of notification preferences. Keys include `plugin_disabled`, `all_weekly_report_disabled`, `project_weekly_digest_disabled`, `error_tracking_weekly_digest_project_enabled`, `web_analytics_weekly_digest_project_enabled`, `organization_member_join_email_disabled`, `data_pipeline_error_threshold` (number between 0.0 and 1.0), and other per-topic switches. Values are either booleans, or (for per-project/per-resource keys) a map of IDs to booleans. Only the keys you send are updated — other preferences stay as-is.
        anonymize_data:
          type: boolean
          nullable: true
          description: Whether PostHog should anonymize events captured for this user when identified.
        allow_impersonation:
          type: boolean
          nullable: true
        toolbar_mode:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/ToolbarModeEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        has_password:
          type: boolean
          readOnly: true
        id:
          type: integer
          readOnly: true
        is_staff:
          type: boolean
          title: Staff status
          description: Designates whether the user can log into this admin site.
        is_impersonated:
          type: boolean
          nullable: true
          readOnly: true
        is_impersonated_until:
          type: string
          nullable: true
          readOnly: true
        is_impersonated_read_only:
          type: boolean
          nullable: true
          readOnly: true
        sensitive_session_expires_at:
          type: string
          nullable: true
          readOnly: true
        team:
          allOf:
          - $ref: '#/components/schemas/TeamBasic'
          readOnly: true
        organization:
          allOf:
          - $ref: '#/components/schemas/Organization'
          readOnly: true
        organizations:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationBasic'
          readOnly: true
        set_current_organization:
          type: string
          writeOnly: true
        set_current_team:
          type: string
          writeOnly: true
        password:
          type: string
          writeOnly: true
          maxLength: 128
        current_password:
          type: string
          writeOnly: true
          description: The user's current password. Required when changing `password` if the user already has a usable password set.
        events_column_config: {}
        is_2fa_enabled:
          type: boolean
          readOnly: true
        has_social_auth:
          type: boolean
          readOnly: true
        has_sso_enforcement:
          type: boolean
          readOnly: true
        has_seen_product_intro_for:
          nullable: true
        scene_personalisation:
          type: array
          items:
            $ref: '#/components/schemas/ScenePersonalisationBasic'
          readOnly: true
        theme_mode:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/ThemeModeEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        hedgehog_config:
          nullable: true
        allow_sidebar_suggestions:
          type: boolean
          nullable: true
        shortcut_position:
          nullable: true
          oneOf:
          - $ref: '#/components/schemas/ShortcutPositionEnum'
          - $ref: '#/components/schemas/BlankEnum'
          - $ref: '#/components/schemas/NullEnum'
        role_at_organization:
          $ref: '#/components/schemas/RoleAtOrganizationEnum'
        passkeys_enabled_for_2fa:
          type: boolean
          nullable: true
          description: Whether passkeys are enabled for 2FA authentication. Users can disable this to use only TOTP for 2FA while keeping passkeys for login.
        is_organization_first_user:
          type: boolean
          nullable: true
          readOnly: true
        pending_invites:
          type: array
          items:
            $ref: '#/components/schemas/PendingInvite'
          readOnly: true
      required:
      - date_joined
      - distinct_id
      - email
      - has_password
      - has_social_auth
      - has_sso_enforcement
      - id
      - is_2fa_enabled
      - is_email_verified
      - is_impersonated
      - is_impersonated_read_only
      - is_impersonated_until
      - is_organization_first_user
      - organization
      - organizations
      - password
      - pending_email
      - pending_invites
      - scene_personalisation
      - sensitive_session_expires_at
      - team
      - uuid
    NullEnum:
      enum:
      - null
    TeamBasic:
      type: object
      description: 'Serializer for `Team` model with minimal attributes to speeed up loading and transfer times.

        Also used for nested serializers.'
      properties:
        id:
          type: integer
          readOnly: true
        uuid:
          type: string
          format: uuid
          readOnly: true
        organization:
          type: string
          format: uuid
          readOnly: true
        project_id:
          type: integer
          maximum: 9223372036854775807
          minimum: -9223372036854775808
          format: int64
          readOnly: true
        api_token:
          type: string
          readOnly: true
        name:
          type: string
          readOnly: true
        completed_snippet_onboarding:
          type: boolean
          readOnly: true
        has_completed_onboarding_for:
          readOnly: true
          nullable: true
        ingested_event:
          type: boolean
          readOnly: true
        is_demo:
          type: boolean
          readOnly: true
        timezone:
          allOf:
          - $r

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