Organizations

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

Endpoints

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

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": [
{}
],
"projects": [
{}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": {
"property1": "string",
"property2": "string"
},
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_create_projects": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": 0,
"is_ai_data_processing_approved": true,
"is_ai_training_opted_in": true,
"is_ai_training_locked": true,
"is_ai_training_cta_shown": true,
"is_hipaa": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string",
"is_pending_deletion": true
}
]
}

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": [
{}
],
"projects": [
{}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": {
"property1": "string",
"property2": "string"
},
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_create_projects": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": 0,
"is_ai_data_processing_approved": true,
"is_ai_training_opted_in": true,
"is_ai_training_locked": true,
"is_ai_training_cta_shown": true,
"is_hipaa": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string",
"is_pending_deletion": true
}
]
}

Create

Required API key scopes

organization:write

Request parameters

  • name
    string
  • logo_media_id
    stringnull
  • enforce_2fa
    booleannull
  • members_can_invite
    booleannull
  • members_can_create_projects
    booleannull
  • members_can_use_personal_api_keys
    boolean
  • allow_publicly_shared_resources
    boolean
  • is_ai_data_processing_approved
    booleannull
  • is_ai_training_opted_in
    booleannull
  • default_experiment_stats_method
  • default_anonymize_ips
    boolean
  • default_role_id
    stringnull

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": [
{}
],
"projects": [
{}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": {
"property1": "string",
"property2": "string"
},
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_create_projects": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": 0,
"is_ai_data_processing_approved": true,
"is_ai_training_opted_in": true,
"is_ai_training_locked": true,
"is_ai_training_cta_shown": true,
"is_hipaa": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string",
"is_pending_deletion": true
}

Create

Required API key scopes

organization:write

Request parameters

  • name
    string
  • logo_media_id
    stringnull
  • enforce_2fa
    booleannull
  • members_can_invite
    booleannull
  • members_can_create_projects
    booleannull
  • members_can_use_personal_api_keys
    boolean
  • allow_publicly_shared_resources
    boolean
  • is_ai_data_processing_approved
    booleannull
  • is_ai_training_opted_in
    booleannull
  • default_experiment_stats_method
  • default_anonymize_ips
    boolean
  • default_role_id
    stringnull

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": [
{}
],
"projects": [
{}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": {
"property1": "string",
"property2": "string"
},
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_create_projects": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": 0,
"is_ai_data_processing_approved": true,
"is_ai_training_opted_in": true,
"is_ai_training_locked": true,
"is_ai_training_cta_shown": true,
"is_hipaa": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string",
"is_pending_deletion": true
}

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": [
{}
],
"projects": [
{}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": {
"property1": "string",
"property2": "string"
},
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_create_projects": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": 0,
"is_ai_data_processing_approved": true,
"is_ai_training_opted_in": true,
"is_ai_training_locked": true,
"is_ai_training_cta_shown": true,
"is_hipaa": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string",
"is_pending_deletion": true
}

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": [
{}
],
"projects": [
{}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": {
"property1": "string",
"property2": "string"
},
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_create_projects": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": 0,
"is_ai_data_processing_approved": true,
"is_ai_training_opted_in": true,
"is_ai_training_locked": true,
"is_ai_training_cta_shown": true,
"is_hipaa": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string",
"is_pending_deletion": true
}

Update partial

Required API key scopes

organization:write

Path parameters

  • id
    string

Request parameters

  • name
    string
  • logo_media_id
    stringnull
  • enforce_2fa
    booleannull
  • members_can_invite
    booleannull
  • members_can_create_projects
    booleannull
  • members_can_use_personal_api_keys
    boolean
  • allow_publicly_shared_resources
    boolean
  • is_ai_data_processing_approved
    booleannull
  • is_ai_training_opted_in
    booleannull
  • default_experiment_stats_method
  • default_anonymize_ips
    boolean
  • default_role_id
    stringnull

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": [
{}
],
"projects": [
{}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": {
"property1": "string",
"property2": "string"
},
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_create_projects": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": 0,
"is_ai_data_processing_approved": true,
"is_ai_training_opted_in": true,
"is_ai_training_locked": true,
"is_ai_training_cta_shown": true,
"is_hipaa": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string",
"is_pending_deletion": true
}

Update partial

Required API key scopes

organization:write

Path parameters

  • id
    string

Request parameters

  • name
    string
  • logo_media_id
    stringnull
  • enforce_2fa
    booleannull
  • members_can_invite
    booleannull
  • members_can_create_projects
    booleannull
  • members_can_use_personal_api_keys
    boolean
  • allow_publicly_shared_resources
    boolean
  • is_ai_data_processing_approved
    booleannull
  • is_ai_training_opted_in
    booleannull
  • default_experiment_stats_method
  • default_anonymize_ips
    boolean
  • default_role_id
    stringnull

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": [
{}
],
"projects": [
{}
],
"available_product_features": [
null
],
"is_member_join_email_enabled": true,
"metadata": {
"property1": "string",
"property2": "string"
},
"customer_id": "string",
"enforce_2fa": true,
"members_can_invite": true,
"members_can_create_projects": true,
"members_can_use_personal_api_keys": true,
"allow_publicly_shared_resources": true,
"member_count": 0,
"is_ai_data_processing_approved": true,
"is_ai_training_opted_in": true,
"is_ai_training_locked": true,
"is_ai_training_cta_shown": true,
"is_hipaa": true,
"default_experiment_stats_method": "bayesian",
"default_anonymize_ips": true,
"default_role_id": "string",
"is_active": true,
"is_not_active_reason": "string",
"is_pending_deletion": true
}

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

List all cimd verification tokens

Manage CIMD verification tokens for an organization.

A partner embeds the plaintext token in their CIMD metadata document under posthog_verification_token. When PostHog fetches the metadata, matching the token links the partner app to this organization and grants a higher default rate limit for account provisioning.

The plaintext value is only available on creation; we store a hash.

Required API key scopes

organization:read

Query parameters

  • limit
    integer
  • offset
    integer

Response


Example request

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

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",
"label": "string",
"mask_value": "string",
"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",
"last_used_at": "2019-08-24T14:15:22Z"
}
]
}

Create cimd verification tokens

Manage CIMD verification tokens for an organization.

A partner embeds the plaintext token in their CIMD metadata document under posthog_verification_token. When PostHog fetches the metadata, matching the token links the partner app to this organization and grants a higher default rate limit for account provisioning.

The plaintext value is only available on creation; we store a hash.

Required API key scopes

organization:write

Request parameters

  • label
    string

Response


Example request

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

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"label": "string",
"mask_value": "string",
"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",
"last_used_at": "2019-08-24T14:15:22Z",
"value": "string"
}

Retrieve cimd verification tokens

Manage CIMD verification tokens for an organization.

A partner embeds the plaintext token in their CIMD metadata document under posthog_verification_token. When PostHog fetches the metadata, matching the token links the partner app to this organization and grants a higher default rate limit for account provisioning.

The plaintext value is only available on creation; we store a hash.

Required API key scopes

organization:read

Path parameters

  • id
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"label": "string",
"mask_value": "string",
"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",
"last_used_at": "2019-08-24T14:15:22Z"
}

Delete cimd verification tokens

Manage CIMD verification tokens for an organization.

A partner embeds the plaintext token in their CIMD metadata document under posthog_verification_token. When PostHog fetches the metadata, matching the token links the partner app to this organization and grants a higher default rate limit for account provisioning.

The plaintext value is only available on creation; we store a hash.

Required API key scopes

organization:write

Path parameters

  • id
    string

Example request

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

Example response

Status 204 No response body

List all domains

Required API key scopes

organization:read

Query parameters

  • limit
    integer
  • offset
    integer

Response


Example request

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

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",
"is_verified": true,
"verified_at": "2019-08-24T14:15:22Z",
"verification_challenge": "string",
"jit_provisioning_enabled": true,
"sso_enforcement": "string",
"has_saml": true,
"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"
}
]
}

Create domains

Required API key scopes

organization:write

Request parameters

  • domain
    string
  • jit_provisioning_enabled
    boolean
  • sso_enforcement
    string
  • saml_entity_id
    stringnull
  • saml_acs_url
    stringnull
  • saml_x509_cert
    stringnull
  • scim_enabled
    boolean

Response


Example request

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

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"domain": "string",
"is_verified": true,
"verified_at": "2019-08-24T14:15:22Z",
"verification_challenge": "string",
"jit_provisioning_enabled": true,
"sso_enforcement": "string",
"has_saml": true,
"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"
}

Retrieve domains

Required API key scopes

organization:read

Path parameters

  • id
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"domain": "string",
"is_verified": true,
"verified_at": "2019-08-24T14:15:22Z",
"verification_challenge": "string",
"jit_provisioning_enabled": true,
"sso_enforcement": "string",
"has_saml": true,
"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"
}

Community questions

Questions about this page? or post a community question.