Organizations

For instructions on how to authenticate to use this endpoint, see API overview.

Endpoints

PATCH
GET
POST
DELETE
POST
POST
GET
POST
GET
DELETE
GET
GET
PATCH
DELETE
GET
GET
GET
GET
POST

Update integrations environment mapping

ViewSet for organization-level integrations.

Provides access to integrations that are scoped to the entire organization (vs. project-level integrations). Examples include Vercel, AWS Marketplace, etc.

Creation is handled by the integration installation flows (e.g., Vercel marketplace installation). Users can disconnect integrations via the DELETE endpoint.

Path parameters

  • id
    string

Request parameters


    Response


    Example request

    PATCH /api/organizations/:organization_id/integrations/:id/environment-mapping
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl -X PATCH \
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/integrations/:id/environment-mapping/\
    -d kind=undefined

    Example response

    Status 200
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "kind": "vercel",
    "integration_id": "string",
    "config": null,
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z",
    "created_by": {
    "id": 0,
    "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
    "distinct_id": "string",
    "first_name": "string",
    "last_name": "string",
    "email": "user@example.com",
    "is_email_verified": true,
    "hedgehog_config": {},
    "role_at_organization": "engineering"
    }
    }

    List all invites

    Required API key scopes

    organization_member:read

    Query parameters

    • limit
      integer
    • offset
      integer

    Response


    Example request

    GET /api/organizations/:organization_id/invites
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl \
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/invites/

    Example response

    Status 200
    RESPONSE
    {
    "count": 123,
    "next": "http://api.example.org/accounts/?offset=400&limit=100",
    "previous": "http://api.example.org/accounts/?offset=200&limit=100",
    "results": [
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "target_email": "user@example.com",
    "first_name": "string",
    "emailing_attempt_made": true,
    "level": 1,
    "is_expired": true,
    "created_by": {
    "id": 0,
    "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
    "distinct_id": "string",
    "first_name": "string",
    "last_name": "string",
    "email": "user@example.com",
    "is_email_verified": true,
    "hedgehog_config": {},
    "role_at_organization": "engineering"
    },
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z",
    "message": "string",
    "private_project_access": null,
    "send_email": true,
    "combine_pending_invites": false
    }
    ]
    }

    Create invites

    Required API key scopes

    organization_member:write

    Request parameters

    • target_email
      string
    • first_name
      string
    • level
    • message
      stringnull
    • private_project_access
    • send_email
      boolean
      Default: true
    • combine_pending_invites
      boolean
      Default: false

    Response


    Example request

    POST /api/organizations/:organization_id/invites
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl
    -H 'Content-Type: application/json'\
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/invites/\
    -d target_email="string"

    Example response

    Status 201
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "target_email": "user@example.com",
    "first_name": "string",
    "emailing_attempt_made": true,
    "level": 1,
    "is_expired": true,
    "created_by": {
    "id": 0,
    "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
    "distinct_id": "string",
    "first_name": "string",
    "last_name": "string",
    "email": "user@example.com",
    "is_email_verified": true,
    "hedgehog_config": {},
    "role_at_organization": "engineering"
    },
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z",
    "message": "string",
    "private_project_access": null,
    "send_email": true,
    "combine_pending_invites": false
    }

    Delete invites

    Required API key scopes

    organization_member:write

    Path parameters

    • id
      string

    Example request

    DELETE /api/organizations/:organization_id/invites/:id
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl -X DELETE \
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/invites/:id/

    Example response

    Status 204 No response body

    Create invites bulk

    Required API key scopes

    organization_member:write

    Request parameters

    • target_email
      string
    • first_name
      string
    • level
    • message
      stringnull
    • private_project_access
    • send_email
      boolean
      Default: true
    • combine_pending_invites
      boolean
      Default: false

    Example request

    POST /api/organizations/:organization_id/invites/bulk
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl
    -H 'Content-Type: application/json'\
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/invites/bulk/\
    -d target_email="string"

    Example response

    Status 200 No response body

    Create invites delegate

    Create an onboarding delegation invite: an admin-level invite flagged as a setup delegation. Sends a single dedicated delegation email and records the inviting user as having delegated.

    Required API key scopes

    organization_member:write

    Request parameters

    • target_email
      string
    • message
      string
    • step_at_delegation
      string

    Response


    Example request

    POST /api/organizations/:organization_id/invites/delegate
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl
    -H 'Content-Type: application/json'\
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/invites/delegate/\
    -d target_email="string"

    Example response

    Status 200
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "target_email": "user@example.com",
    "first_name": "string",
    "emailing_attempt_made": true,
    "level": 1,
    "is_expired": true,
    "created_by": {
    "id": 0,
    "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
    "distinct_id": "string",
    "first_name": "string",
    "last_name": "string",
    "email": "user@example.com",
    "is_email_verified": true,
    "hedgehog_config": {},
    "role_at_organization": "engineering"
    },
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z",
    "message": "string",
    "private_project_access": null,
    "send_email": true,
    "combine_pending_invites": false
    }


    Create legal documents

    Required API key scopes

    legal_document:write

    Request parameters

    • document_type
    • company_name
      string
    • company_address
      string
    • representative_email
      string

    Response


    Example request

    POST /api/organizations/:organization_id/legal_documents
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl
    -H 'Content-Type: application/json'\
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/legal_documents/\
    -d document_type=undefined,\
    -d company_name="string",\
    -d company_address="string",\
    -d representative_email="string"

    Example response

    Status 201
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "document_type": "string",
    "company_name": "string",
    "representative_email": "string",
    "status": "string",
    "signed_pdf_stored": true,
    "created_by": {
    "first_name": "string",
    "email": "string"
    },
    "created_at": "2019-08-24T14:15:22Z"
    }




    List all members

    Required API key scopes

    organization_member:read

    Query parameters

    • email_domain
      string
    • levels
      string
    • limit
      integer
    • offset
      integer
    • order
      string
      One of: "-joined_at""joined_at"
    • outside_verified_domains
      boolean
    • search
      string

    Response


    Example request

    GET /api/organizations/:organization_id/members
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl \
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/members/

    Example response

    Status 200
    RESPONSE
    {
    "count": 123,
    "next": "http://api.example.org/accounts/?offset=400&limit=100",
    "previous": "http://api.example.org/accounts/?offset=200&limit=100",
    "results": [
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "user": {
    "id": 0,
    "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
    "distinct_id": "string",
    "first_name": "string",
    "last_name": "string",
    "email": "user@example.com",
    "is_email_verified": true,
    "hedgehog_config": {},
    "role_at_organization": "engineering"
    },
    "level": 1,
    "joined_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z",
    "is_2fa_enabled": true,
    "has_social_auth": true,
    "last_login": "2019-08-24T14:15:22Z",
    "search_match_type": "exact"
    }
    ]
    }

    Update members

    Required API key scopes

    organization_member:write

    Path parameters

    • user__uuid
      string

    Request parameters

    • level

    Response


    Example request

    PATCH /api/organizations/:organization_id/members/:user__uuid
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl -X PATCH \
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/members/:user__uuid/\
    -d user=undefined

    Example response

    Status 200
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "user": {
    "id": 0,
    "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
    "distinct_id": "string",
    "first_name": "string",
    "last_name": "string",
    "email": "user@example.com",
    "is_email_verified": true,
    "hedgehog_config": {},
    "role_at_organization": "engineering"
    },
    "level": 1,
    "joined_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z",
    "is_2fa_enabled": true,
    "has_social_auth": true,
    "last_login": "2019-08-24T14:15:22Z",
    "search_match_type": "exact"
    }

    Delete members

    Required API key scopes

    organization_member:write

    Path parameters

    • user__uuid
      string

    Example request

    DELETE /api/organizations/:organization_id/members/:user__uuid
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl -X DELETE \
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/members/:user__uuid/

    Example response

    Status 204 No response body

    Retrieve members github login

    Required API key scopes

    organization_member:read

    Path parameters

    • user__uuid
      string

    Response


    Example request

    GET /api/organizations/:organization_id/members/:user__uuid/github_login
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl \
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/members/:user__uuid/github_login/

    Example response

    Status 200
    RESPONSE
    {
    "github_login": "string"
    }

    Retrieve members scoped api keys

    Path parameters

    • user__uuid
      string

    Response


    Example request

    GET /api/organizations/:organization_id/members/:user__uuid/scoped_api_keys
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl \
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/members/:user__uuid/scoped_api_keys/

    Example response

    Status 200
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "user": {
    "id": 0,
    "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
    "distinct_id": "string",
    "first_name": "string",
    "last_name": "string",
    "email": "user@example.com",
    "is_email_verified": true,
    "hedgehog_config": {},
    "role_at_organization": "engineering"
    },
    "level": 1,
    "joined_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z",
    "is_2fa_enabled": true,
    "has_social_auth": true,
    "last_login": "2019-08-24T14:15:22Z",
    "search_match_type": "exact"
    }

    List all oauth applications

    ViewSet for listing OAuth applications at the organization level (read-only).

    Required API key scopes

    organization:read

    Query parameters

    • limit
      integer
    • offset
      integer

    Response


    Example request

    GET /api/organizations/:organization_id/oauth_applications
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl \
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/oauth_applications/

    Example response

    Status 200
    RESPONSE
    {
    "count": 123,
    "next": "http://api.example.org/accounts/?offset=400&limit=100",
    "previous": "http://api.example.org/accounts/?offset=200&limit=100",
    "results": [
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "name": "string",
    "client_id": "string",
    "redirect_uris_list": [
    "string"
    ],
    "is_verified": true,
    "created": "2019-08-24T14:15:22Z",
    "updated": "2019-08-24T14:15:22Z"
    }
    ]
    }

    List all organizations projects

    Projects for the current organization.

    Required API key scopes

    project:read

    Query parameters

    • limit
      integer
    • offset
      integer
    • search
      string

    Response


    Example request

    GET /api/organizations/:organization_id/projects
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl \
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/projects/

    Example response

    Status 200
    RESPONSE
    {
    "count": 123,
    "next": "http://api.example.org/accounts/?offset=400&limit=100",
    "previous": "http://api.example.org/accounts/?offset=200&limit=100",
    "results": [
    {
    "id": 0,
    "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
    "organization": "452c1a86-a0af-475b-b03f-724878b0f387",
    "project_id": 0,
    "api_token": "string",
    "name": "string",
    "completed_snippet_onboarding": true,
    "has_completed_onboarding_for": null,
    "ingested_event": true,
    "is_demo": true,
    "timezone": "Africa/Abidjan",
    "access_control": true
    }
    ]
    }

    Create organizations projects

    Projects for the current organization.

    Required API key scopes

    project:write

    Request parameters

    • name
      string
    • product_description
      stringnull
    • app_urls
      array
    • anonymize_ips
      boolean
    • completed_snippet_onboarding
      boolean
    • test_account_filters
    • test_account_filters_default_checked
      booleannull
    • path_cleaning_filters
    • is_demo
      boolean
    • timezone
    • data_attributes
    • person_display_name_properties
      arraynull
    • correlation_config
    • autocapture_opt_out
      booleannull
    • autocapture_exceptions_opt_in
      booleannull
    • autocapture_web_vitals_opt_in
      booleannull
    • autocapture_web_vitals_allowed_metrics
    • autocapture_exceptions_errors_to_ignore
    • capture_console_log_opt_in
      booleannull
    • capture_performance_opt_in
      booleannull
    • session_recording_opt_in
      boolean
    • session_recording_sample_rate
      stringnull
    • session_recording_minimum_duration_milliseconds
      integernull
    • session_recording_linked_flag
    • session_recording_network_payload_capture_config
    • session_recording_masking_config
    • session_recording_url_trigger_config
      arraynull
    • session_recording_url_blocklist_config
      arraynull
    • session_recording_event_trigger_config
      arraynull
    • session_recording_trigger_match_type_config
      stringnull
    • session_recording_trigger_groups
    • session_recording_retention_period
    • session_replay_config
    • survey_config
    • access_control
      boolean
    • week_start_day
    • primary_dashboard
      integernull
    • live_events_columns
      arraynull
    • recording_domains
      arraynull
    • inject_web_apps
      booleannull
    • extra_settings
    • modifiers
    • has_completed_onboarding_for
    • surveys_opt_in
      booleannull
    • heatmaps_opt_in
      booleannull
    • flags_persistence_default
      booleannull
    • receive_org_level_activity_logs
      booleannull
    • business_model
    • conversations_enabled
      booleannull
    • conversations_settings
    • logs_settings
    • proactive_tasks_enabled
      booleannull
    • revenue_analytics_config
    • marketing_analytics_config
    • customer_analytics_config
    • workflows_config
    • base_currency
    • capture_dead_clicks
      booleannull
    • cookieless_server_hash_mode
    • human_friendly_comparison_periods
      booleannull
    • feature_flag_confirmation_enabled
      booleannull
    • feature_flag_confirmation_message
      stringnull
    • default_evaluation_contexts_enabled
      booleannull
    • require_evaluation_contexts
      booleannull
    • default_data_theme
      integernull
    • onboarding_tasks
    • web_analytics_pre_aggregated_tables_enabled
      booleannull

    Response


    Example request

    POST /api/organizations/:organization_id/projects
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl
    -H 'Content-Type: application/json'\
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/organizations/:organization_id/projects/\
    -d organization="string"

    Example response

    Status 201
    RESPONSE
    {
    "id": 0,
    "organization": "452c1a86-a0af-475b-b03f-724878b0f387",
    "name": "string",
    "product_description": "string",
    "created_at": "2019-08-24T14:15:22Z",
    "effective_membership_level": 1,
    "has_group_types": true,
    "group_types": [
    {}
    ],
    "live_events_token": "string",
    "updated_at": "2019-08-24T14:15:22Z",
    "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
    "api_token": "string",
    "app_urls": [
    "string"
    ],
    "anonymize_ips": true,
    "completed_snippet_onboarding": true,
    "ingested_event": true,
    "test_account_filters": null,
    "test_account_filters_default_checked": true,
    "path_cleaning_filters": null,
    "is_demo": true,
    "timezone": "Africa/Abidjan",
    "data_attributes": null,
    "person_display_name_properties": [
    "string"
    ],
    "correlation_config": null,
    "autocapture_opt_out": true,
    "autocapture_exceptions_opt_in": true,
    "autocapture_web_vitals_opt_in": true,
    "autocapture_web_vitals_allowed_metrics": null,
    "autocapture_exceptions_errors_to_ignore": null,
    "capture_console_log_opt_in": true,
    "capture_performance_opt_in": true,
    "session_recording_opt_in": true,
    "session_recording_sample_rate": "string",
    "session_recording_minimum_duration_milliseconds": 30000,
    "session_recording_linked_flag": null,
    "session_recording_network_payload_capture_config": null,
    "session_recording_masking_config": null,
    "session_recording_url_trigger_config": [
    null
    ],
    "session_recording_url_blocklist_config": [
    null
    ],
    "session_recording_event_trigger_config": [
    "string"
    ],
    "session_recording_trigger_match_type_config": "string",
    "session_recording_trigger_groups": null,
    "session_recording_retention_period": "30d",
    "session_replay_config": null,
    "survey_config": null,
    "access_control": true,
    "week_start_day": 0,
    "primary_dashboard": 0,
    "live_events_columns": [
    "string"
    ],
    "recording_domains": [
    "string"
    ],
    "person_on_events_querying_enabled": true,
    "inject_web_apps": true,
    "extra_settings": null,
    "modifiers": null,
    "default_modifiers": {},
    "has_completed_onboarding_for": null,
    "surveys_opt_in": true,
    "heatmaps_opt_in": true,
    "product_intents": [
    {
    "product_type": "string",
    "created_at": "2019-08-24T14:15:22Z",
    "onboarding_completed_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z"
    }
    ],
    "flags_persistence_default": true,
    "secret_api_token": "string",
    "secret_api_token_backup": "string",
    "receive_org_level_activity_logs": true,
    "business_model": "b2b",
    "conversations_enabled": true,
    "conversations_settings": null,
    "logs_settings": null,
    "proactive_tasks_enabled": true,
    "available_setup_task_ids": [
    "ingest_first_event"
    ],
    "is_pending_deletion": true,
    "project_id": 0,
    "user_access_level": "string",
    "managed_viewsets": {
    "property1": true,
    "property2": true
    },
    "revenue_analytics_config": {
    "base_currency": "AED",
    "events": null,
    "filter_test_accounts": true
    },
    "marketing_analytics_config": {
    "sources_map": {
    "property1": {
    "ad_group_id": null,
    "ad_group_name": null,
    "ad_id": null,
    "ad_name": null,
    "campaign": null,
    "clicks": null,
    "cost": null,
    "currency": null,
    "date": null,
    "id": null,
    "impressions": null,
    "reported_conversion": null,
    "reported_conversion_value": null,
    "source": null
    },
    "property2": {
    "ad_group_id": null,
    "ad_group_name": null,
    "ad_id": null,
    "ad_name": null,
    "campaign": null,
    "clicks": null,
    "cost": null,
    "currency": null,
    "date": null,
    "id": null,
    "impressions": null,
    "reported_conversion": null,
    "reported_conversion_value": null,
    "source": null
    }
    },
    "conversion_goals": [
    {
    "conversion_goal_id": "string",
    "conversion_goal_name": "string",
    "counts_as_customer": null,
    "counts_as_revenue": null,
    "custom_name": null,
    "event": null,
    "kind": "EventsNode",
    "limit": null,
    "math": null,
    "math_group_type_index": null,
    "math_hogql": null,
    "math_multiplier": null,
    "math_property": null,
    "math_property_revenue_currency": null,
    "math_property_type": null,
    "name": "string",
    "optionalInFunnel": null,
    "orderBy": null,
    "properties": null,
    "response": null,
    "schema_map": {
    "property1": "string",
    "property2": "string"
    },
    "version": null
    }
    ],
    "attribution_window_days": 1,
    "attribution_mode": "first_touch",
    "campaign_name_mappings": {
    "property1": {
    "property1": [
    "string"
    ],
    "property2": [
    "string"
    ]
    },
    "property2": {
    "property1": [
    "string"
    ],
    "property2": [
    "string"
    ]
    }
    },
    "custom_source_mappings": {
    "property1": [
    "string"
    ],
    "property2": [
    "string"
    ]
    },
    "campaign_field_preferences": {
    "property1": {
    "match_field": "campaign_name"
    },
    "property2": {
    "match_field": "campaign_name"
    }
    }
    },
    "customer_analytics_config": {
    "activity_event": null,
    "signup_pageview_event": null,
    "signup_event": null,
    "subscription_event": null,
    "payment_event": null,
    "account_group_type_index": 0
    },
    "workflows_config": {
    "capture_workflows_engagement_events": true,
    "email_tracking_consent_mode": "off"
    },
    "base_currency": "AED",
    "capture_dead_clicks": true,
    "cookieless_server_hash_mode": 0,
    "human_friendly_comparison_periods": true,
    "feature_flag_confirmation_enabled": true,
    "feature_flag_confirmation_message": "string",
    "default_evaluation_contexts_enabled": true,
    "require_evaluation_contexts": true,
    "default_data_theme": -2147483648,
    "onboarding_tasks": null,
    "web_analytics_pre_aggregated_tables_enabled": true,
    "event_retention_months": 0,
    "events_retention_enforced": true
    }