---
title: PostHog
description: Product analytics and feature management
---

import { BlockInfoCard } from "@/components/ui/block-info-card"

<BlockInfoCard 
  type="posthog"
  color="#E0E0E0"
/>

{/* MANUAL-CONTENT-START:intro */}
The [PostHog](https://posthog.com/) tool integrates powerful product analytics, feature flag management, experimentation, and user behavior insights directly into your agentic workflows. Designed for modern teams, it enables you to capture, analyze, and act on user data in real time — helping you build better products, understand engagement, and boost conversions.

With the PostHog tool, you can:

- **Track and analyze events**: Use the `posthog_capture_event` and `posthog_batch_events` operations to record individual or multiple user actions, page views, or custom events for deep analytics.
- **Explore event data**: Retrieve and list historical or real-time events using the `posthog_list_events` operation for advanced event analysis.
- **Understand users**: Leverage the `posthog_list_persons`, `posthog_get_person`, and `posthog_delete_person` operations to manage user profiles, get detailed user insights, or remove them as needed.
- **Gain actionable product insights**: Visualize user journeys, feature usage, and engagement via `posthog_list_insights`, `posthog_get_insight`, and `posthog_create_insight` operations.
- **Manage and roll out features safely**: Toggle features and run A/B or multivariate tests at scale using operations like `posthog_list_feature_flags`, `posthog_get_feature_flag`, `posthog_create_feature_flag`, `posthog_update_feature_flag`, and `posthog_delete_feature_flag`.
- **Segment and target audiences**: Build, list, or manage cohorts with `posthog_list_cohorts`, `posthog_get_cohort`, and `posthog_create_cohort`.
- **Gather direct feedback**: Design, deploy, and analyze surveys through `posthog_list_surveys`, `posthog_get_survey`, `posthog_create_survey`, and `posthog_update_survey`.
- **Monitor user experience**: Access and analyze session recordings via the `posthog_list_session_recordings` and `posthog_get_session_recording` operations.
- **Collaborate with your team**: Organize dashboards (`posthog_list_dashboards`, `posthog_get_dashboard`), create and annotate insights and events, and manage projects and organizations within PostHog.

Whether you want to implement full-scale product analytics, enhance user onboarding, refine your product roadmap, or automate decisions based on real usage data, the PostHog tool empowers your agents and workflows with advanced analytics and in-product experimentation — all in one unified platform.

Looking for true product analytics with privacy, scalability, and an open-source option? PostHog is trusted by fast-moving teams and enterprises worldwide.
{/* MANUAL-CONTENT-END */}


## Usage Instructions

Integrate PostHog into your workflow. Track events, manage feature flags, analyze user behavior, run experiments, create surveys, and access session recordings.



## Tools

### `posthog_capture_event`

Capture a single event in PostHog. Use this to track user actions, page views, or custom events.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectApiKey` | string | Yes | PostHog Project API Key \(public token for event ingestion\) |
| `region` | string | No | PostHog region: us \(default\) or eu |
| `event` | string | Yes | The name of the event to capture \(e.g., "page_view", "button_clicked"\) |
| `distinctId` | string | Yes | Unique identifier for the user or device. Can be user ID, device ID, or anonymous ID |
| `properties` | string | No | JSON string of event properties \(e.g., \{"button_name": "signup", "page": "homepage"\}\) |
| `timestamp` | string | No | ISO 8601 timestamp for when the event occurred. If not provided, uses current time |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Status message indicating whether the event was captured successfully |

### `posthog_batch_events`

Capture multiple events at once in PostHog. Use this for bulk event ingestion to improve performance.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectApiKey` | string | Yes | PostHog Project API Key \(public token for event ingestion\) |
| `region` | string | No | PostHog region: us \(default\) or eu |
| `batch` | string | Yes | JSON array of events to capture. Each event should have: event, distinct_id, and optional properties, timestamp. Example: \[\{"event": "page_view", "distinct_id": "user123", "properties": \{"page": "/"\}\}\] |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Status message indicating whether the batch was captured successfully |
| `eventsProcessed` | number | Number of events processed in the batch |

### `posthog_list_events`

List events in PostHog. Note: This endpoint is deprecated but kept for backwards compatibility. For production use, prefer the Query endpoint with HogQL.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `personalApiKey` | string | Yes | PostHog Personal API Key \(for authenticated API access\) |
| `region` | string | No | PostHog region: us \(default\) or eu |
| `projectId` | string | Yes | PostHog Project ID |
| `limit` | number | No | Number of events to return \(default: 100, max: 100\) |
| `offset` | number | No | Number of events to skip for pagination |
| `event` | string | No | Filter by specific event name |
| `distinctId` | string | No | Filter by specific distinct_id |
| `before` | string | No | ISO 8601 timestamp - only return events before this time |
| `after` | string | No | ISO 8601 timestamp - only return events after this time |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `events` | array | List of events with their properties and metadata |

### `posthog_list_persons`

List persons (users) in PostHog. Returns user profiles with their properties and distinct IDs.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `personalApiKey` | string | Yes | PostHog Personal API Key \(for authenticated API access\) |
| `region` | string | No | PostHog region: us \(default\) or eu |
| `projectId` | string | Yes | PostHog Project ID |
| `limit` | number | No | Number of persons to return \(default: 100, max: 100\) |
| `offset` | number | No | Number of persons to skip for pagination |
| `search` | string | No | Search persons by email, name, or distinct ID |
| `distinctId` | string | No | Filter by specific distinct_id |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `persons` | array | List of persons with their properties and identifiers |

### `posthog_get_person`

Get detailed information about a specific person in PostHog by their ID or UUID.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `personalApiKey` | string | Yes | PostHog Personal API Key \(for authenticated API access\) |
| `region` | string | No | PostHog region: us \(default\) or eu |
| `projectId` | string | Yes | PostHog Project ID |
| `personId` | string | Yes | Person ID or UUID to retrieve |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `person` | object | Person details including properties and identifiers |

### `posthog_delete_person`

Delete a person from PostHog. This will remove all associated events and data. Use with caution.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `personalApiKey` | string | Yes | PostHog Personal API Key \(for authenticated API access\) |
| `region` | string | No | PostHog region: us \(default\) or eu |
| `projectId` | string | Yes | PostHog Project ID |
| `personId` | string | Yes | Person ID or UUID to delete |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `status` | string | Status message indicating whether the person was deleted successfully |

### `posthog_query`

Execute a HogQL query in PostHog. HogQL is PostHog

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `personalApiKey` | string | Yes | PostHog Personal API Key \(for authenticated API access\) |
| `region` | string | No | PostHog region: us \(default\) or eu |
| `projectId` | string | Yes | PostHog Project ID |
| `query` | string | Yes | HogQL query to execute. Example: \{"kind": "HogQLQuery", "query": "SELECT event, count\(\) FROM events WHERE timestamp &gt; now\(\) - INTERVAL 1 DAY GROUP BY event"\} |
| `Example` | string | No | No description |
| `values` | string | No | Optional JSON string of parameter values for parameterized queries. Example: \{"user_id": "123"\} |
| `Example` | string | No | No description |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `results` | array | Query results as an array of rows |

### `posthog_list_insights`

List all insights in a PostHog project. Returns insight configurations, filters, and metadata.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | The PostHog project ID |
| `region` | string | No | PostHog cloud region: "us" or "eu" \(default: "us"\) |
| `limit` | number | No | Number of results to return per page \(default: 100\) |
| `offset` | number | No | Number of results to skip for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `count` | number | Total number of insights in the project |
| `next` | string | URL for the next page of results |
| `previous` | string | URL for the previous page of results |
| `results` | array | List of insights with their configurations and metadata |

### `posthog_get_insight`

Get a specific insight by ID from PostHog. Returns detailed insight configuration, filters, and metadata.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | The PostHog project ID |
| `insightId` | string | Yes | The insight ID to retrieve |
| `region` | string | No | PostHog cloud region: "us" or "eu" \(default: "us"\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | number | Unique identifier for the insight |
| `name` | string | Name of the insight |
| `description` | string | Description of the insight |
| `filters` | object | Filter configuration for the insight |
| `query` | object | Query configuration for the insight |
| `created_at` | string | ISO timestamp when insight was created |
| `created_by` | object | User who created the insight |
| `last_modified_at` | string | ISO timestamp when insight was last modified |
| `last_modified_by` | object | User who last modified the insight |
| `saved` | boolean | Whether the insight is saved |
| `dashboards` | array | IDs of dashboards this insight appears on |
| `tags` | array | Tags associated with the insight |
| `favorited` | boolean | Whether the insight is favorited |

### `posthog_create_insight`

Create a new insight in PostHog. Requires insight name and configuration filters or query.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | The PostHog project ID |
| `region` | string | No | PostHog cloud region: "us" or "eu" \(default: "us"\) |
| `name` | string | No | Name for the insight \(optional - PostHog will generate a derived name if not provided\) |
| `description` | string | No | Description of the insight |
| `filters` | string | No | JSON string of filter configuration for the insight |
| `query` | string | No | JSON string of query configuration for the insight |
| `dashboards` | string | No | Comma-separated list of dashboard IDs to add this insight to |
| `tags` | string | No | Comma-separated list of tags for the insight |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | number | Unique identifier for the created insight |
| `name` | string | Name of the insight |
| `description` | string | Description of the insight |
| `filters` | object | Filter configuration for the insight |
| `query` | object | Query configuration for the insight |
| `created_at` | string | ISO timestamp when insight was created |
| `created_by` | object | User who created the insight |
| `last_modified_at` | string | ISO timestamp when insight was last modified |
| `saved` | boolean | Whether the insight is saved |
| `dashboards` | array | IDs of dashboards this insight appears on |
| `tags` | array | Tags associated with the insight |

### `posthog_list_dashboards`

List all dashboards in a PostHog project. Returns dashboard configurations, tiles, and metadata.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | The PostHog project ID |
| `region` | string | No | PostHog cloud region: "us" or "eu" \(default: "us"\) |
| `limit` | number | No | Number of results to return per page \(default: 100\) |
| `offset` | number | No | Number of results to skip for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `count` | number | Total number of dashboards in the project |
| `next` | string | URL for the next page of results |
| `previous` | string | URL for the previous page of results |
| `results` | array | List of dashboards with their configurations and metadata |

### `posthog_get_dashboard`

Get a specific dashboard by ID from PostHog. Returns detailed dashboard configuration, tiles, and metadata.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | The PostHog project ID |
| `dashboardId` | string | Yes | The dashboard ID to retrieve |
| `region` | string | No | PostHog cloud region: "us" or "eu" \(default: "us"\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | number | Unique identifier for the dashboard |
| `name` | string | Name of the dashboard |
| `description` | string | Description of the dashboard |
| `pinned` | boolean | Whether the dashboard is pinned |
| `created_at` | string | ISO timestamp when dashboard was created |
| `created_by` | object | User who created the dashboard |
| `last_modified_at` | string | ISO timestamp when dashboard was last modified |
| `last_modified_by` | object | User who last modified the dashboard |
| `tiles` | array | Tiles/widgets on the dashboard with their configurations |
| `filters` | object | Global filters applied to the dashboard |
| `tags` | array | Tags associated with the dashboard |
| `restriction_level` | number | Access restriction level for the dashboard |

### `posthog_list_actions`

List all actions in a PostHog project. Returns action definitions, steps, and metadata.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | The PostHog project ID |
| `region` | string | No | PostHog cloud region: "us" or "eu" \(default: "us"\) |
| `limit` | number | No | Number of results to return per page \(default: 100\) |
| `offset` | number | No | Number of results to skip for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `count` | number | Total number of actions in the project |
| `next` | string | URL for the next page of results |
| `previous` | string | URL for the previous page of results |
| `results` | array | List of actions with their definitions and metadata |

### `posthog_list_cohorts`

List all cohorts in a PostHog project. Returns cohort definitions, filters, and user counts.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | The PostHog project ID |
| `region` | string | No | PostHog cloud region: "us" or "eu" \(default: "us"\) |
| `limit` | number | No | Number of results to return per page \(default: 100\) |
| `offset` | number | No | Number of results to skip for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `count` | number | Total number of cohorts in the project |
| `next` | string | URL for the next page of results |
| `previous` | string | URL for the previous page of results |
| `results` | array | List of cohorts with their definitions and metadata |

### `posthog_get_cohort`

Get a specific cohort by ID from PostHog. Returns detailed cohort definition, filters, and user count.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | The PostHog project ID |
| `cohortId` | string | Yes | The cohort ID to retrieve |
| `region` | string | No | PostHog cloud region: "us" or "eu" \(default: "us"\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | number | Unique identifier for the cohort |
| `name` | string | Name of the cohort |
| `description` | string | Description of the cohort |
| `groups` | array | Groups that define the cohort |
| `deleted` | boolean | Whether the cohort is deleted |
| `filters` | object | Filter configuration for the cohort |
| `query` | object | Query configuration for the cohort |
| `created_at` | string | ISO timestamp when cohort was created |
| `created_by` | object | User who created the cohort |
| `is_calculating` | boolean | Whether the cohort is being calculated |
| `last_calculation` | string | ISO timestamp of last calculation |
| `errors_calculating` | number | Number of errors during calculation |
| `count` | number | Number of users in the cohort |
| `is_static` | boolean | Whether the cohort is static |
| `version` | number | Version number of the cohort |

### `posthog_create_cohort`

Create a new cohort in PostHog. Requires cohort name and filter or query configuration.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | The PostHog project ID |
| `region` | string | No | PostHog cloud region: "us" or "eu" \(default: "us"\) |
| `name` | string | No | Name for the cohort \(optional - PostHog will use "Untitled cohort" if not provided\) |
| `description` | string | No | Description of the cohort |
| `filters` | string | No | JSON string of filter configuration for the cohort |
| `query` | string | No | JSON string of query configuration for the cohort |
| `is_static` | boolean | No | Whether the cohort is static \(default: false\) |
| `groups` | string | No | JSON string of groups that define the cohort |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | number | Unique identifier for the created cohort |
| `name` | string | Name of the cohort |
| `description` | string | Description of the cohort |
| `groups` | array | Groups that define the cohort |
| `deleted` | boolean | Whether the cohort is deleted |
| `filters` | object | Filter configuration for the cohort |
| `query` | object | Query configuration for the cohort |
| `created_at` | string | ISO timestamp when cohort was created |
| `created_by` | object | User who created the cohort |
| `is_calculating` | boolean | Whether the cohort is being calculated |
| `count` | number | Number of users in the cohort |
| `is_static` | boolean | Whether the cohort is static |
| `version` | number | Version number of the cohort |

### `posthog_list_annotations`

List all annotations in a PostHog project. Returns annotation content, timestamps, and associated insights.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | The PostHog project ID |
| `region` | string | No | PostHog cloud region: "us" or "eu" \(default: "us"\) |
| `limit` | number | No | Number of results to return per page \(default: 100\) |
| `offset` | number | No | Number of results to skip for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `count` | number | Total number of annotations in the project |
| `next` | string | URL for the next page of results |
| `previous` | string | URL for the previous page of results |
| `results` | array | List of annotations with their content and metadata |

### `posthog_create_annotation`

Create a new annotation in PostHog. Mark important events on your graphs with date and description.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | The PostHog project ID |
| `region` | string | No | PostHog cloud region: "us" or "eu" \(default: "us"\) |
| `content` | string | Yes | Content/text of the annotation |
| `date_marker` | string | Yes | ISO timestamp marking when the annotation applies \(e.g., "2024-01-15T10:00:00Z"\) |
| `scope` | string | No | Scope of the annotation: "project" or "dashboard_item" \(default: "project"\) |
| `dashboard_item` | string | No | ID of dashboard item to attach this annotation to |
| `insight_short_id` | string | No | Short ID of the insight to attach this annotation to |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | number | Unique identifier for the created annotation |
| `content` | string | Content/text of the annotation |
| `date_marker` | string | ISO timestamp marking when the annotation applies |
| `created_at` | string | ISO timestamp when annotation was created |
| `updated_at` | string | ISO timestamp when annotation was last updated |
| `created_by` | object | User who created the annotation |
| `dashboard_item` | number | ID of dashboard item this annotation is attached to |
| `insight_short_id` | string | Short ID of the insight this annotation is attached to |
| `insight_name` | string | Name of the insight this annotation is attached to |
| `scope` | string | Scope of the annotation \(project or dashboard_item\) |
| `deleted` | boolean | Whether the annotation is deleted |

### `posthog_list_feature_flags`

List all feature flags in a PostHog project

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | The PostHog project ID |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `limit` | number | No | Number of results to return |
| `offset` | number | No | Number of results to skip |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `results` | array | List of feature flags |

### `posthog_get_feature_flag`

Get details of a specific feature flag

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | The PostHog project ID |
| `flagId` | string | Yes | The feature flag ID |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `apiKey` | string | Yes | PostHog Personal API Key |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `flag` | object | Feature flag details |

### `posthog_create_feature_flag`

Create a new feature flag in PostHog

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | The PostHog project ID |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `name` | string | No | Feature flag name \(optional - can be empty\) |
| `key` | string | Yes | Feature flag key \(unique identifier\) |
| `filters` | string | No | Feature flag filters as JSON string |
| `active` | boolean | No | Whether the flag is active \(default: true\) |
| `ensureExperienceContinuity` | boolean | No | Whether to ensure experience continuity \(default: false\) |
| `rolloutPercentage` | number | No | Rollout percentage \(0-100\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `flag` | object | Created feature flag |

### `posthog_update_feature_flag`

Update an existing feature flag in PostHog

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | The PostHog project ID |
| `flagId` | string | Yes | The feature flag ID |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `name` | string | No | Feature flag name |
| `key` | string | No | Feature flag key \(unique identifier\) |
| `filters` | string | No | Feature flag filters as JSON string |
| `active` | boolean | No | Whether the flag is active |
| `ensureExperienceContinuity` | boolean | No | Whether to ensure experience continuity |
| `rolloutPercentage` | number | No | Rollout percentage \(0-100\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `flag` | object | Updated feature flag |

### `posthog_delete_feature_flag`

Delete a feature flag from PostHog

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | The PostHog project ID |
| `flagId` | string | Yes | The feature flag ID to delete |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `apiKey` | string | Yes | PostHog Personal API Key |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the deletion was successful |
| `message` | string | Confirmation message |

### `posthog_evaluate_flags`

Evaluate feature flags for a specific user or group. This is a public endpoint that uses the project API key.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `projectApiKey` | string | Yes | PostHog Project API Key \(not personal API key\) |
| `distinctId` | string | Yes | The distinct ID of the user to evaluate flags for |
| `groups` | string | No | Groups as JSON string \(e.g., \{"company": "company_id_in_your_db"\}\) |
| `personProperties` | string | No | Person properties as JSON string |
| `groupProperties` | string | No | Group properties as JSON string |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `featureFlags` | object | Feature flag evaluations \(key-value pairs where values are boolean or string variants\) |
| `featureFlagPayloads` | object | Additional payloads attached to feature flags |
| `errorsWhileComputingFlags` | boolean | Whether there were errors while computing flags |

### `posthog_list_experiments`

List all experiments in a PostHog project

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | The PostHog project ID |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `limit` | number | No | Number of results to return |
| `offset` | number | No | Number of results to skip |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `results` | array | List of experiments |

### `posthog_get_experiment`

Get details of a specific experiment

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | The PostHog project ID |
| `experimentId` | string | Yes | The experiment ID |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `apiKey` | string | Yes | PostHog Personal API Key |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `experiment` | object | Experiment details |

### `posthog_create_experiment`

Create a new experiment in PostHog

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | The PostHog project ID |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `name` | string | No | Experiment name \(optional\) |
| `description` | string | No | Experiment description |
| `featureFlagKey` | string | Yes | Feature flag key to use for the experiment |
| `parameters` | string | No | Experiment parameters as JSON string |
| `filters` | string | No | Experiment filters as JSON string |
| `variants` | string | No | Experiment variants as JSON string |
| `startDate` | string | No | Experiment start date \(ISO format\) |
| `endDate` | string | No | Experiment end date \(ISO format\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `experiment` | object | Created experiment |

### `posthog_list_surveys`

List all surveys in a PostHog project. Surveys allow you to collect feedback from users.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | PostHog Project ID |
| `region` | string | No | PostHog cloud region: us or eu \(default: us\) |
| `limit` | number | No | Number of results to return \(default: 100\) |
| `offset` | number | No | Number of results to skip for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `surveys` | array | List of surveys in the project |

### `posthog_get_survey`

Get details of a specific survey in PostHog by ID.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | PostHog Project ID |
| `surveyId` | string | Yes | Survey ID to retrieve |
| `region` | string | No | PostHog cloud region: us or eu \(default: us\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `survey` | object | Survey details |

### `posthog_create_survey`

Create a new survey in PostHog. Supports question types: Basic (open), Link, Rating, and Multiple Choice.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | PostHog Project ID |
| `region` | string | No | PostHog cloud region: us or eu \(default: us\) |
| `name` | string | No | Survey name \(optional\) |
| `description` | string | No | Survey description |
| `type` | string | No | Survey type: popover \(in-app\) or api \(custom implementation\) \(default: popover\) |
| `questions` | string | Yes | JSON string of survey questions array. Each question must have type \(open/link/rating/multiple_choice\) and question text. Rating questions can have scale \(1-10\), lowerBoundLabel, upperBoundLabel. Multiple choice questions need choices array. Link questions can have buttonText. |
| `startDate` | string | No | Survey start date in ISO 8601 format |
| `endDate` | string | No | Survey end date in ISO 8601 format |
| `appearance` | string | No | JSON string of appearance configuration \(colors, position, etc.\) |
| `conditions` | string | No | JSON string of display conditions \(URL matching, etc.\) |
| `targetingFlagFilters` | string | No | JSON string of feature flag filters for targeting |
| `linkedFlagId` | string | No | Feature flag ID to link to this survey |
| `responsesLimit` | number | No | Maximum number of responses to collect |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `survey` | object | Created survey details |

### `posthog_update_survey`

Update an existing survey in PostHog. Can modify questions, appearance, conditions, and other settings.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | PostHog Project ID |
| `surveyId` | string | Yes | Survey ID to update |
| `region` | string | No | PostHog cloud region: us or eu \(default: us\) |
| `name` | string | No | Survey name |
| `description` | string | No | Survey description |
| `type` | string | No | Survey type: popover or api |
| `questions` | string | No | JSON string of survey questions array. Each question must have type \(open/link/rating/multiple_choice\) and question text. |
| `startDate` | string | No | Survey start date in ISO 8601 format |
| `endDate` | string | No | Survey end date in ISO 8601 format |
| `appearance` | string | No | JSON string of appearance configuration \(colors, position, etc.\) |
| `conditions` | string | No | JSON string of display conditions \(URL matching, etc.\) |
| `targetingFlagFilters` | string | No | JSON string of feature flag filters for targeting |
| `linkedFlagId` | string | No | Feature flag ID to link to this survey |
| `responsesLimit` | number | No | Maximum number of responses to collect |
| `archived` | boolean | No | Archive or unarchive the survey |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `survey` | object | Updated survey details |

### `posthog_list_session_recordings`

List session recordings in a PostHog project. Session recordings capture user interactions with your application.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | PostHog Project ID |
| `region` | string | No | PostHog cloud region: us or eu \(default: us\) |
| `limit` | number | No | Number of results to return \(default: 50\) |
| `offset` | number | No | Number of results to skip for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `recordings` | array | List of session recordings |

### `posthog_get_session_recording`

Get details of a specific session recording in PostHog by ID.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | PostHog Project ID |
| `recordingId` | string | Yes | Session recording ID to retrieve |
| `region` | string | No | PostHog cloud region: us or eu \(default: us\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `recording` | object | Session recording details |

### `posthog_list_recording_playlists`

List session recording playlists in a PostHog project. Playlists allow you to organize and curate session recordings.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `projectId` | string | Yes | PostHog Project ID |
| `region` | string | No | PostHog cloud region: us or eu \(default: us\) |
| `limit` | number | No | Number of results to return \(default: 100\) |
| `offset` | number | No | Number of results to skip for pagination |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `playlists` | array | List of session recording playlists |

### `posthog_list_event_definitions`

List all event definitions in a PostHog project. Event definitions represent tracked events with metadata like descriptions, tags, and usage statistics.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | PostHog Project ID |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `limit` | number | No | Number of results to return per page \(default: 100\) |
| `offset` | number | No | The initial index from which to return results |
| `search` | string | No | Search term to filter event definitions by name |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `count` | number | Total number of event definitions |
| `next` | string | URL for the next page of results |
| `previous` | string | URL for the previous page of results |
| `results` | array | List of event definitions |

### `posthog_get_event_definition`

Get details of a specific event definition in PostHog. Returns comprehensive information about the event including metadata, usage statistics, and verification status.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | PostHog Project ID |
| `eventDefinitionId` | string | Yes | Event Definition ID to retrieve |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `apiKey` | string | Yes | PostHog Personal API Key |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | Unique identifier for the event definition |
| `name` | string | Event name |
| `description` | string | Event description |
| `tags` | array | Tags associated with the event |
| `volume_30_day` | number | Number of events received in the last 30 days |
| `query_usage_30_day` | number | Number of times this event was queried in the last 30 days |
| `created_at` | string | ISO timestamp when the event was created |
| `last_seen_at` | string | ISO timestamp when the event was last seen |
| `updated_at` | string | ISO timestamp when the event was updated |
| `updated_by` | object | User who last updated the event |
| `verified` | boolean | Whether the event has been verified |
| `verified_at` | string | ISO timestamp when the event was verified |
| `verified_by` | string | User who verified the event |

### `posthog_update_event_definition`

Update an event definition in PostHog. Can modify description, tags, and verification status to maintain clean event schemas.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | PostHog Project ID |
| `eventDefinitionId` | string | Yes | Event Definition ID to update |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `description` | string | No | Updated description for the event |
| `tags` | string | No | Comma-separated list of tags to associate with the event |
| `verified` | boolean | No | Whether to mark the event as verified |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | Unique identifier for the event definition |
| `name` | string | Event name |
| `description` | string | Updated event description |
| `tags` | array | Updated tags associated with the event |
| `volume_30_day` | number | Number of events received in the last 30 days |
| `query_usage_30_day` | number | Number of times this event was queried in the last 30 days |
| `created_at` | string | ISO timestamp when the event was created |
| `last_seen_at` | string | ISO timestamp when the event was last seen |
| `updated_at` | string | ISO timestamp when the event was updated |
| `updated_by` | object | User who last updated the event |
| `verified` | boolean | Whether the event has been verified |
| `verified_at` | string | ISO timestamp when the event was verified |
| `verified_by` | string | User who verified the event |

### `posthog_list_property_definitions`

List all property definitions in a PostHog project. Property definitions represent tracked properties with metadata like descriptions, tags, types, and usage statistics.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | PostHog Project ID |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `limit` | number | No | Number of results to return per page \(default: 100\) |
| `offset` | number | No | The initial index from which to return results |
| `search` | string | No | Search term to filter property definitions by name |
| `type` | string | No | Filter by property type: event, person, or group |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `count` | number | Total number of property definitions |
| `next` | string | URL for the next page of results |
| `previous` | string | URL for the previous page of results |
| `results` | array | List of property definitions |

### `posthog_get_property_definition`

Get details of a specific property definition in PostHog. Returns comprehensive information about the property including metadata, type, usage statistics, and verification status.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | PostHog Project ID |
| `propertyDefinitionId` | string | Yes | Property Definition ID to retrieve |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `apiKey` | string | Yes | PostHog Personal API Key |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | Unique identifier for the property definition |
| `name` | string | Property name |
| `description` | string | Property description |
| `tags` | array | Tags associated with the property |
| `is_numerical` | boolean | Whether the property is numerical |
| `is_seen_on_filtered_events` | boolean | Whether the property is seen on filtered events |
| `property_type` | string | The data type of the property |
| `type` | string | Property type: event, person, or group |
| `volume_30_day` | number | Number of times property was seen in the last 30 days |
| `query_usage_30_day` | number | Number of times this property was queried in the last 30 days |
| `created_at` | string | ISO timestamp when the property was created |
| `updated_at` | string | ISO timestamp when the property was updated |
| `updated_by` | object | User who last updated the property |
| `verified` | boolean | Whether the property has been verified |
| `verified_at` | string | ISO timestamp when the property was verified |
| `verified_by` | string | User who verified the property |
| `example` | string | Example value for the property |

### `posthog_update_property_definition`

Update a property definition in PostHog. Can modify description, tags, property type, and verification status to maintain clean property schemas.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | PostHog Project ID |
| `propertyDefinitionId` | string | Yes | Property Definition ID to update |
| `region` | string | Yes | PostHog cloud region: us or eu |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `description` | string | No | Updated description for the property |
| `tags` | string | No | Comma-separated list of tags to associate with the property |
| `verified` | boolean | No | Whether to mark the property as verified |
| `property_type` | string | No | The data type of the property \(e.g., String, Numeric, Boolean, DateTime, etc.\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | Unique identifier for the property definition |
| `name` | string | Property name |
| `description` | string | Updated property description |
| `tags` | array | Updated tags associated with the property |
| `is_numerical` | boolean | Whether the property is numerical |
| `is_seen_on_filtered_events` | boolean | Whether the property is seen on filtered events |
| `property_type` | string | The data type of the property |
| `type` | string | Property type: event, person, or group |
| `volume_30_day` | number | Number of times property was seen in the last 30 days |
| `query_usage_30_day` | number | Number of times this property was queried in the last 30 days |
| `created_at` | string | ISO timestamp when the property was created |
| `updated_at` | string | ISO timestamp when the property was updated |
| `updated_by` | object | User who last updated the property |
| `verified` | boolean | Whether the property has been verified |
| `verified_at` | string | ISO timestamp when the property was verified |
| `verified_by` | string | User who verified the property |
| `example` | string | Example value for the property |

### `posthog_list_projects`

List all projects in the organization. Returns project details including IDs, names, API tokens, and settings. Useful for getting project IDs needed by other endpoints.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `region` | string | No | Cloud region: us or eu \(default: us\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `projects` | array | List of projects with their configuration and settings |

### `posthog_get_project`

Get detailed information about a specific project by ID. Returns comprehensive project configuration, settings, and feature flags.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID \(numeric ID or UUID\) |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `region` | string | No | Cloud region: us or eu \(default: us\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `project` | object | Detailed project information with all configuration settings |

### `posthog_list_organizations`

List all organizations the user has access to. Returns organization details including name, slug, membership level, and available product features.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `region` | string | No | Cloud region: us or eu \(default: us\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `organizations` | array | List of organizations with their settings and features |

### `posthog_get_organization`

Get detailed information about a specific organization by ID. Returns comprehensive organization settings, features, usage, and team information.

#### Input

| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `organizationId` | string | Yes | Organization ID \(UUID\) |
| `apiKey` | string | Yes | PostHog Personal API Key |
| `region` | string | No | Cloud region: us or eu \(default: us\) |

#### Output

| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `organization` | object | Detailed organization information with settings and features |



## Notes

- Category: `tools`
- Type: `posthog`
