This endpoint returns a list of feature flags and their details like name
, key
, variants
, rollout_percentage
, and more.
To evaluate and determine the value of flags for a given user, use the decide
endpoint instead.
For instructions on how to authenticate to use this endpoint, see API overview.
Create, read, update and delete feature flags. See docs for more information on feature flags.
If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.
This endpoint returns a list of feature flags and their details like name
, key
, variants
, rollout_percentage
, and more.
To evaluate and determine the value of flags for a given user, use the decide
endpoint instead.
feature_flag:read
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
"false"
"true"
The User ID which initially created the feature flag.
Number of results to return per page.
The initial index from which to return the results.
Search by feature flag key or name. Case insensitive.
"boolean"
"experiment"
"multivariant"
GET
/api /projects /:project_id /feature_flags
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/feature_flags/
{"count": 123,"next": "https://api.example.org/accounts/?offset=400&limit=100","previous": "https://api.example.org/accounts/?offset=200&limit=100","results": [{"id": 0,"name": "string","key": "string","filters": {"property1": null,"property2": null},"deleted": true,"active": true,"created_by": {"id": 0,"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f","distinct_id": "string","first_name": "string","last_name": "string","is_email_verified": true,"hedgehog_config": {"property1": null,"property2": null}},"created_at": "2019-08-24T14:15:22Z","is_simple_flag": true,"rollout_percentage": 0,"ensure_experience_continuity": true,"experiment_set": [0],"surveys": {"property1": null,"property2": null},"features": {"property1": null,"property2": null},"rollback_conditions": null,"performed_rollback": true,"can_edit": true,"tags": [null],"usage_dashboard": 0,"analytics_dashboards": [0],"has_enriched_analytics": true,"user_access_level": "string","creation_context": "feature_flags"}]}
feature_flag:write
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
contains the description for the flag (field name name
is kept for backwards-compatibility)
Indicates the origin product of the feature flag. Choices: 'feature_flags', 'experiments', 'surveys', 'early_access_features', 'web_experiments'.
feature_flags
- feature_flagsexperiments
- experimentssurveys
- surveysearly_access_features
- early_access_featuresweb_experiments
- web_experimentsPOST
/api /projects /:project_id /feature_flags
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/projects/:project_id/feature_flags/\-d key="string"
{"id": 0,"name": "string","key": "string","filters": {"property1": null,"property2": null},"deleted": true,"active": true,"created_by": {"id": 0,"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f","distinct_id": "string","first_name": "string","last_name": "string","is_email_verified": true,"hedgehog_config": {"property1": null,"property2": null}},"created_at": "2019-08-24T14:15:22Z","is_simple_flag": true,"rollout_percentage": 0,"ensure_experience_continuity": true,"experiment_set": [0],"surveys": {"property1": null,"property2": null},"features": {"property1": null,"property2": null},"rollback_conditions": null,"performed_rollback": true,"can_edit": true,"tags": [null],"usage_dashboard": 0,"analytics_dashboards": [0],"has_enriched_analytics": true,"user_access_level": "string","creation_context": "feature_flags"}
feature_flag:read
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
Number of results to return per page.
The initial index from which to return the results.
GET
/api /projects /:project_id /feature_flags /:feature_flag_id /role_access
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/feature_flags/:feature_flag_id/role_access/
{"count": 123,"next": "https://api.example.org/accounts/?offset=400&limit=100","previous": "https://api.example.org/accounts/?offset=200&limit=100","results": [{"id": 0,"feature_flag": {"id": 0,"name": "string","key": "string","filters": {"property1": null,"property2": null},"deleted": true,"active": true,"created_by": {"id": 0,"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f","distinct_id": "string","first_name": "string","last_name": "string","is_email_verified": true,"hedgehog_config": {"property1": null,"property2": null}},"created_at": "2019-08-24T14:15:22Z","is_simple_flag": true,"rollout_percentage": 0,"ensure_experience_continuity": true,"experiment_set": [0],"surveys": {"property1": null,"property2": null},"features": {"property1": null,"property2": null},"rollback_conditions": null,"performed_rollback": true,"can_edit": true,"tags": [null],"usage_dashboard": 0,"analytics_dashboards": [0],"has_enriched_analytics": true,"user_access_level": "string","creation_context": "feature_flags"},"role": {"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08","name": "string","feature_flags_access_level": 21,"created_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","is_email_verified": true,"hedgehog_config": {"property1": null,"property2": null}},"members": "string"},"role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9","added_at": "2019-08-24T14:15:22Z","updated_at": "2019-08-24T14:15:22Z"}]}
feature_flag:write
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
POST
/api /projects /:project_id /feature_flags /:feature_flag_id /role_access
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/projects/:project_id/feature_flags/:feature_flag_id/role_access/\-d role_id="string"
{"id": 0,"feature_flag": {"id": 0,"name": "string","key": "string","filters": {"property1": null,"property2": null},"deleted": true,"active": true,"created_by": {"id": 0,"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f","distinct_id": "string","first_name": "string","last_name": "string","is_email_verified": true,"hedgehog_config": {"property1": null,"property2": null}},"created_at": "2019-08-24T14:15:22Z","is_simple_flag": true,"rollout_percentage": 0,"ensure_experience_continuity": true,"experiment_set": [0],"surveys": {"property1": null,"property2": null},"features": {"property1": null,"property2": null},"rollback_conditions": null,"performed_rollback": true,"can_edit": true,"tags": [null],"usage_dashboard": 0,"analytics_dashboards": [0],"has_enriched_analytics": true,"user_access_level": "string","creation_context": "feature_flags"},"role": {"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08","name": "string","feature_flags_access_level": 21,"created_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","is_email_verified": true,"hedgehog_config": {"property1": null,"property2": null}},"members": "string"},"role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9","added_at": "2019-08-24T14:15:22Z","updated_at": "2019-08-24T14:15:22Z"}
feature_flag:read
A unique integer value identifying this feature flag role access.
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
GET
/api /projects /:project_id /feature_flags /:feature_flag_id /role_access /:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/feature_flags/:feature_flag_id/role_access/:id/
{"id": 0,"feature_flag": {"id": 0,"name": "string","key": "string","filters": {"property1": null,"property2": null},"deleted": true,"active": true,"created_by": {"id": 0,"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f","distinct_id": "string","first_name": "string","last_name": "string","is_email_verified": true,"hedgehog_config": {"property1": null,"property2": null}},"created_at": "2019-08-24T14:15:22Z","is_simple_flag": true,"rollout_percentage": 0,"ensure_experience_continuity": true,"experiment_set": [0],"surveys": {"property1": null,"property2": null},"features": {"property1": null,"property2": null},"rollback_conditions": null,"performed_rollback": true,"can_edit": true,"tags": [null],"usage_dashboard": 0,"analytics_dashboards": [0],"has_enriched_analytics": true,"user_access_level": "string","creation_context": "feature_flags"},"role": {"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08","name": "string","feature_flags_access_level": 21,"created_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","is_email_verified": true,"hedgehog_config": {"property1": null,"property2": null}},"members": "string"},"role_id": "ac4e70c8-d5be-48af-93eb-760f58fc91a9","added_at": "2019-08-24T14:15:22Z","updated_at": "2019-08-24T14:15:22Z"}
feature_flag:write
A unique integer value identifying this feature flag role access.
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
DELETE
/api /projects /:project_id /feature_flags /:feature_flag_id /role_access /:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl -X DELETE \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/feature_flags/:feature_flag_id/role_access/:id/
This endpoint returns a feature flag and its details like name
, key
, variants
, rollout_percentage
, and more.
To evaluate and determine the value of a flag for a given user, use the decide
endpoint instead.
feature_flag:read
A unique integer value identifying this feature flag.
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
GET
/api /projects /:project_id /feature_flags /:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/feature_flags/:id/
{"id": 0,"name": "string","key": "string","filters": {"property1": null,"property2": null},"deleted": true,"active": true,"created_by": {"id": 0,"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f","distinct_id": "string","first_name": "string","last_name": "string","is_email_verified": true,"hedgehog_config": {"property1": null,"property2": null}},"created_at": "2019-08-24T14:15:22Z","is_simple_flag": true,"rollout_percentage": 0,"ensure_experience_continuity": true,"experiment_set": [0],"surveys": {"property1": null,"property2": null},"features": {"property1": null,"property2": null},"rollback_conditions": null,"performed_rollback": true,"can_edit": true,"tags": [null],"usage_dashboard": 0,"analytics_dashboards": [0],"has_enriched_analytics": true,"user_access_level": "string","creation_context": "feature_flags"}
feature_flag:write
A unique integer value identifying this feature flag.
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
contains the description for the flag (field name name
is kept for backwards-compatibility)
Indicates the origin product of the feature flag. Choices: 'feature_flags', 'experiments', 'surveys', 'early_access_features', 'web_experiments'.
feature_flags
- feature_flagsexperiments
- experimentssurveys
- surveysearly_access_features
- early_access_featuresweb_experiments
- web_experimentsPATCH
/api /projects /:project_id /feature_flags /:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl -X PATCH \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/feature_flags/:id/\-d name="string"
{"id": 0,"name": "string","key": "string","filters": {"property1": null,"property2": null},"deleted": true,"active": true,"created_by": {"id": 0,"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f","distinct_id": "string","first_name": "string","last_name": "string","is_email_verified": true,"hedgehog_config": {"property1": null,"property2": null}},"created_at": "2019-08-24T14:15:22Z","is_simple_flag": true,"rollout_percentage": 0,"ensure_experience_continuity": true,"experiment_set": [0],"surveys": {"property1": null,"property2": null},"features": {"property1": null,"property2": null},"rollback_conditions": null,"performed_rollback": true,"can_edit": true,"tags": [null],"usage_dashboard": 0,"analytics_dashboards": [0],"has_enriched_analytics": true,"user_access_level": "string","creation_context": "feature_flags"}
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true
feature_flag:write
A unique integer value identifying this feature flag.
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
DELETE
/api /projects /:project_id /feature_flags /:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl -X DELETE \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/feature_flags/:id/
A unique integer value identifying this feature flag.
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
GET
/api /projects /:project_id /feature_flags /:id /access_controls
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/feature_flags/:id/access_controls/
{"id": 0,"name": "string","key": "string","filters": {"property1": null,"property2": null},"deleted": true,"active": true,"created_by": {"id": 0,"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f","distinct_id": "string","first_name": "string","last_name": "string","is_email_verified": true,"hedgehog_config": {"property1": null,"property2": null}},"created_at": "2019-08-24T14:15:22Z","is_simple_flag": true,"rollout_percentage": 0,"ensure_experience_continuity": true,"experiment_set": [0],"surveys": {"property1": null,"property2": null},"features": {"property1": null,"property2": null},"rollback_conditions": null,"performed_rollback": true,"can_edit": true,"tags": [null],"usage_dashboard": 0,"analytics_dashboards": [0],"has_enriched_analytics": true,"user_access_level": "string","creation_context": "feature_flags"}
activity_log:read
A unique integer value identifying this feature flag.
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
GET
/api /projects /:project_id /feature_flags /:id /activity
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/feature_flags/:id/activity/
A unique integer value identifying this feature flag.
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
contains the description for the flag (field name name
is kept for backwards-compatibility)
Indicates the origin product of the feature flag. Choices: 'feature_flags', 'experiments', 'surveys', 'early_access_features', 'web_experiments'.
feature_flags
- feature_flagsexperiments
- experimentssurveys
- surveysearly_access_features
- early_access_featuresweb_experiments
- web_experimentsPOST
/api /projects /:project_id /feature_flags /:id /create_static_cohort_for_flag
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/projects/:project_id/feature_flags/:id/create_static_cohort_for_flag/\-d key="string"
A unique integer value identifying this feature flag.
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
contains the description for the flag (field name name
is kept for backwards-compatibility)
Indicates the origin product of the feature flag. Choices: 'feature_flags', 'experiments', 'surveys', 'early_access_features', 'web_experiments'.
feature_flags
- feature_flagsexperiments
- experimentssurveys
- surveysearly_access_features
- early_access_featuresweb_experiments
- web_experimentsPOST
/api /projects /:project_id /feature_flags /:id /dashboard
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/projects/:project_id/feature_flags/:id/dashboard/\-d key="string"
A unique integer value identifying this feature flag.
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
contains the description for the flag (field name name
is kept for backwards-compatibility)
Indicates the origin product of the feature flag. Choices: 'feature_flags', 'experiments', 'surveys', 'early_access_features', 'web_experiments'.
feature_flags
- feature_flagsexperiments
- experimentssurveys
- surveysearly_access_features
- early_access_featuresweb_experiments
- web_experimentsPOST
/api /projects /:project_id /feature_flags /:id /enrich_usage_dashboard
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/projects/:project_id/feature_flags/:id/enrich_usage_dashboard/\-d key="string"
A unique integer value identifying this feature flag.
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
GET
/api /projects /:project_id /feature_flags /:id /global_access_controls
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/feature_flags/:id/global_access_controls/
{"id": 0,"name": "string","key": "string","filters": {"property1": null,"property2": null},"deleted": true,"active": true,"created_by": {"id": 0,"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f","distinct_id": "string","first_name": "string","last_name": "string","is_email_verified": true,"hedgehog_config": {"property1": null,"property2": null}},"created_at": "2019-08-24T14:15:22Z","is_simple_flag": true,"rollout_percentage": 0,"ensure_experience_continuity": true,"experiment_set": [0],"surveys": {"property1": null,"property2": null},"features": {"property1": null,"property2": null},"rollback_conditions": null,"performed_rollback": true,"can_edit": true,"tags": [null],"usage_dashboard": 0,"analytics_dashboards": [0],"has_enriched_analytics": true,"user_access_level": "string","creation_context": "feature_flags"}
activity_log:read
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
GET
/api /projects /:project_id /feature_flags /activity
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/feature_flags/activity/
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.
GET
/api /projects /:project_id /feature_flags /evaluation_reasons
export POSTHOG_PERSONAL_API_KEY=[your personal api key]curl \-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \<ph_app_host>/api/projects/:project_id/feature_flags/evaluation_reasons/