Organizations

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

Endpoints

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

Retrieve

Required API key scopes

organization:read

Query parameters

  • limit
    integer
  • offset
    integer

Response


Example request

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

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",
"slug": "string",
"logo_media_id": "a5d9f2f1-d934-4d2e-bebe-4b3cdcd08a33",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"membership_level": 1,
"plugins_access_level": 0,
"teams": [
{
"property1": null,
"property2": null
}
],
"projects": [
{
"property1": null,
"property2": null
}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": "string",
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": "string",
"is_ai_data_processing_approved": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string"
}
]
}

Retrieve

Required API key scopes

organization:read

Query parameters

  • limit
    integer
  • offset
    integer

Response


Example request

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

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",
"slug": "string",
"logo_media_id": "a5d9f2f1-d934-4d2e-bebe-4b3cdcd08a33",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"membership_level": 1,
"plugins_access_level": 0,
"teams": [
{
"property1": null,
"property2": null
}
],
"projects": [
{
"property1": null,
"property2": null
}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": "string",
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": "string",
"is_ai_data_processing_approved": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string"
}
]
}

Create

Required API key scopes

organization:write

Request parameters

  • name
    string
  • logo_media_id
    string
  • is_member_join_email_enabled
    boolean
  • enforce_2fa
    boolean
  • members_can_invite
    boolean
  • members_can_use_personal_api_keys
    boolean
  • allow_publicly_shared_resources
    boolean
  • is_ai_data_processing_approved
    boolean
  • default_experiment_stats_method
  • default_anonymize_ips
    boolean
  • default_role_id
    string

Response


Example request

POST /api/organizations
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/\
-d name="string"

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"slug": "string",
"logo_media_id": "a5d9f2f1-d934-4d2e-bebe-4b3cdcd08a33",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"membership_level": 1,
"plugins_access_level": 0,
"teams": [
{
"property1": null,
"property2": null
}
],
"projects": [
{
"property1": null,
"property2": null
}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": "string",
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": "string",
"is_ai_data_processing_approved": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string"
}

Create

Required API key scopes

organization:write

Request parameters

  • name
    string
  • logo_media_id
    string
  • is_member_join_email_enabled
    boolean
  • enforce_2fa
    boolean
  • members_can_invite
    boolean
  • members_can_use_personal_api_keys
    boolean
  • allow_publicly_shared_resources
    boolean
  • is_ai_data_processing_approved
    boolean
  • default_experiment_stats_method
  • default_anonymize_ips
    boolean
  • default_role_id
    string

Response


Example request

POST /api/organizations
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/\
-d name="string"

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"slug": "string",
"logo_media_id": "a5d9f2f1-d934-4d2e-bebe-4b3cdcd08a33",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"membership_level": 1,
"plugins_access_level": 0,
"teams": [
{
"property1": null,
"property2": null
}
],
"projects": [
{
"property1": null,
"property2": null
}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": "string",
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": "string",
"is_ai_data_processing_approved": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string"
}

Retrieve

Required API key scopes

organization:read

Path parameters

  • id
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"slug": "string",
"logo_media_id": "a5d9f2f1-d934-4d2e-bebe-4b3cdcd08a33",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"membership_level": 1,
"plugins_access_level": 0,
"teams": [
{
"property1": null,
"property2": null
}
],
"projects": [
{
"property1": null,
"property2": null
}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": "string",
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": "string",
"is_ai_data_processing_approved": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string"
}

Retrieve

Required API key scopes

organization:read

Path parameters

  • id
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"slug": "string",
"logo_media_id": "a5d9f2f1-d934-4d2e-bebe-4b3cdcd08a33",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"membership_level": 1,
"plugins_access_level": 0,
"teams": [
{
"property1": null,
"property2": null
}
],
"projects": [
{
"property1": null,
"property2": null
}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": "string",
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": "string",
"is_ai_data_processing_approved": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string"
}

Update partial

Required API key scopes

organization:write

Path parameters

  • id
    string

Request parameters

  • name
    string
  • logo_media_id
    string
  • is_member_join_email_enabled
    boolean
  • enforce_2fa
    boolean
  • members_can_invite
    boolean
  • members_can_use_personal_api_keys
    boolean
  • allow_publicly_shared_resources
    boolean
  • is_ai_data_processing_approved
    boolean
  • default_experiment_stats_method
  • default_anonymize_ips
    boolean
  • default_role_id
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"slug": "string",
"logo_media_id": "a5d9f2f1-d934-4d2e-bebe-4b3cdcd08a33",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"membership_level": 1,
"plugins_access_level": 0,
"teams": [
{
"property1": null,
"property2": null
}
],
"projects": [
{
"property1": null,
"property2": null
}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": "string",
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": "string",
"is_ai_data_processing_approved": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string"
}

Update partial

Required API key scopes

organization:write

Path parameters

  • id
    string

Request parameters

  • name
    string
  • logo_media_id
    string
  • is_member_join_email_enabled
    boolean
  • enforce_2fa
    boolean
  • members_can_invite
    boolean
  • members_can_use_personal_api_keys
    boolean
  • allow_publicly_shared_resources
    boolean
  • is_ai_data_processing_approved
    boolean
  • default_experiment_stats_method
  • default_anonymize_ips
    boolean
  • default_role_id
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"slug": "string",
"logo_media_id": "a5d9f2f1-d934-4d2e-bebe-4b3cdcd08a33",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"membership_level": 1,
"plugins_access_level": 0,
"teams": [
{
"property1": null,
"property2": null
}
],
"projects": [
{
"property1": null,
"property2": null
}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": "string",
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": "string",
"is_ai_data_processing_approved": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string"
}

Delete

Required API key scopes

organization:write

Path parameters

  • id
    string

Example request

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

Example response

Status 204 No response body

Delete

Required API key scopes

organization:write

Path parameters

  • id
    string

Example request

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

Example response

Status 204 No response body

Create rollback

Trigger environments rollback migration for users previously on multi-environment projects. The request data should be a mapping of source environment IDs to target environment IDs. Example: { "2": 2, "116911": 2, "99346": 99346, "140256": 99346 }

Path parameters

  • id
    string

Request parameters

  • name
    string
  • logo_media_id
    string
  • is_member_join_email_enabled
    boolean
  • enforce_2fa
    boolean
  • members_can_invite
    boolean
  • members_can_use_personal_api_keys
    boolean
  • allow_publicly_shared_resources
    boolean
  • is_ai_data_processing_approved
    boolean
  • default_experiment_stats_method
  • default_anonymize_ips
    boolean
  • default_role_id
    string

Response


Example request

POST /api/organizations/:id/environments_rollback
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/:id/environments_rollback/\
-d name="string"

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"slug": "string",
"logo_media_id": "a5d9f2f1-d934-4d2e-bebe-4b3cdcd08a33",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"membership_level": 1,
"plugins_access_level": 0,
"teams": [
{
"property1": null,
"property2": null
}
],
"projects": [
{
"property1": null,
"property2": null
}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": "string",
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": "string",
"is_ai_data_processing_approved": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string"
}

List all integrations list

ViewSet for organization-level integrations.

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

This is read-only. Creation is handled by the integration installation flows (e.g., Vercel marketplace installation). Deletion requires contacting support due to billing implications.

Required API key scopes

organization_integration:read

Path parameters

  • organization_id
    string

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": {
"property1": null,
"property2": null
},
"role_at_organization": "engineering"
}
}
]
}

Retrieve integrations retrieve

ViewSet for organization-level integrations.

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

This is read-only. Creation is handled by the integration installation flows (e.g., Vercel marketplace installation). Deletion requires contacting support due to billing implications.

Required API key scopes

organization_integration:read

Path parameters

  • id
    string
  • organization_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": {
"property1": null,
"property2": null
},
"role_at_organization": "engineering"
}
}

List all proxy records

Required API key scopes

organization:read

Path parameters

  • organization_id
    string

Query parameters

  • limit
    integer
  • offset
    integer

Response


Example request

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

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",
"domain": "string",
"target_cname": "string",
"status": "waiting",
"message": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"created_by": 0
}
]
}

Create proxy records

Required API key scopes

organization:write

Path parameters

  • organization_id
    string

Request parameters

  • domain
    string

Response


Example request

POST /api/organizations/:organization_id/proxy_records
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/proxy_records/\
-d domain="string"

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"domain": "string",
"target_cname": "string",
"status": "waiting",
"message": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"created_by": 0
}

Retrieve proxy records

Required API key scopes

organization:read

Path parameters

  • id
    string
  • organization_id
    string

Response


Example request

GET /api/organizations/:organization_id/proxy_records/: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/proxy_records/:id/

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"domain": "string",
"target_cname": "string",
"status": "waiting",
"message": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"created_by": 0
}

Update proxy records

Required API key scopes

organization:write

Path parameters

  • id
    string
  • organization_id
    string

Request parameters

  • domain
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"domain": "string",
"target_cname": "string",
"status": "waiting",
"message": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"created_by": 0
}
Next page →

Community questions

Questions about this page? or post a community question.