Approval

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

Endpoints

GET
POST
GET
PATCH
DELETE

List all approval policies

Also available via the PostHog MCP server:

  • approval-policies-listList approval policies for the project.

Required API key scopes

approvals:read

Query parameters

  • limit
    integer
  • offset
    integer

Response


Example request

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

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",
"action_key": "string",
"conditions": null,
"approver_config": null,
"allow_self_approve": true,
"bypass_org_membership_levels": null,
"bypass_roles": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"expires_after": "string",
"enabled": 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"
}
]
}

Create approval policies

Required API key scopes

approvals:write

Request parameters

  • action_key
    string
  • conditions
  • approver_config
  • allow_self_approve
    boolean
  • bypass_org_membership_levels
  • bypass_roles
    array
  • expires_after
    string
  • enabled
    boolean

Response


Example request

POST /api/projects/:project_id/approval_policies
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/approval_policies/\
-d action_key="string",\
-d approver_config=undefined

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"action_key": "string",
"conditions": null,
"approver_config": null,
"allow_self_approve": true,
"bypass_org_membership_levels": null,
"bypass_roles": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"expires_after": "string",
"enabled": 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"
}

Retrieve approval policies

Required API key scopes

approvals:read

Path parameters

  • id
    string

Response


Example request

GET /api/projects/:project_id/approval_policies/: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/approval_policies/:id/

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"action_key": "string",
"conditions": null,
"approver_config": null,
"allow_self_approve": true,
"bypass_org_membership_levels": null,
"bypass_roles": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"expires_after": "string",
"enabled": 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"
}

Update approval policies

Required API key scopes

approvals:write

Path parameters

  • id
    string

Request parameters

  • action_key
    string
  • conditions
  • approver_config
  • allow_self_approve
    boolean
  • bypass_org_membership_levels
  • bypass_roles
    array
  • expires_after
    string
  • enabled
    boolean

Response


Example request

PATCH /api/projects/:project_id/approval_policies/: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/approval_policies/:id/\
-d action_key="string"

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"action_key": "string",
"conditions": null,
"approver_config": null,
"allow_self_approve": true,
"bypass_org_membership_levels": null,
"bypass_roles": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"expires_after": "string",
"enabled": 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"
}

Delete approval policies

Required API key scopes

approvals:write

Path parameters

  • id
    string

Example request

DELETE /api/projects/:project_id/approval_policies/: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/approval_policies/:id/

Example response

Status 204 No response body