Organizations

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

Endpoints

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

Update identity provider configs

Required API key scopes

organization:write

Path parameters

  • id
    string

Request parameters

  • name
    string
  • domain_scope
  • config_scope
  • organization_domain_ids
    array
  • oidc_issuer_url
  • oidc_client_id
    string
  • oidc_client_secret
    string
  • saml_entity_id
    string | null
  • saml_acs_url
    string | null
  • saml_x509_cert
    string | null
  • scim_enabled
    boolean
  • id_jag_issuer_url
    string | null
  • id_jag_jwks_url
    string | null
  • id_jag_allowed_clients
    array

Response


Example request

PATCH /api/organizations/:organization_id/identity_provider_configs/:id
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/identity_provider_configs/:id/\
-d name="string"

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"domain_scope": "all",
"config_scope": "saml",
"organization_domain_ids": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"has_saml": true,
"has_oidc": true,
"has_oidc_client_secret": true,
"oidc_issuer_url": "http://example.com",
"oidc_client_id": "string",
"oidc_client_secret": "string",
"saml_relay_state": "string",
"saml_entity_id": "string",
"saml_acs_url": "string",
"saml_x509_cert": "string",
"has_scim": true,
"scim_enabled": true,
"scim_base_url": "string",
"scim_bearer_token": "string",
"has_id_jag": true,
"id_jag_issuer_url": "string",
"id_jag_jwks_url": "string",
"id_jag_allowed_clients": [
"string"
]
}

Delete identity provider configs

Required API key scopes

organization:write

Path parameters

  • id
    string

Example request

DELETE /api/organizations/:organization_id/identity_provider_configs/: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/identity_provider_configs/:id/

Example response

Status 204 No response body

Retrieve identity provider configs scim logs

Path parameters

  • id
    string

Query parameters

  • after
    string
  • before
    string
  • page
    integer
  • page_size
    integer
  • search
    string
  • status_max
    integer
  • status_min
    integer

Response


Example request

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

Example response

Status 200
RESPONSE
{
"count": 0,
"next": "http://example.com",
"previous": "http://example.com",
"results": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"request_method": "string",
"request_path": "string",
"request_headers": null,
"request_body": null,
"response_status": 0,
"response_body": null,
"identity_provider": "string",
"duration_ms": 0,
"created_at": "2019-08-24T14:15:22Z"
}
]
}

Create identity provider configs scim token

Regenerate the SCIM bearer token for this IdP config.

Path parameters

  • id
    string

Response


Example request

POST /api/organizations/:organization_id/identity_provider_configs/:id/scim/token
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/identity_provider_configs/:id/scim/token/

Example response

Status 200
RESPONSE
{
"scim_enabled": true,
"scim_bearer_token": "string"
}

List all org organizations integrations

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.

Required API key scopes

organization_integration:read

Query parameters

  • limit
    integer
  • offset
    integer

Response


Example request

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

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",
"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"
}
}
]
}

Retrieve org organizations integrations

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.

Required API key scopes

organization_integration:read

Path parameters

  • id
    string

Response


Example request

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

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"
}
}

Delete org organization integrations

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.

Required API key scopes

organization_integration:write

Path parameters

  • id
    string

Example request

DELETE /api/organizations/:organization_id/integrations/: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/integrations/:id/

Example response

Status 204 No response body
Status 409 Deauthorization is blocked because the account has unpaid invoices.

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
      string | null
    • 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
      string | null
    • 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"
    }
    ]
    }