NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #572 most downloaded on PyPI
Integrate PostHog into any python application.
Last release today
01 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
313 releases · first in 2020
One column per quarter.
1. Fix mypy support for 3.12.0 2. Deprecate is_simple_flag
is_simple_flagAdd support for OpenAI beta parse API.
context parameterAdd the $ai_span event to the LangChain callback handler to capture the input and output of intermediary chains.
Add the $ai_span event to the LangChain callback handler to capture the input and output of intermediary chains.
LLM observability naming change: event property
$ai_trace_nameis now$ai_span_name.
Fix serialiazation of Pydantic models in methods.
Add $ai_error and $ai_is_error properties to LangChain callback handler, OpenAI, and Anthropic.
$ai_error and $ai_is_error properties to LangChain callback handler, OpenAI, and Anthropic.Fix capturing of multiple traces in the LangChain callback handler.
Fix importing of LangChain callback handler under certain circumstances.
Nothing published for this version
Add $ai_trace event emission to LangChain callback handler.
$ai_trace event emission to LangChain callback handler.Add Anthropic support for LLM Observability.
Fix setuptools to include the posthog.ai.openai and posthog.ai.langchain packages for the posthoganalytics package.
posthog.ai.openai and posthog.ai.langchain packages for the posthoganalytics package.Fix setuptools to include the posthog.ai.openai and posthog.ai.langchain packages.
posthog.ai.openai and posthog.ai.langchain packages.Add LLM Observability with support for OpenAI and Langchain callbacks.
Nothing published for this version
Add distinct_id to group_identify
distinct_id to group_identifyFix bug where this SDK incorrectly sent feature flag events with null values when calling get_feature_flag_payload.
get_feature_flag_payload.Use personless mode when sending an exception without a provided distinct_id.
distinct_id.Add type property to exception stacks.
type property to exception stacks.Adds a new super_properties parameter on the client that are appended to every /capture call.
super_properties parameter on the client that are appended to every /capture call.Fix manual capture support for in app frames
Fix django integration support for manual exception capture.
1. Add manual exception capture.
Make sure setup.py for posthoganalytics package also discovers the new exception integration package.
Make sure setup.py discovers the new exception integration package.
Adds django integration to exception autocapture in alpha state. This feature is not yet stable and may change in future versions.
Adds exception autocapture in alpha state. This feature is not yet stable and may change in future versions.
Guard for None values in local evaluation
- Adds a new feature_flags_request_timeout_seconds timeout parameter for feature flags which defaults to 3 seconds, updated from the default 10s for a
feature_flags_request_timeout_seconds timeout parameter for feature flags which defaults to 3 seconds, updated from the default 10s for all other API calls.Add historical_migration option for bulk migration to PostHog Cloud.
historical_migration option for bulk migration to PostHog Cloud.Use new hosts for event capture as well
Point given hosts to new ingestion hosts
Update type hints for module variables to work with newer versions of mypy
Remove new relative date operators, combine into regular date operators
Return success/failure with all capture calls from module functions
Make sure we don't override any existing feature flag properties when adding locally evaluated feature flag properties.
When local evaluation is enabled, we automatically add flag information to all events sent to PostHog, whenever possible. This makes it easier to use
Numeric property handling for feature flags now does the expected: When passed in a number, we do a numeric comparison. When passed in a string, we do
Increase maximum event size and batch size
Returns the current flag property with $feature_flag_called events, to make it easier to use in experiments
Restore how feature flags work when the client library is disabled: All requests return None and no events are sent when the client is disabled.
None and no events are sent when the client is disabled.feature_flag_definitions() debug option, which returns currently loaded feature flag definitions. You can use this to more cleverly decide when to request local evaluation of feature flags.All events by default now send the $geoip_disable property to disable geoip lookup in app. This is because usually we don't want to update person prop
Breaking change:
All events by default now send the $geoip_disable property to disable geoip lookup in app. This is because usually we don't
want to update person properties to take the server's location.
The same now happens for feature flag requests, where we discard the IP address of the server for matching on geoip properties like city, country, continent.
To restore previous behaviour, you can set the default to False like so:
posthog.disable_geoip = False
# // and if using client instantiation:
posthog = Posthog('api_key', disable_geoip=False)
Add option for instantiating separate client object
Update backoff dependency for posthoganalytics package to be the same as posthog package
Support evaluating all cohorts in feature flags for local evaluation
Log instead of raise error on posthog personal api key errors
Add support for returning payloads of matched feature flags
Add support for feature flag variant overrides with local evaluation
Changes:
Fixes issues with date comparison.
Changes:
Feature flags local evaluation now supports date property filters as well. Accepts both strings and datetime objects.
Changes:
Feature flag defaults have been removed
Changes:
Make poll_interval configurable
send_feature_flag_events parameter to feature flag calls, which determine whether the $feature_flag_called event should be sent or not.only_evaluate_locally parameter to feature flag calls, which determines whether the feature flag should only be evaluated locally or not.The minimum version requirement for PostHog servers is now 1.38. If you're using PostHog Cloud, you satisfy this requirement automatically.
Breaking changes:
True, even if a flag resolved to False, the default would override this.
Note: These are removed in 2.0.2New Changes:
is_feature_enabled and get_feature_flag calls.get_all_flags method that returns all feature flags. This is useful for when you want to seed your frontend with some initial flags, given a user ID.Support for sending feature flags with capture calls
Support multi variate feature flags
Allow feature flags usage without project_api_key
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix packaging issues with Sentry integrations
Your coding agent can read these notes before it upgrades. Set up the MCP server →