PostHog · Capability

PostHog API — platform_features

PostHog API — platform_features. 47 operations. Lead operation: platform_features. Self-contained Naftiko capability covering one Posthog business surface.

Run with Naftiko Posthogplatform_features

What You Can Do

GET
Approvalpolicieslist — approvalpolicieslist
/v1/api/environments/{project-id}/approval-policies
POST
Approvalpoliciescreate — approvalpoliciescreate
/v1/api/environments/{project-id}/approval-policies
GET
Approvalpoliciesretrieve — approvalpoliciesretrieve
/v1/api/environments/{project-id}/approval-policies/{id}
PUT
Approvalpoliciesupdate — approvalpoliciesupdate
/v1/api/environments/{project-id}/approval-policies/{id}
PATCH
Approvalpoliciespartialupdate — approvalpoliciespartialupdate
/v1/api/environments/{project-id}/approval-policies/{id}
DELETE
Approvalpoliciesdestroy — approvalpoliciesdestroy
/v1/api/environments/{project-id}/approval-policies/{id}
GET
Changerequestslist — changerequestslist
/v1/api/environments/{project-id}/change-requests
GET
Changerequestsretrieve — changerequestsretrieve
/v1/api/environments/{project-id}/change-requests/{id}
POST
Changerequestsapprovecreate — Approve a change request.
/v1/api/environments/{project-id}/change-requests/{id}/approve
POST
Changerequestscancelcreate — Cancel a change request.
/v1/api/environments/{project-id}/change-requests/{id}/cancel
POST
Changerequestsrejectcreate — Reject a change request.
/v1/api/environments/{project-id}/change-requests/{id}/reject
GET
List — list
/v1/api/organizations
POST
Create — create
/v1/api/organizations
GET
Retrieve — retrieve
/v1/api/organizations/{id}
PUT
Update — update
/v1/api/organizations/{id}
PATCH
Partialupdate — partialupdate
/v1/api/organizations/{id}
DELETE
Destroy — destroy
/v1/api/organizations/{id}
GET
Memberslist — memberslist
/v1/api/organizations/{organization-id}/members
PUT
Membersupdate — membersupdate
/v1/api/organizations/{organization-id}/members/{user-uuid}
PATCH
Memberspartialupdate — memberspartialupdate
/v1/api/organizations/{organization-id}/members/{user-uuid}
DELETE
Membersdestroy — membersdestroy
/v1/api/organizations/{organization-id}/members/{user-uuid}
GET
Membersscopedapikeysretrieve — membersscopedapikeysretrieve
/v1/api/organizations/{organization-id}/members/{user-uuid}/scoped-api-keys
GET
Roleslist — roleslist
/v1/api/organizations/{organization-id}/roles
POST
Rolescreate — rolescreate
/v1/api/organizations/{organization-id}/roles
GET
Rolesretrieve — rolesretrieve
/v1/api/organizations/{organization-id}/roles/{id}
PUT
Rolesupdate — rolesupdate
/v1/api/organizations/{organization-id}/roles/{id}
PATCH
Rolespartialupdate — rolespartialupdate
/v1/api/organizations/{organization-id}/roles/{id}
DELETE
Rolesdestroy — rolesdestroy
/v1/api/organizations/{organization-id}/roles/{id}
GET
Rolesrolemembershipslist — rolesrolemembershipslist
/v1/api/organizations/{organization-id}/roles/{role-id}/role-memberships
POST
Rolesrolemembershipscreate — rolesrolemembershipscreate
/v1/api/organizations/{organization-id}/roles/{role-id}/role-memberships
GET
Rolesrolemembershipsretrieve — rolesrolemembershipsretrieve
/v1/api/organizations/{organization-id}/roles/{role-id}/role-memberships/{id}
DELETE
Rolesrolemembershipsdestroy — rolesrolemembershipsdestroy
/v1/api/organizations/{organization-id}/roles/{role-id}/role-memberships/{id}
GET
Welcomecurrentretrieve — Aggregated payload for the invited-user welcome screen.
/v1/api/organizations/{organization-id}/welcome/current
GET
Activityloglist — activityloglist
/v1/api/projects/{project-id}/activity-log
GET
Advancedactivitylogslist — advancedactivitylogslist
/v1/api/projects/{project-id}/advanced-activity-logs
GET
Advancedactivitylogsavailablefiltersretrieve — advancedactivitylogsavailablefiltersretrieve
/v1/api/projects/{project-id}/advanced-activity-logs/available-filters
POST
Advancedactivitylogsexportcreate — advancedactivitylogsexportcreate
/v1/api/projects/{project-id}/advanced-activity-logs/export
GET
Commentslist — commentslist
/v1/api/projects/{project-id}/comments
POST
Commentscreate — commentscreate
/v1/api/projects/{project-id}/comments
GET
Commentscountretrieve — commentscountretrieve
/v1/api/projects/{project-id}/comments/count
GET
Commentsretrieve — commentsretrieve
/v1/api/projects/{project-id}/comments/{id}
PUT
Commentsupdate — commentsupdate
/v1/api/projects/{project-id}/comments/{id}
PATCH
Commentspartialupdate — commentspartialupdate
/v1/api/projects/{project-id}/comments/{id}
DELETE
Commentsdestroy — Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true
/v1/api/projects/{project-id}/comments/{id}
GET
Commentsthreadretrieve — commentsthreadretrieve
/v1/api/projects/{project-id}/comments/{id}/thread
GET
Userhomesettingsretrieve — Get the authenticated user's pinned sidebar tabs and configured homepage for the current team. Pass `@me` as the UUID.
/v1/api/user-home-settings/{uuid}
PATCH
Userhomesettingspartialupdate — Update the authenticated user's pinned sidebar tabs and/or homepage for the current team. Pass `@me` as the UUID. Send `tabs` to replace the pinned tab list, `homepage` to set the home destination (any PostHog URL — dashboard, insight, sear
/v1/api/user-home-settings/{uuid}

MCP Tools

approvalpolicieslist

approvalpolicieslist

read-only idempotent
approvalpoliciescreate

approvalpoliciescreate

approvalpoliciesretrieve

approvalpoliciesretrieve

read-only idempotent
approvalpoliciesupdate

approvalpoliciesupdate

idempotent
approvalpoliciespartialupdate

approvalpoliciespartialupdate

idempotent
approvalpoliciesdestroy

approvalpoliciesdestroy

idempotent
changerequestslist

changerequestslist

read-only idempotent
changerequestsretrieve

changerequestsretrieve

read-only idempotent
approve-change-request

Approve a change request.

cancel-change-request

Cancel a change request.

reject-change-request

Reject a change request.

list

list

read-only idempotent
create

create

retrieve

retrieve

read-only idempotent
update

update

idempotent
partialupdate

partialupdate

idempotent
destroy

destroy

idempotent
memberslist

memberslist

read-only idempotent
membersupdate

membersupdate

idempotent
memberspartialupdate

memberspartialupdate

idempotent
membersdestroy

membersdestroy

idempotent
membersscopedapikeysretrieve

membersscopedapikeysretrieve

read-only idempotent
roleslist

roleslist

read-only idempotent
rolescreate

rolescreate

rolesretrieve

rolesretrieve

read-only idempotent
rolesupdate

rolesupdate

idempotent
rolespartialupdate

rolespartialupdate

idempotent
rolesdestroy

rolesdestroy

idempotent
rolesrolemembershipslist

rolesrolemembershipslist

read-only idempotent
rolesrolemembershipscreate

rolesrolemembershipscreate

rolesrolemembershipsretrieve

rolesrolemembershipsretrieve

read-only idempotent
rolesrolemembershipsdestroy

rolesrolemembershipsdestroy

idempotent
aggregated-payload-invited-user-welcome

Aggregated payload for the invited-user welcome screen.

read-only idempotent
activityloglist

activityloglist

read-only idempotent
advancedactivitylogslist

advancedactivitylogslist

read-only idempotent
advancedactivitylogsavailablefiltersretrieve

advancedactivitylogsavailablefiltersretrieve

read-only idempotent
advancedactivitylogsexportcreate

advancedactivitylogsexportcreate

commentslist

commentslist

read-only idempotent
commentscreate

commentscreate

commentscountretrieve

commentscountretrieve

read-only idempotent
commentsretrieve

commentsretrieve

read-only idempotent
commentsupdate

commentsupdate

idempotent
commentspartialupdate

commentspartialupdate

idempotent
hard-delete-this-model-is

Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

idempotent
commentsthreadretrieve

commentsthreadretrieve

read-only idempotent
get-authenticated-user-s-pinned-sidebar

Get the authenticated user's pinned sidebar tabs and configured homepage for the current team. Pass `@me` as the UUID.

read-only idempotent
update-authenticated-user-s-pinned-sidebar

Update the authenticated user's pinned sidebar tabs and/or homepage for the current team. Pass `@me` as the UUID. Send `tabs` to replace the pinned tab list, `homepage` to set the home destination (any PostHog URL — dashboard, insight, sear

idempotent

Capability Spec

posthog-platform-features.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: PostHog API — platform_features
  description: 'PostHog API — platform_features. 47 operations. Lead operation: platform_features. Self-contained Naftiko
    capability covering one Posthog business surface.'
  tags:
  - Posthog
  - platform_features
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    POSTHOG_API_KEY: POSTHOG_API_KEY
capability:
  consumes:
  - type: http
    namespace: posthog-platform-features
    baseUri: ''
    description: PostHog API — platform_features business capability. Self-contained, no shared references.
    resources:
    - name: api-environments-project_id-approval_policies
      path: /api/environments/{project_id}/approval_policies/
      operations:
      - name: approvalpolicieslist
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
          description: Number of results to return per page.
        - name: offset
          in: query
          type: integer
          description: The initial index from which to return the results.
      - name: approvalpoliciescreate
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-environments-project_id-approval_policies-id
      path: /api/environments/{project_id}/approval_policies/{id}/
      operations:
      - name: approvalpoliciesretrieve
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this approval policy.
          required: true
      - name: approvalpoliciesupdate
        method: PUT
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this approval policy.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: approvalpoliciespartialupdate
        method: PATCH
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this approval policy.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: approvalpoliciesdestroy
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this approval policy.
          required: true
    - name: api-environments-project_id-change_requests
      path: /api/environments/{project_id}/change_requests/
      operations:
      - name: changerequestslist
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: action_key
          in: query
          type: string
        - name: limit
          in: query
          type: integer
          description: Number of results to return per page.
        - name: offset
          in: query
          type: integer
          description: The initial index from which to return the results.
        - name: requester
          in: query
          type: number
        - name: resource_id
          in: query
          type: string
        - name: resource_type
          in: query
          type: string
        - name: state
          in: query
          type: array
          description: Multiple values may be separated by commas.
    - name: api-environments-project_id-change_requests-id
      path: /api/environments/{project_id}/change_requests/{id}/
      operations:
      - name: changerequestsretrieve
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this change request.
          required: true
    - name: api-environments-project_id-change_requests-id-approve
      path: /api/environments/{project_id}/change_requests/{id}/approve/
      operations:
      - name: changerequestsapprovecreate
        method: POST
        description: Approve a change request.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this change request.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-environments-project_id-change_requests-id-cancel
      path: /api/environments/{project_id}/change_requests/{id}/cancel/
      operations:
      - name: changerequestscancelcreate
        method: POST
        description: Cancel a change request.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this change request.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-environments-project_id-change_requests-id-reject
      path: /api/environments/{project_id}/change_requests/{id}/reject/
      operations:
      - name: changerequestsrejectcreate
        method: POST
        description: Reject a change request.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this change request.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-organizations
      path: /api/organizations/
      operations:
      - name: list
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
          description: Number of results to return per page.
        - name: offset
          in: query
          type: integer
          description: The initial index from which to return the results.
      - name: create
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-organizations-id
      path: /api/organizations/{id}/
      operations:
      - name: retrieve
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this organization.
          required: true
      - name: update
        method: PUT
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this organization.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: partialupdate
        method: PATCH
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this organization.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: destroy
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this organization.
          required: true
    - name: api-organizations-organization_id-members
      path: /api/organizations/{organization_id}/members/
      operations:
      - name: memberslist
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
          description: Number of results to return per page.
        - name: offset
          in: query
          type: integer
          description: The initial index from which to return the results.
        - name: order
          in: query
          type: string
          description: Sort order. Defaults to `-joined_at`.
    - name: api-organizations-organization_id-members-user__uuid
      path: /api/organizations/{organization_id}/members/{user__uuid}/
      operations:
      - name: membersupdate
        method: PUT
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user__uuid
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: memberspartialupdate
        method: PATCH
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user__uuid
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: membersdestroy
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user__uuid
          in: path
          type: string
          required: true
    - name: api-organizations-organization_id-members-user__uuid-scoped_api_keys
      path: /api/organizations/{organization_id}/members/{user__uuid}/scoped_api_keys/
      operations:
      - name: membersscopedapikeysretrieve
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: user__uuid
          in: path
          type: string
          required: true
    - name: api-organizations-organization_id-roles
      path: /api/organizations/{organization_id}/roles/
      operations:
      - name: roleslist
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
          description: Number of results to return per page.
        - name: offset
          in: query
          type: integer
          description: The initial index from which to return the results.
      - name: rolescreate
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-organizations-organization_id-roles-id
      path: /api/organizations/{organization_id}/roles/{id}/
      operations:
      - name: rolesretrieve
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this role.
          required: true
      - name: rolesupdate
        method: PUT
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this role.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: rolespartialupdate
        method: PATCH
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this role.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: rolesdestroy
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this role.
          required: true
    - name: api-organizations-organization_id-roles-role_id-role_memberships
      path: /api/organizations/{organization_id}/roles/{role_id}/role_memberships/
      operations:
      - name: rolesrolemembershipslist
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: limit
          in: query
          type: integer
          description: Number of results to return per page.
        - name: offset
          in: query
          type: integer
          description: The initial index from which to return the results.
        - name: role_id
          in: path
          type: string
          required: true
      - name: rolesrolemembershipscreate
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: role_id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-organizations-organization_id-roles-role_id-role_memberships-id
      path: /api/organizations/{organization_id}/roles/{role_id}/role_memberships/{id}/
      operations:
      - name: rolesrolemembershipsretrieve
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this role membership.
          required: true
        - name: role_id
          in: path
          type: string
          required: true
      - name: rolesrolemembershipsdestroy
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this role membership.
          required: true
        - name: role_id
          in: path
          type: string
          required: true
    - name: api-organizations-organization_id-welcome-current
      path: /api/organizations/{organization_id}/welcome/current/
      operations:
      - name: welcomecurrentretrieve
        method: GET
        description: Aggregated payload for the invited-user welcome screen.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-projects-project_id-activity_log
      path: /api/projects/{project_id}/activity_log/
      operations:
      - name: activityloglist
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: item_id
          in: query
          type: string
          description: Filter by the ID of the affected resource.
        - name: page
          in: query
          type: integer
          description: Page number for pagination. When provided, uses page-based pagination ordered by most recent first.
        - name: page_size
          in: query
          type: integer
          description: 'Number of results per page (default: 100, max: 1000). Only used with page-based pagination.'
        - name: scope
          in: query
          type: string
          description: Filter by a single activity scope, e.g. "FeatureFlag", "Insight", "Dashboard", "Experiment".
        - name: scopes
          in: query
          type: array
          description: Filter by multiple activity scopes, comma-separated. Values must be valid ActivityScope enum values.
            E.g. "FeatureFlag,Insight".
        - name: user
          in: query
          type: string
          description: Filter by user UUID who performed the action.
    - name: api-projects-project_id-advanced_activity_logs
      path: /api/projects/{project_id}/advanced_activity_logs/
      operations:
      - name: advancedactivitylogslist
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: activities
          in: query
          type: array
        - name: clients
          in: query
          type: array
        - name: detail_filters
          in: query
          type: string
        - name: end_date
          in: query
          type: string
        - name: hogql_filter
          in: query
          type: string
        - name: is_system
          in: query
          type: boolean
        - name: item_ids
          in: query
          type: array
        - name: page
          in: query
          type: integer
          description: Page number for pagination. When provided, uses page-based pagination ordered by most recent first.
        - name: page_size
          in: query
          type: integer
          description: 'Number of results per page (default: 100, max: 1000). Only used with page-based pagination.'
        - name: scopes
          in: query
          type: array
        - name: search_text
          in: query
          type: string
        - name: start_date
          in: query
          type: string
        - name: users
          in: query
          type: array
        - name: was_impersonated
          in: query
          type: boolean
    - name: api-projects-project_id-advanced_activity_logs-available_filters
      path: /api/projects/{project_id}/advanced_activity_logs/available_filters/
      operations:
      - name: advancedactivitylogsavailablefiltersretrieve
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-projects-project_id-advanced_activity_logs-export
      path: /api/projects/{project_id}/advanced_activity_logs/export/
      operations:
      - name: advancedactivitylogsexportcreate
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-projects-project_id-comments
      path: /api/projects/{project_id}/comments/
      operations:
      - name: commentslist
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: cursor
          in: query
          type: string
          description: The pagination cursor value.
        - name: item_id
          in: query
          type: string
          description: Filter by the ID of the resource being commented on.
        - name: scope
          in: query
          type: string
          description: Filter by resource type (e.g. Dashboard, FeatureFlag, Insight, Replay).
        - name: search
          in: query
          type: string
          description: Full-text search within comment content.
        - name: source_comment
          in: query
          type: string
          description: Filter replies to a specific parent comment.
      - name: commentscreate
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: api-projects-project_id-comments-count
      path: /api/projects/{project_id}/comments/count/
      operations:
      - name: commentscountretrieve
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: api-projects-project_id-comments-id
      path: /api/projects/{project_id}/comments/{id}/
      operations:
      - name: commentsretrieve
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this comment.
          required: true
      - name: commentsupdate
        method: PUT
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this comment.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: commentspartialupdate
        method: PATCH
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this comment.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: commentsdestroy
        method: DELETE
        description: Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this comment.
          required: true
    - name: api-projects-project_id-comments-id-thread
      path: /api/projects/{project_id}/comments/{id}/thread/
      operations:
      - name: commentsthreadretrieve
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: A UUID string identifying this comment.
          required: true
    - name: api-user_home_settings-uuid
      path: /api/user_home_settings/{uuid}/
      operations:
      - name: userhomesettingsretrieve
        method: GET
        description: Get the authenticated user's pinned sidebar tabs and configured homepage for the current team. Pass `@me`
          as the UUID.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
      - name: userhomesettingspartialupdate
        method: PATCH
        description: Update the authenticated user's pinned sidebar tabs and/or homepage for the current team. Pass `@me`
          as the UUID. Send `tabs` to replace the pinned tab list, `homepage` to set the home destination (any PostHog URL
          — dashboard, insight, sear
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: uuid
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    authentication:
      type: bearer
      token: '{{env.POSTHOG_API_KEY}}'
  exposes:
  - type: rest
    namespace: posthog-platform-features-rest
    port: 8080
    description: REST adapter for PostHog API — platform_features. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/api/environments/{project-id}/approval-policies
      name: api-environments-project-id-approval-policies
      description: REST surface for api-environments-project_id-approval_policies.
      operations:
      - method: GET
        name: approvalpolicieslist
        description: approvalpolicieslist
        call: posthog-platform-features.approvalpolicieslist
        with:
          limit: rest.limit
          offset: rest.offset
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: approvalpoliciescreate
        description: approvalpoliciescreate
        call: posthog-platform-features.approvalpoliciescreate
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/environments/{project-id}/approval-policies/{id}
      name: api-environments-project-id-approval-policies-id
      description: REST surface for api-environments-project_id-approval_policies-id.
      operations:
      - method: GET
        name: approvalpoliciesretrieve
        description: approvalpoliciesretrieve
        call: posthog-platform-features.approvalpoliciesretrieve
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: approvalpoliciesupdate
        description: approvalpoliciesupdate
        call: posthog-platform-features.approvalpoliciesupdate
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: approvalpoliciespartialupdate
        description: approvalpoliciespartialupdate
        call: posthog-platform-features.approvalpoliciespartialupdate
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: approvalpoliciesdestroy
        description: approvalpoliciesdestroy
        call: posthog-platform-features.approvalpoliciesdestroy
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/environments/{project-id}/change-requests
      name: api-environments-project-id-change-requests
      description: REST surface for api-environments-project_id-change_requests.
      operations:
      - method: GET
        name: changerequestslist
        description: changerequestslist
        call: posthog-platform-features.changerequestslist
        with:
          action_key: rest.action_key
          limit: rest.limit
          offset: rest.offset
          requester: rest.requester
          resource_id: rest.resource_id
          resource_type: rest.resource_type
          state: rest.state
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/environments/{project-id}/change-requests/{id}
      name: api-environments-project-id-change-requests-id
      description: REST surface for api-environments-project_id-change_requests-id.
      operations:
      - method: GET
        name: changerequestsretrieve
        description: changerequestsretrieve
        call: posthog-platform-features.changerequestsretrieve
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/environments/{project-id}/change-requests/{id}/approve
      name: api-environments-project-id-change-requests-id-approve
      description: REST surface for api-environments-project_id-change_requests-id-approve.
      operations:
      - method: POST
        name: changerequestsapprovecreate
        description: Approve a change request.
        call: posthog-platform-features.changerequestsapprovecreate
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/environments/{project-id}/change-requests/{id}/cancel
      name: api-environments-project-id-change-requests-id-cancel
      description: REST surface for api-environments-project_id-change_requests-id-cancel.
      operations:
      - method: POST
        name: changerequestscancelcreate
        description: Cancel a change request.
        call: posthog-platform-features.changerequestscancelcreate
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/environments/{project-id}/change-requests/{id}/reject
      name: api-environments-project-id-change-requests-id-reject
      description: REST surface for api-environments-project_id-change_requests-id-reject.
      operations:
      - method: POST
        name: changerequestsrejectcreate
        description: Reject a change requ

# --- truncated at 32 KB (63 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/posthog/refs/heads/main/capabilities/posthog-platform-features.yaml