# paths./api/code/invites/check-access/.get.description
Check whether the authenticated user has access to PostHog Code.

# paths./api/code/invites/redeem/.post.description
Redeem a PostHog Code invite code to enable access.

# paths./api/environments/{environment_id}/accounts/.get.parameters[].description
Filter by account executive. Use 'unassigned' or an integer user id.

# paths./api/environments/{environment_id}/accounts/.get.parameters[].description
Filter by account owner. Use 'unassigned' or an integer user id.

# paths./api/environments/{environment_id}/accounts/.get.parameters[].description
When true, returns only accounts where CSM, account executive, and account owner are all unset.

# paths./api/environments/{environment_id}/accounts/.get.parameters[].description
Filter by CSM. Use 'unassigned' for accounts with no CSM, or an integer user id.

# paths./api/environments/{environment_id}/accounts/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/accounts/.get.parameters[].description
Case-insensitive substring search across account name and external ID.

# paths./api/environments/{environment_id}/accounts/.get.parameters[].description
JSON-encoded array of tag names to filter by, e.g. `["enterprise","priority"]`. Returns accounts that have any of the listed tags. Malformed values (not a JSON-encoded list of strings) return a 400.

# paths./api/environments/{environment_id}/accounts/{account_id}/noteboo.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/alerts/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/alerts/{id}/.get.parameters[].description
Relative date string for the start of the check history window (e.g. '-24h', '-7d', '-14d'). Returns checks created after this time. Max retention is 14 days.

# paths./api/environments/{environment_id}/alerts/{id}/.get.parameters[].description
Relative date string for the end of the check history window (e.g. '-1h', '-1d'). Defaults to now if not specified.

# paths./api/environments/{environment_id}/alerts/{id}/.get.parameters[].description
Maximum number of check results to return (default 5, max 500). Applied after date filtering.

# paths./api/environments/{environment_id}/alerts/{id}/.get.parameters[].description
Number of newest checks to skip (0-based). Use with checks_limit for pagination. Default 0.

# paths./api/environments/{environment_id}/alerts/{id}/.get.parameters[].description
A UUID string identifying this alert configuration.

# paths./api/environments/{environment_id}/alerts/{id}/.put.parameters[].description
A UUID string identifying this alert configuration.

# paths./api/environments/{environment_id}/alerts/{id}/.patch.parameters[].description
A UUID string identifying this alert configuration.

# paths./api/environments/{environment_id}/alerts/{id}/.delete.parameters[].description
A UUID string identifying this alert configuration.

# paths./api/environments/{environment_id}/alerts/simulate/.post.description
Simulate a detector on an insight's historical data. Read-only — no AlertCheck records are created.

# paths./api/environments/{environment_id}/approval_policies/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/approval_policies/{id}/.get.parameters[].description
A UUID string identifying this approval policy.

# paths./api/environments/{environment_id}/approval_policies/{id}/.put.parameters[].description
A UUID string identifying this approval policy.

# paths./api/environments/{environment_id}/approval_policies/{id}/.patch.parameters[].description
A UUID string identifying this approval policy.

# paths./api/environments/{environment_id}/approval_policies/{id}/.delete.parameters[].description
A UUID string identifying this approval policy.

# paths./api/environments/{environment_id}/batch_exports/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.description
ViewSet for BatchExportBackfill models.

Allows creating and reading backfills, but not updating or deleting them.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.parameters[].schema.description
The BatchExport this backfill belongs to.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.parameters[].description
Which field to use when ordering the results.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.post.description
Create a new backfill for a BatchExport.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.post.parameters[].schema.description
The BatchExport this backfill belongs to.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.description
ViewSet for BatchExportBackfill models.

Allows creating and reading backfills, but not updating or deleting them.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.parameters[].schema.description
The BatchExport this backfill belongs to.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.parameters[].description
A UUID string identifying this batch export backfill.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.post.parameters[].schema.description
The BatchExport this backfill belongs to.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.post.parameters[].description
A UUID string identifying this batch export backfill.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.parameters[].description
Which field to use when ordering the results.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.parameters[].description
A UUID string identifying this batch export run.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.post.parameters[].description
A UUID string identifying this batch export run.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.parameters[].description
Only return entries after this ISO 8601 timestamp.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.parameters[].description
Only return entries before this ISO 8601 timestamp.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.parameters[].description
A UUID string identifying this batch export run.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.parameters[].description
Filter logs to a specific execution instance.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.parameters[].description
Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.parameters[].description
Maximum number of log entries to return (1-500, default 50).

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.get.parameters[].description
Case-insensitive substring search across log messages.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.post.description
Retry a batch export run.

We use the same underlying mechanism as when backfilling a batch export, as retrying
a run is the same as backfilling one run.

# paths./api/environments/{environment_id}/batch_exports/{batch_export_i.post.parameters[].description
A UUID string identifying this batch export run.

# paths./api/environments/{environment_id}/batch_exports/{id}/.get.parameters[].description
A UUID string identifying this batch export.

# paths./api/environments/{environment_id}/batch_exports/{id}/.put.parameters[].description
A UUID string identifying this batch export.

# paths./api/environments/{environment_id}/batch_exports/{id}/.patch.parameters[].description
A UUID string identifying this batch export.

# paths./api/environments/{environment_id}/batch_exports/{id}/.delete.parameters[].description
A UUID string identifying this batch export.

# paths./api/environments/{environment_id}/batch_exports/{id}/logs/.get.parameters[].description
Only return entries after this ISO 8601 timestamp.

# paths./api/environments/{environment_id}/batch_exports/{id}/logs/.get.parameters[].description
Only return entries before this ISO 8601 timestamp.

# paths./api/environments/{environment_id}/batch_exports/{id}/logs/.get.parameters[].description
A UUID string identifying this batch export.

# paths./api/environments/{environment_id}/batch_exports/{id}/logs/.get.parameters[].description
Filter logs to a specific execution instance.

# paths./api/environments/{environment_id}/batch_exports/{id}/logs/.get.parameters[].description
Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR.

# paths./api/environments/{environment_id}/batch_exports/{id}/logs/.get.parameters[].description
Maximum number of log entries to return (1-500, default 50).

# paths./api/environments/{environment_id}/batch_exports/{id}/logs/.get.parameters[].description
Case-insensitive substring search across log messages.

# paths./api/environments/{environment_id}/batch_exports/{id}/pause/.post.parameters[].description
A UUID string identifying this batch export.

# paths./api/environments/{environment_id}/batch_exports/{id}/run_test_s.post.parameters[].description
A UUID string identifying this batch export.

# paths./api/environments/{environment_id}/batch_exports/{id}/unpause/.post.parameters[].description
A UUID string identifying this batch export.

# paths./api/environments/{environment_id}/change_requests/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/change_requests/.get.parameters[].description
Multiple values may be separated by commas.

# paths./api/environments/{environment_id}/change_requests/{id}/.get.parameters[].description
A UUID string identifying this change request.

# paths./api/environments/{environment_id}/change_requests/{id}/approve/.post.description
Approve a change request.
If quorum is reached, automatically applies the change immediately.

# paths./api/environments/{environment_id}/change_requests/{id}/approve/.post.parameters[].description
A UUID string identifying this change request.

# paths./api/environments/{environment_id}/change_requests/{id}/cancel/.post.description
Cancel a change request.
Only the requester can cancel their own pending change request.

# paths./api/environments/{environment_id}/change_requests/{id}/cancel/.post.parameters[].description
A UUID string identifying this change request.

# paths./api/environments/{environment_id}/change_requests/{id}/reject/.post.parameters[].description
A UUID string identifying this change request.

# paths./api/environments/{environment_id}/conversations/views/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/customer_journeys/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/customer_journeys/{id}/.get.parameters[].description
A UUID string identifying this customer journey.

# paths./api/environments/{environment_id}/customer_journeys/{id}/.put.parameters[].description
A UUID string identifying this customer journey.

# paths./api/environments/{environment_id}/customer_journeys/{id}/.patch.parameters[].description
A UUID string identifying this customer journey.

# paths./api/environments/{environment_id}/customer_journeys/{id}/.delete.parameters[].description
A UUID string identifying this customer journey.

# paths./api/environments/{environment_id}/customer_profile_configs/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/customer_profile_configs/{id}.get.parameters[].description
A UUID string identifying this customer profile config.

# paths./api/environments/{environment_id}/customer_profile_configs/{id}.put.parameters[].description
A UUID string identifying this customer profile config.

# paths./api/environments/{environment_id}/customer_profile_configs/{id}.patch.parameters[].description
A UUID string identifying this customer profile config.

# paths./api/environments/{environment_id}/customer_profile_configs/{id}.delete.parameters[].description
A UUID string identifying this customer profile config.

# paths./api/environments/{environment_id}/dashboards/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/dashboards/.get.parameters[].description
Optional. Fuzzy match against dashboard `name` and `description` using Postgres trigram word similarity (handles typos, transpositions, and prefix-as-you-type). `name` matches rank above `description` matches. Results are ordered by relevance, then pinned status, then name. When omitted, dashboards are ordered by pinned status then alphabetical name. Capped at 200 characters; longer queries return a 400 error.

# paths./api/environments/{environment_id}/dashboards/{dashboard_id}/sha.post.description
Create a new password for the sharing configuration.

# paths./api/environments/{environment_id}/dashboards/{dashboard_id}/sha.delete.description
Delete a password from the sharing configuration.

# paths./api/environments/{environment_id}/dashboards/{id}/.get.parameters[].description
Object (or pre-encoded JSON string) to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token.

# paths./api/environments/{environment_id}/dashboards/{id}/.get.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/.get.parameters[].description
Object (or pre-encoded JSON string) to override dashboard variables for this request only (not persisted). Format: {"<variable_id>": {"code_name": "<code_name>", "variableId": "<variable_id>", "value": <new_value>}}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token.

# paths./api/environments/{environment_id}/dashboards/{id}/.put.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/.patch.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/environments/{environment_id}/dashboards/{id}/.delete.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/analyze_refre.post.description
Generate AI analysis comparing before/after dashboard refresh.
Expects cache_key in request body pointing to the stored 'before' state.

# paths./api/environments/{environment_id}/dashboards/{id}/analyze_refre.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/copy_tile/.post.description
Copy an existing dashboard tile to another dashboard (insight, text card, or widget tile).

# paths./api/environments/{environment_id}/dashboards/{id}/copy_tile/.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/create_text_t.post.description
Add a markdown text tile to a dashboard.

Text tiles render as markdown blocks on the dashboard — useful as section headings, dividers,
or annotations between insight tiles to give the dashboard structure.

# paths./api/environments/{environment_id}/dashboards/{id}/create_text_t.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/delete_tile/.post.description
Soft-delete a single tile from a dashboard.

Works for text, insight, and button tiles. The underlying Insight, Text, or ButtonTile
object is preserved — only the dashboard tile is hidden. To delete the entire dashboard,
use the dashboard delete endpoint instead.

# paths./api/environments/{environment_id}/dashboards/{id}/delete_tile/.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/move_tile/.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/move_tile/.patch.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/reorder_tiles.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/run_insights/.get.description
Run all insights on a dashboard and return their results.

# paths./api/environments/{environment_id}/dashboards/{id}/run_insights/.get.parameters[].description
Object (or pre-encoded JSON string) to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token.

# paths./api/environments/{environment_id}/dashboards/{id}/run_insights/.get.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/run_insights/.get.parameters[].description
'optimized' (default) returns LLM-friendly formatted text per insight. 'json' returns the raw query result objects.

# paths./api/environments/{environment_id}/dashboards/{id}/run_insights/.get.parameters[].description
Cache behavior. 'force_cache' (default) serves from cache even if stale. 'blocking' uses cache if fresh, otherwise recalculates. 'force_blocking' always recalculates.

# paths./api/environments/{environment_id}/dashboards/{id}/run_insights/.get.parameters[].description
Object (or pre-encoded JSON string) to override dashboard variables for this request only (not persisted). Format: {"<variable_id>": {"code_name": "<code_name>", "variableId": "<variable_id>", "value": <new_value>}}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token.

# paths./api/environments/{environment_id}/dashboards/{id}/run_widgets/.get.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/run_widgets/.get.parameters[].description
Comma-separated dashboard tile IDs to run widgets for.

# paths./api/environments/{environment_id}/dashboards/{id}/snapshot/.post.description
Snapshot the current dashboard state (from cache) for AI analysis.
Returns a cache_key representing the 'before' state, to be used with analyze_refresh_result.

# paths./api/environments/{environment_id}/dashboards/{id}/snapshot/.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/stream_tiles/.get.description
Stream dashboard metadata and tiles via Server-Sent Events. Sends metadata first, then tiles as they are rendered.

# paths./api/environments/{environment_id}/dashboards/{id}/stream_tiles/.get.parameters[].description
Object (or pre-encoded JSON string) to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token.

# paths./api/environments/{environment_id}/dashboards/{id}/stream_tiles/.get.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/stream_tiles/.get.parameters[].description
Layout size for tile positioning. 'sm' (default) for standard, 'xs' for mobile. The snake_case alias `layout_size` is also accepted for backward compatibility.

# paths./api/environments/{environment_id}/dashboards/{id}/stream_tiles/.get.parameters[].description
Object (or pre-encoded JSON string) to override dashboard variables for this request only (not persisted). Format: {"<variable_id>": {"code_name": "<code_name>", "variableId": "<variable_id>", "value": <new_value>}}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token.

# paths./api/environments/{environment_id}/dashboards/{id}/update_text_t.post.description
Update the markdown body, layout, or color of an existing text tile on a dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/update_text_t.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/{id}/widgets/batch.post.description
Add multiple widget tiles to a dashboard in one atomic request.

# paths./api/environments/{environment_id}/dashboards/{id}/widgets/batch.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/environments/{environment_id}/dashboards/bulk_update_tags/.post.description
Bulk update tags on multiple objects.

PAT access: this action has no ``required_scopes=`` on the decorator —
inheriting viewsets must add ``"bulk_update_tags"`` to their
``scope_object_write_actions`` list to accept personal API keys.
Without that opt-in, ``APIScopePermission`` rejects PAT requests with
"This action does not support personal API key access". Done per-viewset
so granting ``<scope>:write`` for one resource doesn't leak access to
sibling resources that share this mixin.

Accepts:
- {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]}

Actions:
- "add": Add tags to existing tags on each object
- "remove": Remove specific tags from each object
- "set": Replace all tags on each object with the provided list

# paths./api/environments/{environment_id}/dashboards/create_unlisted_da.post.description
Creates an unlisted dashboard from template by tag.
Enforces uniqueness (one per tag per team).
Returns 409 if unlisted dashboard with this tag already exists.

# paths./api/environments/{environment_id}/dashboards/widget_catalog/.get.description
List registered dashboard widget types and config hints for agents.

# paths./api/environments/{environment_id}/data_color_themes/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/data_color_themes/{id}/.get.parameters[].description
A unique integer value identifying this data color theme.

# paths./api/environments/{environment_id}/data_color_themes/{id}/.put.parameters[].description
A unique integer value identifying this data color theme.

# paths./api/environments/{environment_id}/data_color_themes/{id}/.patch.parameters[].description
A unique integer value identifying this data color theme.

# paths./api/environments/{environment_id}/data_color_themes/{id}/.delete.parameters[].description
A unique integer value identifying this data color theme.

# paths./api/environments/{environment_id}/data_modeling_jobs/.get.description
List data modeling jobs which are "runs" for our saved queries.

# paths./api/environments/{environment_id}/data_modeling_jobs/{id}/.get.description
List data modeling jobs which are "runs" for our saved queries.

# paths./api/environments/{environment_id}/data_modeling_jobs/{id}/.get.parameters[].description
A UUID string identifying this data modeling job.

# paths./api/environments/{environment_id}/data_modeling_jobs/recent/.get.description
Get the most recent non-running job for each saved query from the v2 backend.

# paths./api/environments/{environment_id}/data_modeling_jobs/running/.get.description
Get all currently running jobs from the v2 backend.

# paths./api/environments/{environment_id}/data_warehouse/completed_acti.get.description
Returns completed/non-running activities (jobs with status 'Completed').
Supports pagination and cutoff time filtering.

# paths./api/environments/{environment_id}/data_warehouse/data_health_is.get.description
Returns failed/disabled data pipeline items for the Pipeline status side panel.
Includes: materializations, syncs, sources, destinations, and transformations.

# paths./api/environments/{environment_id}/data_warehouse/data_ops_dashb.get.description
Returns the data ops overview dashboard ID for this team, creating it if it doesn't exist yet.

# paths./api/environments/{environment_id}/data_warehouse/deprovision/.post.description
Start deprovisioning the managed warehouse for this team.

# paths./api/environments/{environment_id}/data_warehouse/job_stats/.get.description
Returns success and failed job statistics for the last 1, 7, or 30 days.
Query parameter 'days' can be 1, 7, or 30 (default: 7).

# paths./api/environments/{environment_id}/data_warehouse/property_value.get.description
API endpoints for data warehouse aggregate statistics and operations.

# paths./api/environments/{environment_id}/data_warehouse/provision/.post.description
Start provisioning a managed warehouse for this team.

# paths./api/environments/{environment_id}/data_warehouse/reset-password.post.description
Reset the root password for the managed warehouse.

# paths./api/environments/{environment_id}/data_warehouse/running_activi.get.description
Returns currently running activities (jobs with status 'Running').
Supports pagination and cutoff time filtering.

# paths./api/environments/{environment_id}/data_warehouse/total_rows_sta.get.description
Returns aggregated statistics for the data warehouse total rows processed within the current billing period.
Used by the frontend data warehouse scene to display usage information.

# paths./api/environments/{environment_id}/data_warehouse/warehouse_stat.get.description
Get the current provisioning status of the managed warehouse.

# paths./api/environments/{environment_id}/dataset_items/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/dataset_items/{id}/.get.parameters[].description
A UUID string identifying this dataset item.

# paths./api/environments/{environment_id}/dataset_items/{id}/.put.parameters[].description
A UUID string identifying this dataset item.

# paths./api/environments/{environment_id}/dataset_items/{id}/.patch.parameters[].description
A UUID string identifying this dataset item.

# paths./api/environments/{environment_id}/dataset_items/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/environments/{environment_id}/dataset_items/{id}/.delete.parameters[].description
A UUID string identifying this dataset item.

# paths./api/environments/{environment_id}/datasets/.get.parameters[].description
Multiple values may be separated by commas.

# paths./api/environments/{environment_id}/datasets/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/datasets/.get.parameters[].description
Ordering

* `created_at` - Created At
* `-created_at` - Created At (descending)
* `updated_at` - Updated At
* `-updated_at` - Updated At (descending)

# paths./api/environments/{environment_id}/datasets/.get.parameters[].description
Search in name, description, or metadata

# paths./api/environments/{environment_id}/datasets/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/environments/{environment_id}/desktop_recordings/.get.description
RESTful API for managing desktop meeting recordings.

Standard CRUD operations plus transcript management as a subresource.

# paths./api/environments/{environment_id}/desktop_recordings/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/desktop_recordings/.post.description
Create a new recording and get Recall.ai upload token for the desktop SDK

# paths./api/environments/{environment_id}/desktop_recordings/{id}/.get.description
RESTful API for managing desktop meeting recordings.

Standard CRUD operations plus transcript management as a subresource.

# paths./api/environments/{environment_id}/desktop_recordings/{id}/.get.parameters[].description
A UUID string identifying this desktop recording.

# paths./api/environments/{environment_id}/desktop_recordings/{id}/.put.description
RESTful API for managing desktop meeting recordings.

Standard CRUD operations plus transcript management as a subresource.

# paths./api/environments/{environment_id}/desktop_recordings/{id}/.put.parameters[].description
A UUID string identifying this desktop recording.

# paths./api/environments/{environment_id}/desktop_recordings/{id}/.patch.description
RESTful API for managing desktop meeting recordings.

Standard CRUD operations plus transcript management as a subresource.

# paths./api/environments/{environment_id}/desktop_recordings/{id}/.patch.parameters[].description
A UUID string identifying this desktop recording.

# paths./api/environments/{environment_id}/desktop_recordings/{id}/.delete.description
RESTful API for managing desktop meeting recordings.

Standard CRUD operations plus transcript management as a subresource.

# paths./api/environments/{environment_id}/desktop_recordings/{id}/.delete.parameters[].description
A UUID string identifying this desktop recording.

# paths./api/environments/{environment_id}/desktop_recordings/{id}/appen.post.description
Append transcript segments (supports batched real-time streaming)

# paths./api/environments/{environment_id}/desktop_recordings/{id}/appen.post.parameters[].description
A UUID string identifying this desktop recording.

# paths./api/environments/{environment_id}/elements/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/elements/{id}/.get.parameters[].description
A unique integer value identifying this element.

# paths./api/environments/{environment_id}/elements/{id}/.put.parameters[].description
A unique integer value identifying this element.

# paths./api/environments/{environment_id}/elements/{id}/.patch.parameters[].description
A unique integer value identifying this element.

# paths./api/environments/{environment_id}/elements/{id}/.delete.parameters[].description
A unique integer value identifying this element.

# paths./api/environments/{environment_id}/elements/stats/.get.description
The original version of this API always and only returned $autocapture elements
If no include query parameter is sent this remains true.
Now, you can pass a combination of include query parameters to get different types of elements
Currently only $autocapture and $rageclick and $dead_click are supported

# paths./api/environments/{environment_id}/endpoints/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/endpoints/{name}/.get.description
Retrieve an endpoint, or a specific version via ?version=N.

# paths./api/environments/{environment_id}/endpoints/{name}/.put.description
Update an existing endpoint. Parameters are optional. Pass version in body or ?version=N query param to target a specific version.

# paths./api/environments/{environment_id}/endpoints/{name}/.delete.description
Delete an endpoint and clean up materialized query.

# paths./api/environments/{environment_id}/endpoints/{name}/materializat.post.description
Preview the materialization transform for an endpoint. Shows what the query will look like after materialization, including range pair detection and bucket functions.

# paths./api/environments/{environment_id}/endpoints/{name}/materializat.get.description
Get materialization status for an endpoint. Supports ?version=N query param.

# paths./api/environments/{environment_id}/endpoints/{name}/openapi.json.get.description
Get OpenAPI 3.0 specification for this endpoint. Use this to generate typed SDK clients.

# paths./api/environments/{environment_id}/endpoints/{name}/openapi.json.get.parameters[].description
Specific endpoint version to generate the spec for. Defaults to latest.

# paths./api/environments/{environment_id}/endpoints/{name}/run/.get.description
Execute endpoint with optional materialization. Supports version parameter, runs latest version if not set.

# paths./api/environments/{environment_id}/endpoints/{name}/run/.post.description
Execute endpoint with optional materialization. Supports version parameter, runs latest version if not set.

# paths./api/environments/{environment_id}/endpoints/{name}/versions/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/endpoints/last_execution_time.post.description
Get the most recent execution time per endpoint (endpoint-level). Timestamps are recorded by the run path for personal-API-key calls. For per-version usage, query the query_log table directly.

# paths./api/environments/{environment_id}/error_tracking/assignment_rul.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/error_tracking/assignment_rul.get.parameters[].description
A UUID string identifying this error tracking assignment rule.

# paths./api/environments/{environment_id}/error_tracking/assignment_rul.put.parameters[].description
A UUID string identifying this error tracking assignment rule.

# paths./api/environments/{environment_id}/error_tracking/assignment_rul.patch.parameters[].description
A UUID string identifying this error tracking assignment rule.

# paths./api/environments/{environment_id}/error_tracking/assignment_rul.delete.parameters[].description
A UUID string identifying this error tracking assignment rule.

# paths./api/environments/{environment_id}/error_tracking/fingerprints/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/error_tracking/fingerprints/{.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/environments/{environment_id}/error_tracking/git-provider-f.get.parameters[].description
Code snippet to search for in repository files.

# paths./api/environments/{environment_id}/error_tracking/git-provider-f.get.parameters[].description
Code snippet to search for in repository files.

# paths./api/environments/{environment_id}/error_tracking/grouping_rules.get.parameters[].description
A UUID string identifying this error tracking grouping rule.

# paths./api/environments/{environment_id}/error_tracking/grouping_rules.put.parameters[].description
A UUID string identifying this error tracking grouping rule.

# paths./api/environments/{environment_id}/error_tracking/grouping_rules.patch.parameters[].description
A UUID string identifying this error tracking grouping rule.

# paths./api/environments/{environment_id}/error_tracking/grouping_rules.delete.parameters[].description
A UUID string identifying this error tracking grouping rule.

# paths./api/environments/{environment_id}/error_tracking/issues/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/error_tracking/issues/{id}/.get.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/environments/{environment_id}/error_tracking/issues/{id}/.put.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/environments/{environment_id}/error_tracking/issues/{id}/.patch.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/environments/{environment_id}/error_tracking/issues/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/environments/{environment_id}/error_tracking/issues/{id}/.delete.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/environments/{environment_id}/error_tracking/issues/{id}/ac.get.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/environments/{environment_id}/error_tracking/issues/{id}/as.patch.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/environments/{environment_id}/error_tracking/issues/{id}/co.put.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/environments/{environment_id}/error_tracking/issues/{id}/me.post.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/environments/{environment_id}/error_tracking/issues/{id}/sp.post.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/environments/{environment_id}/error_tracking/query/issue/.post.description
Fetch one error tracking issue with impact counts, top in_app frame, latest release, and optional sparkline.

# paths./api/environments/{environment_id}/error_tracking/query/issue/.post.summary
Get compact error tracking issue details

# paths./api/environments/{environment_id}/error_tracking/query/issue_ev.post.description
Fetch sampled exception events, stack traces, browser/SDK context, URL, and $session_id values for one issue.

# paths./api/environments/{environment_id}/error_tracking/query/issue_ev.post.summary
List sampled exception events for an error tracking issue

# paths./api/environments/{environment_id}/error_tracking/query/issues/.post.description
List error tracking issues with typed filters and compact aggregate counts.

# paths./api/environments/{environment_id}/error_tracking/recommendation.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/error_tracking/recommendation.post.parameters[].description
A UUID string identifying this error tracking recommendation.

# paths./api/environments/{environment_id}/error_tracking/recommendation.post.parameters[].description
A UUID string identifying this error tracking recommendation.

# paths./api/environments/{environment_id}/error_tracking/recommendation.post.parameters[].description
A UUID string identifying this error tracking recommendation.

# paths./api/environments/{environment_id}/error_tracking/releases/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/error_tracking/releases/{id}/.get.parameters[].description
A UUID string identifying this error tracking release.

# paths./api/environments/{environment_id}/error_tracking/releases/{id}/.put.parameters[].description
A UUID string identifying this error tracking release.

# paths./api/environments/{environment_id}/error_tracking/releases/{id}/.patch.parameters[].description
A UUID string identifying this error tracking release.

# paths./api/environments/{environment_id}/error_tracking/releases/{id}/.delete.parameters[].description
A UUID string identifying this error tracking release.

# paths./api/environments/{environment_id}/error_tracking/spike_events/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/error_tracking/stack_frames/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/error_tracking/stack_frames/{.get.parameters[].description
A UUID string identifying this error tracking stack frame.

# paths./api/environments/{environment_id}/error_tracking/stack_frames/{.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/environments/{environment_id}/error_tracking/stack_frames/{.delete.parameters[].description
A UUID string identifying this error tracking stack frame.

# paths./api/environments/{environment_id}/error_tracking/suppression_ru.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/error_tracking/suppression_ru.get.parameters[].description
A UUID string identifying this error tracking suppression rule.

# paths./api/environments/{environment_id}/error_tracking/suppression_ru.put.parameters[].description
A UUID string identifying this error tracking suppression rule.

# paths./api/environments/{environment_id}/error_tracking/suppression_ru.patch.parameters[].description
A UUID string identifying this error tracking suppression rule.

# paths./api/environments/{environment_id}/error_tracking/suppression_ru.delete.parameters[].description
A UUID string identifying this error tracking suppression rule.

# paths./api/environments/{environment_id}/error_tracking/symbol_sets/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/error_tracking/symbol_sets/.get.parameters[].description
Sort order for symbol sets. Prefix with `-` for descending order.

* `created_at` - created_at
* `-created_at` - -created_at
* `ref` - ref
* `-ref` - -ref
* `last_used` - last_used
* `-last_used` - -last_used

# paths./api/environments/{environment_id}/error_tracking/symbol_sets/.get.parameters[].description
Exact symbol set reference to filter by.

# paths./api/environments/{environment_id}/error_tracking/symbol_sets/.get.parameters[].description
Case-insensitive substring search across reference, release version, release project, and release commit SHA.

# paths./api/environments/{environment_id}/error_tracking/symbol_sets/.get.parameters[].description
Upload status filter: `valid` has an uploaded file, `invalid` is missing a file, `all` returns both.

* `all` - all
* `valid` - valid
* `invalid` - invalid

# paths./api/environments/{environment_id}/error_tracking/symbol_sets/{i.get.parameters[].description
A UUID string identifying this error tracking symbol set.

# paths./api/environments/{environment_id}/error_tracking/symbol_sets/{i.delete.parameters[].description
A UUID string identifying this error tracking symbol set.

# paths./api/environments/{environment_id}/error_tracking/symbol_sets/{i.get.description
Return a presigned URL for downloading the symbol set's source map.

# paths./api/environments/{environment_id}/error_tracking/symbol_sets/{i.get.parameters[].description
A UUID string identifying this error tracking symbol set.

# paths./api/environments/{environment_id}/error_tracking/symbol_sets/{i.put.parameters[].description
A UUID string identifying this error tracking symbol set.

# paths./api/environments/{environment_id}/evaluation_runs/.post.description
Create a new evaluation run.

This endpoint validates the request and enqueues a Temporal workflow
to asynchronously execute the evaluation.

# paths./api/environments/{environment_id}/evaluations/.get.parameters[].description
Multiple values may be separated by commas.

# paths./api/environments/{environment_id}/evaluations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/evaluations/.get.parameters[].description
Ordering

* `created_at` - Created At
* `-created_at` - Created At (descending)
* `updated_at` - Updated At
* `-updated_at` - Updated At (descending)
* `name` - Name
* `-name` - Name (descending)

# paths./api/environments/{environment_id}/evaluations/{id}/.get.parameters[].description
A UUID string identifying this evaluation.

# paths./api/environments/{environment_id}/evaluations/{id}/.put.parameters[].description
A UUID string identifying this evaluation.

# paths./api/environments/{environment_id}/evaluations/{id}/.patch.parameters[].description
A UUID string identifying this evaluation.

# paths./api/environments/{environment_id}/evaluations/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/environments/{environment_id}/evaluations/{id}/.delete.parameters[].description
A UUID string identifying this evaluation.

# paths./api/environments/{environment_id}/evaluations/test_hog/.post.description
Test Hog evaluation code against sample events without saving.

# paths./api/environments/{environment_id}/event_filter/.get.description
Returns the event filter config for the team, or null if not yet created.

# paths./api/environments/{environment_id}/event_filter/.post.description
Create or update the event filter config.

# paths./api/environments/{environment_id}/event_filter/metrics/.get.description
Single event filter per team.
GET  /event_filter/ — returns the config (or null if not yet created)
POST /event_filter/ — creates or updates the config (upsert)
GET  /event_filter/metrics/ — time-series metrics
GET  /event_filter/metrics/totals/ — aggregate totals

# paths./api/environments/{environment_id}/event_filter/metrics/totals/.get.description
Single event filter per team.
GET  /event_filter/ — returns the config (or null if not yet created)
POST /event_filter/ — creates or updates the config (upsert)
GET  /event_filter/metrics/ — time-series metrics
GET  /event_filter/metrics/totals/ — aggregate totals

# paths./api/environments/{environment_id}/events/.get.description
        This endpoint allows you to list and filter events.
        It is effectively deprecated and is kept only for backwards compatibility.
        If you ever ask about it you will be advised to not use it...
        If you want to ad-hoc list or aggregate events, use the Query endpoint instead.
        If you want to export all events or many pages of events you should use our CDP/Batch Exports products instead.
        

# paths./api/environments/{environment_id}/events/.get.parameters[].description
Only return events with a timestamp after this time. Default: now() - 24 hours.

# paths./api/environments/{environment_id}/events/.get.parameters[].description
Only return events with a timestamp before this time. Default: now() + 5 seconds.

# paths./api/environments/{environment_id}/events/.get.parameters[].description
Filter list by event. For example `user sign up` or `$pageview`.

# paths./api/environments/{environment_id}/events/.get.parameters[].description
Include person details for each event. Default: false.

# paths./api/environments/{environment_id}/events/.get.parameters[].description
Allows to skip first offset rows. Will fail for value larger than 100000. Read about proper way of paginating: https://posthog.com/docs/api/queries#5-use-timestamp-based-pagination-instead-of-offset

# paths./api/environments/{environment_id}/events/.get.parameters[].description
Filter events by event property, person property, cohort, groups and more.

# paths./api/environments/{environment_id}/events/.get.parameters[].description
(Experimental) JSON-serialized array of HogQL expressions to return

# paths./api/environments/{environment_id}/events/.get.parameters[].description
(Experimental) JSON-serialized array of HogQL expressions that must pass

# paths./api/environments/{environment_id}/events/{id}/.get.parameters[].description
Include person details for the event. Default: false.

# paths./api/environments/{environment_id}/exports/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/exports/{id}/.get.parameters[].description
A unique integer value identifying this exported asset.

# paths./api/environments/{environment_id}/exports/{id}/content/.get.parameters[].description
A unique integer value identifying this exported asset.

# paths./api/environments/{environment_id}/external_data_schemas/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/external_data_schemas/{id}/.get.parameters[].description
A UUID string identifying this external data schema.

# paths./api/environments/{environment_id}/external_data_schemas/{id}/.put.parameters[].description
A UUID string identifying this external data schema.

# paths./api/environments/{environment_id}/external_data_schemas/{id}/.patch.parameters[].description
A UUID string identifying this external data schema.

# paths./api/environments/{environment_id}/external_data_schemas/{id}/.delete.parameters[].description
A UUID string identifying this external data schema.

# paths./api/environments/{environment_id}/external_data_schemas/{id}/ca.post.parameters[].description
A UUID string identifying this external data schema.

# paths./api/environments/{environment_id}/external_data_schemas/{id}/de.delete.parameters[].description
A UUID string identifying this external data schema.

# paths./api/environments/{environment_id}/external_data_schemas/{id}/in.post.parameters[].description
A UUID string identifying this external data schema.

# paths./api/environments/{environment_id}/external_data_schemas/{id}/re.post.parameters[].description
A UUID string identifying this external data schema.

# paths./api/environments/{environment_id}/external_data_schemas/{id}/re.post.parameters[].description
A UUID string identifying this external data schema.

# paths./api/environments/{environment_id}/external_data_sources/.get.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/external_data_sources/.post.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/{id}/.get.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/{id}/.get.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/.put.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/{id}/.put.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/.patch.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/{id}/.patch.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/.delete.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/{id}/.delete.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/bu.patch.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/{id}/bu.patch.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/bu.patch.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/external_data_sources/{id}/cd.get.description
Live CDC health for an existing source: slot/publication existence and WAL lag.

Reads from the source DB via the engine adapter. Returns ``{"enabled": false}``
when CDC is off, or the stored config plus live ``slot_exists`` /
``publication_exists`` / ``lag_bytes`` when on. 400s if the source DB is
unreachable so the UI can show a degraded/unreachable state.

# paths./api/environments/{environment_id}/external_data_sources/{id}/cd.get.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/ch.post.description
Validate CDC prerequisites for an existing source using its stored credentials.

The detail=False ``check_cdc_prerequisites`` action is for the creation wizard,
where the client still holds the raw connection config (incl. password) in the
form. On the Configuration page the source already exists and secret fields are
stripped from API responses — so the client can't supply them. This reads the
stored (encrypted) credentials from the DB via the adapter instead.

Body params: ``cdc_management_mode`` (``"posthog"`` | ``"self_managed"``),
``cdc_slot_name`` (optional), ``cdc_publication_name`` (optional).

# paths./api/environments/{environment_id}/external_data_sources/{id}/ch.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/cr.post.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/{id}/cr.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/de.post.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/{id}/de.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/di.post.description
Disable CDC on an existing source.

Cancels any running CDC extraction workflow, deletes the extraction schedule,
delegates engine-side teardown to the source's adapter (drops slot/publication
for Postgres; equivalent for other engines), clears ``cdc_*`` keys from
``job_inputs``, soft-deletes companion CDC tables, and sets all CDC schemas to
``sync_type=None``, ``should_sync=False`` so the user must pick a new sync
strategy before they resume.

# paths./api/environments/{environment_id}/external_data_sources/{id}/di.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/en.post.description
Enable CDC on an existing source.

Provisions engine-side CDC resources via the source's adapter, writes the CDC
config into ``source.job_inputs``, and ensures the CDC extraction schedule
exists. Re-runs prereq checks server-side so we never trust a stale
client-side check.

Body params: ``cdc_management_mode`` (``"posthog"`` | ``"self_managed"``),
plus engine-specific identifier hints (e.g. ``cdc_slot_name``,
``cdc_publication_name`` for Postgres). Universal tuning fields:
``cdc_auto_drop_slot`` (optional bool), ``cdc_lag_warning_threshold_mb``
(optional int), ``cdc_lag_critical_threshold_mb`` (optional int).

# paths./api/environments/{environment_id}/external_data_sources/{id}/en.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/jo.get.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/{id}/jo.get.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/re.post.description
Fetch current schema/table list from the source and create any new ExternalDataSchema rows (no data sync).

# paths./api/environments/{environment_id}/external_data_sources/{id}/re.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/re.post.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/{id}/re.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/re.patch.description
Update the revenue analytics configuration and return the full external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/re.patch.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/up.post.description
Update CDC tuning fields without enabling/disabling.

Lets users edit ``cdc_auto_drop_slot``, ``cdc_lag_warning_threshold_mb``, and
``cdc_lag_critical_threshold_mb`` independently. These fields are universal
across engines. Engine-specific identifiers (slot name, management mode, …)
are immutable post-enable — switching them requires disable + enable.

# paths./api/environments/{environment_id}/external_data_sources/{id}/up.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/up.post.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/{id}/up.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/{id}/we.get.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/{id}/we.get.parameters[].description
A UUID string identifying this external data source.

# paths./api/environments/{environment_id}/external_data_sources/check_c.post.description
Validate CDC prerequisites against a live Postgres connection.

Used by the source wizard to surface ✅/❌ checks before source creation,
and by the self-managed setup popup to verify user-created publications.

# paths./api/environments/{environment_id}/external_data_sources/check_c.post.responses.200.description
Whether the Postgres database satisfies CDC prerequisites.

# paths./api/environments/{environment_id}/external_data_sources/check_c.post.responses.400.description
Invalid config, disallowed host, or connection failure.

# paths./api/environments/{environment_id}/external_data_sources/connect.get.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/connect.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/external_data_sources/databas.post.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/source_.post.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/external_data_sources/wizard/.get.description
Create, Read, Update and Delete External data Sources.

# paths./api/environments/{environment_id}/file_download_batch_exports/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/file_download_batch_exports/.post.description
Create and start a batch export on demand run to download a file.

# paths./api/environments/{environment_id}/file_download_batch_exports/{.get.description
Get a batch export on demand run.

If the underlying batch export run has completed, we return keys to the
generated file downloads so that users may download them by making a request
to /download.

# paths./api/environments/{environment_id}/file_download_batch_exports/{.get.parameters[].description
A UUID string identifying this batch export run.

# paths./api/environments/{environment_id}/file_download_batch_exports/{.post.description
Cancel an ongoing file-download batch export.

# paths./api/environments/{environment_id}/file_download_batch_exports/{.post.parameters[].description
A UUID string identifying this batch export run.

# paths./api/environments/{environment_id}/file_download_batch_exports/{.get.description
Download a file (or a part) from this batch export run.

Users can provide a part component with an id or index, or no part component at
all:
* If part id is included: The file download matching the id is downloaded.
* If part index is included: The file download matching the index (as ordered
    by key) is downloaded.
* If no part component is present: If there is only one file downloaded, that
    is downloaded. Otherwise the first one as sorted by key is downloaded.

# paths./api/environments/{environment_id}/file_download_batch_exports/{.get.parameters[].description
A UUID string identifying this batch export run.

# paths./api/environments/{environment_id}/file_download_batch_exports/{.get.parameters[].description
Only return entries after this ISO 8601 timestamp.

# paths./api/environments/{environment_id}/file_download_batch_exports/{.get.parameters[].description
Only return entries before this ISO 8601 timestamp.

# paths./api/environments/{environment_id}/file_download_batch_exports/{.get.parameters[].description
A UUID string identifying this batch export run.

# paths./api/environments/{environment_id}/file_download_batch_exports/{.get.parameters[].description
Filter logs to a specific execution instance.

# paths./api/environments/{environment_id}/file_download_batch_exports/{.get.parameters[].description
Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR.

# paths./api/environments/{environment_id}/file_download_batch_exports/{.get.parameters[].description
Maximum number of log entries to return (1-500, default 50).

# paths./api/environments/{environment_id}/file_download_batch_exports/{.get.parameters[].description
Case-insensitive substring search across log messages.

# paths./api/environments/{environment_id}/file_system/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/file_system/{id}/.get.parameters[].description
A UUID string identifying this file system.

# paths./api/environments/{environment_id}/file_system/{id}/.put.parameters[].description
A UUID string identifying this file system.

# paths./api/environments/{environment_id}/file_system/{id}/.patch.parameters[].description
A UUID string identifying this file system.

# paths./api/environments/{environment_id}/file_system/{id}/.delete.parameters[].description
A UUID string identifying this file system.

# paths./api/environments/{environment_id}/file_system/{id}/count/.post.parameters[].description
A UUID string identifying this file system.

# paths./api/environments/{environment_id}/file_system/{id}/link/.post.parameters[].description
A UUID string identifying this file system.

# paths./api/environments/{environment_id}/file_system/{id}/move/.post.parameters[].description
A UUID string identifying this file system.

# paths./api/environments/{environment_id}/file_system_shortcut/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/file_system_shortcut/{id}/.get.parameters[].description
A UUID string identifying this file system shortcut.

# paths./api/environments/{environment_id}/file_system_shortcut/{id}/.put.parameters[].description
A UUID string identifying this file system shortcut.

# paths./api/environments/{environment_id}/file_system_shortcut/{id}/.patch.parameters[].description
A UUID string identifying this file system shortcut.

# paths./api/environments/{environment_id}/file_system_shortcut/{id}/.delete.parameters[].description
A UUID string identifying this file system shortcut.

# paths./api/environments/{environment_id}/file_system_shortcut/reorder/.post.description
Set the display order of the current user's shortcuts. `ordered_ids` becomes the new top-to-bottom order; any unknown IDs are rejected.

# paths./api/environments/{environment_id}/groups/.get.description
List all groups of a specific group type. You must pass ?group_type_index= in the URL.
To get a list of valid group types, call /api/:project_id/groups_types/.

Uses forward-only keyset pagination via the `cursor` parameter.
The `previous` field in the response envelope is always null.

# paths./api/environments/{environment_id}/groups/.get.parameters[].description
Pagination cursor returned in the `next` URL of a previous response

# paths./api/environments/{environment_id}/groups/.get.parameters[].description
Filter groups whose key contains this string (case-insensitive)

# paths./api/environments/{environment_id}/groups/activity/.get.parameters[].description
Specify the id of the user to find groups for

# paths./api/environments/{environment_id}/groups/related/.get.parameters[].description
Specify the id of the user to find groups for

# paths./api/environments/{environment_id}/health_issues/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/health_issues/{id}/.get.parameters[].description
A UUID string identifying this health issue.

# paths./api/environments/{environment_id}/health_issues/{id}/.patch.parameters[].description
A UUID string identifying this health issue.

# paths./api/environments/{environment_id}/health_issues/{id}/resolve/.post.parameters[].description
A UUID string identifying this health issue.

# paths./api/environments/{environment_id}/health_issues/refresh/.post.responses.202.description
Health check refresh jobs scheduled for the team.

# paths./api/environments/{environment_id}/health_issues/refresh/.post.responses.429.description
Refresh was triggered recently; try again later.

# paths./api/environments/{environment_id}/heatmap_screenshots/{id}/cont.get.description
Fetch the rendered screenshot image (JPEG bytes) for a saved heatmap at a given viewport width. Returns 202 with the saved-heatmap metadata while the screenshot is still being generated.

# paths./api/environments/{environment_id}/heatmap_screenshots/{id}/cont.get.parameters[].description
A UUID string identifying this saved heatmap.

# paths./api/environments/{environment_id}/heatmap_screenshots/{id}/cont.get.parameters[].description
Viewport width (CSS pixels) to fetch. Defaults to 1024. If no exact render exists for this width the closest available one is returned.

# paths./api/environments/{environment_id}/heatmaps/.get.description
Aggregated heatmap interactions for a page. For type 'click'/'rageclick'/'mousemove' each result is a point with relative x, absolute client-y, and a count. For type 'scrolldepth' the response is scroll-depth buckets instead (cumulative reach down the page).

# paths./api/environments/{environment_id}/heatmaps/.get.parameters[].description
How to aggregate counts: 'total_count' (every interaction, default) or 'unique_visitors' (distinct people).

* `unique_visitors` - unique_visitors
* `total_count` - total_count

# paths./api/environments/{environment_id}/heatmaps/.get.parameters[].description
JSON array of cohort IDs (e.g. '[123, 456]') to restrict results to people in those cohorts. Feature-flagged; ignored when the cohort filter is not enabled for the caller.

# paths./api/environments/{environment_id}/heatmaps/.get.parameters[].description
Start of the window. Relative (e.g. '-7d', '-30d', '-1mStart') or an absolute 'YYYY-MM-DD' date. Defaults to '-7d'. Heatmap data is retained for 90 days.

# paths./api/environments/{environment_id}/heatmaps/.get.parameters[].description
End of the window, inclusive. Relative or absolute 'YYYY-MM-DD'. Defaults to today.

# paths./api/environments/{environment_id}/heatmaps/.get.parameters[].description
When true, exclude sessions from internal/test accounts using the project's test-account filters.

# paths./api/environments/{environment_id}/heatmaps/.get.parameters[].description
When true (default), drop interactions recorded at the (0, 0) origin, which are usually noise.

# paths./api/environments/{environment_id}/heatmaps/.get.parameters[].description
The interaction type to return. One of: 'click' (default), 'rageclick', 'mousemove', or 'scrolldepth'. Scrolldepth returns scroll buckets instead of x/y coordinates.

# paths./api/environments/{environment_id}/heatmaps/.get.parameters[].description
Match a single page by exact URL (trailing slash is ignored). Mutually exclusive with url_pattern.

# paths./api/environments/{environment_id}/heatmaps/.get.parameters[].description
Match pages by regex against the full current_url (anchored automatically). Use this to aggregate across query strings or path segments. Mutually exclusive with url_exact.

# paths./api/environments/{environment_id}/heatmaps/.get.parameters[].description
Only include interactions captured at a viewport at most this wide, in CSS pixels.

# paths./api/environments/{environment_id}/heatmaps/.get.parameters[].description
Only include interactions captured at a viewport at least this wide, in CSS pixels. Use with viewport_width_max to isolate a device class (e.g. 360-768 for mobile).

# paths./api/environments/{environment_id}/heatmaps/events/.get.description
Drill into the individual session interactions behind one or more heatmap coordinates. Pass the 'points' you want to inspect (from the heatmaps list response) to get the underlying per-session events, so you can jump to the session recordings that produced a hotspot.

# paths./api/environments/{environment_id}/heatmaps/events/.get.parameters[].description
How to aggregate counts: 'total_count' (every interaction, default) or 'unique_visitors' (distinct people).

* `unique_visitors` - unique_visitors
* `total_count` - total_count

# paths./api/environments/{environment_id}/heatmaps/events/.get.parameters[].description
JSON array of cohort IDs (e.g. '[123, 456]') to restrict results to people in those cohorts. Feature-flagged; ignored when the cohort filter is not enabled for the caller.

# paths./api/environments/{environment_id}/heatmaps/events/.get.parameters[].description
Start of the window. Relative (e.g. '-7d', '-30d', '-1mStart') or an absolute 'YYYY-MM-DD' date. Defaults to '-7d'. Heatmap data is retained for 90 days.

# paths./api/environments/{environment_id}/heatmaps/events/.get.parameters[].description
End of the window, inclusive. Relative or absolute 'YYYY-MM-DD'. Defaults to today.

# paths./api/environments/{environment_id}/heatmaps/events/.get.parameters[].description
When true, exclude sessions from internal/test accounts using the project's test-account filters.

# paths./api/environments/{environment_id}/heatmaps/events/.get.parameters[].description
When true (default), drop interactions recorded at the (0, 0) origin, which are usually noise.

# paths./api/environments/{environment_id}/heatmaps/events/.get.parameters[].description
Number of interactions to skip, for pagination.

# paths./api/environments/{environment_id}/heatmaps/events/.get.parameters[].description
JSON array of the heatmap coordinates to drill into, e.g. '[{"x": 0.5, "y": 100}]'. Each point needs 'x' (relative x, 0..1) and 'y' (absolute client-y pixels) matching values returned by the heatmaps list endpoint; an optional 'target_fixed' boolean matches fixed-position elements. Returns the individual session interactions behind those spots.

# paths./api/environments/{environment_id}/heatmaps/events/.get.parameters[].description
The interaction type to return. One of: 'click' (default), 'rageclick', 'mousemove', or 'scrolldepth'. Scrolldepth returns scroll buckets instead of x/y coordinates.

# paths./api/environments/{environment_id}/heatmaps/events/.get.parameters[].description
Match a single page by exact URL (trailing slash is ignored). Mutually exclusive with url_pattern.

# paths./api/environments/{environment_id}/heatmaps/events/.get.parameters[].description
Match pages by regex against the full current_url (anchored automatically). Use this to aggregate across query strings or path segments. Mutually exclusive with url_exact.

# paths./api/environments/{environment_id}/heatmaps/events/.get.parameters[].description
Only include interactions captured at a viewport at most this wide, in CSS pixels.

# paths./api/environments/{environment_id}/heatmaps/events/.get.parameters[].description
Only include interactions captured at a viewport at least this wide, in CSS pixels. Use with viewport_width_max to isolate a device class (e.g. 360-768 for mobile).

# paths./api/environments/{environment_id}/hog_flows/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/hog_flows/.get.parameters[].description
* `draft` - Draft
* `active` - Active
* `archived` - Archived

# paths./api/environments/{environment_id}/hog_flows/{id}/.get.parameters[].description
A UUID string identifying this hog flow.

# paths./api/environments/{environment_id}/hog_flows/{id}/.put.parameters[].description
A UUID string identifying this hog flow.

# paths./api/environments/{environment_id}/hog_flows/{id}/.patch.parameters[].description
A UUID string identifying this hog flow.

# paths./api/environments/{environment_id}/hog_flows/{id}/.delete.parameters[].description
A UUID string identifying this hog flow.

# paths./api/environments/{environment_id}/hog_flows/{id}/batch_jobs/.get.parameters[].description
A UUID string identifying this hog flow.

# paths./api/environments/{environment_id}/hog_flows/{id}/batch_jobs/.post.parameters[].description
A UUID string identifying this hog flow.

# paths./api/environments/{environment_id}/hog_flows/{id}/invocations/.post.parameters[].description
A UUID string identifying this hog flow.

# paths./api/environments/{environment_id}/hog_flows/{id}/logs/.get.parameters[].description
Only return entries after this ISO 8601 timestamp.

# paths./api/environments/{environment_id}/hog_flows/{id}/logs/.get.parameters[].description
Only return entries before this ISO 8601 timestamp.

# paths./api/environments/{environment_id}/hog_flows/{id}/logs/.get.parameters[].description
A UUID string identifying this hog flow.

# paths./api/environments/{environment_id}/hog_flows/{id}/logs/.get.parameters[].description
Filter logs to a specific execution instance.

# paths./api/environments/{environment_id}/hog_flows/{id}/logs/.get.parameters[].description
Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR.

# paths./api/environments/{environment_id}/hog_flows/{id}/logs/.get.parameters[].description
Maximum number of log entries to return (1-500, default 50).

# paths./api/environments/{environment_id}/hog_flows/{id}/logs/.get.parameters[].description
Case-insensitive substring search across log messages.

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/.get.parameters[].description
Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'.

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/.get.parameters[].description
End of the time range. Same format as 'after'. Defaults to now.

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/.get.parameters[].description
Group the series by metric 'name' or 'kind'. Defaults to 'kind'.

* `name` - name
* `kind` - kind

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/.get.parameters[].description
A UUID string identifying this hog flow.

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/.get.parameters[].description
Filter metrics to a specific execution instance.

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/.get.parameters[].description
Time bucket size for the series. One of: hour, day, week. Defaults to 'day'.

* `hour` - hour
* `day` - day
* `week` - week

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/.get.parameters[].description
Comma-separated metric kinds to filter by, e.g. 'success,failure'.

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/.get.parameters[].description
Comma-separated metric names to filter by.

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/totals.get.parameters[].description
Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'.

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/totals.get.parameters[].description
End of the time range. Same format as 'after'. Defaults to now.

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/totals.get.parameters[].description
Group the series by metric 'name' or 'kind'. Defaults to 'kind'.

* `name` - name
* `kind` - kind

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/totals.get.parameters[].description
A UUID string identifying this hog flow.

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/totals.get.parameters[].description
Filter metrics to a specific execution instance.

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/totals.get.parameters[].description
Time bucket size for the series. One of: hour, day, week. Defaults to 'day'.

* `hour` - hour
* `day` - day
* `week` - week

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/totals.get.parameters[].description
Comma-separated metric kinds to filter by, e.g. 'success,failure'.

# paths./api/environments/{environment_id}/hog_flows/{id}/metrics/totals.get.parameters[].description
Comma-separated metric names to filter by.

# paths./api/environments/{environment_id}/hog_flows/{id}/schedules/.get.parameters[].description
A UUID string identifying this hog flow.

# paths./api/environments/{environment_id}/hog_flows/{id}/schedules/.post.parameters[].description
A UUID string identifying this hog flow.

# paths./api/environments/{environment_id}/hog_flows/{id}/schedules/{sch.patch.parameters[].description
A UUID string identifying this hog flow.

# paths./api/environments/{environment_id}/hog_flows/{id}/schedules/{sch.delete.parameters[].description
A UUID string identifying this hog flow.

# paths./api/environments/{environment_id}/hog_functions/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/hog_functions/.get.parameters[].description
Multiple values may be separated by commas.

# paths./api/environments/{environment_id}/hog_functions/{id}/.get.parameters[].description
A UUID string identifying this hog function.

# paths./api/environments/{environment_id}/hog_functions/{id}/.put.parameters[].description
A UUID string identifying this hog function.

# paths./api/environments/{environment_id}/hog_functions/{id}/.patch.parameters[].description
A UUID string identifying this hog function.

# paths./api/environments/{environment_id}/hog_functions/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/environments/{environment_id}/hog_functions/{id}/.delete.parameters[].description
A UUID string identifying this hog function.

# paths./api/environments/{environment_id}/hog_functions/{id}/enable_bac.post.parameters[].description
A UUID string identifying this hog function.

# paths./api/environments/{environment_id}/hog_functions/{id}/invocation.post.parameters[].description
A UUID string identifying this hog function.

# paths./api/environments/{environment_id}/hog_functions/{id}/logs/.get.parameters[].description
Only return entries after this ISO 8601 timestamp.

# paths./api/environments/{environment_id}/hog_functions/{id}/logs/.get.parameters[].description
Only return entries before this ISO 8601 timestamp.

# paths./api/environments/{environment_id}/hog_functions/{id}/logs/.get.parameters[].description
A UUID string identifying this hog function.

# paths./api/environments/{environment_id}/hog_functions/{id}/logs/.get.parameters[].description
Filter logs to a specific execution instance.

# paths./api/environments/{environment_id}/hog_functions/{id}/logs/.get.parameters[].description
Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR.

# paths./api/environments/{environment_id}/hog_functions/{id}/logs/.get.parameters[].description
Maximum number of log entries to return (1-500, default 50).

# paths./api/environments/{environment_id}/hog_functions/{id}/logs/.get.parameters[].description
Case-insensitive substring search across log messages.

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/.get.parameters[].description
Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'.

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/.get.parameters[].description
End of the time range. Same format as 'after'. Defaults to now.

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/.get.parameters[].description
Group the series by metric 'name' or 'kind'. Defaults to 'kind'.

* `name` - name
* `kind` - kind

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/.get.parameters[].description
A UUID string identifying this hog function.

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/.get.parameters[].description
Filter metrics to a specific execution instance.

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/.get.parameters[].description
Time bucket size for the series. One of: hour, day, week. Defaults to 'day'.

* `hour` - hour
* `day` - day
* `week` - week

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/.get.parameters[].description
Comma-separated metric kinds to filter by, e.g. 'success,failure'.

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/.get.parameters[].description
Comma-separated metric names to filter by.

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/to.get.parameters[].description
Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'.

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/to.get.parameters[].description
End of the time range. Same format as 'after'. Defaults to now.

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/to.get.parameters[].description
Group the series by metric 'name' or 'kind'. Defaults to 'kind'.

* `name` - name
* `kind` - kind

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/to.get.parameters[].description
A UUID string identifying this hog function.

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/to.get.parameters[].description
Filter metrics to a specific execution instance.

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/to.get.parameters[].description
Time bucket size for the series. One of: hour, day, week. Defaults to 'day'.

* `hour` - hour
* `day` - day
* `week` - week

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/to.get.parameters[].description
Comma-separated metric kinds to filter by, e.g. 'success,failure'.

# paths./api/environments/{environment_id}/hog_functions/{id}/metrics/to.get.parameters[].description
Comma-separated metric names to filter by.

# paths./api/environments/{environment_id}/hog_functions/rearrange/.patch.description
Update the execution order of multiple HogFunctions.

# paths./api/environments/{environment_id}/insight_variables/.get.parameters[].description
A page number within the paginated result set.

# paths./api/environments/{environment_id}/insight_variables/{id}/.get.parameters[].description
A UUID string identifying this insight variable.

# paths./api/environments/{environment_id}/insight_variables/{id}/.put.parameters[].description
A UUID string identifying this insight variable.

# paths./api/environments/{environment_id}/insight_variables/{id}/.patch.parameters[].description
A UUID string identifying this insight variable.

# paths./api/environments/{environment_id}/insight_variables/{id}/.delete.parameters[].description
A UUID string identifying this insight variable.

# paths./api/environments/{environment_id}/insights/.get.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
Return basic insight metadata only (no results, faster).

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
JSON-encoded array of user IDs. Only returns insights whose `created_by` is in the list, e.g. `[1,42]`.

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
Filter by `created_at > created_date_from`. Accepts absolute or relative dates.

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
Filter by `created_at < created_date_to`. Accepts absolute or relative dates.

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
JSON-encoded array of dashboard IDs. Returns insights attached to every listed dashboard (AND).

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
Filter by `last_modified_at > date_from`. Accepts absolute dates (`2025-04-23`) or relative strings (`-7d`, `-1m`).

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
Filter by `last_modified_at < date_to`. Accepts absolute dates or relative strings.

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
Include this parameter (any value) to restrict results to insights marked as favorited.

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
Restrict to a single insight type. `JSON` matches non-wrapper query insights; `SQL` matches HogQL queries.

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
Filter by `last_viewed_at > last_viewed_date_from`. Accepts absolute or relative dates.

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
Filter by `last_viewed_at < last_viewed_date_to`. Accepts absolute or relative dates.

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
Whether to refresh the retrieved insights, how aggressively, and if sync or async:
- `'force_cache'` - return cached data or a cache miss; always completes immediately as it never calculates
- `'blocking'` - calculate synchronously (returning only when the query is done), UNLESS there are very fresh results in the cache
- `'async'` - kick off background calculation (returning immediately with a query status), UNLESS there are very fresh results in the cache
- `'lazy_async'` - kick off background calculation, UNLESS there are somewhat fresh results in the cache
- `'force_blocking'` - calculate synchronously, even if fresh results are already cached
- `'force_async'` - kick off background calculation, even if fresh results are already cached
Background calculation can be tracked using the `query_status` response field.

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
When truthy, restricts results to insights that are saved (or attached to a visible dashboard). When falsy, only unsaved insights.

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
Search term matched across name, derived_name, description, and tag names. Returns case-insensitive substring matches and fuzzy trigram matches together in one list, ordered exact-first; each result's `search_match_type` is `exact` or `similar`.

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
JSON-encoded array of tag names. Returns insights with any of the listed tags.

# paths./api/environments/{environment_id}/insights/.get.parameters[].description
Include this parameter (any value) to restrict results to insights created by the authenticated user.

# paths./api/environments/{environment_id}/insights/.post.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/environments/{environment_id}/insights/{insight_id}/sharing.post.description
Create a new password for the sharing configuration.

# paths./api/environments/{environment_id}/insights/{insight_id}/sharing.delete.description
Delete a password from the sharing configuration.

# paths./api/environments/{environment_id}/insights/{insight_id}/thresho.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/insights/{insight_id}/thresho.get.parameters[].description
A UUID string identifying this threshold.

# paths./api/environments/{environment_id}/insights/{id}/.get.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/environments/{environment_id}/insights/{id}/.get.parameters[].description
Object (or pre-encoded JSON string) to override the insight's filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token.

# paths./api/environments/{environment_id}/insights/{id}/.get.parameters[].description
Only if loading an insight in the context of a dashboard: The relevant dashboard's ID.
When set, the specified dashboard's filters and date range override will be applied.

# paths./api/environments/{environment_id}/insights/{id}/.get.parameters[].description
Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight.

# paths./api/environments/{environment_id}/insights/{id}/.get.parameters[].description
Whether to refresh the insight, how aggresively, and if sync or async:
- `'force_cache'` - return cached data or a cache miss; always completes immediately as it never calculates
- `'blocking'` - calculate synchronously (returning only when the query is done), UNLESS there are very fresh results in the cache
- `'async'` - kick off background calculation (returning immediately with a query status), UNLESS there are very fresh results in the cache
- `'lazy_async'` - kick off background calculation, UNLESS there are somewhat fresh results in the cache
- `'force_blocking'` - calculate synchronously, even if fresh results are already cached
- `'force_async'` - kick off background calculation, even if fresh results are already cached
Background calculation can be tracked using the `query_status` response field.

# paths./api/environments/{environment_id}/insights/{id}/.get.parameters[].description
Object (or pre-encoded JSON string) to override the insight's HogQL variables for this request only (not persisted). Format: {"<variable_id>": {"code_name": "<code_name>", "variableId": "<variable_id>", "value": <new_value>}}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `insight-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token.

# paths./api/environments/{environment_id}/insights/{id}/.put.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/environments/{environment_id}/insights/{id}/.put.parameters[].description
Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight.

# paths./api/environments/{environment_id}/insights/{id}/.patch.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/environments/{environment_id}/insights/{id}/.patch.parameters[].description
Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight.

# paths./api/environments/{environment_id}/insights/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/environments/{environment_id}/insights/{id}/.delete.parameters[].description
Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight.

# paths./api/environments/{environment_id}/insights/{id}/activity/.get.description
Audit trail for a single insight — every change made to it, by whom, and when. Use this when you want the change history of a specific insight; use the project-wide activity endpoint for a broader view.

# paths./api/environments/{environment_id}/insights/{id}/activity/.get.parameters[].description
A unique integer value identifying this insight.

# paths./api/environments/{environment_id}/insights/{id}/analyze/.get.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/environments/{environment_id}/insights/{id}/analyze/.get.parameters[].description
A unique integer value identifying this insight.

# paths./api/environments/{environment_id}/insights/{id}/suggestions/.get.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/environments/{environment_id}/insights/{id}/suggestions/.get.parameters[].description
A unique integer value identifying this insight.

# paths./api/environments/{environment_id}/insights/{id}/suggestions/.post.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/environments/{environment_id}/insights/{id}/suggestions/.post.parameters[].description
A unique integer value identifying this insight.

# paths./api/environments/{environment_id}/insights/activity/.get.description
Project-wide audit trail across all insights — who created, edited, deleted, or restored insights, what changed (with before/after diffs), and when. Useful for surfacing what people (or agents) have been working on recently.

# paths./api/environments/{environment_id}/insights/bulk_update_tags/.post.description
Bulk update tags on multiple objects.

PAT access: this action has no ``required_scopes=`` on the decorator —
inheriting viewsets must add ``"bulk_update_tags"`` to their
``scope_object_write_actions`` list to accept personal API keys.
Without that opt-in, ``APIScopePermission`` rejects PAT requests with
"This action does not support personal API key access". Done per-viewset
so granting ``<scope>:write`` for one resource doesn't leak access to
sibling resources that share this mixin.

Accepts:
- {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]}

Actions:
- "add": Add tags to existing tags on each object
- "remove": Remove specific tags from each object
- "set": Replace all tags on each object with the provided list

# paths./api/environments/{environment_id}/insights/cancel/.post.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/environments/{environment_id}/insights/generate_metadata/.post.description
Generate an AI-suggested name and description for an insight based on its query configuration.

# paths./api/environments/{environment_id}/insights/my_last_viewed/.get.description
Returns basic details about the last 5 insights viewed by this user. Most recently viewed first.

# paths./api/environments/{environment_id}/insights/trending/.get.description
Returns insights ranked by view count over the last N days (default 7), highest first. Each result includes the same metadata as the standard insights list, plus a `view_count` and up to 3 recent `viewers`. Useful for surfacing the most-used insights in a project.

# paths./api/environments/{environment_id}/insights/trending/.get.parameters[].description
Time window in days to compute view counts over. Defaults to 7. Larger windows surface consistently popular insights; smaller windows surface what's hot right now.

# paths./api/environments/{environment_id}/insights/trending/.get.parameters[].description
Maximum number of insights to return. Defaults to 10. Capped at 100.

# paths./api/environments/{environment_id}/insights/trending/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/insights/viewed/.post.description
Record that the current user has just viewed one or more insights. Submitted ids that do not belong to the current project or that point at deleted insights are silently dropped. Returns 201 on success regardless of how many ids were retained.

# paths./api/environments/{environment_id}/integrations/.get.parameters[].description
* `anthropic` - Anthropic
* `apns` - Apple Push
* `azure-blob` - Azure Blob
* `bing-ads` - Bing Ads
* `clickup` - Clickup
* `customerio-app` - Customerio App
* `customerio-track` - Customerio Track
* `customerio-webhook` - Customerio Webhook
* `databricks` - Databricks
* `email` - Email
* `firebase` - Firebase
* `github` - Github
* `gitlab` - Gitlab
* `google-ads` - Google Ads
* `google-cloud-service-account` - Google Cloud Service Account
* `google-cloud-storage` - Google Cloud Storage
* `google-pubsub` - Google Pubsub
* `google-search-console` - Google Search Console
* `google-sheets` - Google Sheets
* `hubspot` - Hubspot
* `intercom` - Intercom
* `jira` - Jira
* `linear` - Linear
* `linkedin-ads` - Linkedin Ads
* `meta-ads` - Meta Ads
* `pinterest-ads` - Pinterest Ads
* `postgresql` - Postgresql
* `reddit-ads` - Reddit Ads
* `salesforce` - Salesforce
* `slack` - Slack
* `slack-posthog-code` - Slack Posthog Code
* `snapchat` - Snapchat
* `stripe` - Stripe
* `tiktok-ads` - Tiktok Ads
* `twilio` - Twilio
* `vercel` - Vercel

# paths./api/environments/{environment_id}/integrations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/integrations/{id}/.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/.delete.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/anthropic_m.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/anthropic_m.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/anthropic_m.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/channels/.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/channels/.get.parameters[].description
Maximum number of channels to return per request (max 200).

# paths./api/environments/{environment_id}/integrations/{id}/channels/.get.parameters[].description
Number of channels to skip before returning results.

# paths./api/environments/{environment_id}/integrations/{id}/channels/.get.parameters[].description
Optional case-insensitive channel name or ID search query.

# paths./api/environments/{environment_id}/integrations/{id}/clickup_lis.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/clickup_spa.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/clickup_wor.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/email/.patch.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/email/verif.post.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/github_bran.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/github_bran.get.parameters[].description
Optional case-insensitive branch name search query.

# paths./api/environments/{environment_id}/integrations/{id}/github_repo.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/github_repo.get.parameters[].description
Maximum number of repositories to return per request (max 500).

# paths./api/environments/{environment_id}/integrations/{id}/github_repo.get.parameters[].description
Number of repositories to skip before returning results.

# paths./api/environments/{environment_id}/integrations/{id}/github_repo.get.parameters[].description
Optional case-insensitive repository name search query.

# paths./api/environments/{environment_id}/integrations/{id}/github_repo.post.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/github_team.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/github_team.get.parameters[].description
Maximum number of teams to return per request (max 500).

# paths./api/environments/{environment_id}/integrations/{id}/github_team.get.parameters[].description
Number of teams to skip before returning results.

# paths./api/environments/{environment_id}/integrations/{id}/github_team.get.parameters[].description
Optional case-insensitive team name or slug search query.

# paths./api/environments/{environment_id}/integrations/{id}/google_acce.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/google_conv.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/jira_projec.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/linear_team.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/linkedin_ad.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/linkedin_ad.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/{id}/twilio_phon.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/environments/{environment_id}/integrations/domain-connect/a.post.description
Unified endpoint for generating Domain Connect apply URLs.

Accepts a context ("email" or "proxy") and the relevant resource ID.
The backend resolves the domain, template variables, and service ID
based on context, then builds the signed apply URL.

# paths./api/environments/{environment_id}/integrations/github/link_exis.post.description
Reuse a GitHub installation already linked to a sibling team in the same organization.

# paths./api/environments/{environment_id}/integrations/github/oauth_aut.post.description
Mint a User OAuth URL to bootstrap a fresh `code` when the install flow returns without one.

# paths./api/environments/{environment_id}/llm_analytics/clustering_conf.get.description
Team-level clustering configuration (event filters for automated pipelines).

# paths./api/environments/{environment_id}/llm_analytics/clustering_conf.post.description
Team-level clustering configuration (event filters for automated pipelines).

# paths./api/environments/{environment_id}/llm_analytics/clustering_jobs.get.description
CRUD for clustering job configurations (max 5 per team).

# paths./api/environments/{environment_id}/llm_analytics/clustering_jobs.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/llm_analytics/clustering_jobs.post.description
CRUD for clustering job configurations (max 5 per team).

# paths./api/environments/{environment_id}/llm_analytics/clustering_jobs.get.description
CRUD for clustering job configurations (max 5 per team).

# paths./api/environments/{environment_id}/llm_analytics/clustering_jobs.get.parameters[].description
A UUID string identifying this clustering job.

# paths./api/environments/{environment_id}/llm_analytics/clustering_jobs.put.description
CRUD for clustering job configurations (max 5 per team).

# paths./api/environments/{environment_id}/llm_analytics/clustering_jobs.put.parameters[].description
A UUID string identifying this clustering job.

# paths./api/environments/{environment_id}/llm_analytics/clustering_jobs.patch.description
CRUD for clustering job configurations (max 5 per team).

# paths./api/environments/{environment_id}/llm_analytics/clustering_jobs.patch.parameters[].description
A UUID string identifying this clustering job.

# paths./api/environments/{environment_id}/llm_analytics/clustering_jobs.delete.description
CRUD for clustering job configurations (max 5 per team).

# paths./api/environments/{environment_id}/llm_analytics/clustering_jobs.delete.parameters[].description
A UUID string identifying this clustering job.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_conf.post.description
Set the active provider key for evaluations

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.get.description
CRUD for evaluation report configurations + report run history.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.post.description
CRUD for evaluation report configurations + report run history.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.get.description
CRUD for evaluation report configurations + report run history.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.get.parameters[].description
A UUID string identifying this evaluation report.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.put.description
CRUD for evaluation report configurations + report run history.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.put.parameters[].description
A UUID string identifying this evaluation report.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.patch.description
CRUD for evaluation report configurations + report run history.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.patch.parameters[].description
A UUID string identifying this evaluation report.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.delete.parameters[].description
A UUID string identifying this evaluation report.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.post.parameters[].description
A UUID string identifying this evaluation report.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.get.description
List report runs (history) for this report.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.get.parameters[].description
A UUID string identifying this evaluation report.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_repo.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_summ.post.description
Generate an AI-powered summary of evaluation results.

This endpoint analyzes evaluation runs and identifies patterns in passing
and failing evaluations, providing actionable recommendations.

Data is fetched server-side by evaluation ID to ensure data integrity.

**Use Cases:**
- Understand why evaluations are passing or failing
- Identify systematic issues in LLM responses
- Get recommendations for improving response quality
- Review patterns across many evaluation runs at once
        

# paths./api/environments/{environment_id}/llm_analytics/evaluation_summ.post.responses.200.content.application/json.examples.SuccessResponse.value.overall_assessment
Evaluations show generally good quality with some factual accuracy issues.

# paths./api/environments/{environment_id}/llm_analytics/evaluation_summ.post.responses.200.content.application/json.examples.SuccessResponse.value.fail_patterns[].description
Some responses contained inaccurate information

# paths./api/environments/{environment_id}/llm_analytics/evaluation_summ.post.responses.200.content.application/json.examples.SuccessResponse.value.recommendations[]
Implement fact-checking for critical claims

# paths./api/environments/{environment_id}/llm_analytics/models/.get.parameters[].description
Optional provider key UUID. When supplied, models reachable with that specific key are returned (useful for Azure OpenAI, where the deployment list depends on the configured endpoint). Must belong to the same provider as the `provider` parameter.

# paths./api/environments/{environment_id}/llm_analytics/models/.get.parameters[].description
LLM provider to list models for. Must be one of the supported providers.

# paths./api/environments/{environment_id}/llm_analytics/provider_key_va.post.description
Validate LLM provider API keys without persisting them

# paths./api/environments/{environment_id}/llm_analytics/provider_keys/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/llm_analytics/provider_keys/{.get.parameters[].description
A UUID string identifying this llm provider key.

# paths./api/environments/{environment_id}/llm_analytics/provider_keys/{.put.parameters[].description
A UUID string identifying this llm provider key.

# paths./api/environments/{environment_id}/llm_analytics/provider_keys/{.patch.parameters[].description
A UUID string identifying this llm provider key.

# paths./api/environments/{environment_id}/llm_analytics/provider_keys/{.delete.parameters[].description
A UUID string identifying this llm provider key.

# paths./api/environments/{environment_id}/llm_analytics/provider_keys/{.post.description
Assign this key to evaluations and optionally re-enable them.

# paths./api/environments/{environment_id}/llm_analytics/provider_keys/{.post.parameters[].description
A UUID string identifying this llm provider key.

# paths./api/environments/{environment_id}/llm_analytics/provider_keys/{.get.description
Get evaluations using this key and alternative keys for replacement.

# paths./api/environments/{environment_id}/llm_analytics/provider_keys/{.get.parameters[].description
A UUID string identifying this llm provider key.

# paths./api/environments/{environment_id}/llm_analytics/provider_keys/{.post.parameters[].description
A UUID string identifying this llm provider key.

# paths./api/environments/{environment_id}/llm_analytics/provider_keys/t.get.description
List enabled evaluations currently using trial credits for a given provider.

# paths./api/environments/{environment_id}/llm_analytics/review_queue_it.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/llm_analytics/review_queue_it.get.parameters[].description
Filter by multiple trace IDs separated by commas.

# paths./api/environments/{environment_id}/llm_analytics/review_queue_it.get.parameters[].description
A UUID string identifying this review queue item.

# paths./api/environments/{environment_id}/llm_analytics/review_queue_it.patch.parameters[].description
A UUID string identifying this review queue item.

# paths./api/environments/{environment_id}/llm_analytics/review_queue_it.delete.parameters[].description
A UUID string identifying this review queue item.

# paths./api/environments/{environment_id}/llm_analytics/review_queues/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/llm_analytics/review_queues/.get.parameters[].description
Order by `name`, `updated_at`, or `created_at`.

# paths./api/environments/{environment_id}/llm_analytics/review_queues/{.get.parameters[].description
A UUID string identifying this review queue.

# paths./api/environments/{environment_id}/llm_analytics/review_queues/{.patch.parameters[].description
A UUID string identifying this review queue.

# paths./api/environments/{environment_id}/llm_analytics/review_queues/{.delete.parameters[].description
A UUID string identifying this review queue.

# paths./api/environments/{environment_id}/llm_analytics/score_definitio.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/llm_analytics/score_definitio.get.parameters[].description
Sort by name, kind, created_at, updated_at, or current_version.

# paths./api/environments/{environment_id}/llm_analytics/score_definitio.get.parameters[].description
A UUID string identifying this score definition.

# paths./api/environments/{environment_id}/llm_analytics/score_definitio.patch.parameters[].description
A UUID string identifying this score definition.

# paths./api/environments/{environment_id}/llm_analytics/score_definitio.post.parameters[].description
A UUID string identifying this score definition.

# paths./api/environments/{environment_id}/llm_analytics/summarization/.post.description
Generate an AI-powered summary of an LLM trace or event.

This endpoint analyzes the provided trace/event, generates a line-numbered text
representation, and uses an LLM to create a concise summary with line references.

**Two ways to use this endpoint:**

1. **By ID (recommended):** Pass `trace_id` or `generation_id` with an optional `date_from`/`date_to`.
   The backend fetches the data automatically. `summarize_type` is inferred.
2. **By data:** Pass the full trace/event data blob in `data` with `summarize_type`.
   This is how the frontend uses it.

**Summary Format:**
- Title (concise, max 10 words)
- Mermaid flow diagram showing the main flow
- 3-10 summary bullets with line references
- "Interesting Notes" section for failures, successes, or unusual patterns
- Line references in [L45] or [L45-52] format pointing to relevant sections

The response includes the structured summary, the text representation, and metadata.
        

# paths./api/environments/{environment_id}/llm_analytics/summarization/.post.responses.200.content.application/json.examples.SuccessResponse.value.summary
## Summary
- User initiated conversation with greeting [L5-8]
- Assistant responded with friendly message [L12-15]

## Interesting Notes
- Standard greeting pattern with no errors

# paths./api/environments/{environment_id}/llm_analytics/summarization/b.post.description
Check which traces have cached summaries available.

This endpoint allows batch checking of multiple trace IDs to see which ones
have cached summaries. Returns only the traces that have cached summaries
with their titles.

**Use Cases:**
- Load cached summaries on session view load
- Avoid unnecessary LLM calls for already-summarized traces
- Display summary previews without generating new summaries
        

# paths./api/environments/{environment_id}/llm_analytics/text_repr/.post.description
Generate a human-readable text representation of an LLM trace event.

This endpoint converts AI observability events ($ai_generation, $ai_span, $ai_embedding, or $ai_trace)
into formatted text representations suitable for display, logging, or analysis.

**Supported Event Types:**
- `$ai_generation`: Individual LLM API calls with input/output messages
- `$ai_span`: Logical spans with state transitions
- `$ai_embedding`: Embedding generation events (text input → vector)
- `$ai_trace`: Full traces with hierarchical structure

**Options:**
- `max_length`: Maximum character count (default: 2000000)
- `truncated`: Enable middle-content truncation within events (default: true)
- `truncate_buffer`: Characters at start/end when truncating (default: 1000)
- `include_markers`: Use interactive markers vs plain text indicators (default: true)
  - Frontend: set true for `<<<TRUNCATED|base64|...>>>` markers
  - Backend/LLM: set false for `... (X chars truncated) ...` text
- `collapsed`: Show summary vs full trace tree (default: false)
- `include_hierarchy`: Include tree structure for traces (default: true)
- `max_depth`: Maximum depth for hierarchical rendering (default: unlimited)
- `tools_collapse_threshold`: Number of tools before auto-collapsing list (default: 5)
  - Tool lists >5 items show `<<<TOOLS_EXPANDABLE|...>>>` marker for frontend
  - Or `[+] AVAILABLE TOOLS: N` for backend when `include_markers: false`
- `include_line_numbers`: Prefix each line with line number like L001:, L010: (default: false)

**Use Cases:**
- Frontend display: `truncated: true, include_markers: true, include_line_numbers: true`
- Backend LLM context (summary): `truncated: true, include_markers: false, collapsed: true`
- Backend LLM context (full): `truncated: false`

The response includes the formatted text and metadata about the rendering.
        

# paths./api/environments/{environment_id}/llm_analytics/text_repr/.post.responses.200.content.application/json.examples.SuccessResponse.value.text
INPUT:

[1] USER

What is the capital of France?

...

# paths./api/environments/{environment_id}/llm_analytics/trace_reviews/.get.parameters[].description
Filter by a stable scorer definition ID.

# paths./api/environments/{environment_id}/llm_analytics/trace_reviews/.get.parameters[].description
Filter by multiple scorer definition IDs separated by commas.

# paths./api/environments/{environment_id}/llm_analytics/trace_reviews/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/llm_analytics/trace_reviews/.get.parameters[].description
Filter by multiple trace IDs separated by commas.

# paths./api/environments/{environment_id}/llm_analytics/trace_reviews/{.get.parameters[].description
A UUID string identifying this trace review.

# paths./api/environments/{environment_id}/llm_analytics/trace_reviews/{.patch.parameters[].description
A UUID string identifying this trace review.

# paths./api/environments/{environment_id}/llm_analytics/trace_reviews/{.delete.parameters[].description
A UUID string identifying this trace review.

# paths./api/environments/{environment_id}/llm_prompts/.get.parameters[].description
Controls how much prompt content is included in the response. 'full' includes the full prompt, 'preview' includes a short prompt_preview, and 'none' omits prompt content entirely. The outline field is always included.

* `full` - full
* `preview` - preview
* `none` - none

# paths./api/environments/{environment_id}/llm_prompts/.get.parameters[].description
Filter prompts by the ID of the user who created them.

# paths./api/environments/{environment_id}/llm_prompts/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/llm_prompts/.get.parameters[].description
Optional substring filter applied to prompt names and prompt content.

# paths./api/environments/{environment_id}/llm_prompts/name/{prompt_name.get.parameters[].description
Controls how much prompt content is included in the response. 'full' includes the full prompt, 'preview' includes a short prompt_preview, and 'none' omits prompt content entirely. The outline field is always included.

* `full` - full
* `preview` - preview
* `none` - none

# paths./api/environments/{environment_id}/llm_prompts/name/{prompt_name.get.parameters[].description
Specific prompt version to fetch. If omitted, the latest version is returned.

# paths./api/environments/{environment_id}/llm_prompts/resolve/name/{pro.get.parameters[].description
Return versions older than this version number. Mutually exclusive with offset.

# paths./api/environments/{environment_id}/llm_prompts/resolve/name/{pro.get.parameters[].description
Maximum number of versions to return per page (1-100).

# paths./api/environments/{environment_id}/llm_prompts/resolve/name/{pro.get.parameters[].description
Zero-based offset into version history for pagination. Mutually exclusive with before_version.

# paths./api/environments/{environment_id}/llm_prompts/resolve/name/{pro.get.parameters[].description
Specific prompt version to fetch. If omitted, the latest version is returned.

# paths./api/environments/{environment_id}/llm_prompts/resolve/name/{pro.get.parameters[].description
Exact prompt version UUID to resolve. Can be used together with version for extra safety.

# paths./api/environments/{environment_id}/llm_skills/.get.parameters[].description
Filter skills by the ID of the user who created them.

# paths./api/environments/{environment_id}/llm_skills/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/llm_skills/.get.parameters[].description
Optional substring filter applied to skill names and descriptions.

# paths./api/environments/{environment_id}/llm_skills/name/{skill_name}/.get.parameters[].description
Specific skill version to fetch. If omitted, the latest version is returned.

# paths./api/environments/{environment_id}/llm_skills/name/{skill_name}/.get.parameters[].description
Specific skill version to fetch. If omitted, the latest version is returned.

# paths./api/environments/{environment_id}/llm_skills/name/{skill_name}/.delete.parameters[].description
Latest version you are editing from. If provided, the request fails with 409 when another write has landed in the meantime.

# paths./api/environments/{environment_id}/llm_skills/resolve/name/{skil.get.parameters[].description
Return versions older than this version number. Mutually exclusive with offset.

# paths./api/environments/{environment_id}/llm_skills/resolve/name/{skil.get.parameters[].description
Maximum number of versions to return per page (1-100).

# paths./api/environments/{environment_id}/llm_skills/resolve/name/{skil.get.parameters[].description
Zero-based offset into version history for pagination. Mutually exclusive with before_version.

# paths./api/environments/{environment_id}/llm_skills/resolve/name/{skil.get.parameters[].description
Specific skill version to fetch. If omitted, the latest version is returned.

# paths./api/environments/{environment_id}/logs/alerts/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/logs/alerts/{id}/.get.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/environments/{environment_id}/logs/alerts/{id}/.put.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/environments/{environment_id}/logs/alerts/{id}/.patch.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/environments/{environment_id}/logs/alerts/{id}/.delete.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/environments/{environment_id}/logs/alerts/{id}/destinations.post.description
Create a notification destination for this alert. One HogFunction is created per alert event kind (firing, resolved, ...) atomically.

# paths./api/environments/{environment_id}/logs/alerts/{id}/destinations.post.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/environments/{environment_id}/logs/alerts/{id}/destinations.post.description
Delete a notification destination by deleting its HogFunction group atomically.

# paths./api/environments/{environment_id}/logs/alerts/{id}/destinations.post.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/environments/{environment_id}/logs/alerts/{id}/events/.get.description
Paginated event history for this alert, newest first. Returns state transitions, errored checks, and user-initiated control-plane rows (reset, enable/disable, snooze/unsnooze, threshold change) — quiet no-op check rows (where state didn't change and there was no error) are filtered out since only the last 10 are kept and they carry no forensic value. Optional `?kind=...` narrows to a single kind.

# paths./api/environments/{environment_id}/logs/alerts/{id}/events/.get.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/environments/{environment_id}/logs/alerts/{id}/events/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/logs/alerts/{id}/reset/.post.description
Reset a broken alert. Clears the consecutive-failure counter and schedules an immediate recheck.

# paths./api/environments/{environment_id}/logs/alerts/{id}/reset/.post.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/environments/{environment_id}/logs/alerts/simulate/.post.description
Simulate a logs alert on historical data using the full state machine. Read-only — no alert check records are created.

# paths./api/environments/{environment_id}/logs/attributes/.get.parameters[].description
Type of attributes: "log" for log attributes, "resource" for resource attributes. Defaults to "log".

* `log` - log
* `resource` - resource

# paths./api/environments/{environment_id}/logs/attributes/.get.parameters[].description
Date range to search within. Defaults to last hour.

# paths./api/environments/{environment_id}/logs/attributes/.get.parameters[].description
Property filters to narrow which logs are scanned for attributes.

# paths./api/environments/{environment_id}/logs/attributes/.get.parameters[].description
When true, the search query also matches attribute values (not just keys). Each result indicates whether it matched on key or value.

# paths./api/environments/{environment_id}/logs/attributes/.get.parameters[].description
Filter attributes to those appearing in logs from these services.

# paths./api/environments/{environment_id}/logs/explainLogWithAI/.post.description
Explain a log entry using AI.

POST /api/environments/:id/logs/explainLogWithAI/

# paths./api/environments/{environment_id}/logs/sampling_rules/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/logs/sampling_rules/{id}/.get.parameters[].description
A UUID string identifying this logs exclusion rule.

# paths./api/environments/{environment_id}/logs/sampling_rules/{id}/.put.parameters[].description
A UUID string identifying this logs exclusion rule.

# paths./api/environments/{environment_id}/logs/sampling_rules/{id}/.patch.parameters[].description
A UUID string identifying this logs exclusion rule.

# paths./api/environments/{environment_id}/logs/sampling_rules/{id}/.delete.parameters[].description
A UUID string identifying this logs exclusion rule.

# paths./api/environments/{environment_id}/logs/sampling_rules/{id}/simu.post.description
Dry-run estimate for how much volume this rule would remove (placeholder response until CH-backed simulation is wired).

# paths./api/environments/{environment_id}/logs/sampling_rules/{id}/simu.post.parameters[].description
A UUID string identifying this logs exclusion rule.

# paths./api/environments/{environment_id}/logs/sampling_rules/reorder/.post.description
Atomically reassign priorities so the given ID order maps to ascending priorities (0..n-1).

# paths./api/environments/{environment_id}/logs/sampling_rules/reorder/.post.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/logs/values/.get.parameters[].description
Type of attribute: "log" or "resource". Defaults to "log".

* `log` - log
* `resource` - resource

# paths./api/environments/{environment_id}/logs/values/.get.parameters[].description
Date range to search within. Defaults to last hour.

# paths./api/environments/{environment_id}/logs/values/.get.parameters[].description
Property filters to narrow which logs are scanned for values.

# paths./api/environments/{environment_id}/logs/values/.get.parameters[].description
Filter values to those appearing in logs from these services.

# paths./api/environments/{environment_id}/logs/views/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/managed_viewsets/{kind}/.get.description
Get all views associated with a specific managed viewset.
GET /api/environments/{team_id}/managed_viewsets/{kind}/

# paths./api/environments/{environment_id}/managed_viewsets/{kind}/.get.parameters[].schema.description
* `revenue_analytics` - Revenue Analytics

# paths./api/environments/{environment_id}/managed_viewsets/{kind}/.put.description
Enable or disable a managed viewset by kind.
PUT /api/environments/{team_id}/managed_viewsets/{kind}/ with body {"enabled": true/false}

# paths./api/environments/{environment_id}/managed_viewsets/{kind}/.put.parameters[].schema.description
* `revenue_analytics` - Revenue Analytics

# paths./api/environments/{environment_id}/mcp_server_installations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/mcp_server_installations/{id}.get.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/environments/{environment_id}/mcp_server_installations/{id}.put.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/environments/{environment_id}/mcp_server_installations/{id}.patch.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/environments/{environment_id}/mcp_server_installations/{id}.delete.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/environments/{environment_id}/mcp_server_installations/{id}.post.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/environments/{environment_id}/mcp_server_installations/{id}.get.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/environments/{environment_id}/mcp_server_installations/{id}.patch.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/environments/{environment_id}/mcp_server_installations/{id}.post.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/environments/{environment_id}/mcp_server_installations/auth.get.description
Start (or re-start) an OAuth flow.

Pass ``template_id`` to (re)connect a catalog template, or
``installation_id`` to reconnect an existing custom install using its
cached metadata and per-user DCR creds.

# paths./api/environments/{environment_id}/mcp_server_installations/auth.get.parameters[].description
* `posthog` - posthog
* `posthog-code` - posthog-code

# paths./api/environments/{environment_id}/mcp_servers/.get.description
Lists curated MCP server templates that users can install with one click.

Templates are seeded by PostHog operators and carry shared, encrypted
OAuth client credentials. Inactive templates are hidden from the catalog.

# paths./api/environments/{environment_id}/mcp_servers/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/mcp_tools/{tool_name}/.post.description
Invoke an MCP tool by name.

This endpoint allows MCP callers to invoke Max AI tools directly
without going through the full LangChain conversation flow.

Scopes are resolved dynamically per tool via dangerously_get_required_scopes.

# paths./api/environments/{environment_id}/mcp_tools/docs_search/.post.description
Run a hybrid (semantic + full-text) RAG search over the PostHog documentation via Inkeep. Returns a markdown body with title, URL, and excerpt for each match for the agent to cite back to the user.

# paths./api/environments/{environment_id}/metrics/values/.get.description
Distinct metric names for the team. Backs the picker UI.

# paths./api/environments/{environment_id}/metrics/values/.get.parameters[].description
Max number of names to return. Defaults to 100, capped at 1000.

# paths./api/environments/{environment_id}/metrics/values/.get.parameters[].description
Substring filter (case-insensitive) applied to metric names.

# paths./api/environments/{environment_id}/persisted_folder/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/persisted_folder/{id}/.get.parameters[].description
A UUID string identifying this Persisted Folder.

# paths./api/environments/{environment_id}/persisted_folder/{id}/.put.parameters[].description
A UUID string identifying this Persisted Folder.

# paths./api/environments/{environment_id}/persisted_folder/{id}/.patch.parameters[].description
A UUID string identifying this Persisted Folder.

# paths./api/environments/{environment_id}/persisted_folder/{id}/.delete.parameters[].description
A UUID string identifying this Persisted Folder.

# paths./api/environments/{environment_id}/persons/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/persons/.get.parameters[].description
Search persons, either by email (full text search) or distinct_id (exact match).

# paths./api/environments/{environment_id}/persons/{id}/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/{id}/.get.parameters[].description
A unique value identifying this person. Accepts both numeric ID and UUID.

# paths./api/environments/{environment_id}/persons/{id}/.put.description
Only for setting properties on the person. "properties" from the request data will be updated via a "$set" event.
This means that only the properties listed will be updated, but other properties won't be removed nor updated.
If you would like to remove a property use the `delete_property` endpoint.

# paths./api/environments/{environment_id}/persons/{id}/.put.parameters[].description
A unique value identifying this person. Accepts both numeric ID and UUID.

# paths./api/environments/{environment_id}/persons/{id}/.patch.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/{id}/.patch.parameters[].description
A unique value identifying this person. Accepts both numeric ID and UUID.

# paths./api/environments/{environment_id}/persons/{id}/activity/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/{id}/activity/.get.parameters[].description
A unique integer value identifying this person.

# paths./api/environments/{environment_id}/persons/{id}/delete_property/.post.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/{id}/delete_property/.post.parameters[].description
A unique value identifying this person. Accepts both numeric ID and UUID.

# paths./api/environments/{environment_id}/persons/{id}/properties_timel.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/{id}/properties_timel.get.parameters[].description
A unique integer value identifying this person.

# paths./api/environments/{environment_id}/persons/{id}/split/.post.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/{id}/split/.post.parameters[].description
A unique integer value identifying this person.

# paths./api/environments/{environment_id}/persons/{id}/update_property/.post.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/{id}/update_property/.post.parameters[].description
A unique value identifying this person. Accepts both numeric ID and UUID.

# paths./api/environments/{environment_id}/persons/activity/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/batch_by_distinct_ids.post.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/batch_by_uuids/.post.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/bulk_delete/.post.description
This endpoint allows you to bulk delete persons, either by the PostHog person IDs or by distinct IDs. You can pass in a maximum of 1000 IDs per call. Only events captured before the request will be deleted.

# paths./api/environments/{environment_id}/persons/cohorts/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/cohorts/.get.parameters[].description
The person ID or UUID to get cohorts for.

# paths./api/environments/{environment_id}/persons/deletion_status/.get.description
List the status of queued event deletions for persons. When you delete a person with `delete_events=true`, an async deletion is queued. Use this endpoint to check whether those deletions are still pending or have been completed.

# paths./api/environments/{environment_id}/persons/deletion_status/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/persons/deletion_status/.get.parameters[].description
Filter by deletion status: 'pending', 'completed', or 'all'.

# paths./api/environments/{environment_id}/persons/funnel/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/funnel/.post.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/lifecycle/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/properties_at_time/.get.description
Get person properties as they existed at a specific point in time.

This endpoint reconstructs person properties by querying ClickHouse events
for $set and $set_once operations up to the specified timestamp.

Query parameters:
- distinct_id: The distinct_id of the person
- timestamp: ISO datetime string for the point in time (e.g., "2023-06-15T14:30:00Z")
- include_set_once: Whether to handle $set_once operations (default: false)

# paths./api/environments/{environment_id}/persons/properties_at_time/.get.parameters[].description
The distinct_id of the person (mutually exclusive with person_id)

# paths./api/environments/{environment_id}/persons/properties_at_time/.get.parameters[].description
Whether to handle $set_once operations (default: false)

# paths./api/environments/{environment_id}/persons/properties_at_time/.get.parameters[].description
The person_id (UUID) to build properties for (mutually exclusive with distinct_id)

# paths./api/environments/{environment_id}/persons/properties_at_time/.get.parameters[].description
ISO datetime string for the point in time (e.g., '2023-06-15T14:30:00Z')

# paths./api/environments/{environment_id}/persons/reset_person_distinct.post.description
Reset a distinct_id for a deleted person. This allows the distinct_id to be used again.

# paths./api/environments/{environment_id}/persons/trends/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/values/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/environments/{environment_id}/persons/values/.get.parameters[].description
The person property key to get values for (e.g., 'email', 'plan', 'role').

# paths./api/environments/{environment_id}/persons/values/.get.parameters[].description
Optional search string to filter values (case-insensitive substring match).

# paths./api/environments/{environment_id}/plugin_configs/{plugin_config.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/project_secret_api_keys/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/project_secret_api_keys/{id}/.get.parameters[].description
A unique value identifying this project secret api key.

# paths./api/environments/{environment_id}/project_secret_api_keys/{id}/.put.parameters[].description
A unique value identifying this project secret api key.

# paths./api/environments/{environment_id}/project_secret_api_keys/{id}/.patch.parameters[].description
A unique value identifying this project secret api key.

# paths./api/environments/{environment_id}/project_secret_api_keys/{id}/.delete.parameters[].description
A unique value identifying this project secret api key.

# paths./api/environments/{environment_id}/project_secret_api_keys/{id}/.post.parameters[].description
A unique value identifying this project secret api key.

# paths./api/environments/{environment_id}/query/.post.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/environments/{environment_id}/query/{id}/log/.get.description
Get query log details from query_log_archive table for a specific query_id, the query must have been issued in last 24 hours.

# paths./api/environments/{environment_id}/query/{query_kind}/.post.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/environments/{environment_id}/query/check_auth_for_async/.post.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/environments/{environment_id}/query/draft_sql/.get.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/environments/{environment_id}/query/upgrade/.post.description
Upgrades a query without executing it. Returns a query with all nodes migrated to the latest version.

# paths./api/environments/{environment_id}/saved/.get.description
List saved heatmaps for the project. A saved heatmap pins a page URL and a set of viewport widths, and (for type 'screenshot') renders the page so heatmap data can be overlaid on it.

# paths./api/environments/{environment_id}/saved/.get.parameters[].description
Field to order by, e.g. '-updated_at' (default) or 'created_at'.

# paths./api/environments/{environment_id}/saved/.get.parameters[].description
Case-insensitive substring match on URL or name.

# paths./api/environments/{environment_id}/saved/.get.parameters[].description
Filter by generation status: 'processing', 'completed', or 'failed'.

# paths./api/environments/{environment_id}/saved/.get.parameters[].description
Filter by render mode: 'screenshot', 'iframe', or 'recording'.

# paths./api/environments/{environment_id}/saved/.post.description
Create a saved heatmap for a page URL. For type 'screenshot' (the default) this enqueues a headless render of the page at each target width; poll the saved heatmap or its content endpoint until status is 'completed'. Provide 'widths' to control which viewport widths are rendered.

# paths./api/environments/{environment_id}/saved/{short_id}/.get.description
Get a single saved heatmap by its short_id, including per-width render status.

# paths./api/environments/{environment_id}/saved/{short_id}/.patch.description
Update a saved heatmap (e.g. rename, change widths, or soft-delete via 'deleted'). Changing the URL of a 'screenshot' heatmap triggers a re-render.

# paths./api/environments/{environment_id}/saved/{short_id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/environments/{environment_id}/saved/{short_id}/regenerate/.post.description
Re-run screenshot generation for a saved heatmap of type 'screenshot'. Clears existing renders and re-renders at every target width; status returns to 'processing'.

# paths./api/environments/{environment_id}/session_recording_playlists/.get.description
Override list to include synthetic playlists

# paths./api/environments/{environment_id}/session_recording_playlists/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/session_recording_playlists/{.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/environments/{environment_id}/session_recordings/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/session_recordings/{id}/.get.parameters[].description
A UUID string identifying this session recording.

# paths./api/environments/{environment_id}/session_recordings/{id}/.put.parameters[].description
A UUID string identifying this session recording.

# paths./api/environments/{environment_id}/session_recordings/{id}/.patch.parameters[].description
A UUID string identifying this session recording.

# paths./api/environments/{environment_id}/session_recordings/{id}/.delete.parameters[].description
A UUID string identifying this session recording.

# paths./api/environments/{environment_id}/session_recordings/{recording.post.description
Create a new password for the sharing configuration.

# paths./api/environments/{environment_id}/session_recordings/{recording.delete.description
Delete a password from the sharing configuration.

# paths./api/environments/{environment_id}/subscriptions/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/subscriptions/.get.parameters[].description
Which field to use when ordering the results.

# paths./api/environments/{environment_id}/subscriptions/.get.parameters[].description
Filter by subscription resource: insight vs dashboard export.

# paths./api/environments/{environment_id}/subscriptions/.get.parameters[].description
Filter by delivery channel (email, Slack, or webhook).

# paths./api/environments/{environment_id}/subscriptions/{id}/.get.parameters[].description
A unique integer value identifying this subscription.

# paths./api/environments/{environment_id}/subscriptions/{id}/.put.parameters[].description
A unique integer value identifying this subscription.

# paths./api/environments/{environment_id}/subscriptions/{id}/.patch.parameters[].description
A unique integer value identifying this subscription.

# paths./api/environments/{environment_id}/subscriptions/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/environments/{environment_id}/subscriptions/{id}/.delete.parameters[].description
A unique integer value identifying this subscription.

# paths./api/environments/{environment_id}/subscriptions/{id}/test-deliv.post.parameters[].description
A unique integer value identifying this subscription.

# paths./api/environments/{environment_id}/subscriptions/summary_quota/.get.responses.200.description
Org-wide AI summary quota: count of currently-active summaries and the limit for the org's plan tier. `limit` is null when no cap is configured.

# paths./api/environments/{environment_id}/taggers/.get.parameters[].description
Multiple values may be separated by commas.

# paths./api/environments/{environment_id}/taggers/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/taggers/.get.parameters[].description
Ordering

* `created_at` - Created At
* `-created_at` - Created At (descending)
* `updated_at` - Updated At
* `-updated_at` - Updated At (descending)
* `name` - Name
* `-name` - Name (descending)

# paths./api/environments/{environment_id}/taggers/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/environments/{environment_id}/taggers/test_hog/.post.description
Test Hog tagger code against sample events without saving.

# paths./api/environments/{environment_id}/tracing/spans/attributes/.get.parameters[].description
Type of attributes: "span_attribute" for span-level attributes, "span_resource_attribute" for resource-level attributes.

* `span_attribute` - span_attribute
* `span_resource_attribute` - span_resource_attribute

# paths./api/environments/{environment_id}/tracing/spans/service-names/.get.parameters[].description
JSON-encoded date range, e.g. '{"date_from": "-1h"}'.

# paths./api/environments/{environment_id}/tracing/spans/values/.get.parameters[].description
Type of attribute: "span" for built-in span fields (e.g. name), "span_attribute" for span-level attributes, "span_resource_attribute" for resource-level attributes.

* `span` - span
* `span_attribute` - span_attribute
* `span_resource_attribute` - span_resource_attribute

# paths./api/environments/{environment_id}/user_interview_topics/.get.description
Planned user interview topics: who we want to target and what we want to ask about.

# paths./api/environments/{environment_id}/user_interview_topics/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/user_interview_topics/.post.description
Planned user interview topics: who we want to target and what we want to ask about.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/.get.description
Planned user interview topics: who we want to target and what we want to ask about.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/.get.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/.put.description
Planned user interview topics: who we want to target and what we want to ask about.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/.put.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/.patch.description
Planned user interview topics: who we want to target and what we want to ask about.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/.patch.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/.delete.description
Planned user interview topics: who we want to target and what we want to ask about.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/.delete.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/ad.post.description
Add a single interviewee to this topic. Email-shaped identifiers (including the `Display Name <email@host>` form) are appended to `interviewee_emails`; everything else is appended to `interviewee_distinct_ids`. Idempotent — adding an identifier that's already present leaves the topic unchanged. Returns the updated topic.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/ad.post.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/ge.post.description
Generate one public interview link per targeted interviewee. Materializes an IntervieweeContext row for every identifier on the topic (without overwriting existing per-person context), and an enabled SharingConfiguration with a unique access token. The URL resolves to the public interview viewer with no PostHog auth required.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/ge.post.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/li.post.description
Same materialization as generate_links, returned as a downloadable CSV. Intended for users who want to mail-merge the per-person interview links into their own email tooling.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/li.post.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/li.post.responses.200.description
CSV with columns: interviewee_identifier, interviewee_email, user_name, interview_url. One row per targeted interviewee.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/re.post.description
Remove an interviewee from this topic. Drops the identifier from both `interviewee_emails` and `interviewee_distinct_ids`, and disables any active SharingConfiguration linked to an IntervieweeContext for that identifier on this topic so the removed person can no longer open their interview link. Idempotent — removing an identifier that isn't present is a no-op. Returns the updated topic.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/re.post.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/se.post.description
Generate (if needed) and email a personalized public interview link to every targeted interviewee on this topic whose identifier is an email address. Distinct-ID-only interviewees are skipped and surfaced in the response. Each invite is keyed on the underlying SharingConfiguration so re-runs after token rotation produce a fresh send.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/se.post.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/te.get.description
Return the calling user's personal dogfood interview link for this topic, plus the latest test interview they have recorded against it. Lazily get-or-creates a per-caller IntervieweeContext + enabled SharingConfiguration the first time it's called, then returns the same stable URL on subsequent calls. The caller's identifier is intentionally not added to the topic's targeting arrays — each user dogfoods under their own row, so test calls never mint a public share token on someone else's behalf.

# paths./api/environments/{environment_id}/user_interview_topics/{id}/te.get.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/environments/{environment_id}/user_interview_topics/{topic_.get.description
Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).

# paths./api/environments/{environment_id}/user_interview_topics/{topic_.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/user_interview_topics/{topic_.post.description
Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).

# paths./api/environments/{environment_id}/user_interview_topics/{topic_.get.description
Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).

# paths./api/environments/{environment_id}/user_interview_topics/{topic_.get.parameters[].description
A UUID string identifying this interviewee context.

# paths./api/environments/{environment_id}/user_interview_topics/{topic_.put.description
Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).

# paths./api/environments/{environment_id}/user_interview_topics/{topic_.put.parameters[].description
A UUID string identifying this interviewee context.

# paths./api/environments/{environment_id}/user_interview_topics/{topic_.patch.description
Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).

# paths./api/environments/{environment_id}/user_interview_topics/{topic_.patch.parameters[].description
A UUID string identifying this interviewee context.

# paths./api/environments/{environment_id}/user_interview_topics/{topic_.delete.description
Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).

# paths./api/environments/{environment_id}/user_interview_topics/{topic_.delete.parameters[].description
A UUID string identifying this interviewee context.

# paths./api/environments/{environment_id}/user_interview_topics/{topic_.post.description
Create up to 500 interviewee context rows for a topic in a single request. Rows whose (topic, interviewee_identifier) already exists are skipped — the response surfaces an `inserted_count`, a `skipped_count`, and the `skipped_identifiers` so the caller can reconcile. Items must have unique `interviewee_identifier` values within the batch.

# paths./api/environments/{environment_id}/user_interviews/.get.parameters[].description
Comma-separated classifications; returns responses carrying any of them (OR). Valid values: abandoned, off-topic.

# paths./api/environments/{environment_id}/user_interviews/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/user_interviews/{id}/.get.parameters[].description
A UUID string identifying this user interview.

# paths./api/environments/{environment_id}/user_interviews/{id}/.put.parameters[].description
A UUID string identifying this user interview.

# paths./api/environments/{environment_id}/user_interviews/{id}/.patch.parameters[].description
A UUID string identifying this user interview.

# paths./api/environments/{environment_id}/user_interviews/{id}/.delete.parameters[].description
A UUID string identifying this user interview.

# paths./api/environments/{environment_id}/user_interviews/search/.post.description
Embed `query` with the same model used to index interview transcripts and summaries, then return the top matches by cosine distance. Each match is a single (interview, document_type) pair — an interview can appear up to twice if both its transcript and summary score above other interviews. Useful for surfacing relevant interview snippets in natural language, without exact keyword matches.

# paths./api/environments/{environment_id}/user_interviews/search/.post.summary
Search interview responses by semantic similarity

# paths./api/environments/{environment_id}/user_interviews/search/.post.responses.200.description
Matches ranked by cosine similarity (descending).

# paths./api/environments/{environment_id}/vision/observations/.get.description
Read-only access to a session's observations across every scanner the caller can read, for the replay-page dock.

# paths./api/environments/{environment_id}/vision/observations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/vision/observations/.get.parameters[].description
Sort observations. Plain keys: created_at, started_at, completed_at, status. JSONB keys: result_score (scorer), result_verdict (monitor), scanner_version. Prefix with `-` for descending.

# paths./api/environments/{environment_id}/vision/observations/.get.parameters[].description
Session recording id to return observations for.

# paths./api/environments/{environment_id}/vision/observations/{id}/.get.description
Read-only access to a session's observations across every scanner the caller can read, for the replay-page dock.

# paths./api/environments/{environment_id}/vision/observations/{id}/.get.parameters[].description
A UUID string identifying this replay observation.

# paths./api/environments/{environment_id}/vision/scanners/.get.parameters[].description
Filter to scanners created by the given user IDs (comma-separated).

# paths./api/environments/{environment_id}/vision/scanners/.get.parameters[].description
Filter by enabled state. Accepts a comma-separated list of `enabled`/`disabled`.

# paths./api/environments/{environment_id}/vision/scanners/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/vision/scanners/.get.parameters[].description
Sort scanners by name, created_at, updated_at, scanner_type, enabled, sampling_rate, or created_by. Prefix with `-` for descending.

# paths./api/environments/{environment_id}/vision/scanners/.get.parameters[].description
Filter by scanner type (monitor, classifier, scorer, summarizer). Accepts a comma-separated list.

# paths./api/environments/{environment_id}/vision/scanners/.get.parameters[].description
Case-insensitive substring match across name, description, and the prompt in scanner_config.

# paths./api/environments/{environment_id}/vision/scanners/{id}/.get.parameters[].description
A UUID string identifying this replay scanner.

# paths./api/environments/{environment_id}/vision/scanners/{id}/.patch.parameters[].description
A UUID string identifying this replay scanner.

# paths./api/environments/{environment_id}/vision/scanners/{id}/.delete.parameters[].description
A UUID string identifying this replay scanner.

# paths./api/environments/{environment_id}/vision/scanners/{id}/observe/.post.description
Apply this scanner to one specific session, on demand. Returns 202 with the workflow handle.

# paths./api/environments/{environment_id}/vision/scanners/{id}/observe/.post.parameters[].description
A UUID string identifying this replay scanner.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.description
Read-only access to observations produced by a scanner.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.parameters[].description
Sort observations. Plain keys: created_at, started_at, completed_at, status. JSONB keys: result_score (scorer), result_verdict (monitor), scanner_version. Prefix with `-` for descending.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.parameters[].description
Filter to observations of a specific session recording.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.parameters[].description
Filter by observation status. Accepts a comma-separated list.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.parameters[].description
Filter classifier observations whose fixed or freeform tags include any of the given values (comma-separated). Matches if the tag appears in either `tags` or `tags_freeform`.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.parameters[].description
Filter by trigger source (schedule or on_demand). Accepts a comma-separated list.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.parameters[].description
Filter monitor observations by verdict. Accepts a comma-separated list (e.g. `yes,inconclusive`).

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.description
Read-only access to observations produced by a scanner.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.parameters[].description
A UUID string identifying this replay observation.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.description
Aggregate counts and per-scanner-type distributions over the filtered observation set. Same filters as the list endpoint apply.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.parameters[].description
Filter to observations of a specific session recording.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.parameters[].description
Filter by observation status. Accepts a comma-separated list.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.parameters[].description
Filter classifier observations whose fixed or freeform tags include any of the given values (comma-separated). Matches if the tag appears in either `tags` or `tags_freeform`.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.parameters[].description
Filter by trigger source (schedule or on_demand). Accepts a comma-separated list.

# paths./api/environments/{environment_id}/vision/scanners/{scanner_id}/.get.parameters[].description
Filter monitor observations by verdict. Accepts a comma-separated list (e.g. `yes,inconclusive`).

# paths./api/environments/{environment_id}/vision/scanners/creators/.get.description
Distinct creators across the team's scanners — feeds the `Created by` filter dropdown.

# paths./api/environments/{environment_id}/vision/scanners/estimate/.post.description
Estimate the observation volume a proposed scanner would generate, for the pre-save cost preview.

# paths./api/environments/{environment_id}/vision/scanners/stats/.get.description
Team-wide scanner counts — independent of list filters, so the overview stays stable.

# paths./api/environments/{environment_id}/warehouse_saved_queries/.get.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_saved_queries/.get.parameters[].description
A page number within the paginated result set.

# paths./api/environments/{environment_id}/warehouse_saved_queries/.post.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.get.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.get.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.put.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.put.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.patch.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.patch.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.delete.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.delete.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.get.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.get.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.post.description
Return the ancestors of this saved query.

By default, we return the immediate parents. The `level` parameter can be used to
look further back into the ancestor tree. If `level` overshoots (i.e. points to only
ancestors beyond the root), we return an empty list.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.post.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.post.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.get.description
Return the count of immediate upstream and downstream dependencies for this saved query.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.get.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.post.description
Return the descendants of this saved query.

By default, we return the immediate children. The `level` parameter can be used to
look further ahead into the descendants tree. If `level` overshoots (i.e. points to only
descendants further than a leaf), we return an empty list.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.post.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.post.description
Enable materialization for this saved query with a 24-hour sync frequency.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.post.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.post.description
Undo materialization, revert back to the original view.
(i.e. delete the materialized table and the schedule)

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.post.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.post.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.get.description
Return the recent run history (up to 5 most recent) for this materialized view.

# paths./api/environments/{environment_id}/warehouse_saved_queries/{id}/.get.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/environments/{environment_id}/warehouse_saved_queries/resum.post.description
Resume paused materialization schedules for multiple matviews.

Accepts a list of view IDs in the request body: {"view_ids": ["id1", "id2", ...]}
This endpoint is idempotent - calling it on already running or non-existent schedules is safe.

# paths./api/environments/{environment_id}/warehouse_saved_query_folders.get.parameters[].description
A UUID string identifying this data warehouse saved query folder.

# paths./api/environments/{environment_id}/warehouse_saved_query_folders.patch.parameters[].description
A UUID string identifying this data warehouse saved query folder.

# paths./api/environments/{environment_id}/warehouse_saved_query_folders.delete.parameters[].description
A UUID string identifying this data warehouse saved query folder.

# paths./api/environments/{environment_id}/warehouse_tables/.get.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_tables/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/warehouse_tables/.post.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_tables/{id}/.get.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_tables/{id}/.get.parameters[].description
A UUID string identifying this data warehouse table.

# paths./api/environments/{environment_id}/warehouse_tables/{id}/.put.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_tables/{id}/.put.parameters[].description
A UUID string identifying this data warehouse table.

# paths./api/environments/{environment_id}/warehouse_tables/{id}/.patch.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_tables/{id}/.patch.parameters[].description
A UUID string identifying this data warehouse table.

# paths./api/environments/{environment_id}/warehouse_tables/{id}/.delete.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_tables/{id}/.delete.parameters[].description
A UUID string identifying this data warehouse table.

# paths./api/environments/{environment_id}/warehouse_tables/{id}/refresh.post.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_tables/{id}/refresh.post.parameters[].description
A UUID string identifying this data warehouse table.

# paths./api/environments/{environment_id}/warehouse_tables/{id}/update_.post.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_tables/{id}/update_.post.parameters[].description
A UUID string identifying this data warehouse table.

# paths./api/environments/{environment_id}/warehouse_tables/file/.post.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/environments/{environment_id}/warehouse_view_link/.get.description
Create, Read, Update and Delete View Columns.

# paths./api/environments/{environment_id}/warehouse_view_link/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/warehouse_view_link/.post.description
Create, Read, Update and Delete View Columns.

# paths./api/environments/{environment_id}/warehouse_view_link/{id}/.get.description
Create, Read, Update and Delete View Columns.

# paths./api/environments/{environment_id}/warehouse_view_link/{id}/.get.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/environments/{environment_id}/warehouse_view_link/{id}/.put.description
Create, Read, Update and Delete View Columns.

# paths./api/environments/{environment_id}/warehouse_view_link/{id}/.put.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/environments/{environment_id}/warehouse_view_link/{id}/.patch.description
Create, Read, Update and Delete View Columns.

# paths./api/environments/{environment_id}/warehouse_view_link/{id}/.patch.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/environments/{environment_id}/warehouse_view_link/{id}/.delete.description
Create, Read, Update and Delete View Columns.

# paths./api/environments/{environment_id}/warehouse_view_link/{id}/.delete.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/environments/{environment_id}/warehouse_view_link/validate/.post.description
Create, Read, Update and Delete View Columns.

# paths./api/environments/{environment_id}/warehouse_view_links/.get.description
Create, Read, Update and Delete View Columns.

# paths./api/environments/{environment_id}/warehouse_view_links/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{environment_id}/warehouse_view_links/.post.description
Create, Read, Update and Delete View Columns.

# paths./api/environments/{environment_id}/warehouse_view_links/{id}/.get.description
Create, Read, Update and Delete View Columns.

# paths./api/environments/{environment_id}/warehouse_view_links/{id}/.get.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/environments/{environment_id}/warehouse_view_links/{id}/.put.description
Create, Read, Update and Delete View Columns.

# paths./api/environments/{environment_id}/warehouse_view_links/{id}/.put.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/environments/{environment_id}/warehouse_view_links/{id}/.patch.description
Create, Read, Update and Delete View Columns.

# paths./api/environments/{environment_id}/warehouse_view_links/{id}/.patch.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/environments/{environment_id}/warehouse_view_links/{id}/.delete.description
Create, Read, Update and Delete View Columns.

# paths./api/environments/{environment_id}/warehouse_view_links/{id}/.delete.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/environments/{environment_id}/warehouse_view_links/validate.post.description
Create, Read, Update and Delete View Columns.

# paths./api/environments/{environment_id}/web_analytics/weekly_digest/.get.description
Summarizes a project's web analytics over a lookback window (default 7 days): unique visitors, pageviews, sessions, bounce rate, and average session duration with period-over-period comparisons, plus the top 5 pages, top 5 traffic sources, and goal conversions.

# paths./api/environments/{environment_id}/web_analytics/weekly_digest/.get.parameters[].description
When true (default), include period-over-period change for each metric comparing against the prior equal-length period. Set to false to skip the comparison query (faster).

# paths./api/environments/{environment_id}/web_analytics/weekly_digest/.get.parameters[].description
Lookback window in days (1–90). Defaults to 7.

# paths./api/environments/{environment_id}/web_vitals/.get.description
Get web vitals for a specific pathname.
Toolbar accesses this via OAuth (handled by TeamAndOrgViewSetMixin.get_authenticators).

# paths./api/environments/{project_id}/conversations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/environments/{project_id}/conversations/.post.description
Unified endpoint that handles both conversation creation and streaming.

- If message is provided: Start new conversation processing
- If no message: Stream from existing conversation

# paths./api/environments/{project_id}/conversations/{conversation}/.get.parameters[].description
A UUID string identifying this conversation.

# paths./api/environments/{project_id}/conversations/{conversation}/.delete.parameters[].description
A UUID string identifying this conversation.

# paths./api/environments/{project_id}/conversations/{conversation}/appe.post.description
Appends a message to an existing conversation without triggering AI processing.
This is used for client-side generated messages that need to be persisted
(e.g., support ticket confirmation messages).

# paths./api/environments/{project_id}/conversations/{conversation}/appe.post.parameters[].description
A UUID string identifying this conversation.

# paths./api/environments/{project_id}/conversations/{conversation}/canc.patch.parameters[].description
A UUID string identifying this conversation.

# paths./api/environments/{project_id}/conversations/{conversation}/queu.get.parameters[].description
A UUID string identifying this conversation.

# paths./api/environments/{project_id}/conversations/{conversation}/queu.post.parameters[].description
A UUID string identifying this conversation.

# paths./api/environments/{project_id}/conversations/{conversation}/queu.patch.parameters[].description
A UUID string identifying this conversation.

# paths./api/environments/{project_id}/conversations/{conversation}/queu.delete.parameters[].description
A UUID string identifying this conversation.

# paths./api/environments/{project_id}/conversations/{conversation}/queu.post.parameters[].description
A UUID string identifying this conversation.

# paths./api/environments/{project_id}/property_access_controls/.get.description
Get all property access control rules for a property definition.

# paths./api/environments/{project_id}/property_access_controls/.get.parameters[].description
The property definition ID to fetch access control rules for.

# paths./api/environments/{project_id}/property_access_controls/.post.description
Create or update a property access control rule.

# paths./api/environments/{project_id}/property_access_controls/.delete.description
Delete a property access control rule. The rule is identified by `property_definition_id` plus an optional `organization_member` or `role` query parameter. Omitting both targets deletes the default rule.

# paths./api/environments/{project_id}/property_access_controls/.delete.parameters[].description
The organization member UUID whose override should be deleted.

# paths./api/environments/{project_id}/property_access_controls/.delete.parameters[].description
The property definition ID the rule applies to.

# paths./api/environments/{project_id}/property_access_controls/.delete.parameters[].description
The role UUID whose override should be deleted.

# paths./api/environments/{project_id}/session_summaries/config/.get.description
Retrieve the team's session summaries configuration (product context used to tailor single-session replay summaries).

# paths./api/environments/{project_id}/session_summaries/config/.patch.description
Update the team's session summaries configuration (product context used to tailor single-session replay summaries).

# paths./api/environments/{project_id}/session_summaries/create_session_.post.description
Generate AI summary for a group of session recordings to find patterns and generate a notebook.

# paths./api/environments/{project_id}/session_summaries/create_session_.post.description
Generate AI individual summary for each session, without grouping.

# paths./api/environments/{project_id}/subscriptions/{subscription_id}/d.get.description
Paginated delivery history for a subscription. Requires premium subscriptions.

# paths./api/environments/{project_id}/subscriptions/{subscription_id}/d.get.parameters[].description
Return only deliveries in this run status (starting, completed, failed, or skipped).

# paths./api/environments/{project_id}/subscriptions/{subscription_id}/d.get.parameters[].description
A UUID string identifying this subscription delivery.

# paths./api/llm_analytics/@me/spend/.get.description
Return a structured personal LLM spend analysis for the requesting user. Pass `date_from` / `date_to` (absolute like `2026-04-23` or relative like `-7d`) to bound the window — defaults to the last 30 days, max 90 days. The `product=<ai_product>` query param is required and scopes the tool / model / trace breakdowns to a single product; supported values: posthog_code. `by_product` is always returned for cross-product visibility. Use `refresh=true` to bypass the 5-minute response cache.

# paths./api/llm_analytics/@me/spend/.get.parameters[].description
Start of the spend window. Accepts absolute dates (`2026-04-23`) or relative strings (`-7d`, `-1m`, etc.) — same parser used elsewhere in PostHog. Defaults to `-30d`. The window between `date_from` and `date_to` cannot exceed 90 days.

# paths./api/llm_analytics/@me/spend/.get.parameters[].description
End of the spend window. Accepts the same formats as `date_from`. Defaults to `now` when omitted.

# paths./api/llm_analytics/@me/spend/.get.parameters[].description
Maximum number of rows to return per breakdown (1-200, defaults to 50). Each breakdown returns up to this many rows ordered by cost descending. Per-breakdown `truncated: true` indicates more rows exist beyond the limit.

# paths./api/llm_analytics/@me/spend/.get.parameters[].description
Required `ai_product` key to scope the tool / model / trace breakdowns to a single product. Only the following products are currently supported: posthog_code.

# paths./api/llm_analytics/@me/spend/.get.parameters[].description
If true, bypass the result cache and re-run the underlying queries against ClickHouse.

# paths./api/organizations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/organizations/{id}/.get.parameters[].description
A UUID string identifying this organization.

# paths./api/organizations/{id}/.put.parameters[].description
A UUID string identifying this organization.

# paths./api/organizations/{id}/.patch.parameters[].description
A UUID string identifying this organization.

# paths./api/organizations/{id}/.delete.parameters[].description
A UUID string identifying this organization.

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.description
Organization-wide view of activity logs across every project in the organization.

Mounted at /api/organizations/<organization_id>/advanced_activity_logs/.
Restricted to organization admins and owners.

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
Filter by activity types (e.g. "created", "updated", "deleted").

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
Filter by API clients that generated the activity (from x-posthog-client header).

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
JSON-encoded map of `detail` field paths to {operation, value} filters. Allowed operations: exact, contains, in.

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
Upper bound on `created_at` (inclusive), ISO-8601.

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
Reserved for future HogQL-based filtering.

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
Filter by client IP addresses. Accepts exact IPv4/IPv6 values or wildcard patterns using `*` (e.g. `203.0.113.*`). Multiple entries are OR-combined.

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
When set, filters rows authored by the system (no user).

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
Filter by the `item_id` of the affected resource(s).

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
Page number for pagination. When provided, uses page-based pagination ordered by most recent first.

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
Number of results per page (default: 100, max: 1000). Only used with page-based pagination.

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
Filter by activity scopes (e.g. "FeatureFlag", "Insight").

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
Free-text search across the `detail` JSON column.

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
Lower bound on `created_at` (inclusive), ISO-8601.

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
Filter by project (team) IDs. Only honored on the organization-scoped endpoint; ignored on the project-scoped endpoint.

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
Filter by users who performed the activity (user UUIDs).

# paths./api/organizations/{organization_id}/advanced_activity_logs/.get.parameters[].description
When set, filters rows where the actor was impersonating another user.

# paths./api/organizations/{organization_id}/advanced_activity_logs/avai.get.description
Organization-wide view of activity logs across every project in the organization.

Mounted at /api/organizations/<organization_id>/advanced_activity_logs/.
Restricted to organization admins and owners.

# paths./api/organizations/{organization_id}/advanced_activity_logs/expo.post.description
Organization-wide view of activity logs across every project in the organization.

Mounted at /api/organizations/<organization_id>/advanced_activity_logs/.
Restricted to organization admins and owners.

# paths./api/organizations/{organization_id}/batch_exports/.get.parameters[].description
The initial index from which to return the results.

# paths./api/organizations/{organization_id}/batch_exports/{id}/.get.parameters[].description
A UUID string identifying this batch export.

# paths./api/organizations/{organization_id}/batch_exports/{id}/.put.parameters[].description
A UUID string identifying this batch export.

# paths./api/organizations/{organization_id}/batch_exports/{id}/.patch.parameters[].description
A UUID string identifying this batch export.

# paths./api/organizations/{organization_id}/batch_exports/{id}/.delete.parameters[].description
A UUID string identifying this batch export.

# paths./api/organizations/{organization_id}/batch_exports/{id}/logs/.get.parameters[].description
Only return entries after this ISO 8601 timestamp.

# paths./api/organizations/{organization_id}/batch_exports/{id}/logs/.get.parameters[].description
Only return entries before this ISO 8601 timestamp.

# paths./api/organizations/{organization_id}/batch_exports/{id}/logs/.get.parameters[].description
A UUID string identifying this batch export.

# paths./api/organizations/{organization_id}/batch_exports/{id}/logs/.get.parameters[].description
Filter logs to a specific execution instance.

# paths./api/organizations/{organization_id}/batch_exports/{id}/logs/.get.parameters[].description
Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR.

# paths./api/organizations/{organization_id}/batch_exports/{id}/logs/.get.parameters[].description
Maximum number of log entries to return (1-500, default 50).

# paths./api/organizations/{organization_id}/batch_exports/{id}/logs/.get.parameters[].description
Case-insensitive substring search across log messages.

# paths./api/organizations/{organization_id}/batch_exports/{id}/pause/.post.parameters[].description
A UUID string identifying this batch export.

# paths./api/organizations/{organization_id}/batch_exports/{id}/run_test.post.parameters[].description
A UUID string identifying this batch export.

# paths./api/organizations/{organization_id}/batch_exports/{id}/unpause/.post.parameters[].description
A UUID string identifying this batch export.

# paths./api/organizations/{organization_id}/cimd_verification_tokens/.get.description
Manage CIMD verification tokens for an organization.

A partner embeds the plaintext token in their CIMD metadata document under
`posthog_verification_token`. When PostHog fetches the metadata, matching
the token links the partner app to this organization and grants a higher
default rate limit for account provisioning.

The plaintext value is only available on creation; we store a hash.

# paths./api/organizations/{organization_id}/cimd_verification_tokens/.get.parameters[].description
The initial index from which to return the results.

# paths./api/organizations/{organization_id}/cimd_verification_tokens/.post.description
Manage CIMD verification tokens for an organization.

A partner embeds the plaintext token in their CIMD metadata document under
`posthog_verification_token`. When PostHog fetches the metadata, matching
the token links the partner app to this organization and grants a higher
default rate limit for account provisioning.

The plaintext value is only available on creation; we store a hash.

# paths./api/organizations/{organization_id}/cimd_verification_tokens/{i.get.description
Manage CIMD verification tokens for an organization.

A partner embeds the plaintext token in their CIMD metadata document under
`posthog_verification_token`. When PostHog fetches the metadata, matching
the token links the partner app to this organization and grants a higher
default rate limit for account provisioning.

The plaintext value is only available on creation; we store a hash.

# paths./api/organizations/{organization_id}/cimd_verification_tokens/{i.get.parameters[].description
A UUID string identifying this CIMD Verification Token.

# paths./api/organizations/{organization_id}/cimd_verification_tokens/{i.delete.description
Manage CIMD verification tokens for an organization.

A partner embeds the plaintext token in their CIMD metadata document under
`posthog_verification_token`. When PostHog fetches the metadata, matching
the token links the partner app to this organization and grants a higher
default rate limit for account provisioning.

The plaintext value is only available on creation; we store a hash.

# paths./api/organizations/{organization_id}/cimd_verification_tokens/{i.delete.parameters[].description
A UUID string identifying this CIMD Verification Token.

# paths./api/organizations/{organization_id}/domains/.get.parameters[].description
The initial index from which to return the results.

# paths./api/organizations/{organization_id}/integrations/.get.description
ViewSet for organization-level integrations.

Provides access to integrations that are scoped to the entire organization
(vs. project-level integrations). Examples include Vercel, AWS Marketplace, etc.

Creation is handled by the integration installation flows
(e.g., Vercel marketplace installation). Users can disconnect integrations
via the DELETE endpoint.

# paths./api/organizations/{organization_id}/integrations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/organizations/{organization_id}/integrations/{id}/.get.description
ViewSet for organization-level integrations.

Provides access to integrations that are scoped to the entire organization
(vs. project-level integrations). Examples include Vercel, AWS Marketplace, etc.

Creation is handled by the integration installation flows
(e.g., Vercel marketplace installation). Users can disconnect integrations
via the DELETE endpoint.

# paths./api/organizations/{organization_id}/integrations/{id}/.get.parameters[].description
A UUID string identifying this organization integration.

# paths./api/organizations/{organization_id}/integrations/{id}/.delete.description
ViewSet for organization-level integrations.

Provides access to integrations that are scoped to the entire organization
(vs. project-level integrations). Examples include Vercel, AWS Marketplace, etc.

Creation is handled by the integration installation flows
(e.g., Vercel marketplace installation). Users can disconnect integrations
via the DELETE endpoint.

# paths./api/organizations/{organization_id}/integrations/{id}/.delete.parameters[].description
A UUID string identifying this organization integration.

# paths./api/organizations/{organization_id}/integrations/{id}/environme.patch.description
ViewSet for organization-level integrations.

Provides access to integrations that are scoped to the entire organization
(vs. project-level integrations). Examples include Vercel, AWS Marketplace, etc.

Creation is handled by the integration installation flows
(e.g., Vercel marketplace installation). Users can disconnect integrations
via the DELETE endpoint.

# paths./api/organizations/{organization_id}/integrations/{id}/environme.patch.parameters[].description
A UUID string identifying this organization integration.

# paths./api/organizations/{organization_id}/invites/.get.parameters[].description
The initial index from which to return the results.

# paths./api/organizations/{organization_id}/invites/{id}/.delete.parameters[].description
A UUID string identifying this organization invite.

# paths./api/organizations/{organization_id}/invites/delegate/.post.description
Create an onboarding delegation invite: an admin-level invite flagged as a setup delegation.
Sends a single dedicated delegation email and records the inviting user as having delegated.

# paths./api/organizations/{organization_id}/legal_documents/.get.parameters[].description
The initial index from which to return the results.

# paths./api/organizations/{organization_id}/legal_documents/{id}/downlo.get.description
Short-lived redirect to the signed PDF in object storage. 404 while the
envelope is still out for signature (or if the upload hasn't completed
yet). The underlying presigned URL expires in ~60s; clients should hit
this endpoint each time they want to view the PDF rather than caching.

# paths./api/organizations/{organization_id}/members/.get.parameters[].description
The initial index from which to return the results.

# paths./api/organizations/{organization_id}/members/.get.parameters[].description
Fuzzy match against member `first_name`, `last_name`, and `email` using Postgres trigram word similarity. Supports typos and prefix-as-you-type. Capped at 200 characters.

# paths./api/organizations/{organization_id}/oauth_applications/.get.description
ViewSet for listing OAuth applications at the organization level (read-only).

# paths./api/organizations/{organization_id}/oauth_applications/.get.parameters[].description
The initial index from which to return the results.

# paths./api/organizations/{organization_id}/projects/.get.parameters[].description
The initial index from which to return the results.

# paths./api/organizations/{organization_id}/projects/{id}/.get.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/.put.description
Replace a project and its settings. Prefer the PATCH endpoint for partial updates — PUT requires every writable field to be provided.

# paths./api/organizations/{organization_id}/projects/{id}/.put.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/.patch.description
Update one or more of a project's settings. Only the fields included in the request body are changed.

# paths./api/organizations/{organization_id}/projects/{id}/.patch.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/.delete.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/activity/.get.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/add_product_i.patch.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/change_organi.post.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/complete_prod.patch.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/delete_secret.patch.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/generate_conv.post.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/is_generating.get.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/logs_config/.get.description
Manage logs product configuration for this project's canonical environment.
Mirrors the env-router action so /api/projects/:id/logs_config/ resolves
alongside the legacy /api/environments/:id/logs_config/ alias.

# paths./api/organizations/{organization_id}/projects/{id}/logs_config/.get.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/logs_config/.patch.description
Manage logs product configuration for this project's canonical environment.
Mirrors the env-router action so /api/projects/:id/logs_config/ resolves
alongside the legacy /api/environments/:id/logs_config/ alias.

# paths./api/organizations/{organization_id}/projects/{id}/logs_config/.patch.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/promoted_prod.get.description
Return the product key (e.g. `session_replay`, `web_analytics`) this team selected as their primary product during onboarding. Resolved from the team's most recent primary-onboarding `ProductIntent` record (the one carrying the `onboarding product selected - primary` context) — not from the `user showed product intent` event, which also fires for non-onboarding contexts. Returns `null` when no primary onboarding product intent has been captured (e.g. teams created before this signal existed, or where onboarding was skipped).

# paths./api/organizations/{organization_id}/projects/{id}/promoted_prod.get.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/reset_token/.patch.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/projects/{id}/rotate_secret.patch.parameters[].description
A unique value identifying this project.

# paths./api/organizations/{organization_id}/proxy_records/.get.description
List all reverse proxies configured for the organization. Returns proxy records along with the maximum number allowed by the current plan.

# paths./api/organizations/{organization_id}/proxy_records/.post.description
Create a new managed reverse proxy. Provide the domain you want to proxy through. The response includes the CNAME target you need to add as a DNS record. Once the CNAME is configured, the proxy will be automatically verified and provisioned.

# paths./api/organizations/{organization_id}/proxy_records/{id}/.get.description
Get details of a specific reverse proxy by ID. Returns the full configuration including domain, CNAME target, and current provisioning status.

# paths./api/organizations/{organization_id}/proxy_records/{id}/.get.parameters[].description
A UUID string identifying this proxy record.

# paths./api/organizations/{organization_id}/proxy_records/{id}/.delete.description
Delete a reverse proxy. For proxies in 'waiting', 'erroring', or 'timed_out' status, the record is deleted immediately. For active proxies, a deletion workflow is started to clean up the provisioned infrastructure.

# paths./api/organizations/{organization_id}/proxy_records/{id}/.delete.parameters[].description
A UUID string identifying this proxy record.

# paths./api/organizations/{organization_id}/proxy_records/{id}/diagnose.post.description
Run a deep diagnostic on a reverse proxy. Inspects DNS CNAME alignment, the certificate provider's hostname state, CAA records walked up the customer's DNS tree, HTTP-01 challenge reachability, a live event probe, and certificate expiry. Returns a structured report with each check's status and concrete remediation steps (e.g. exact DNS records to add). Use this to debug why a proxy is stuck or erroring.

# paths./api/organizations/{organization_id}/proxy_records/{id}/diagnose.post.parameters[].description
A UUID string identifying this proxy record.

# paths./api/organizations/{organization_id}/proxy_records/{id}/retry/.post.description
Retry provisioning a failed reverse proxy. Only available for proxies in 'erroring' or 'timed_out' status. Resets the proxy to 'waiting' status and restarts the provisioning workflow.

# paths./api/organizations/{organization_id}/proxy_records/{id}/retry/.post.parameters[].description
A UUID string identifying this proxy record.

# paths./api/organizations/{organization_id}/role_external_references/.get.parameters[].description
The initial index from which to return the results.

# paths./api/organizations/{organization_id}/role_external_references/{i.delete.parameters[].description
A UUID string identifying this role external reference.

# paths./api/organizations/{organization_id}/role_external_references/lo.get.parameters[].description
Integration kind (e.g., github, linear, jira, slack).

# paths./api/organizations/{organization_id}/roles/.get.parameters[].description
The initial index from which to return the results.

# paths./api/organizations/{organization_id}/roles/{role_id}/role_member.get.parameters[].description
The initial index from which to return the results.

# paths./api/organizations/{organization_id}/roles/{role_id}/role_member.get.parameters[].description
A UUID string identifying this role membership.

# paths./api/organizations/{organization_id}/roles/{role_id}/role_member.delete.parameters[].description
A UUID string identifying this role membership.

# paths./api/organizations/{organization_id}/welcome/current/.get.description
Aggregated payload for the invited-user welcome screen.

# paths./api/projects/{project_id}/accounts/.get.parameters[].description
Filter by account executive. Use 'unassigned' or an integer user id.

# paths./api/projects/{project_id}/accounts/.get.parameters[].description
Filter by account owner. Use 'unassigned' or an integer user id.

# paths./api/projects/{project_id}/accounts/.get.parameters[].description
When true, returns only accounts where CSM, account executive, and account owner are all unset.

# paths./api/projects/{project_id}/accounts/.get.parameters[].description
Filter by CSM. Use 'unassigned' for accounts with no CSM, or an integer user id.

# paths./api/projects/{project_id}/accounts/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/accounts/.get.parameters[].description
Case-insensitive substring search across account name and external ID.

# paths./api/projects/{project_id}/accounts/.get.parameters[].description
JSON-encoded array of tag names to filter by, e.g. `["enterprise","priority"]`. Returns accounts that have any of the listed tags. Malformed values (not a JSON-encoded list of strings) return a 400.

# paths./api/projects/{project_id}/accounts/{account_id}/notebooks/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/actions/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/actions/{id}/.get.parameters[].description
A unique integer value identifying this action.

# paths./api/projects/{project_id}/actions/{id}/.put.parameters[].description
A unique integer value identifying this action.

# paths./api/projects/{project_id}/actions/{id}/.patch.parameters[].description
A unique integer value identifying this action.

# paths./api/projects/{project_id}/actions/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/actions/{id}/.delete.parameters[].description
A unique integer value identifying this action.

# paths./api/projects/{project_id}/actions/{id}/references/.get.parameters[].description
A unique integer value identifying this action.

# paths./api/projects/{project_id}/actions/bulk_update_tags/.post.description
Bulk update tags on multiple objects.

PAT access: this action has no ``required_scopes=`` on the decorator —
inheriting viewsets must add ``"bulk_update_tags"`` to their
``scope_object_write_actions`` list to accept personal API keys.
Without that opt-in, ``APIScopePermission`` rejects PAT requests with
"This action does not support personal API key access". Done per-viewset
so granting ``<scope>:write`` for one resource doesn't leak access to
sibling resources that share this mixin.

Accepts:
- {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]}

Actions:
- "add": Add tags to existing tags on each object
- "remove": Remove specific tags from each object
- "set": Replace all tags on each object with the provided list

# paths./api/projects/{project_id}/activity_log/.get.parameters[].description
Filter by the ID of the affected resource.

# paths./api/projects/{project_id}/activity_log/.get.parameters[].description
Page number for pagination. When provided, uses page-based pagination ordered by most recent first.

# paths./api/projects/{project_id}/activity_log/.get.parameters[].description
Number of results per page (default: 100, max: 1000). Only used with page-based pagination.

# paths./api/projects/{project_id}/activity_log/.get.parameters[].description
Filter by a single activity scope, e.g. "FeatureFlag", "Insight", "Dashboard", "Experiment".

* `Cohort` - Cohort
* `FeatureFlag` - FeatureFlag
* `Person` - Person
* `Group` - Group
* `Insight` - Insight
* `Plugin` - Plugin
* `PluginConfig` - PluginConfig
* `HogFunction` - HogFunction
* `HogFlow` - HogFlow
* `DataManagement` - DataManagement
* `EventDefinition` - EventDefinition
* `PropertyDefinition` - PropertyDefinition
* `Notebook` - Notebook
* `Endpoint` - Endpoint
* `EndpointVersion` - EndpointVersion
* `Dashboard` - Dashboard
* `Replay` - Replay
* `Experiment` - Experiment
* `ExperimentHoldout` - ExperimentHoldout
* `ExperimentSavedMetric` - ExperimentSavedMetric
* `Survey` - Survey
* `EarlyAccessFeature` - EarlyAccessFeature
* `SessionRecordingPlaylist` - SessionRecordingPlaylist
* `Comment` - Comment
* `Team` - Team
* `Project` - Project
* `ErrorTrackingIssue` - ErrorTrackingIssue
* `DataWarehouseSavedQuery` - DataWarehouseSavedQuery
* `LegalDocument` - LegalDocument
* `Organization` - Organization
* `OrganizationDomain` - OrganizationDomain
* `OrganizationMembership` - OrganizationMembership
* `Role` - Role
* `UserGroup` - UserGroup
* `BatchExport` - BatchExport
* `BatchImport` - BatchImport
* `Integration` - Integration
* `Annotation` - Annotation
* `Tag` - Tag
* `TaggedItem` - TaggedItem
* `Subscription` - Subscription
* `PersonalAPIKey` - PersonalAPIKey
* `ProjectSecretAPIKey` - ProjectSecretAPIKey
* `User` - User
* `Action` - Action
* `AlertConfiguration` - AlertConfiguration
* `Threshold` - Threshold
* `AlertSubscription` - AlertSubscription
* `ExternalDataSource` - ExternalDataSource
* `ExternalDataSchema` - ExternalDataSchema
* `Evaluation` - Evaluation
* `LLMTrace` - LLMTrace
* `WebAnalyticsFilterPreset` - WebAnalyticsFilterPreset
* `CustomerProfileConfig` - CustomerProfileConfig
* `Log` - Log
* `LogsAlertConfiguration` - LogsAlertConfiguration
* `LogsExclusionRule` - LogsExclusionRule
* `DashboardWidget` - DashboardWidget
* `ProductTour` - ProductTour
* `Ticket` - Ticket
* `InstanceSetting` - InstanceSetting
* `SignalScoutConfig` - SignalScoutConfig

# paths./api/projects/{project_id}/activity_log/.get.parameters[].schema.items.description
* `Cohort` - Cohort
* `FeatureFlag` - FeatureFlag
* `Person` - Person
* `Group` - Group
* `Insight` - Insight
* `Plugin` - Plugin
* `PluginConfig` - PluginConfig
* `HogFunction` - HogFunction
* `HogFlow` - HogFlow
* `DataManagement` - DataManagement
* `EventDefinition` - EventDefinition
* `PropertyDefinition` - PropertyDefinition
* `Notebook` - Notebook
* `Endpoint` - Endpoint
* `EndpointVersion` - EndpointVersion
* `Dashboard` - Dashboard
* `Replay` - Replay
* `Experiment` - Experiment
* `ExperimentHoldout` - ExperimentHoldout
* `ExperimentSavedMetric` - ExperimentSavedMetric
* `Survey` - Survey
* `EarlyAccessFeature` - EarlyAccessFeature
* `SessionRecordingPlaylist` - SessionRecordingPlaylist
* `Comment` - Comment
* `Team` - Team
* `Project` - Project
* `ErrorTrackingIssue` - ErrorTrackingIssue
* `DataWarehouseSavedQuery` - DataWarehouseSavedQuery
* `LegalDocument` - LegalDocument
* `Organization` - Organization
* `OrganizationDomain` - OrganizationDomain
* `OrganizationMembership` - OrganizationMembership
* `Role` - Role
* `UserGroup` - UserGroup
* `BatchExport` - BatchExport
* `BatchImport` - BatchImport
* `Integration` - Integration
* `Annotation` - Annotation
* `Tag` - Tag
* `TaggedItem` - TaggedItem
* `Subscription` - Subscription
* `PersonalAPIKey` - PersonalAPIKey
* `ProjectSecretAPIKey` - ProjectSecretAPIKey
* `User` - User
* `Action` - Action
* `AlertConfiguration` - AlertConfiguration
* `Threshold` - Threshold
* `AlertSubscription` - AlertSubscription
* `ExternalDataSource` - ExternalDataSource
* `ExternalDataSchema` - ExternalDataSchema
* `Evaluation` - Evaluation
* `LLMTrace` - LLMTrace
* `WebAnalyticsFilterPreset` - WebAnalyticsFilterPreset
* `CustomerProfileConfig` - CustomerProfileConfig
* `Log` - Log
* `LogsAlertConfiguration` - LogsAlertConfiguration
* `LogsExclusionRule` - LogsExclusionRule
* `DashboardWidget` - DashboardWidget
* `ProductTour` - ProductTour
* `Ticket` - Ticket
* `InstanceSetting` - InstanceSetting
* `SignalScoutConfig` - SignalScoutConfig

# paths./api/projects/{project_id}/activity_log/.get.parameters[].description
Filter by multiple activity scopes, comma-separated. Values must be valid ActivityScope enum values. E.g. "FeatureFlag,Insight".

# paths./api/projects/{project_id}/activity_log/.get.parameters[].description
Filter by user UUID who performed the action.

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
Filter by activity types (e.g. "created", "updated", "deleted").

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
Filter by API clients that generated the activity (from x-posthog-client header).

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
JSON-encoded map of `detail` field paths to {operation, value} filters. Allowed operations: exact, contains, in.

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
Upper bound on `created_at` (inclusive), ISO-8601.

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
Reserved for future HogQL-based filtering.

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
Filter by client IP addresses. Accepts exact IPv4/IPv6 values or wildcard patterns using `*` (e.g. `203.0.113.*`). Multiple entries are OR-combined.

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
When set, filters rows authored by the system (no user).

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
Filter by the `item_id` of the affected resource(s).

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
Page number for pagination. When provided, uses page-based pagination ordered by most recent first.

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
Number of results per page (default: 100, max: 1000). Only used with page-based pagination.

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
Filter by activity scopes (e.g. "FeatureFlag", "Insight").

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
Free-text search across the `detail` JSON column.

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
Lower bound on `created_at` (inclusive), ISO-8601.

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
Filter by project (team) IDs. Only honored on the organization-scoped endpoint; ignored on the project-scoped endpoint.

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
Filter by users who performed the activity (user UUIDs).

# paths./api/projects/{project_id}/advanced_activity_logs/.get.parameters[].description
When set, filters rows where the actor was impersonating another user.

# paths./api/projects/{project_id}/alerts/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/alerts/{id}/.get.parameters[].description
Relative date string for the start of the check history window (e.g. '-24h', '-7d', '-14d'). Returns checks created after this time. Max retention is 14 days.

# paths./api/projects/{project_id}/alerts/{id}/.get.parameters[].description
Relative date string for the end of the check history window (e.g. '-1h', '-1d'). Defaults to now if not specified.

# paths./api/projects/{project_id}/alerts/{id}/.get.parameters[].description
Maximum number of check results to return (default 5, max 500). Applied after date filtering.

# paths./api/projects/{project_id}/alerts/{id}/.get.parameters[].description
Number of newest checks to skip (0-based). Use with checks_limit for pagination. Default 0.

# paths./api/projects/{project_id}/alerts/{id}/.get.parameters[].description
A UUID string identifying this alert configuration.

# paths./api/projects/{project_id}/alerts/{id}/.put.parameters[].description
A UUID string identifying this alert configuration.

# paths./api/projects/{project_id}/alerts/{id}/.patch.parameters[].description
A UUID string identifying this alert configuration.

# paths./api/projects/{project_id}/alerts/{id}/.delete.parameters[].description
A UUID string identifying this alert configuration.

# paths./api/projects/{project_id}/alerts/simulate/.post.description
Simulate a detector on an insight's historical data. Read-only — no AlertCheck records are created.

# paths./api/projects/{project_id}/annotations/.get.description
Create, Read, Update and Delete annotations. [See docs](https://posthog.com/docs/data/annotations) for more information on annotations.

# paths./api/projects/{project_id}/annotations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/annotations/.post.description
Create, Read, Update and Delete annotations. [See docs](https://posthog.com/docs/data/annotations) for more information on annotations.

# paths./api/projects/{project_id}/annotations/{id}/.get.description
Create, Read, Update and Delete annotations. [See docs](https://posthog.com/docs/data/annotations) for more information on annotations.

# paths./api/projects/{project_id}/annotations/{id}/.get.parameters[].description
A unique integer value identifying this annotation.

# paths./api/projects/{project_id}/annotations/{id}/.put.description
Create, Read, Update and Delete annotations. [See docs](https://posthog.com/docs/data/annotations) for more information on annotations.

# paths./api/projects/{project_id}/annotations/{id}/.put.parameters[].description
A unique integer value identifying this annotation.

# paths./api/projects/{project_id}/annotations/{id}/.patch.description
Create, Read, Update and Delete annotations. [See docs](https://posthog.com/docs/data/annotations) for more information on annotations.

# paths./api/projects/{project_id}/annotations/{id}/.patch.parameters[].description
A unique integer value identifying this annotation.

# paths./api/projects/{project_id}/annotations/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/annotations/{id}/.delete.parameters[].description
A unique integer value identifying this annotation.

# paths./api/projects/{project_id}/approval_policies/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/approval_policies/{id}/.get.parameters[].description
A UUID string identifying this approval policy.

# paths./api/projects/{project_id}/approval_policies/{id}/.put.parameters[].description
A UUID string identifying this approval policy.

# paths./api/projects/{project_id}/approval_policies/{id}/.patch.parameters[].description
A UUID string identifying this approval policy.

# paths./api/projects/{project_id}/approval_policies/{id}/.delete.parameters[].description
A UUID string identifying this approval policy.

# paths./api/projects/{project_id}/batch_exports/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/backf.get.description
ViewSet for BatchExportBackfill models.

Allows creating and reading backfills, but not updating or deleting them.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/backf.get.parameters[].schema.description
The BatchExport this backfill belongs to.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/backf.get.parameters[].description
Which field to use when ordering the results.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/backf.post.description
Create a new backfill for a BatchExport.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/backf.post.parameters[].schema.description
The BatchExport this backfill belongs to.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/backf.get.description
ViewSet for BatchExportBackfill models.

Allows creating and reading backfills, but not updating or deleting them.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/backf.get.parameters[].schema.description
The BatchExport this backfill belongs to.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/backf.get.parameters[].description
A UUID string identifying this batch export backfill.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/backf.post.parameters[].schema.description
The BatchExport this backfill belongs to.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/backf.post.parameters[].description
A UUID string identifying this batch export backfill.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/runs/.get.parameters[].description
Which field to use when ordering the results.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/runs/.get.parameters[].description
A UUID string identifying this batch export run.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/runs/.post.parameters[].description
A UUID string identifying this batch export run.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/runs/.get.parameters[].description
Only return entries after this ISO 8601 timestamp.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/runs/.get.parameters[].description
Only return entries before this ISO 8601 timestamp.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/runs/.get.parameters[].description
A UUID string identifying this batch export run.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/runs/.get.parameters[].description
Filter logs to a specific execution instance.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/runs/.get.parameters[].description
Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/runs/.get.parameters[].description
Maximum number of log entries to return (1-500, default 50).

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/runs/.get.parameters[].description
Case-insensitive substring search across log messages.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/runs/.post.description
Retry a batch export run.

We use the same underlying mechanism as when backfilling a batch export, as retrying
a run is the same as backfilling one run.

# paths./api/projects/{project_id}/batch_exports/{batch_export_id}/runs/.post.parameters[].description
A UUID string identifying this batch export run.

# paths./api/projects/{project_id}/batch_exports/{id}/.get.parameters[].description
A UUID string identifying this batch export.

# paths./api/projects/{project_id}/batch_exports/{id}/.put.parameters[].description
A UUID string identifying this batch export.

# paths./api/projects/{project_id}/batch_exports/{id}/.patch.parameters[].description
A UUID string identifying this batch export.

# paths./api/projects/{project_id}/batch_exports/{id}/.delete.parameters[].description
A UUID string identifying this batch export.

# paths./api/projects/{project_id}/batch_exports/{id}/logs/.get.parameters[].description
Only return entries after this ISO 8601 timestamp.

# paths./api/projects/{project_id}/batch_exports/{id}/logs/.get.parameters[].description
Only return entries before this ISO 8601 timestamp.

# paths./api/projects/{project_id}/batch_exports/{id}/logs/.get.parameters[].description
A UUID string identifying this batch export.

# paths./api/projects/{project_id}/batch_exports/{id}/logs/.get.parameters[].description
Filter logs to a specific execution instance.

# paths./api/projects/{project_id}/batch_exports/{id}/logs/.get.parameters[].description
Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR.

# paths./api/projects/{project_id}/batch_exports/{id}/logs/.get.parameters[].description
Maximum number of log entries to return (1-500, default 50).

# paths./api/projects/{project_id}/batch_exports/{id}/logs/.get.parameters[].description
Case-insensitive substring search across log messages.

# paths./api/projects/{project_id}/batch_exports/{id}/pause/.post.parameters[].description
A UUID string identifying this batch export.

# paths./api/projects/{project_id}/batch_exports/{id}/run_test_step/.post.parameters[].description
A UUID string identifying this batch export.

# paths./api/projects/{project_id}/batch_exports/{id}/unpause/.post.parameters[].description
A UUID string identifying this batch export.

# paths./api/projects/{project_id}/business_knowledge/sources/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/business_knowledge/sources/{id}/.get.parameters[].description
A UUID string identifying this knowledge source.

# paths./api/projects/{project_id}/business_knowledge/sources/{id}/.patch.parameters[].description
A UUID string identifying this knowledge source.

# paths./api/projects/{project_id}/business_knowledge/sources/{id}/.delete.parameters[].description
A UUID string identifying this knowledge source.

# paths./api/projects/{project_id}/business_knowledge/sources/{id}/refre.post.parameters[].description
A UUID string identifying this knowledge source.

# paths./api/projects/{project_id}/business_knowledge/sources/{id}/text/.get.parameters[].description
A UUID string identifying this knowledge source.

# paths./api/projects/{project_id}/change_requests/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/change_requests/.get.parameters[].description
Multiple values may be separated by commas.

# paths./api/projects/{project_id}/change_requests/{id}/.get.parameters[].description
A UUID string identifying this change request.

# paths./api/projects/{project_id}/change_requests/{id}/approve/.post.description
Approve a change request.
If quorum is reached, automatically applies the change immediately.

# paths./api/projects/{project_id}/change_requests/{id}/approve/.post.parameters[].description
A UUID string identifying this change request.

# paths./api/projects/{project_id}/change_requests/{id}/cancel/.post.description
Cancel a change request.
Only the requester can cancel their own pending change request.

# paths./api/projects/{project_id}/change_requests/{id}/cancel/.post.parameters[].description
A UUID string identifying this change request.

# paths./api/projects/{project_id}/change_requests/{id}/reject/.post.parameters[].description
A UUID string identifying this change request.

# paths./api/projects/{project_id}/cohorts/.get.parameters[].description
Return a basic payload that omits the heavy `filters`, `query`, and `groups` fields. Useful for pickers that only need id/name/count.

# paths./api/projects/{project_id}/cohorts/.get.parameters[].description
Set true to exclude behavioral (event-based) cohorts, which can't be used in feature flags or batch workflow audiences.

# paths./api/projects/{project_id}/cohorts/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/cohorts/{id}/.get.parameters[].description
A unique integer value identifying this cohort.

# paths./api/projects/{project_id}/cohorts/{id}/.put.parameters[].description
A unique integer value identifying this cohort.

# paths./api/projects/{project_id}/cohorts/{id}/.patch.parameters[].description
A unique integer value identifying this cohort.

# paths./api/projects/{project_id}/cohorts/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/cohorts/{id}/.delete.parameters[].description
A unique integer value identifying this cohort.

# paths./api/projects/{project_id}/cohorts/{id}/activity/.get.parameters[].description
A unique integer value identifying this cohort.

# paths./api/projects/{project_id}/cohorts/{id}/add_persons_to_static_co.patch.parameters[].description
A unique integer value identifying this cohort.

# paths./api/projects/{project_id}/cohorts/{id}/calculation_history/.get.parameters[].description
A unique integer value identifying this cohort.

# paths./api/projects/{project_id}/cohorts/{id}/persons/.get.parameters[].description
A unique integer value identifying this cohort.

# paths./api/projects/{project_id}/cohorts/{id}/persons/.get.parameters[].description
Maximum number of persons to return per page (defaults to 100).

# paths./api/projects/{project_id}/cohorts/{id}/persons/.get.parameters[].description
Number of persons to skip before starting to return results.

# paths./api/projects/{project_id}/cohorts/{id}/remove_person_from_stati.patch.parameters[].description
A unique integer value identifying this cohort.

# paths./api/projects/{project_id}/comments/.get.parameters[].description
When kind=task, restrict to open (incomplete) or completed tasks. Ignored when kind is not 'task'. Defaults to 'any' (no filter).

* `any` - any
* `open` - open
* `completed` - completed

# paths./api/projects/{project_id}/comments/.get.parameters[].description
Filter by the ID of the resource being commented on.

# paths./api/projects/{project_id}/comments/.get.parameters[].description
Filter by comment kind. 'task' returns only items intentionally created as actionable. 'comment' excludes tasks. Defaults to 'any' (no filter).

* `any` - any
* `comment` - comment
* `task` - task

# paths./api/projects/{project_id}/comments/.get.parameters[].description
Filter by resource type (e.g. Dashboard, FeatureFlag, Insight, Replay).

# paths./api/projects/{project_id}/comments/.get.parameters[].description
Full-text search within comment content.

# paths./api/projects/{project_id}/comments/.get.parameters[].description
Filter replies to a specific parent comment.

# paths./api/projects/{project_id}/comments/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/comments/{id}/complete/.post.description
Mark a task-comment as complete. Sets completed_at and completed_by. 400 if the comment is not a task or is already complete.

# paths./api/projects/{project_id}/comments/{id}/reopen/.post.description
Reopen a completed task-comment. Clears completed_at and completed_by. 400 if the comment is not a task or is already open.

# paths./api/projects/{project_id}/conversations/tickets/.get.parameters[].description
Filter by assignee. Use `unassigned` for tickets with no assignee, `user:<user_id>` for a specific user, or `role:<role_uuid>` for a role.

# paths./api/projects/{project_id}/conversations/tickets/.get.parameters[].description
Filter by the channel sub-type (e.g. `widget_embedded`, `slack_bot_mention`).

# paths./api/projects/{project_id}/conversations/tickets/.get.parameters[].description
Filter by the channel the ticket originated from.

# paths./api/projects/{project_id}/conversations/tickets/.get.parameters[].description
Only include tickets updated on or after this date. Accepts absolute dates (`2026-01-01`) or relative ones (`-7d`, `-1mStart`). Pass `all` to disable the filter.

# paths./api/projects/{project_id}/conversations/tickets/.get.parameters[].description
Only include tickets updated on or before this date. Same format as `date_from`.

# paths./api/projects/{project_id}/conversations/tickets/.get.parameters[].description
Comma-separated list of person `distinct_id`s to filter by (max 100).

# paths./api/projects/{project_id}/conversations/tickets/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/conversations/tickets/.get.parameters[].description
Sort order. Prefix with `-` for descending. Defaults to `-updated_at`.

# paths./api/projects/{project_id}/conversations/tickets/.get.parameters[].description
Filter by priority. Accepts a single value or a comma-separated list (e.g. `medium,high`). Valid values: `low`, `medium`, `high`.

# paths./api/projects/{project_id}/conversations/tickets/.get.parameters[].description
Free-text search. A numeric value matches a ticket number exactly; otherwise matches against the customer's name or email (case-insensitive, partial match).

# paths./api/projects/{project_id}/conversations/tickets/.get.parameters[].description
Filter by SLA state. `breached` = past `sla_due_at`, `at-risk` = due within the next hour, `on-track` = more than an hour remaining.

# paths./api/projects/{project_id}/conversations/tickets/.get.parameters[].description
Filter by status. Accepts a single value or a comma-separated list (e.g. `new,open,pending`). Valid values: `new`, `open`, `pending`, `on_hold`, `resolved`.

# paths./api/projects/{project_id}/conversations/tickets/.get.parameters[].description
JSON-encoded array of tag names to filter by, e.g. `["billing","urgent"]`.

# paths./api/projects/{project_id}/conversations/tickets/{id}/.get.description
Get single ticket and mark as read by team.

# paths./api/projects/{project_id}/conversations/tickets/{id}/.put.description
Handle ticket updates including assignee changes.

# paths./api/projects/{project_id}/conversations/tickets/bulk_update_sta.post.description
Update the status of multiple tickets in a single request.

Only tickets belonging to the current team are affected; other-team UUIDs
are silently ignored.  Tickets already in the requested status are skipped.

# paths./api/projects/{project_id}/conversations/tickets/bulk_update_tag.post.description
Bulk update tags on multiple objects.

PAT access: this action has no ``required_scopes=`` on the decorator —
inheriting viewsets must add ``"bulk_update_tags"`` to their
``scope_object_write_actions`` list to accept personal API keys.
Without that opt-in, ``APIScopePermission`` rejects PAT requests with
"This action does not support personal API key access". Done per-viewset
so granting ``<scope>:write`` for one resource doesn't leak access to
sibling resources that share this mixin.

Accepts:
- {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]}

Actions:
- "add": Add tags to existing tags on each object
- "remove": Remove specific tags from each object
- "set": Replace all tags on each object with the provided list

# paths./api/projects/{project_id}/conversations/tickets/compose/.post.description
Create a new outbound ticket and send the first message to the customer.

# paths./api/projects/{project_id}/conversations/tickets/unread_count/.get.description
Get total unread ticket count for the team.

Returns the sum of unread_team_count for all non-resolved tickets.
Cached in Redis for 30 seconds, invalidated on changes.

# paths./api/projects/{project_id}/conversations/views/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/customer_journeys/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/customer_journeys/{id}/.get.parameters[].description
A UUID string identifying this customer journey.

# paths./api/projects/{project_id}/customer_journeys/{id}/.put.parameters[].description
A UUID string identifying this customer journey.

# paths./api/projects/{project_id}/customer_journeys/{id}/.patch.parameters[].description
A UUID string identifying this customer journey.

# paths./api/projects/{project_id}/customer_journeys/{id}/.delete.parameters[].description
A UUID string identifying this customer journey.

# paths./api/projects/{project_id}/customer_profile_configs/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/customer_profile_configs/{id}/.get.parameters[].description
A UUID string identifying this customer profile config.

# paths./api/projects/{project_id}/customer_profile_configs/{id}/.put.parameters[].description
A UUID string identifying this customer profile config.

# paths./api/projects/{project_id}/customer_profile_configs/{id}/.patch.parameters[].description
A UUID string identifying this customer profile config.

# paths./api/projects/{project_id}/customer_profile_configs/{id}/.delete.parameters[].description
A UUID string identifying this customer profile config.

# paths./api/projects/{project_id}/dashboard_templates/.get.parameters[].description
Omit for all templates. When set, filter by featured flag; parsed with str_to_bool (same as other API query booleans).

# paths./api/projects/{project_id}/dashboard_templates/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/dashboard_templates/.get.parameters[].description
Optional. When not using `search`, results are sorted with featured templates first (`is_featured=true`), then by `template_name` (case-insensitive A–Z; `-template_name` for Z–A) or by `created_at` (`-created_at` for newest first). When `search` is set, order is featured first, then relevance rank, then case-insensitive name for ties.

# paths./api/projects/{project_id}/dashboard_templates/.get.parameters[].description
Optional. `global`: official templates only. `team`: this project's saved templates only (`scope=team` rows for the current project). `feature_flag`: feature-flag dashboard templates only. Omit for both official and this project's templates (default dashboard template picker behavior).

# paths./api/projects/{project_id}/dashboard_templates/{id}/.get.parameters[].description
A UUID string identifying this dashboard template.

# paths./api/projects/{project_id}/dashboard_templates/{id}/.put.parameters[].description
A UUID string identifying this dashboard template.

# paths./api/projects/{project_id}/dashboard_templates/{id}/.patch.parameters[].description
A UUID string identifying this dashboard template.

# paths./api/projects/{project_id}/dashboard_templates/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/dashboard_templates/{id}/.delete.parameters[].description
A UUID string identifying this dashboard template.

# paths./api/projects/{project_id}/dashboard_templates/copy_between_proj.post.description
Creates a new team-scoped template in the **target** project (URL) from a **team-scoped** source template in the same organization. Global and feature-flag templates return 400. Cross-organization or inaccessible sources return 404. Source and destination projects must differ (400 if equal). Conflicting `template_name` values on the destination are auto-suffixed with `(copy)`, `(copy 2)`, …

# paths./api/projects/{project_id}/dashboards/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/dashboards/.get.parameters[].description
Optional. Fuzzy match against dashboard `name` and `description` using Postgres trigram word similarity (handles typos, transpositions, and prefix-as-you-type). `name` matches rank above `description` matches. Results are ordered by relevance, then pinned status, then name. When omitted, dashboards are ordered by pinned status then alphabetical name. Capped at 200 characters; longer queries return a 400 error.

# paths./api/projects/{project_id}/dashboards/{dashboard_id}/sharing/pas.post.description
Create a new password for the sharing configuration.

# paths./api/projects/{project_id}/dashboards/{dashboard_id}/sharing/pas.delete.description
Delete a password from the sharing configuration.

# paths./api/projects/{project_id}/dashboards/{id}/.get.parameters[].description
Object (or pre-encoded JSON string) to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token.

# paths./api/projects/{project_id}/dashboards/{id}/.get.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/.get.parameters[].description
Object (or pre-encoded JSON string) to override dashboard variables for this request only (not persisted). Format: {"<variable_id>": {"code_name": "<code_name>", "variableId": "<variable_id>", "value": <new_value>}}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token.

# paths./api/projects/{project_id}/dashboards/{id}/.put.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/.patch.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/dashboards/{id}/.delete.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/analyze_refresh_resul.post.description
Generate AI analysis comparing before/after dashboard refresh.
Expects cache_key in request body pointing to the stored 'before' state.

# paths./api/projects/{project_id}/dashboards/{id}/analyze_refresh_resul.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/copy_tile/.post.description
Copy an existing dashboard tile to another dashboard (insight, text card, or widget tile).

# paths./api/projects/{project_id}/dashboards/{id}/copy_tile/.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/create_text_tile/.post.description
Add a markdown text tile to a dashboard.

Text tiles render as markdown blocks on the dashboard — useful as section headings, dividers,
or annotations between insight tiles to give the dashboard structure.

# paths./api/projects/{project_id}/dashboards/{id}/create_text_tile/.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/delete_tile/.post.description
Soft-delete a single tile from a dashboard.

Works for text, insight, and button tiles. The underlying Insight, Text, or ButtonTile
object is preserved — only the dashboard tile is hidden. To delete the entire dashboard,
use the dashboard delete endpoint instead.

# paths./api/projects/{project_id}/dashboards/{id}/delete_tile/.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/move_tile/.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/move_tile/.patch.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/reorder_tiles/.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/run_insights/.get.description
Run all insights on a dashboard and return their results.

# paths./api/projects/{project_id}/dashboards/{id}/run_insights/.get.parameters[].description
Object (or pre-encoded JSON string) to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token.

# paths./api/projects/{project_id}/dashboards/{id}/run_insights/.get.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/run_insights/.get.parameters[].description
'optimized' (default) returns LLM-friendly formatted text per insight. 'json' returns the raw query result objects.

# paths./api/projects/{project_id}/dashboards/{id}/run_insights/.get.parameters[].description
Cache behavior. 'force_cache' (default) serves from cache even if stale. 'blocking' uses cache if fresh, otherwise recalculates. 'force_blocking' always recalculates.

# paths./api/projects/{project_id}/dashboards/{id}/run_insights/.get.parameters[].description
Object (or pre-encoded JSON string) to override dashboard variables for this request only (not persisted). Format: {"<variable_id>": {"code_name": "<code_name>", "variableId": "<variable_id>", "value": <new_value>}}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token.

# paths./api/projects/{project_id}/dashboards/{id}/run_widgets/.get.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/run_widgets/.get.parameters[].description
Comma-separated dashboard tile IDs to run widgets for.

# paths./api/projects/{project_id}/dashboards/{id}/snapshot/.post.description
Snapshot the current dashboard state (from cache) for AI analysis.
Returns a cache_key representing the 'before' state, to be used with analyze_refresh_result.

# paths./api/projects/{project_id}/dashboards/{id}/snapshot/.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/stream_tiles/.get.description
Stream dashboard metadata and tiles via Server-Sent Events. Sends metadata first, then tiles as they are rendered.

# paths./api/projects/{project_id}/dashboards/{id}/stream_tiles/.get.parameters[].description
Object (or pre-encoded JSON string) to override dashboard filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token.

# paths./api/projects/{project_id}/dashboards/{id}/stream_tiles/.get.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/stream_tiles/.get.parameters[].description
Layout size for tile positioning. 'sm' (default) for standard, 'xs' for mobile. The snake_case alias `layout_size` is also accepted for backward compatibility.

# paths./api/projects/{project_id}/dashboards/{id}/stream_tiles/.get.parameters[].description
Object (or pre-encoded JSON string) to override dashboard variables for this request only (not persisted). Format: {"<variable_id>": {"code_name": "<code_name>", "variableId": "<variable_id>", "value": <new_value>}}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `dashboard-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token.

# paths./api/projects/{project_id}/dashboards/{id}/update_text_tile/.post.description
Update the markdown body, layout, or color of an existing text tile on a dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/update_text_tile/.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/{id}/widgets/batch/.post.description
Add multiple widget tiles to a dashboard in one atomic request.

# paths./api/projects/{project_id}/dashboards/{id}/widgets/batch/.post.parameters[].description
A unique integer value identifying this dashboard.

# paths./api/projects/{project_id}/dashboards/bulk_update_tags/.post.description
Bulk update tags on multiple objects.

PAT access: this action has no ``required_scopes=`` on the decorator —
inheriting viewsets must add ``"bulk_update_tags"`` to their
``scope_object_write_actions`` list to accept personal API keys.
Without that opt-in, ``APIScopePermission`` rejects PAT requests with
"This action does not support personal API key access". Done per-viewset
so granting ``<scope>:write`` for one resource doesn't leak access to
sibling resources that share this mixin.

Accepts:
- {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]}

Actions:
- "add": Add tags to existing tags on each object
- "remove": Remove specific tags from each object
- "set": Replace all tags on each object with the provided list

# paths./api/projects/{project_id}/dashboards/create_unlisted_dashboard/.post.description
Creates an unlisted dashboard from template by tag.
Enforces uniqueness (one per tag per team).
Returns 409 if unlisted dashboard with this tag already exists.

# paths./api/projects/{project_id}/dashboards/widget_catalog/.get.description
List registered dashboard widget types and config hints for agents.

# paths./api/projects/{project_id}/data_color_themes/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/data_color_themes/{id}/.get.parameters[].description
A unique integer value identifying this data color theme.

# paths./api/projects/{project_id}/data_color_themes/{id}/.put.parameters[].description
A unique integer value identifying this data color theme.

# paths./api/projects/{project_id}/data_color_themes/{id}/.patch.parameters[].description
A unique integer value identifying this data color theme.

# paths./api/projects/{project_id}/data_color_themes/{id}/.delete.parameters[].description
A unique integer value identifying this data color theme.

# paths./api/projects/{project_id}/data_modeling_jobs/.get.description
List data modeling jobs which are "runs" for our saved queries.

# paths./api/projects/{project_id}/data_modeling_jobs/{id}/.get.description
List data modeling jobs which are "runs" for our saved queries.

# paths./api/projects/{project_id}/data_modeling_jobs/{id}/.get.parameters[].description
A UUID string identifying this data modeling job.

# paths./api/projects/{project_id}/data_modeling_jobs/recent/.get.description
Get the most recent non-running job for each saved query from the v2 backend.

# paths./api/projects/{project_id}/data_modeling_jobs/running/.get.description
Get all currently running jobs from the v2 backend.

# paths./api/projects/{project_id}/data_warehouse/completed_activity/.get.description
Returns completed/non-running activities (jobs with status 'Completed').
Supports pagination and cutoff time filtering.

# paths./api/projects/{project_id}/data_warehouse/data_health_issues/.get.description
Returns failed/disabled data pipeline items for the Pipeline status side panel.
Includes: materializations, syncs, sources, destinations, and transformations.

# paths./api/projects/{project_id}/data_warehouse/data_ops_dashboard/.get.description
Returns the data ops overview dashboard ID for this team, creating it if it doesn't exist yet.

# paths./api/projects/{project_id}/data_warehouse/deprovision/.post.description
Start deprovisioning the managed warehouse for this team.

# paths./api/projects/{project_id}/data_warehouse/job_stats/.get.description
Returns success and failed job statistics for the last 1, 7, or 30 days.
Query parameter 'days' can be 1, 7, or 30 (default: 7).

# paths./api/projects/{project_id}/data_warehouse/property_values/.get.description
API endpoints for data warehouse aggregate statistics and operations.

# paths./api/projects/{project_id}/data_warehouse/provision/.post.description
Start provisioning a managed warehouse for this team.

# paths./api/projects/{project_id}/data_warehouse/reset-password/.post.description
Reset the root password for the managed warehouse.

# paths./api/projects/{project_id}/data_warehouse/running_activity/.get.description
Returns currently running activities (jobs with status 'Running').
Supports pagination and cutoff time filtering.

# paths./api/projects/{project_id}/data_warehouse/total_rows_stats/.get.description
Returns aggregated statistics for the data warehouse total rows processed within the current billing period.
Used by the frontend data warehouse scene to display usage information.

# paths./api/projects/{project_id}/data_warehouse/warehouse_status/.get.description
Get the current provisioning status of the managed warehouse.

# paths./api/projects/{project_id}/dataset_items/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/dataset_items/{id}/.get.parameters[].description
A UUID string identifying this dataset item.

# paths./api/projects/{project_id}/dataset_items/{id}/.put.parameters[].description
A UUID string identifying this dataset item.

# paths./api/projects/{project_id}/dataset_items/{id}/.patch.parameters[].description
A UUID string identifying this dataset item.

# paths./api/projects/{project_id}/dataset_items/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/dataset_items/{id}/.delete.parameters[].description
A UUID string identifying this dataset item.

# paths./api/projects/{project_id}/datasets/.get.parameters[].description
Multiple values may be separated by commas.

# paths./api/projects/{project_id}/datasets/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/datasets/.get.parameters[].description
Ordering

* `created_at` - Created At
* `-created_at` - Created At (descending)
* `updated_at` - Updated At
* `-updated_at` - Updated At (descending)

# paths./api/projects/{project_id}/datasets/.get.parameters[].description
Search in name, description, or metadata

# paths./api/projects/{project_id}/datasets/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/desktop_file_system/.get.description
The file tree for the desktop product surface. Reuses all FileSystemViewSet behaviour but is
scoped to the "desktop" surface, so its tree is fully isolated from the default "web" tree.

# paths./api/projects/{project_id}/desktop_file_system/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/desktop_file_system/.post.description
The file tree for the desktop product surface. Reuses all FileSystemViewSet behaviour but is
scoped to the "desktop" surface, so its tree is fully isolated from the default "web" tree.

# paths./api/projects/{project_id}/desktop_file_system/{id}/.get.description
The file tree for the desktop product surface. Reuses all FileSystemViewSet behaviour but is
scoped to the "desktop" surface, so its tree is fully isolated from the default "web" tree.

# paths./api/projects/{project_id}/desktop_file_system/{id}/.get.parameters[].description
A UUID string identifying this file system.

# paths./api/projects/{project_id}/desktop_file_system/{id}/.put.description
The file tree for the desktop product surface. Reuses all FileSystemViewSet behaviour but is
scoped to the "desktop" surface, so its tree is fully isolated from the default "web" tree.

# paths./api/projects/{project_id}/desktop_file_system/{id}/.put.parameters[].description
A UUID string identifying this file system.

# paths./api/projects/{project_id}/desktop_file_system/{id}/.patch.description
The file tree for the desktop product surface. Reuses all FileSystemViewSet behaviour but is
scoped to the "desktop" surface, so its tree is fully isolated from the default "web" tree.

# paths./api/projects/{project_id}/desktop_file_system/{id}/.patch.parameters[].description
A UUID string identifying this file system.

# paths./api/projects/{project_id}/desktop_file_system/{id}/.delete.description
The file tree for the desktop product surface. Reuses all FileSystemViewSet behaviour but is
scoped to the "desktop" surface, so its tree is fully isolated from the default "web" tree.

# paths./api/projects/{project_id}/desktop_file_system/{id}/.delete.parameters[].description
A UUID string identifying this file system.

# paths./api/projects/{project_id}/desktop_file_system/{id}/count/.post.parameters[].description
A UUID string identifying this file system.

# paths./api/projects/{project_id}/desktop_file_system/{id}/link/.post.description
The file tree for the desktop product surface. Reuses all FileSystemViewSet behaviour but is
scoped to the "desktop" surface, so its tree is fully isolated from the default "web" tree.

# paths./api/projects/{project_id}/desktop_file_system/{id}/link/.post.parameters[].description
A UUID string identifying this file system.

# paths./api/projects/{project_id}/desktop_file_system/{id}/move/.post.description
The file tree for the desktop product surface. Reuses all FileSystemViewSet behaviour but is
scoped to the "desktop" surface, so its tree is fully isolated from the default "web" tree.

# paths./api/projects/{project_id}/desktop_file_system/{id}/move/.post.parameters[].description
A UUID string identifying this file system.

# paths./api/projects/{project_id}/desktop_file_system/log_view/.get.description
The file tree for the desktop product surface. Reuses all FileSystemViewSet behaviour but is
scoped to the "desktop" surface, so its tree is fully isolated from the default "web" tree.

# paths./api/projects/{project_id}/desktop_file_system/log_view/.post.description
The file tree for the desktop product surface. Reuses all FileSystemViewSet behaviour but is
scoped to the "desktop" surface, so its tree is fully isolated from the default "web" tree.

# paths./api/projects/{project_id}/desktop_file_system/undo_delete/.post.description
The file tree for the desktop product surface. Reuses all FileSystemViewSet behaviour but is
scoped to the "desktop" surface, so its tree is fully isolated from the default "web" tree.

# paths./api/projects/{project_id}/desktop_file_system/unfiled/.get.description
The file tree for the desktop product surface. Reuses all FileSystemViewSet behaviour but is
scoped to the "desktop" surface, so its tree is fully isolated from the default "web" tree.

# paths./api/projects/{project_id}/desktop_file_system_shortcut/.get.description
Sidebar shortcuts for the desktop product surface. Reuses all FileSystemShortcutViewSet
behaviour but is scoped to the "desktop" surface, so its shortcuts are fully isolated from
the default "web" surface.

# paths./api/projects/{project_id}/desktop_file_system_shortcut/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/desktop_file_system_shortcut/.post.description
Sidebar shortcuts for the desktop product surface. Reuses all FileSystemShortcutViewSet
behaviour but is scoped to the "desktop" surface, so its shortcuts are fully isolated from
the default "web" surface.

# paths./api/projects/{project_id}/desktop_file_system_shortcut/{id}/.get.description
Sidebar shortcuts for the desktop product surface. Reuses all FileSystemShortcutViewSet
behaviour but is scoped to the "desktop" surface, so its shortcuts are fully isolated from
the default "web" surface.

# paths./api/projects/{project_id}/desktop_file_system_shortcut/{id}/.get.parameters[].description
A UUID string identifying this file system shortcut.

# paths./api/projects/{project_id}/desktop_file_system_shortcut/{id}/.put.description
Sidebar shortcuts for the desktop product surface. Reuses all FileSystemShortcutViewSet
behaviour but is scoped to the "desktop" surface, so its shortcuts are fully isolated from
the default "web" surface.

# paths./api/projects/{project_id}/desktop_file_system_shortcut/{id}/.put.parameters[].description
A UUID string identifying this file system shortcut.

# paths./api/projects/{project_id}/desktop_file_system_shortcut/{id}/.patch.description
Sidebar shortcuts for the desktop product surface. Reuses all FileSystemShortcutViewSet
behaviour but is scoped to the "desktop" surface, so its shortcuts are fully isolated from
the default "web" surface.

# paths./api/projects/{project_id}/desktop_file_system_shortcut/{id}/.patch.parameters[].description
A UUID string identifying this file system shortcut.

# paths./api/projects/{project_id}/desktop_file_system_shortcut/{id}/.delete.description
Sidebar shortcuts for the desktop product surface. Reuses all FileSystemShortcutViewSet
behaviour but is scoped to the "desktop" surface, so its shortcuts are fully isolated from
the default "web" surface.

# paths./api/projects/{project_id}/desktop_file_system_shortcut/{id}/.delete.parameters[].description
A UUID string identifying this file system shortcut.

# paths./api/projects/{project_id}/desktop_file_system_shortcut/reorder/.post.description
Set the display order of the current user's shortcuts. `ordered_ids` becomes the new top-to-bottom order; any unknown IDs are rejected.

# paths./api/projects/{project_id}/desktop_persisted_folder/.get.description
Persisted folders for the desktop product surface. Reuses all PersistedFolderViewSet behaviour
but is scoped to the "desktop" surface, so its folders are fully isolated from the default
"web" surface.

# paths./api/projects/{project_id}/desktop_persisted_folder/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/desktop_persisted_folder/.post.description
Persisted folders for the desktop product surface. Reuses all PersistedFolderViewSet behaviour
but is scoped to the "desktop" surface, so its folders are fully isolated from the default
"web" surface.

# paths./api/projects/{project_id}/desktop_persisted_folder/{id}/.get.description
Persisted folders for the desktop product surface. Reuses all PersistedFolderViewSet behaviour
but is scoped to the "desktop" surface, so its folders are fully isolated from the default
"web" surface.

# paths./api/projects/{project_id}/desktop_persisted_folder/{id}/.get.parameters[].description
A UUID string identifying this Persisted Folder.

# paths./api/projects/{project_id}/desktop_persisted_folder/{id}/.put.description
Persisted folders for the desktop product surface. Reuses all PersistedFolderViewSet behaviour
but is scoped to the "desktop" surface, so its folders are fully isolated from the default
"web" surface.

# paths./api/projects/{project_id}/desktop_persisted_folder/{id}/.put.parameters[].description
A UUID string identifying this Persisted Folder.

# paths./api/projects/{project_id}/desktop_persisted_folder/{id}/.patch.description
Persisted folders for the desktop product surface. Reuses all PersistedFolderViewSet behaviour
but is scoped to the "desktop" surface, so its folders are fully isolated from the default
"web" surface.

# paths./api/projects/{project_id}/desktop_persisted_folder/{id}/.patch.parameters[].description
A UUID string identifying this Persisted Folder.

# paths./api/projects/{project_id}/desktop_persisted_folder/{id}/.delete.description
Persisted folders for the desktop product surface. Reuses all PersistedFolderViewSet behaviour
but is scoped to the "desktop" surface, so its folders are fully isolated from the default
"web" surface.

# paths./api/projects/{project_id}/desktop_persisted_folder/{id}/.delete.parameters[].description
A UUID string identifying this Persisted Folder.

# paths./api/projects/{project_id}/desktop_recordings/.get.description
RESTful API for managing desktop meeting recordings.

Standard CRUD operations plus transcript management as a subresource.

# paths./api/projects/{project_id}/desktop_recordings/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/desktop_recordings/.post.description
Create a new recording and get Recall.ai upload token for the desktop SDK

# paths./api/projects/{project_id}/desktop_recordings/{id}/.get.description
RESTful API for managing desktop meeting recordings.

Standard CRUD operations plus transcript management as a subresource.

# paths./api/projects/{project_id}/desktop_recordings/{id}/.get.parameters[].description
A UUID string identifying this desktop recording.

# paths./api/projects/{project_id}/desktop_recordings/{id}/.put.description
RESTful API for managing desktop meeting recordings.

Standard CRUD operations plus transcript management as a subresource.

# paths./api/projects/{project_id}/desktop_recordings/{id}/.put.parameters[].description
A UUID string identifying this desktop recording.

# paths./api/projects/{project_id}/desktop_recordings/{id}/.patch.description
RESTful API for managing desktop meeting recordings.

Standard CRUD operations plus transcript management as a subresource.

# paths./api/projects/{project_id}/desktop_recordings/{id}/.patch.parameters[].description
A UUID string identifying this desktop recording.

# paths./api/projects/{project_id}/desktop_recordings/{id}/.delete.description
RESTful API for managing desktop meeting recordings.

Standard CRUD operations plus transcript management as a subresource.

# paths./api/projects/{project_id}/desktop_recordings/{id}/.delete.parameters[].description
A UUID string identifying this desktop recording.

# paths./api/projects/{project_id}/desktop_recordings/{id}/append_segmen.post.description
Append transcript segments (supports batched real-time streaming)

# paths./api/projects/{project_id}/desktop_recordings/{id}/append_segmen.post.parameters[].description
A UUID string identifying this desktop recording.

# paths./api/projects/{project_id}/early_access_feature/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/early_access_feature/{id}/.get.parameters[].description
A UUID string identifying this early access feature.

# paths./api/projects/{project_id}/early_access_feature/{id}/.put.parameters[].description
A UUID string identifying this early access feature.

# paths./api/projects/{project_id}/early_access_feature/{id}/.patch.parameters[].description
A UUID string identifying this early access feature.

# paths./api/projects/{project_id}/early_access_feature/{id}/.delete.parameters[].description
A UUID string identifying this early access feature.

# paths./api/projects/{project_id}/elements/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/elements/{id}/.get.parameters[].description
A unique integer value identifying this element.

# paths./api/projects/{project_id}/elements/{id}/.put.parameters[].description
A unique integer value identifying this element.

# paths./api/projects/{project_id}/elements/{id}/.patch.parameters[].description
A unique integer value identifying this element.

# paths./api/projects/{project_id}/elements/{id}/.delete.parameters[].description
A unique integer value identifying this element.

# paths./api/projects/{project_id}/elements/stats/.get.description
The original version of this API always and only returned $autocapture elements
If no include query parameter is sent this remains true.
Now, you can pass a combination of include query parameters to get different types of elements
Currently only $autocapture and $rageclick and $dead_click are supported

# paths./api/projects/{project_id}/endpoints/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/endpoints/{name}/.get.description
Retrieve an endpoint, or a specific version via ?version=N.

# paths./api/projects/{project_id}/endpoints/{name}/.put.description
Update an existing endpoint. Parameters are optional. Pass version in body or ?version=N query param to target a specific version.

# paths./api/projects/{project_id}/endpoints/{name}/.delete.description
Delete an endpoint and clean up materialized query.

# paths./api/projects/{project_id}/endpoints/{name}/materialization_prev.post.description
Preview the materialization transform for an endpoint. Shows what the query will look like after materialization, including range pair detection and bucket functions.

# paths./api/projects/{project_id}/endpoints/{name}/materialization_stat.get.description
Get materialization status for an endpoint. Supports ?version=N query param.

# paths./api/projects/{project_id}/endpoints/{name}/openapi.json/.get.description
Get OpenAPI 3.0 specification for this endpoint. Use this to generate typed SDK clients.

# paths./api/projects/{project_id}/endpoints/{name}/openapi.json/.get.parameters[].description
Specific endpoint version to generate the spec for. Defaults to latest.

# paths./api/projects/{project_id}/endpoints/{name}/run/.get.description
Execute endpoint with optional materialization. Supports version parameter, runs latest version if not set.

# paths./api/projects/{project_id}/endpoints/{name}/run/.post.description
Execute endpoint with optional materialization. Supports version parameter, runs latest version if not set.

# paths./api/projects/{project_id}/endpoints/{name}/versions/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/endpoints/last_execution_times/.post.description
Get the most recent execution time per endpoint (endpoint-level). Timestamps are recorded by the run path for personal-API-key calls. For per-version usage, query the query_log table directly.

# paths./api/projects/{project_id}/environments/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/environments/{id}/.get.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/.put.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/.patch.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/.delete.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/activity/.get.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/add_product_intent/.patch.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/complete_product_on.patch.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/default_evaluation_.get.description
Manage default evaluation contexts for a team.

# paths./api/projects/{project_id}/environments/{id}/default_evaluation_.get.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/default_evaluation_.post.description
Manage default evaluation contexts for a team.

# paths./api/projects/{project_id}/environments/{id}/default_evaluation_.post.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/default_evaluation_.delete.description
Manage default evaluation contexts for a team.

# paths./api/projects/{project_id}/environments/{id}/default_evaluation_.delete.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/default_release_con.get.description
Manage default release conditions for new feature flags in this team.

# paths./api/projects/{project_id}/environments/{id}/default_release_con.get.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/default_release_con.put.description
Manage default release conditions for new feature flags in this team.

# paths./api/projects/{project_id}/environments/{id}/default_release_con.put.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/delete_secret_token.patch.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/event_ingestion_res.get.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/experiments_config/.get.description
Manage experiment configuration for this environment.

# paths./api/projects/{project_id}/environments/{id}/experiments_config/.get.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/experiments_config/.patch.description
Manage experiment configuration for this environment.

# paths./api/projects/{project_id}/environments/{id}/experiments_config/.patch.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/generate_conversati.post.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/is_generating_demo_.get.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/logs_config/.get.description
Manage logs product configuration for this environment.

# paths./api/projects/{project_id}/environments/{id}/logs_config/.get.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/logs_config/.patch.description
Manage logs product configuration for this environment.

# paths./api/projects/{project_id}/environments/{id}/logs_config/.patch.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/promoted_product_in.get.description
Return the product key (e.g. `session_replay`, `web_analytics`) this team selected as their primary product during onboarding. Resolved from the team's most recent primary-onboarding `ProductIntent` record (the one carrying the `onboarding product selected - primary` context) — not from the `user showed product intent` event, which also fires for non-onboarding contexts. Returns `null` when no primary onboarding product intent has been captured (e.g. teams created before this signal existed, or where onboarding was skipped).

# paths./api/projects/{project_id}/environments/{id}/promoted_product_in.get.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/reset_token/.patch.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/rotate_secret_token.patch.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/environments/{id}/settings_as_of/.get.description
Return the team settings as of the provided timestamp.
Query params:
- at: ISO8601 datetime (required)
- scope: optional, one or multiple keys to filter the returned settings

# paths./api/projects/{project_id}/environments/{id}/settings_as_of/.get.parameters[].description
A unique integer value identifying this environment (aka team).

# paths./api/projects/{project_id}/error_tracking/assignment_rules/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/error_tracking/assignment_rules/{id}/.get.parameters[].description
A UUID string identifying this error tracking assignment rule.

# paths./api/projects/{project_id}/error_tracking/assignment_rules/{id}/.put.parameters[].description
A UUID string identifying this error tracking assignment rule.

# paths./api/projects/{project_id}/error_tracking/assignment_rules/{id}/.patch.parameters[].description
A UUID string identifying this error tracking assignment rule.

# paths./api/projects/{project_id}/error_tracking/assignment_rules/{id}/.delete.parameters[].description
A UUID string identifying this error tracking assignment rule.

# paths./api/projects/{project_id}/error_tracking/fingerprints/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/error_tracking/fingerprints/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/error_tracking/git-provider-file-link.get.parameters[].description
Code snippet to search for in repository files.

# paths./api/projects/{project_id}/error_tracking/git-provider-file-link.get.parameters[].description
Code snippet to search for in repository files.

# paths./api/projects/{project_id}/error_tracking/grouping_rules/{id}/.get.parameters[].description
A UUID string identifying this error tracking grouping rule.

# paths./api/projects/{project_id}/error_tracking/grouping_rules/{id}/.put.parameters[].description
A UUID string identifying this error tracking grouping rule.

# paths./api/projects/{project_id}/error_tracking/grouping_rules/{id}/.patch.parameters[].description
A UUID string identifying this error tracking grouping rule.

# paths./api/projects/{project_id}/error_tracking/grouping_rules/{id}/.delete.parameters[].description
A UUID string identifying this error tracking grouping rule.

# paths./api/projects/{project_id}/error_tracking/issues/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/error_tracking/issues/{id}/.get.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/projects/{project_id}/error_tracking/issues/{id}/.put.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/projects/{project_id}/error_tracking/issues/{id}/.patch.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/projects/{project_id}/error_tracking/issues/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/error_tracking/issues/{id}/.delete.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/projects/{project_id}/error_tracking/issues/{id}/activity/.get.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/projects/{project_id}/error_tracking/issues/{id}/assign/.patch.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/projects/{project_id}/error_tracking/issues/{id}/cohort/.put.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/projects/{project_id}/error_tracking/issues/{id}/merge/.post.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/projects/{project_id}/error_tracking/issues/{id}/split/.post.parameters[].description
A UUID string identifying this error tracking issue.

# paths./api/projects/{project_id}/error_tracking/query/issue/.post.description
Fetch one error tracking issue with impact counts, top in_app frame, latest release, and optional sparkline.

# paths./api/projects/{project_id}/error_tracking/query/issue/.post.summary
Get compact error tracking issue details

# paths./api/projects/{project_id}/error_tracking/query/issue_events/.post.description
Fetch sampled exception events, stack traces, browser/SDK context, URL, and $session_id values for one issue.

# paths./api/projects/{project_id}/error_tracking/query/issue_events/.post.summary
List sampled exception events for an error tracking issue

# paths./api/projects/{project_id}/error_tracking/query/issues/.post.description
List error tracking issues with typed filters and compact aggregate counts.

# paths./api/projects/{project_id}/error_tracking/recommendations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/error_tracking/recommendations/{id}/d.post.parameters[].description
A UUID string identifying this error tracking recommendation.

# paths./api/projects/{project_id}/error_tracking/recommendations/{id}/r.post.parameters[].description
A UUID string identifying this error tracking recommendation.

# paths./api/projects/{project_id}/error_tracking/recommendations/{id}/r.post.parameters[].description
A UUID string identifying this error tracking recommendation.

# paths./api/projects/{project_id}/error_tracking/releases/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/error_tracking/releases/{id}/.get.parameters[].description
A UUID string identifying this error tracking release.

# paths./api/projects/{project_id}/error_tracking/releases/{id}/.put.parameters[].description
A UUID string identifying this error tracking release.

# paths./api/projects/{project_id}/error_tracking/releases/{id}/.patch.parameters[].description
A UUID string identifying this error tracking release.

# paths./api/projects/{project_id}/error_tracking/releases/{id}/.delete.parameters[].description
A UUID string identifying this error tracking release.

# paths./api/projects/{project_id}/error_tracking/spike_events/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/error_tracking/stack_frames/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/error_tracking/stack_frames/{id}/.get.parameters[].description
A UUID string identifying this error tracking stack frame.

# paths./api/projects/{project_id}/error_tracking/stack_frames/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/error_tracking/stack_frames/{id}/.delete.parameters[].description
A UUID string identifying this error tracking stack frame.

# paths./api/projects/{project_id}/error_tracking/suppression_rules/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/error_tracking/suppression_rules/{id}.get.parameters[].description
A UUID string identifying this error tracking suppression rule.

# paths./api/projects/{project_id}/error_tracking/suppression_rules/{id}.put.parameters[].description
A UUID string identifying this error tracking suppression rule.

# paths./api/projects/{project_id}/error_tracking/suppression_rules/{id}.patch.parameters[].description
A UUID string identifying this error tracking suppression rule.

# paths./api/projects/{project_id}/error_tracking/suppression_rules/{id}.delete.parameters[].description
A UUID string identifying this error tracking suppression rule.

# paths./api/projects/{project_id}/error_tracking/symbol_sets/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/error_tracking/symbol_sets/.get.parameters[].description
Sort order for symbol sets. Prefix with `-` for descending order.

* `created_at` - created_at
* `-created_at` - -created_at
* `ref` - ref
* `-ref` - -ref
* `last_used` - last_used
* `-last_used` - -last_used

# paths./api/projects/{project_id}/error_tracking/symbol_sets/.get.parameters[].description
Exact symbol set reference to filter by.

# paths./api/projects/{project_id}/error_tracking/symbol_sets/.get.parameters[].description
Case-insensitive substring search across reference, release version, release project, and release commit SHA.

# paths./api/projects/{project_id}/error_tracking/symbol_sets/.get.parameters[].description
Upload status filter: `valid` has an uploaded file, `invalid` is missing a file, `all` returns both.

* `all` - all
* `valid` - valid
* `invalid` - invalid

# paths./api/projects/{project_id}/error_tracking/symbol_sets/{id}/.get.parameters[].description
A UUID string identifying this error tracking symbol set.

# paths./api/projects/{project_id}/error_tracking/symbol_sets/{id}/.delete.parameters[].description
A UUID string identifying this error tracking symbol set.

# paths./api/projects/{project_id}/error_tracking/symbol_sets/{id}/downl.get.description
Return a presigned URL for downloading the symbol set's source map.

# paths./api/projects/{project_id}/error_tracking/symbol_sets/{id}/downl.get.parameters[].description
A UUID string identifying this error tracking symbol set.

# paths./api/projects/{project_id}/error_tracking/symbol_sets/{id}/finis.put.parameters[].description
A UUID string identifying this error tracking symbol set.

# paths./api/projects/{project_id}/evaluation_runs/.post.description
Create a new evaluation run.

This endpoint validates the request and enqueues a Temporal workflow
to asynchronously execute the evaluation.

# paths./api/projects/{project_id}/evaluations/.get.parameters[].description
Multiple values may be separated by commas.

# paths./api/projects/{project_id}/evaluations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/evaluations/.get.parameters[].description
Ordering

* `created_at` - Created At
* `-created_at` - Created At (descending)
* `updated_at` - Updated At
* `-updated_at` - Updated At (descending)
* `name` - Name
* `-name` - Name (descending)

# paths./api/projects/{project_id}/evaluations/{id}/.get.parameters[].description
A UUID string identifying this evaluation.

# paths./api/projects/{project_id}/evaluations/{id}/.put.parameters[].description
A UUID string identifying this evaluation.

# paths./api/projects/{project_id}/evaluations/{id}/.patch.parameters[].description
A UUID string identifying this evaluation.

# paths./api/projects/{project_id}/evaluations/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/evaluations/{id}/.delete.parameters[].description
A UUID string identifying this evaluation.

# paths./api/projects/{project_id}/evaluations/test_hog/.post.description
Test Hog evaluation code against sample events without saving.

# paths./api/projects/{project_id}/event_definitions/.get.parameters[].description
When true, omit events that have been explicitly hidden by a team admin (Enterprise only).

# paths./api/projects/{project_id}/event_definitions/.get.parameters[].description
When true, omit events whose last ingested occurrence is older than 30 days. Events that have never been seen (`last_seen_at` is null) are kept so newly-defined events remain discoverable. Default false. If a search returns zero results with this filter on, retry with `exclude_stale=false` and tell the user the matches are stale.

# paths./api/projects/{project_id}/event_definitions/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/event_definitions/{id}/.get.parameters[].description
A UUID string identifying this event definition.

# paths./api/projects/{project_id}/event_definitions/{id}/.put.parameters[].description
A UUID string identifying this event definition.

# paths./api/projects/{project_id}/event_definitions/{id}/.patch.parameters[].description
A UUID string identifying this event definition.

# paths./api/projects/{project_id}/event_definitions/{id}/.delete.parameters[].description
A UUID string identifying this event definition.

# paths./api/projects/{project_id}/event_definitions/{id}/metrics/.get.parameters[].description
A UUID string identifying this event definition.

# paths./api/projects/{project_id}/event_definitions/bulk_update_tags/.post.description
Bulk update tags on multiple objects.

PAT access: this action has no ``required_scopes=`` on the decorator —
inheriting viewsets must add ``"bulk_update_tags"`` to their
``scope_object_write_actions`` list to accept personal API keys.
Without that opt-in, ``APIScopePermission`` rejects PAT requests with
"This action does not support personal API key access". Done per-viewset
so granting ``<scope>:write`` for one resource doesn't leak access to
sibling resources that share this mixin.

Accepts:
- {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]}

Actions:
- "add": Add tags to existing tags on each object
- "remove": Remove specific tags from each object
- "set": Replace all tags on each object with the provided list

# paths./api/projects/{project_id}/event_definitions/primary_properties/.get.description
Resolve team-configured primary properties for event definitions.

The response only contains entries where a non-null primary_property is set on the
EventDefinition. Callers should fall back to the core taxonomy defaults client-side
for names not present in the response.

# paths./api/projects/{project_id}/event_definitions/primary_properties/.get.parameters[].description
Optional: restrict the response to these event names. Repeat the parameter for multiple names (e.g. `?names=a&names=b`). When omitted, returns every team-configured primary property.

# paths./api/projects/{project_id}/event_filter/.get.description
Returns the event filter config for the team, or null if not yet created.

# paths./api/projects/{project_id}/event_filter/.post.description
Create or update the event filter config.

# paths./api/projects/{project_id}/event_filter/metrics/.get.description
Single event filter per team.
GET  /event_filter/ — returns the config (or null if not yet created)
POST /event_filter/ — creates or updates the config (upsert)
GET  /event_filter/metrics/ — time-series metrics
GET  /event_filter/metrics/totals/ — aggregate totals

# paths./api/projects/{project_id}/event_filter/metrics/totals/.get.description
Single event filter per team.
GET  /event_filter/ — returns the config (or null if not yet created)
POST /event_filter/ — creates or updates the config (upsert)
GET  /event_filter/metrics/ — time-series metrics
GET  /event_filter/metrics/totals/ — aggregate totals

# paths./api/projects/{project_id}/event_schemas/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/event_schemas/{id}/.put.parameters[].description
A UUID string identifying this event schema.

# paths./api/projects/{project_id}/event_schemas/{id}/.patch.parameters[].description
A UUID string identifying this event schema.

# paths./api/projects/{project_id}/event_schemas/{id}/.delete.parameters[].description
A UUID string identifying this event schema.

# paths./api/projects/{project_id}/events/.get.description
        This endpoint allows you to list and filter events.
        It is effectively deprecated and is kept only for backwards compatibility.
        If you ever ask about it you will be advised to not use it...
        If you want to ad-hoc list or aggregate events, use the Query endpoint instead.
        If you want to export all events or many pages of events you should use our CDP/Batch Exports products instead.
        

# paths./api/projects/{project_id}/events/.get.parameters[].description
Only return events with a timestamp after this time. Default: now() - 24 hours.

# paths./api/projects/{project_id}/events/.get.parameters[].description
Only return events with a timestamp before this time. Default: now() + 5 seconds.

# paths./api/projects/{project_id}/events/.get.parameters[].description
Filter list by event. For example `user sign up` or `$pageview`.

# paths./api/projects/{project_id}/events/.get.parameters[].description
Include person details for each event. Default: false.

# paths./api/projects/{project_id}/events/.get.parameters[].description
Allows to skip first offset rows. Will fail for value larger than 100000. Read about proper way of paginating: https://posthog.com/docs/api/queries#5-use-timestamp-based-pagination-instead-of-offset

# paths./api/projects/{project_id}/events/.get.parameters[].description
Filter events by event property, person property, cohort, groups and more.

# paths./api/projects/{project_id}/events/.get.parameters[].description
(Experimental) JSON-serialized array of HogQL expressions to return

# paths./api/projects/{project_id}/events/.get.parameters[].description
(Experimental) JSON-serialized array of HogQL expressions that must pass

# paths./api/projects/{project_id}/events/{id}/.get.parameters[].description
Include person details for the event. Default: false.

# paths./api/projects/{project_id}/experiment_holdouts/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/experiment_holdouts/{id}/.get.parameters[].description
A unique integer value identifying this experiment holdout.

# paths./api/projects/{project_id}/experiment_holdouts/{id}/.put.parameters[].description
A unique integer value identifying this experiment holdout.

# paths./api/projects/{project_id}/experiment_holdouts/{id}/.patch.parameters[].description
A unique integer value identifying this experiment holdout.

# paths./api/projects/{project_id}/experiment_holdouts/{id}/.delete.parameters[].description
A unique integer value identifying this experiment holdout.

# paths./api/projects/{project_id}/experiment_saved_metrics/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/experiment_saved_metrics/{id}/.get.parameters[].description
A unique integer value identifying this experiment saved metric.

# paths./api/projects/{project_id}/experiment_saved_metrics/{id}/.put.parameters[].description
A unique integer value identifying this experiment saved metric.

# paths./api/projects/{project_id}/experiment_saved_metrics/{id}/.patch.parameters[].description
A unique integer value identifying this experiment saved metric.

# paths./api/projects/{project_id}/experiment_saved_metrics/{id}/.delete.parameters[].description
A unique integer value identifying this experiment saved metric.

# paths./api/projects/{project_id}/experiments/.get.description
List experiments for the current project. Supports filtering by status and archival state.

# paths./api/projects/{project_id}/experiments/.get.parameters[].description
Filter by archived state. Defaults to non-archived experiments only.

# paths./api/projects/{project_id}/experiments/.get.parameters[].description
Filter to experiments created by the given user ID.

# paths./api/projects/{project_id}/experiments/.get.parameters[].description
Filter to experiments linked to the given feature flag ID.

# paths./api/projects/{project_id}/experiments/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/experiments/.get.parameters[].description
Field to order by. Prefix with '-' for descending. Allowlisted fields include name, created_at, updated_at, start_date, end_date, duration, and status.

# paths./api/projects/{project_id}/experiments/.get.parameters[].description
Filter to experiments created from an LLM prompt with this name. Matches experiments whose parameters.prompt_metadata.name equals the given value.

# paths./api/projects/{project_id}/experiments/.get.parameters[].description
Free-text search applied to the experiment name (case-insensitive).

# paths./api/projects/{project_id}/experiments/.get.parameters[].description
Filter by experiment status. "running" and "paused" are mutually exclusive: "running" returns launched experiments with an active feature flag, "paused" returns launched experiments whose feature flag is deactivated. "complete" is an alias for "stopped". "all" disables status filtering.

# paths./api/projects/{project_id}/experiments/.post.description
Create a new experiment in draft status with optional metrics.

# paths./api/projects/{project_id}/experiments/{id}/.get.description
Retrieve a single experiment by ID, including its current status, metrics, feature flag, and results metadata.

# paths./api/projects/{project_id}/experiments/{id}/.get.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/.put.description
Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers.

This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator
on serializer methods and converts them into proper HTTP 409 Conflict responses with
change request details.

# paths./api/projects/{project_id}/experiments/{id}/.put.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/.patch.description
Update an experiment. Use this to modify experiment properties such as name, description, metrics, variants, and configuration. Metrics can be added, changed and removed at any time.

# paths./api/projects/{project_id}/experiments/{id}/.patch.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/experiments/{id}/.delete.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/archive/.post.description
Archive an ended experiment.

Hides the experiment from the default list view. The experiment can be
restored at any time by updating archived=false. Returns 400 if the
experiment is already archived or has not ended yet.

# paths./api/projects/{project_id}/experiments/{id}/archive/.post.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/copy_to_project/.post.description
Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers.

This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator
on serializer methods and converts them into proper HTTP 409 Conflict responses with
change request details.

# paths./api/projects/{project_id}/experiments/{id}/copy_to_project/.post.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/create_exposure_coho.post.description
Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers.

This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator
on serializer methods and converts them into proper HTTP 409 Conflict responses with
change request details.

# paths./api/projects/{project_id}/experiments/{id}/create_exposure_coho.post.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/duplicate/.post.description
Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers.

This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator
on serializer methods and converts them into proper HTTP 409 Conflict responses with
change request details.

# paths./api/projects/{project_id}/experiments/{id}/duplicate/.post.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/end/.post.description
End a running experiment without shipping a variant.

Sets end_date to now and marks the experiment as stopped. The feature
flag is NOT modified — users continue to see their assigned variants
and exposure events ($feature_flag_called) continue to be recorded.
However, only data up to end_date is included in experiment results.

Use this when:

- You want to freeze the results window without changing which variant
  users see.
- A variant was already shipped manually via the feature flag UI and
  the experiment just needs to be marked complete.

The end_date can be adjusted after ending via PATCH if it needs to be
backdated (e.g. to match when the flag was actually paused).

Other options:
- Use ship_variant to end the experiment AND roll out a single variant to 100%% of users.
- Use pause to deactivate the flag without ending the experiment (stops variant assignment but does not freeze results).

Returns 400 if the experiment is not running.

# paths./api/projects/{project_id}/experiments/{id}/end/.post.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/launch/.post.description
Launch a draft experiment.

Validates the experiment is in draft state, activates its linked feature flag,
sets start_date to the current server time, and transitions the experiment to running.
Returns 400 if the experiment has already been launched or if the feature flag
configuration is invalid (e.g. missing "control" variant or fewer than 2 variants).

# paths./api/projects/{project_id}/experiments/{id}/launch/.post.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/pause/.post.description
Pause a running experiment.

Deactivates the linked feature flag so it is no longer returned by the
/decide endpoint. Users fall back to the application default (typically
the control experience), and no new exposure events are recorded (i.e.
$feature_flag_called is not fired).
Returns 400 if the experiment is not running or is already paused.

# paths./api/projects/{project_id}/experiments/{id}/pause/.post.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/recalculate_timeseri.post.description
Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers.

This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator
on serializer methods and converts them into proper HTTP 409 Conflict responses with
change request details.

# paths./api/projects/{project_id}/experiments/{id}/recalculate_timeseri.post.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/reset/.post.description
Reset an experiment back to draft state.

Clears start/end dates, conclusion, and archived flag. The feature
flag is left unchanged — users continue to see their assigned variants.

Previously collected events still exist but won't be included in
results unless the start date is manually adjusted after re-launch.

Returns 400 if the experiment is already in draft state.

# paths./api/projects/{project_id}/experiments/{id}/reset/.post.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/resume/.post.description
Resume a paused experiment.

Reactivates the linked feature flag so it is returned by /decide again.
Users are re-bucketed deterministically into the same variants they had
before the pause, and exposure tracking resumes.
Returns 400 if the experiment is not running or is not paused.

# paths./api/projects/{project_id}/experiments/{id}/resume/.post.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/ship_variant/.post.description
Ship a variant and (optionally) end the experiment.

Updates the feature flag so the selected variant gets 100% of the variant
distribution. By default, existing release conditions on the flag are preserved
untouched — the variant is served only to users who already match them. Pass
``release_to_everyone: true`` to also prepend a catch-all release condition
that rolls the variant out to 100% of users (overrides any existing release
conditions on the flag).

Can be called on both running and stopped experiments. If the experiment is
still running, it will also be ended (end_date set and status marked as stopped).
If the experiment has already ended, only the flag is rewritten - this supports
the "end first, ship later" workflow.

If an approval policy requires review before changes on the flag take effect,
the API returns 409 with a change_request_id. The experiment is NOT ended until
the change request is approved and the user retries.

Returns 400 if the experiment is in draft state, the variant_key is not found
on the flag, or the experiment has no linked feature flag.

# paths./api/projects/{project_id}/experiments/{id}/ship_variant/.post.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/timeseries_results/.get.description
Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers.

This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator
on serializer methods and converts them into proper HTTP 409 Conflict responses with
change request details.

# paths./api/projects/{project_id}/experiments/{id}/timeseries_results/.get.parameters[].description
Fingerprint of the metric configuration. Available alongside metric_uuid on each metric in the experiment's metrics array.

# paths./api/projects/{project_id}/experiments/{id}/timeseries_results/.get.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/{id}/timeseries_results/.get.parameters[].description
UUID of the metric to fetch timeseries for. Available on each metric in the experiment's metrics array.

# paths./api/projects/{project_id}/experiments/{id}/unarchive/.post.description
Unarchive an archived experiment.

Restores the experiment to the default list view. Returns 400 if the
experiment is not currently archived.

# paths./api/projects/{project_id}/experiments/{id}/unarchive/.post.parameters[].description
A unique integer value identifying this experiment.

# paths./api/projects/{project_id}/experiments/create_from_prompt/.post.description
Create an experiment that compares N versions of an LLM prompt using a metric template.

The user picks 2+ versions of an existing LLMPrompt and 1+ metric templates
(cost / latency / eval_pass_rate). The endpoint builds the matching variants
(control + test-N, each named after its prompt version) and attaches one
metric per selected template, each scoped to the prompt's $ai_prompt_name.
Resulting experiment is in draft state.

# paths./api/projects/{project_id}/experiments/eligible_feature_flags/.get.description
Returns a paginated list of feature flags eligible for use in experiments.

Eligible flags must:
- Be multivariate with at least 2 variants
- Have "control" as the first variant key

Query parameters:
- search: Filter by flag key or name (case insensitive)
- limit: Number of results per page (default: 20)
- offset: Pagination offset (default: 0)
- active: Filter by active status ("true" or "false")
- created_by_id: Filter by creator user ID
- order: Sort order field
- evaluation_runtime: Filter by evaluation runtime
- has_evaluation_contexts: Filter by presence of evaluation contexts ("true" or "false")

# paths./api/projects/{project_id}/experiments/prompt_templates/.get.description
List the LLM metric templates that can be passed to `create_from_prompt`.

# paths./api/projects/{project_id}/experiments/requires_flag_implementat.get.description
Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers.

This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator
on serializer methods and converts them into proper HTTP 409 Conflict responses with
change request details.

# paths./api/projects/{project_id}/experiments/stats/.get.description
Mixin for ViewSets to handle ApprovalRequired exceptions from decorated serializers.

This mixin intercepts ApprovalRequired exceptions raised by the @approval_gate decorator
on serializer methods and converts them into proper HTTP 409 Conflict responses with
change request details.

# paths./api/projects/{project_id}/exports/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/exports/{id}/.get.parameters[].description
A unique integer value identifying this exported asset.

# paths./api/projects/{project_id}/exports/{id}/content/.get.parameters[].description
A unique integer value identifying this exported asset.

# paths./api/projects/{project_id}/external_data_schemas/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/external_data_schemas/{id}/.get.parameters[].description
A UUID string identifying this external data schema.

# paths./api/projects/{project_id}/external_data_schemas/{id}/.put.parameters[].description
A UUID string identifying this external data schema.

# paths./api/projects/{project_id}/external_data_schemas/{id}/.patch.parameters[].description
A UUID string identifying this external data schema.

# paths./api/projects/{project_id}/external_data_schemas/{id}/.delete.parameters[].description
A UUID string identifying this external data schema.

# paths./api/projects/{project_id}/external_data_schemas/{id}/cancel/.post.parameters[].description
A UUID string identifying this external data schema.

# paths./api/projects/{project_id}/external_data_schemas/{id}/delete_dat.delete.parameters[].description
A UUID string identifying this external data schema.

# paths./api/projects/{project_id}/external_data_schemas/{id}/incrementa.post.parameters[].description
A UUID string identifying this external data schema.

# paths./api/projects/{project_id}/external_data_schemas/{id}/reload/.post.parameters[].description
A UUID string identifying this external data schema.

# paths./api/projects/{project_id}/external_data_schemas/{id}/resync/.post.parameters[].description
A UUID string identifying this external data schema.

# paths./api/projects/{project_id}/external_data_sources/.get.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/external_data_sources/.post.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/{id}/.get.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/{id}/.get.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/.put.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/{id}/.put.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/.patch.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/{id}/.patch.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/.delete.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/{id}/.delete.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/bulk_updat.patch.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/{id}/bulk_updat.patch.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/bulk_updat.patch.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/external_data_sources/{id}/cdc_status.get.description
Live CDC health for an existing source: slot/publication existence and WAL lag.

Reads from the source DB via the engine adapter. Returns ``{"enabled": false}``
when CDC is off, or the stored config plus live ``slot_exists`` /
``publication_exists`` / ``lag_bytes`` when on. 400s if the source DB is
unreachable so the UI can show a degraded/unreachable state.

# paths./api/projects/{project_id}/external_data_sources/{id}/cdc_status.get.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/check_cdc_.post.description
Validate CDC prerequisites for an existing source using its stored credentials.

The detail=False ``check_cdc_prerequisites`` action is for the creation wizard,
where the client still holds the raw connection config (incl. password) in the
form. On the Configuration page the source already exists and secret fields are
stripped from API responses — so the client can't supply them. This reads the
stored (encrypted) credentials from the DB via the adapter instead.

Body params: ``cdc_management_mode`` (``"posthog"`` | ``"self_managed"``),
``cdc_slot_name`` (optional), ``cdc_publication_name`` (optional).

# paths./api/projects/{project_id}/external_data_sources/{id}/check_cdc_.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/create_web.post.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/{id}/create_web.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/delete_web.post.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/{id}/delete_web.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/disable_cd.post.description
Disable CDC on an existing source.

Cancels any running CDC extraction workflow, deletes the extraction schedule,
delegates engine-side teardown to the source's adapter (drops slot/publication
for Postgres; equivalent for other engines), clears ``cdc_*`` keys from
``job_inputs``, soft-deletes companion CDC tables, and sets all CDC schemas to
``sync_type=None``, ``should_sync=False`` so the user must pick a new sync
strategy before they resume.

# paths./api/projects/{project_id}/external_data_sources/{id}/disable_cd.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/enable_cdc.post.description
Enable CDC on an existing source.

Provisions engine-side CDC resources via the source's adapter, writes the CDC
config into ``source.job_inputs``, and ensures the CDC extraction schedule
exists. Re-runs prereq checks server-side so we never trust a stale
client-side check.

Body params: ``cdc_management_mode`` (``"posthog"`` | ``"self_managed"``),
plus engine-specific identifier hints (e.g. ``cdc_slot_name``,
``cdc_publication_name`` for Postgres). Universal tuning fields:
``cdc_auto_drop_slot`` (optional bool), ``cdc_lag_warning_threshold_mb``
(optional int), ``cdc_lag_critical_threshold_mb`` (optional int).

# paths./api/projects/{project_id}/external_data_sources/{id}/enable_cdc.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/jobs/.get.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/{id}/jobs/.get.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/refresh_sc.post.description
Fetch current schema/table list from the source and create any new ExternalDataSchema rows (no data sync).

# paths./api/projects/{project_id}/external_data_sources/{id}/refresh_sc.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/reload/.post.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/{id}/reload/.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/revenue_an.patch.description
Update the revenue analytics configuration and return the full external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/revenue_an.patch.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/update_cdc.post.description
Update CDC tuning fields without enabling/disabling.

Lets users edit ``cdc_auto_drop_slot``, ``cdc_lag_warning_threshold_mb``, and
``cdc_lag_critical_threshold_mb`` independently. These fields are universal
across engines. Engine-specific identifiers (slot name, management mode, …)
are immutable post-enable — switching them requires disable + enable.

# paths./api/projects/{project_id}/external_data_sources/{id}/update_cdc.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/update_web.post.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/{id}/update_web.post.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/{id}/webhook_in.get.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/{id}/webhook_in.get.parameters[].description
A UUID string identifying this external data source.

# paths./api/projects/{project_id}/external_data_sources/check_cdc_prere.post.description
Validate CDC prerequisites against a live Postgres connection.

Used by the source wizard to surface ✅/❌ checks before source creation,
and by the self-managed setup popup to verify user-created publications.

# paths./api/projects/{project_id}/external_data_sources/check_cdc_prere.post.responses.200.description
Whether the Postgres database satisfies CDC prerequisites.

# paths./api/projects/{project_id}/external_data_sources/check_cdc_prere.post.responses.400.description
Invalid config, disallowed host, or connection failure.

# paths./api/projects/{project_id}/external_data_sources/connections/.get.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/connections/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/external_data_sources/database_schema.post.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/source_prefix/.post.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/external_data_sources/wizard/.get.description
Create, Read, Update and Delete External data Sources.

# paths./api/projects/{project_id}/feature_flags/.get.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/.get.parameters[].description
The User ID which initially created the feature flag.

# paths./api/projects/{project_id}/feature_flags/.get.parameters[].description
Filter feature flags by their evaluation runtime.

# paths./api/projects/{project_id}/feature_flags/.get.parameters[].description
JSON-encoded list of feature flag keys to exclude from the results.

# paths./api/projects/{project_id}/feature_flags/.get.parameters[].description
Filter feature flags by presence of evaluation contexts. 'true' returns only flags with at least one evaluation context, 'false' returns only flags without.

# paths./api/projects/{project_id}/feature_flags/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/feature_flags/.get.parameters[].description
Search by feature flag key or name. Case insensitive.

# paths./api/projects/{project_id}/feature_flags/.get.parameters[].description
JSON-encoded list of tag names to filter feature flags by.

# paths./api/projects/{project_id}/feature_flags/.post.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/{id}/.get.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/{id}/.get.parameters[].description
A unique integer value identifying this feature flag.

# paths./api/projects/{project_id}/feature_flags/{id}/.put.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/{id}/.put.parameters[].description
A unique integer value identifying this feature flag.

# paths./api/projects/{project_id}/feature_flags/{id}/.patch.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/{id}/.patch.parameters[].description
A unique integer value identifying this feature flag.

# paths./api/projects/{project_id}/feature_flags/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/feature_flags/{id}/.delete.parameters[].description
A unique integer value identifying this feature flag.

# paths./api/projects/{project_id}/feature_flags/{id}/activity/.get.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/{id}/activity/.get.parameters[].description
A unique integer value identifying this feature flag.

# paths./api/projects/{project_id}/feature_flags/{id}/create_static_coho.post.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/{id}/create_static_coho.post.parameters[].description
A unique integer value identifying this feature flag.

# paths./api/projects/{project_id}/feature_flags/{id}/dashboard/.post.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/{id}/dashboard/.post.parameters[].description
A unique integer value identifying this feature flag.

# paths./api/projects/{project_id}/feature_flags/{id}/dependent_flags/.get.description
Get other active flags that depend on this flag.

# paths./api/projects/{project_id}/feature_flags/{id}/dependent_flags/.get.parameters[].description
A unique integer value identifying this feature flag.

# paths./api/projects/{project_id}/feature_flags/{id}/enrich_usage_dashb.post.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/{id}/enrich_usage_dashb.post.parameters[].description
A unique integer value identifying this feature flag.

# paths./api/projects/{project_id}/feature_flags/{id}/remote_config/.get.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/{id}/remote_config/.get.parameters[].description
A unique integer value identifying this feature flag.

# paths./api/projects/{project_id}/feature_flags/{id}/status/.get.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/{id}/status/.get.parameters[].description
A unique integer value identifying this feature flag.

# paths./api/projects/{project_id}/feature_flags/{id}/test_evaluation/.post.description
Test feature flag evaluation against a specific user at an optional point in time.

This endpoint allows testing how a feature flag would evaluate for a specific user,
optionally at a historical timestamp. When a timestamp is provided, both the flag
conditions and person properties are evaluated as they existed at that time.

# paths./api/projects/{project_id}/feature_flags/{id}/test_evaluation/.post.parameters[].description
A unique integer value identifying this feature flag.

# paths./api/projects/{project_id}/feature_flags/{id}/versions/{version_.get.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/{id}/versions/{version_.get.parameters[].description
A unique integer value identifying this feature flag.

# paths./api/projects/{project_id}/feature_flags/{id}/versions/{version_.get.responses.400.description
Version history is not available for remote configuration flags.

# paths./api/projects/{project_id}/feature_flags/{id}/versions/{version_.get.responses.422.description
Activity log incomplete; cannot reconstruct this version.

# paths./api/projects/{project_id}/feature_flags/activity/.get.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/bulk_delete/.post.description
Bulk delete feature flags by filter criteria or explicit IDs.

Accepts either:
- {"filters": {...}} - Same filter params as list endpoint (search, active, type, etc.)
- {"ids": [...]} - Explicit list of flag IDs (no limit)

Returns same format as bulk_delete for UI compatibility.

Uses bulk operations for efficiency: database updates are batched and cache
invalidation happens once at the end rather than per-flag.

# paths./api/projects/{project_id}/feature_flags/bulk_delete/.post.responses.400.description
Invalid input — e.g., both filters and ids supplied, neither supplied, or unknown filter keys.

# paths./api/projects/{project_id}/feature_flags/bulk_keys/.post.description
Get feature flag keys by IDs.
Accepts a list of feature flag IDs and returns a mapping of ID to key.

# paths./api/projects/{project_id}/feature_flags/bulk_update_tags/.post.description
Bulk update tags on multiple objects.

PAT access: this action has no ``required_scopes=`` on the decorator —
inheriting viewsets must add ``"bulk_update_tags"`` to their
``scope_object_write_actions`` list to accept personal API keys.
Without that opt-in, ``APIScopePermission`` rejects PAT requests with
"This action does not support personal API key access". Done per-viewset
so granting ``<scope>:write`` for one resource doesn't leak access to
sibling resources that share this mixin.

Accepts:
- {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]}

Actions:
- "add": Add tags to existing tags on each object
- "remove": Remove specific tags from each object
- "set": Replace all tags on each object with the provided list

# paths./api/projects/{project_id}/feature_flags/evaluation_reasons/.get.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/evaluation_reasons/.get.parameters[].description
Groups for feature flag evaluation (JSON object string)

# paths./api/projects/{project_id}/feature_flags/local_evaluation/.get.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/matching_ids/.get.description
Get IDs of all feature flags matching the current filters.
Uses the same filtering logic as the list endpoint.
Returns only IDs that the user has permission to edit.

# paths./api/projects/{project_id}/feature_flags/my_flags/.get.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/feature_flags/my_flags/.get.parameters[].description
Groups for feature flag evaluation (JSON object string)

# paths./api/projects/{project_id}/feature_flags/user_blast_radius/.post.description
Create, read, update and delete feature flags. [See docs](https://posthog.com/docs/feature-flags) for more information on feature flags.

If you're looking to use feature flags on your application, you can either use our JavaScript Library or our dedicated endpoint to check if feature flags are enabled for a given user.

# paths./api/projects/{project_id}/file_download_batch_exports/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/file_download_batch_exports/.post.description
Create and start a batch export on demand run to download a file.

# paths./api/projects/{project_id}/file_download_batch_exports/{id}/.get.description
Get a batch export on demand run.

If the underlying batch export run has completed, we return keys to the
generated file downloads so that users may download them by making a request
to /download.

# paths./api/projects/{project_id}/file_download_batch_exports/{id}/.get.parameters[].description
A UUID string identifying this batch export run.

# paths./api/projects/{project_id}/file_download_batch_exports/{id}/canc.post.description
Cancel an ongoing file-download batch export.

# paths./api/projects/{project_id}/file_download_batch_exports/{id}/canc.post.parameters[].description
A UUID string identifying this batch export run.

# paths./api/projects/{project_id}/file_download_batch_exports/{id}/down.get.description
Download a file (or a part) from this batch export run.

Users can provide a part component with an id or index, or no part component at
all:
* If part id is included: The file download matching the id is downloaded.
* If part index is included: The file download matching the index (as ordered
    by key) is downloaded.
* If no part component is present: If there is only one file downloaded, that
    is downloaded. Otherwise the first one as sorted by key is downloaded.

# paths./api/projects/{project_id}/file_download_batch_exports/{id}/down.get.parameters[].description
A UUID string identifying this batch export run.

# paths./api/projects/{project_id}/file_download_batch_exports/{id}/logs.get.parameters[].description
Only return entries after this ISO 8601 timestamp.

# paths./api/projects/{project_id}/file_download_batch_exports/{id}/logs.get.parameters[].description
Only return entries before this ISO 8601 timestamp.

# paths./api/projects/{project_id}/file_download_batch_exports/{id}/logs.get.parameters[].description
A UUID string identifying this batch export run.

# paths./api/projects/{project_id}/file_download_batch_exports/{id}/logs.get.parameters[].description
Filter logs to a specific execution instance.

# paths./api/projects/{project_id}/file_download_batch_exports/{id}/logs.get.parameters[].description
Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR.

# paths./api/projects/{project_id}/file_download_batch_exports/{id}/logs.get.parameters[].description
Maximum number of log entries to return (1-500, default 50).

# paths./api/projects/{project_id}/file_download_batch_exports/{id}/logs.get.parameters[].description
Case-insensitive substring search across log messages.

# paths./api/projects/{project_id}/file_system/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/file_system/{id}/.get.parameters[].description
A UUID string identifying this file system.

# paths./api/projects/{project_id}/file_system/{id}/.put.parameters[].description
A UUID string identifying this file system.

# paths./api/projects/{project_id}/file_system/{id}/.patch.parameters[].description
A UUID string identifying this file system.

# paths./api/projects/{project_id}/file_system/{id}/.delete.parameters[].description
A UUID string identifying this file system.

# paths./api/projects/{project_id}/file_system/{id}/count/.post.parameters[].description
A UUID string identifying this file system.

# paths./api/projects/{project_id}/file_system/{id}/link/.post.parameters[].description
A UUID string identifying this file system.

# paths./api/projects/{project_id}/file_system/{id}/move/.post.parameters[].description
A UUID string identifying this file system.

# paths./api/projects/{project_id}/file_system_shortcut/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/file_system_shortcut/{id}/.get.parameters[].description
A UUID string identifying this file system shortcut.

# paths./api/projects/{project_id}/file_system_shortcut/{id}/.put.parameters[].description
A UUID string identifying this file system shortcut.

# paths./api/projects/{project_id}/file_system_shortcut/{id}/.patch.parameters[].description
A UUID string identifying this file system shortcut.

# paths./api/projects/{project_id}/file_system_shortcut/{id}/.delete.parameters[].description
A UUID string identifying this file system shortcut.

# paths./api/projects/{project_id}/file_system_shortcut/reorder/.post.description
Set the display order of the current user's shortcuts. `ordered_ids` becomes the new top-to-bottom order; any unknown IDs are rejected.

# paths./api/projects/{project_id}/flag_value/values/.get.description
Get possible values for a feature flag.

Query parameters:
- key: The flag ID (required)
Returns:

- Array of objects with 'name' field containing possible values

# paths./api/projects/{project_id}/groups/.get.description
List all groups of a specific group type. You must pass ?group_type_index= in the URL.
To get a list of valid group types, call /api/:project_id/groups_types/.

Uses forward-only keyset pagination via the `cursor` parameter.
The `previous` field in the response envelope is always null.

# paths./api/projects/{project_id}/groups/.get.parameters[].description
Pagination cursor returned in the `next` URL of a previous response

# paths./api/projects/{project_id}/groups/.get.parameters[].description
Filter groups whose key contains this string (case-insensitive)

# paths./api/projects/{project_id}/groups/activity/.get.parameters[].description
Specify the id of the user to find groups for

# paths./api/projects/{project_id}/groups/related/.get.parameters[].description
Specify the id of the user to find groups for

# paths./api/projects/{project_id}/groups_types/{group_type_index}/metri.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/groups_types/{group_type_index}/metri.get.parameters[].description
A UUID string identifying this group usage metric.

# paths./api/projects/{project_id}/groups_types/{group_type_index}/metri.put.parameters[].description
A UUID string identifying this group usage metric.

# paths./api/projects/{project_id}/groups_types/{group_type_index}/metri.patch.parameters[].description
A UUID string identifying this group usage metric.

# paths./api/projects/{project_id}/groups_types/{group_type_index}/metri.delete.parameters[].description
A UUID string identifying this group usage metric.

# paths./api/projects/{project_id}/health_issues/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/health_issues/{id}/.get.parameters[].description
A UUID string identifying this health issue.

# paths./api/projects/{project_id}/health_issues/{id}/.patch.parameters[].description
A UUID string identifying this health issue.

# paths./api/projects/{project_id}/health_issues/{id}/resolve/.post.parameters[].description
A UUID string identifying this health issue.

# paths./api/projects/{project_id}/health_issues/refresh/.post.responses.202.description
Health check refresh jobs scheduled for the team.

# paths./api/projects/{project_id}/health_issues/refresh/.post.responses.429.description
Refresh was triggered recently; try again later.

# paths./api/projects/{project_id}/heatmap_screenshots/{id}/content/.get.description
Fetch the rendered screenshot image (JPEG bytes) for a saved heatmap at a given viewport width. Returns 202 with the saved-heatmap metadata while the screenshot is still being generated.

# paths./api/projects/{project_id}/heatmap_screenshots/{id}/content/.get.parameters[].description
A UUID string identifying this saved heatmap.

# paths./api/projects/{project_id}/heatmap_screenshots/{id}/content/.get.parameters[].description
Viewport width (CSS pixels) to fetch. Defaults to 1024. If no exact render exists for this width the closest available one is returned.

# paths./api/projects/{project_id}/heatmaps/.get.description
Aggregated heatmap interactions for a page. For type 'click'/'rageclick'/'mousemove' each result is a point with relative x, absolute client-y, and a count. For type 'scrolldepth' the response is scroll-depth buckets instead (cumulative reach down the page).

# paths./api/projects/{project_id}/heatmaps/.get.parameters[].description
How to aggregate counts: 'total_count' (every interaction, default) or 'unique_visitors' (distinct people).

* `unique_visitors` - unique_visitors
* `total_count` - total_count

# paths./api/projects/{project_id}/heatmaps/.get.parameters[].description
JSON array of cohort IDs (e.g. '[123, 456]') to restrict results to people in those cohorts. Feature-flagged; ignored when the cohort filter is not enabled for the caller.

# paths./api/projects/{project_id}/heatmaps/.get.parameters[].description
Start of the window. Relative (e.g. '-7d', '-30d', '-1mStart') or an absolute 'YYYY-MM-DD' date. Defaults to '-7d'. Heatmap data is retained for 90 days.

# paths./api/projects/{project_id}/heatmaps/.get.parameters[].description
End of the window, inclusive. Relative or absolute 'YYYY-MM-DD'. Defaults to today.

# paths./api/projects/{project_id}/heatmaps/.get.parameters[].description
When true, exclude sessions from internal/test accounts using the project's test-account filters.

# paths./api/projects/{project_id}/heatmaps/.get.parameters[].description
When true (default), drop interactions recorded at the (0, 0) origin, which are usually noise.

# paths./api/projects/{project_id}/heatmaps/.get.parameters[].description
The interaction type to return. One of: 'click' (default), 'rageclick', 'mousemove', or 'scrolldepth'. Scrolldepth returns scroll buckets instead of x/y coordinates.

# paths./api/projects/{project_id}/heatmaps/.get.parameters[].description
Match a single page by exact URL (trailing slash is ignored). Mutually exclusive with url_pattern.

# paths./api/projects/{project_id}/heatmaps/.get.parameters[].description
Match pages by regex against the full current_url (anchored automatically). Use this to aggregate across query strings or path segments. Mutually exclusive with url_exact.

# paths./api/projects/{project_id}/heatmaps/.get.parameters[].description
Only include interactions captured at a viewport at most this wide, in CSS pixels.

# paths./api/projects/{project_id}/heatmaps/.get.parameters[].description
Only include interactions captured at a viewport at least this wide, in CSS pixels. Use with viewport_width_max to isolate a device class (e.g. 360-768 for mobile).

# paths./api/projects/{project_id}/heatmaps/events/.get.description
Drill into the individual session interactions behind one or more heatmap coordinates. Pass the 'points' you want to inspect (from the heatmaps list response) to get the underlying per-session events, so you can jump to the session recordings that produced a hotspot.

# paths./api/projects/{project_id}/heatmaps/events/.get.parameters[].description
How to aggregate counts: 'total_count' (every interaction, default) or 'unique_visitors' (distinct people).

* `unique_visitors` - unique_visitors
* `total_count` - total_count

# paths./api/projects/{project_id}/heatmaps/events/.get.parameters[].description
JSON array of cohort IDs (e.g. '[123, 456]') to restrict results to people in those cohorts. Feature-flagged; ignored when the cohort filter is not enabled for the caller.

# paths./api/projects/{project_id}/heatmaps/events/.get.parameters[].description
Start of the window. Relative (e.g. '-7d', '-30d', '-1mStart') or an absolute 'YYYY-MM-DD' date. Defaults to '-7d'. Heatmap data is retained for 90 days.

# paths./api/projects/{project_id}/heatmaps/events/.get.parameters[].description
End of the window, inclusive. Relative or absolute 'YYYY-MM-DD'. Defaults to today.

# paths./api/projects/{project_id}/heatmaps/events/.get.parameters[].description
When true, exclude sessions from internal/test accounts using the project's test-account filters.

# paths./api/projects/{project_id}/heatmaps/events/.get.parameters[].description
When true (default), drop interactions recorded at the (0, 0) origin, which are usually noise.

# paths./api/projects/{project_id}/heatmaps/events/.get.parameters[].description
Number of interactions to skip, for pagination.

# paths./api/projects/{project_id}/heatmaps/events/.get.parameters[].description
JSON array of the heatmap coordinates to drill into, e.g. '[{"x": 0.5, "y": 100}]'. Each point needs 'x' (relative x, 0..1) and 'y' (absolute client-y pixels) matching values returned by the heatmaps list endpoint; an optional 'target_fixed' boolean matches fixed-position elements. Returns the individual session interactions behind those spots.

# paths./api/projects/{project_id}/heatmaps/events/.get.parameters[].description
The interaction type to return. One of: 'click' (default), 'rageclick', 'mousemove', or 'scrolldepth'. Scrolldepth returns scroll buckets instead of x/y coordinates.

# paths./api/projects/{project_id}/heatmaps/events/.get.parameters[].description
Match a single page by exact URL (trailing slash is ignored). Mutually exclusive with url_pattern.

# paths./api/projects/{project_id}/heatmaps/events/.get.parameters[].description
Match pages by regex against the full current_url (anchored automatically). Use this to aggregate across query strings or path segments. Mutually exclusive with url_exact.

# paths./api/projects/{project_id}/heatmaps/events/.get.parameters[].description
Only include interactions captured at a viewport at most this wide, in CSS pixels.

# paths./api/projects/{project_id}/heatmaps/events/.get.parameters[].description
Only include interactions captured at a viewport at least this wide, in CSS pixels. Use with viewport_width_max to isolate a device class (e.g. 360-768 for mobile).

# paths./api/projects/{project_id}/hog_flows/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/hog_flows/.get.parameters[].description
* `draft` - Draft
* `active` - Active
* `archived` - Archived

# paths./api/projects/{project_id}/hog_flows/{id}/.get.parameters[].description
A UUID string identifying this hog flow.

# paths./api/projects/{project_id}/hog_flows/{id}/.put.parameters[].description
A UUID string identifying this hog flow.

# paths./api/projects/{project_id}/hog_flows/{id}/.patch.parameters[].description
A UUID string identifying this hog flow.

# paths./api/projects/{project_id}/hog_flows/{id}/.delete.parameters[].description
A UUID string identifying this hog flow.

# paths./api/projects/{project_id}/hog_flows/{id}/batch_jobs/.get.parameters[].description
A UUID string identifying this hog flow.

# paths./api/projects/{project_id}/hog_flows/{id}/batch_jobs/.post.parameters[].description
A UUID string identifying this hog flow.

# paths./api/projects/{project_id}/hog_flows/{id}/invocations/.post.parameters[].description
A UUID string identifying this hog flow.

# paths./api/projects/{project_id}/hog_flows/{id}/logs/.get.parameters[].description
Only return entries after this ISO 8601 timestamp.

# paths./api/projects/{project_id}/hog_flows/{id}/logs/.get.parameters[].description
Only return entries before this ISO 8601 timestamp.

# paths./api/projects/{project_id}/hog_flows/{id}/logs/.get.parameters[].description
A UUID string identifying this hog flow.

# paths./api/projects/{project_id}/hog_flows/{id}/logs/.get.parameters[].description
Filter logs to a specific execution instance.

# paths./api/projects/{project_id}/hog_flows/{id}/logs/.get.parameters[].description
Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR.

# paths./api/projects/{project_id}/hog_flows/{id}/logs/.get.parameters[].description
Maximum number of log entries to return (1-500, default 50).

# paths./api/projects/{project_id}/hog_flows/{id}/logs/.get.parameters[].description
Case-insensitive substring search across log messages.

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/.get.parameters[].description
Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'.

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/.get.parameters[].description
End of the time range. Same format as 'after'. Defaults to now.

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/.get.parameters[].description
Group the series by metric 'name' or 'kind'. Defaults to 'kind'.

* `name` - name
* `kind` - kind

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/.get.parameters[].description
A UUID string identifying this hog flow.

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/.get.parameters[].description
Filter metrics to a specific execution instance.

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/.get.parameters[].description
Time bucket size for the series. One of: hour, day, week. Defaults to 'day'.

* `hour` - hour
* `day` - day
* `week` - week

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/.get.parameters[].description
Comma-separated metric kinds to filter by, e.g. 'success,failure'.

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/.get.parameters[].description
Comma-separated metric names to filter by.

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/totals/.get.parameters[].description
Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'.

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/totals/.get.parameters[].description
End of the time range. Same format as 'after'. Defaults to now.

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/totals/.get.parameters[].description
Group the series by metric 'name' or 'kind'. Defaults to 'kind'.

* `name` - name
* `kind` - kind

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/totals/.get.parameters[].description
A UUID string identifying this hog flow.

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/totals/.get.parameters[].description
Filter metrics to a specific execution instance.

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/totals/.get.parameters[].description
Time bucket size for the series. One of: hour, day, week. Defaults to 'day'.

* `hour` - hour
* `day` - day
* `week` - week

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/totals/.get.parameters[].description
Comma-separated metric kinds to filter by, e.g. 'success,failure'.

# paths./api/projects/{project_id}/hog_flows/{id}/metrics/totals/.get.parameters[].description
Comma-separated metric names to filter by.

# paths./api/projects/{project_id}/hog_flows/{id}/schedules/.get.parameters[].description
A UUID string identifying this hog flow.

# paths./api/projects/{project_id}/hog_flows/{id}/schedules/.post.parameters[].description
A UUID string identifying this hog flow.

# paths./api/projects/{project_id}/hog_flows/{id}/schedules/{schedule_id.patch.parameters[].description
A UUID string identifying this hog flow.

# paths./api/projects/{project_id}/hog_flows/{id}/schedules/{schedule_id.delete.parameters[].description
A UUID string identifying this hog flow.

# paths./api/projects/{project_id}/hog_function_templates/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/hog_function_templates/.get.parameters[].description
Filter to a specific template by its template_id. Deprecated templates are excluded from list results; use the retrieve endpoint to look up a template by ID regardless of status.

# paths./api/projects/{project_id}/hog_function_templates/.get.parameters[].description
Filter by template type (e.g. destination, email, sms_provider, broadcast). Defaults to destination if neither type nor types is provided.

# paths./api/projects/{project_id}/hog_function_templates/.get.parameters[].description
Comma-separated list of template types to include (e.g. destination,email,sms_provider).

# paths./api/projects/{project_id}/hog_functions/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/hog_functions/.get.parameters[].description
Multiple values may be separated by commas.

# paths./api/projects/{project_id}/hog_functions/{id}/.get.parameters[].description
A UUID string identifying this hog function.

# paths./api/projects/{project_id}/hog_functions/{id}/.put.parameters[].description
A UUID string identifying this hog function.

# paths./api/projects/{project_id}/hog_functions/{id}/.patch.parameters[].description
A UUID string identifying this hog function.

# paths./api/projects/{project_id}/hog_functions/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/hog_functions/{id}/.delete.parameters[].description
A UUID string identifying this hog function.

# paths./api/projects/{project_id}/hog_functions/{id}/enable_backfills/.post.parameters[].description
A UUID string identifying this hog function.

# paths./api/projects/{project_id}/hog_functions/{id}/invocations/.post.parameters[].description
A UUID string identifying this hog function.

# paths./api/projects/{project_id}/hog_functions/{id}/logs/.get.parameters[].description
Only return entries after this ISO 8601 timestamp.

# paths./api/projects/{project_id}/hog_functions/{id}/logs/.get.parameters[].description
Only return entries before this ISO 8601 timestamp.

# paths./api/projects/{project_id}/hog_functions/{id}/logs/.get.parameters[].description
A UUID string identifying this hog function.

# paths./api/projects/{project_id}/hog_functions/{id}/logs/.get.parameters[].description
Filter logs to a specific execution instance.

# paths./api/projects/{project_id}/hog_functions/{id}/logs/.get.parameters[].description
Comma-separated log levels to include, e.g. 'WARN,ERROR'. Valid levels: DEBUG, LOG, INFO, WARN, ERROR.

# paths./api/projects/{project_id}/hog_functions/{id}/logs/.get.parameters[].description
Maximum number of log entries to return (1-500, default 50).

# paths./api/projects/{project_id}/hog_functions/{id}/logs/.get.parameters[].description
Case-insensitive substring search across log messages.

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/.get.parameters[].description
Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'.

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/.get.parameters[].description
End of the time range. Same format as 'after'. Defaults to now.

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/.get.parameters[].description
Group the series by metric 'name' or 'kind'. Defaults to 'kind'.

* `name` - name
* `kind` - kind

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/.get.parameters[].description
A UUID string identifying this hog function.

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/.get.parameters[].description
Filter metrics to a specific execution instance.

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/.get.parameters[].description
Time bucket size for the series. One of: hour, day, week. Defaults to 'day'.

* `hour` - hour
* `day` - day
* `week` - week

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/.get.parameters[].description
Comma-separated metric kinds to filter by, e.g. 'success,failure'.

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/.get.parameters[].description
Comma-separated metric names to filter by.

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/totals/.get.parameters[].description
Start of the time range. Accepts relative formats like '-7d', '-24h' or ISO 8601 timestamps. Defaults to '-7d'.

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/totals/.get.parameters[].description
End of the time range. Same format as 'after'. Defaults to now.

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/totals/.get.parameters[].description
Group the series by metric 'name' or 'kind'. Defaults to 'kind'.

* `name` - name
* `kind` - kind

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/totals/.get.parameters[].description
A UUID string identifying this hog function.

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/totals/.get.parameters[].description
Filter metrics to a specific execution instance.

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/totals/.get.parameters[].description
Time bucket size for the series. One of: hour, day, week. Defaults to 'day'.

* `hour` - hour
* `day` - day
* `week` - week

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/totals/.get.parameters[].description
Comma-separated metric kinds to filter by, e.g. 'success,failure'.

# paths./api/projects/{project_id}/hog_functions/{id}/metrics/totals/.get.parameters[].description
Comma-separated metric names to filter by.

# paths./api/projects/{project_id}/hog_functions/rearrange/.patch.description
Update the execution order of multiple HogFunctions.

# paths./api/projects/{project_id}/insight_variables/.get.parameters[].description
A page number within the paginated result set.

# paths./api/projects/{project_id}/insight_variables/{id}/.get.parameters[].description
A UUID string identifying this insight variable.

# paths./api/projects/{project_id}/insight_variables/{id}/.put.parameters[].description
A UUID string identifying this insight variable.

# paths./api/projects/{project_id}/insight_variables/{id}/.patch.parameters[].description
A UUID string identifying this insight variable.

# paths./api/projects/{project_id}/insight_variables/{id}/.delete.parameters[].description
A UUID string identifying this insight variable.

# paths./api/projects/{project_id}/insights/.get.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/projects/{project_id}/insights/.get.parameters[].description
Return basic insight metadata only (no results, faster).

# paths./api/projects/{project_id}/insights/.get.parameters[].description
JSON-encoded array of user IDs. Only returns insights whose `created_by` is in the list, e.g. `[1,42]`.

# paths./api/projects/{project_id}/insights/.get.parameters[].description
Filter by `created_at > created_date_from`. Accepts absolute or relative dates.

# paths./api/projects/{project_id}/insights/.get.parameters[].description
Filter by `created_at < created_date_to`. Accepts absolute or relative dates.

# paths./api/projects/{project_id}/insights/.get.parameters[].description
JSON-encoded array of dashboard IDs. Returns insights attached to every listed dashboard (AND).

# paths./api/projects/{project_id}/insights/.get.parameters[].description
Filter by `last_modified_at > date_from`. Accepts absolute dates (`2025-04-23`) or relative strings (`-7d`, `-1m`).

# paths./api/projects/{project_id}/insights/.get.parameters[].description
Filter by `last_modified_at < date_to`. Accepts absolute dates or relative strings.

# paths./api/projects/{project_id}/insights/.get.parameters[].description
Include this parameter (any value) to restrict results to insights marked as favorited.

# paths./api/projects/{project_id}/insights/.get.parameters[].description
Restrict to a single insight type. `JSON` matches non-wrapper query insights; `SQL` matches HogQL queries.

# paths./api/projects/{project_id}/insights/.get.parameters[].description
Filter by `last_viewed_at > last_viewed_date_from`. Accepts absolute or relative dates.

# paths./api/projects/{project_id}/insights/.get.parameters[].description
Filter by `last_viewed_at < last_viewed_date_to`. Accepts absolute or relative dates.

# paths./api/projects/{project_id}/insights/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/insights/.get.parameters[].description
Whether to refresh the retrieved insights, how aggressively, and if sync or async:
- `'force_cache'` - return cached data or a cache miss; always completes immediately as it never calculates
- `'blocking'` - calculate synchronously (returning only when the query is done), UNLESS there are very fresh results in the cache
- `'async'` - kick off background calculation (returning immediately with a query status), UNLESS there are very fresh results in the cache
- `'lazy_async'` - kick off background calculation, UNLESS there are somewhat fresh results in the cache
- `'force_blocking'` - calculate synchronously, even if fresh results are already cached
- `'force_async'` - kick off background calculation, even if fresh results are already cached
Background calculation can be tracked using the `query_status` response field.

# paths./api/projects/{project_id}/insights/.get.parameters[].description
When truthy, restricts results to insights that are saved (or attached to a visible dashboard). When falsy, only unsaved insights.

# paths./api/projects/{project_id}/insights/.get.parameters[].description
Search term matched across name, derived_name, description, and tag names. Returns case-insensitive substring matches and fuzzy trigram matches together in one list, ordered exact-first; each result's `search_match_type` is `exact` or `similar`.

# paths./api/projects/{project_id}/insights/.get.parameters[].description
JSON-encoded array of tag names. Returns insights with any of the listed tags.

# paths./api/projects/{project_id}/insights/.get.parameters[].description
Include this parameter (any value) to restrict results to insights created by the authenticated user.

# paths./api/projects/{project_id}/insights/.post.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/projects/{project_id}/insights/{insight_id}/sharing/passwor.post.description
Create a new password for the sharing configuration.

# paths./api/projects/{project_id}/insights/{insight_id}/sharing/passwor.delete.description
Delete a password from the sharing configuration.

# paths./api/projects/{project_id}/insights/{insight_id}/thresholds/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/insights/{insight_id}/thresholds/{id}.get.parameters[].description
A UUID string identifying this threshold.

# paths./api/projects/{project_id}/insights/{id}/.get.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/projects/{project_id}/insights/{id}/.get.parameters[].description
Object (or pre-encoded JSON string) to override the insight's filters for this request only (not persisted). Top-level keys replace; nested values are not deep-merged — pass the complete value for any key you override. Accepts the same keys as the dashboard filters schema (e.g., `date_from`, `date_to`, `properties`). Ignored when accessed via a sharing token.

# paths./api/projects/{project_id}/insights/{id}/.get.parameters[].description
Only if loading an insight in the context of a dashboard: The relevant dashboard's ID.
When set, the specified dashboard's filters and date range override will be applied.

# paths./api/projects/{project_id}/insights/{id}/.get.parameters[].description
Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight.

# paths./api/projects/{project_id}/insights/{id}/.get.parameters[].description
Whether to refresh the insight, how aggresively, and if sync or async:
- `'force_cache'` - return cached data or a cache miss; always completes immediately as it never calculates
- `'blocking'` - calculate synchronously (returning only when the query is done), UNLESS there are very fresh results in the cache
- `'async'` - kick off background calculation (returning immediately with a query status), UNLESS there are very fresh results in the cache
- `'lazy_async'` - kick off background calculation, UNLESS there are somewhat fresh results in the cache
- `'force_blocking'` - calculate synchronously, even if fresh results are already cached
- `'force_async'` - kick off background calculation, even if fresh results are already cached
Background calculation can be tracked using the `query_status` response field.

# paths./api/projects/{project_id}/insights/{id}/.get.parameters[].description
Object (or pre-encoded JSON string) to override the insight's HogQL variables for this request only (not persisted). Format: {"<variable_id>": {"code_name": "<code_name>", "variableId": "<variable_id>", "value": <new_value>}}. Each entry must include `code_name` — partial entries are silently dropped. The simplest workflow is to call `insight-get` first, copy the matching entry from the response, and mutate `value`. Top-level keys replace; nested values are not deep-merged. Ignored when accessed via a sharing token.

# paths./api/projects/{project_id}/insights/{id}/.put.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/projects/{project_id}/insights/{id}/.put.parameters[].description
Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight.

# paths./api/projects/{project_id}/insights/{id}/.patch.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/projects/{project_id}/insights/{id}/.patch.parameters[].description
Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight.

# paths./api/projects/{project_id}/insights/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/insights/{id}/.delete.parameters[].description
Numeric primary key or 8-character `short_id` (for example `AaVQ8Ijw`) identifying the insight.

# paths./api/projects/{project_id}/insights/{id}/activity/.get.description
Audit trail for a single insight — every change made to it, by whom, and when. Use this when you want the change history of a specific insight; use the project-wide activity endpoint for a broader view.

# paths./api/projects/{project_id}/insights/{id}/activity/.get.parameters[].description
A unique integer value identifying this insight.

# paths./api/projects/{project_id}/insights/{id}/analyze/.get.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/projects/{project_id}/insights/{id}/analyze/.get.parameters[].description
A unique integer value identifying this insight.

# paths./api/projects/{project_id}/insights/{id}/suggestions/.get.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/projects/{project_id}/insights/{id}/suggestions/.get.parameters[].description
A unique integer value identifying this insight.

# paths./api/projects/{project_id}/insights/{id}/suggestions/.post.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/projects/{project_id}/insights/{id}/suggestions/.post.parameters[].description
A unique integer value identifying this insight.

# paths./api/projects/{project_id}/insights/activity/.get.description
Project-wide audit trail across all insights — who created, edited, deleted, or restored insights, what changed (with before/after diffs), and when. Useful for surfacing what people (or agents) have been working on recently.

# paths./api/projects/{project_id}/insights/bulk_update_tags/.post.description
Bulk update tags on multiple objects.

PAT access: this action has no ``required_scopes=`` on the decorator —
inheriting viewsets must add ``"bulk_update_tags"`` to their
``scope_object_write_actions`` list to accept personal API keys.
Without that opt-in, ``APIScopePermission`` rejects PAT requests with
"This action does not support personal API key access". Done per-viewset
so granting ``<scope>:write`` for one resource doesn't leak access to
sibling resources that share this mixin.

Accepts:
- {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]}

Actions:
- "add": Add tags to existing tags on each object
- "remove": Remove specific tags from each object
- "set": Replace all tags on each object with the provided list

# paths./api/projects/{project_id}/insights/cancel/.post.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/projects/{project_id}/insights/generate_metadata/.post.description
Generate an AI-suggested name and description for an insight based on its query configuration.

# paths./api/projects/{project_id}/insights/my_last_viewed/.get.description
Returns basic details about the last 5 insights viewed by this user. Most recently viewed first.

# paths./api/projects/{project_id}/insights/trending/.get.description
Returns insights ranked by view count over the last N days (default 7), highest first. Each result includes the same metadata as the standard insights list, plus a `view_count` and up to 3 recent `viewers`. Useful for surfacing the most-used insights in a project.

# paths./api/projects/{project_id}/insights/trending/.get.parameters[].description
Time window in days to compute view counts over. Defaults to 7. Larger windows surface consistently popular insights; smaller windows surface what's hot right now.

# paths./api/projects/{project_id}/insights/trending/.get.parameters[].description
Maximum number of insights to return. Defaults to 10. Capped at 100.

# paths./api/projects/{project_id}/insights/trending/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/insights/viewed/.post.description
Record that the current user has just viewed one or more insights. Submitted ids that do not belong to the current project or that point at deleted insights are silently dropped. Returns 201 on success regardless of how many ids were retained.

# paths./api/projects/{project_id}/integrations/.get.parameters[].description
* `anthropic` - Anthropic
* `apns` - Apple Push
* `azure-blob` - Azure Blob
* `bing-ads` - Bing Ads
* `clickup` - Clickup
* `customerio-app` - Customerio App
* `customerio-track` - Customerio Track
* `customerio-webhook` - Customerio Webhook
* `databricks` - Databricks
* `email` - Email
* `firebase` - Firebase
* `github` - Github
* `gitlab` - Gitlab
* `google-ads` - Google Ads
* `google-cloud-service-account` - Google Cloud Service Account
* `google-cloud-storage` - Google Cloud Storage
* `google-pubsub` - Google Pubsub
* `google-search-console` - Google Search Console
* `google-sheets` - Google Sheets
* `hubspot` - Hubspot
* `intercom` - Intercom
* `jira` - Jira
* `linear` - Linear
* `linkedin-ads` - Linkedin Ads
* `meta-ads` - Meta Ads
* `pinterest-ads` - Pinterest Ads
* `postgresql` - Postgresql
* `reddit-ads` - Reddit Ads
* `salesforce` - Salesforce
* `slack` - Slack
* `slack-posthog-code` - Slack Posthog Code
* `snapchat` - Snapchat
* `stripe` - Stripe
* `tiktok-ads` - Tiktok Ads
* `twilio` - Twilio
* `vercel` - Vercel

# paths./api/projects/{project_id}/integrations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/integrations/{id}/.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/.delete.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/anthropic_managed_a.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/anthropic_managed_a.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/anthropic_managed_a.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/channels/.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/channels/.get.parameters[].description
Maximum number of channels to return per request (max 200).

# paths./api/projects/{project_id}/integrations/{id}/channels/.get.parameters[].description
Number of channels to skip before returning results.

# paths./api/projects/{project_id}/integrations/{id}/channels/.get.parameters[].description
Optional case-insensitive channel name or ID search query.

# paths./api/projects/{project_id}/integrations/{id}/clickup_lists/.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/clickup_spaces/.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/clickup_workspaces/.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/email/.patch.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/email/verify/.post.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/github_branches/.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/github_branches/.get.parameters[].description
Optional case-insensitive branch name search query.

# paths./api/projects/{project_id}/integrations/{id}/github_repos/.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/github_repos/.get.parameters[].description
Maximum number of repositories to return per request (max 500).

# paths./api/projects/{project_id}/integrations/{id}/github_repos/.get.parameters[].description
Number of repositories to skip before returning results.

# paths./api/projects/{project_id}/integrations/{id}/github_repos/.get.parameters[].description
Optional case-insensitive repository name search query.

# paths./api/projects/{project_id}/integrations/{id}/github_repos/refres.post.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/github_teams/.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/github_teams/.get.parameters[].description
Maximum number of teams to return per request (max 500).

# paths./api/projects/{project_id}/integrations/{id}/github_teams/.get.parameters[].description
Number of teams to skip before returning results.

# paths./api/projects/{project_id}/integrations/{id}/github_teams/.get.parameters[].description
Optional case-insensitive team name or slug search query.

# paths./api/projects/{project_id}/integrations/{id}/google_accessible_a.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/google_conversion_a.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/jira_projects/.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/linear_teams/.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/linkedin_ads_accoun.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/linkedin_ads_conver.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/{id}/twilio_phone_number.get.parameters[].description
A unique integer value identifying this integration.

# paths./api/projects/{project_id}/integrations/domain-connect/apply-url.post.description
Unified endpoint for generating Domain Connect apply URLs.

Accepts a context ("email" or "proxy") and the relevant resource ID.
The backend resolves the domain, template variables, and service ID
based on context, then builds the signed apply URL.

# paths./api/projects/{project_id}/integrations/github/link_existing/.post.description
Reuse a GitHub installation already linked to a sibling team in the same organization.

# paths./api/projects/{project_id}/integrations/github/oauth_authorize/.post.description
Mint a User OAuth URL to bootstrap a fresh `code` when the install flow returns without one.

# paths./api/projects/{project_id}/js-snippet/resolve/.get.description
Preview what a given pin would resolve to, without saving it.

# paths./api/projects/{project_id}/js-snippet/version/.get.description
Return the team's current version pin and resolved version.

# paths./api/projects/{project_id}/live_debugger_breakpoints/.get.description
Create, Read, Update and Delete breakpoints for live debugging.

# paths./api/projects/{project_id}/live_debugger_breakpoints/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/live_debugger_breakpoints/.post.description
Create, Read, Update and Delete breakpoints for live debugging.

# paths./api/projects/{project_id}/live_debugger_breakpoints/{id}/.get.description
Create, Read, Update and Delete breakpoints for live debugging.

# paths./api/projects/{project_id}/live_debugger_breakpoints/{id}/.get.parameters[].description
A UUID string identifying this live debugger breakpoint.

# paths./api/projects/{project_id}/live_debugger_breakpoints/{id}/.put.description
Create, Read, Update and Delete breakpoints for live debugging.

# paths./api/projects/{project_id}/live_debugger_breakpoints/{id}/.put.parameters[].description
A UUID string identifying this live debugger breakpoint.

# paths./api/projects/{project_id}/live_debugger_breakpoints/{id}/.patch.description
Create, Read, Update and Delete breakpoints for live debugging.

# paths./api/projects/{project_id}/live_debugger_breakpoints/{id}/.patch.parameters[].description
A UUID string identifying this live debugger breakpoint.

# paths./api/projects/{project_id}/live_debugger_breakpoints/{id}/.delete.description
Create, Read, Update and Delete breakpoints for live debugging.

# paths./api/projects/{project_id}/live_debugger_breakpoints/{id}/.delete.parameters[].description
A UUID string identifying this live debugger breakpoint.

# paths./api/projects/{project_id}/live_debugger_breakpoints/active/.get.description
External API endpoint for client applications to fetch active breakpoints using Project API key. This endpoint allows external client applications (like Python scripts, Node.js apps, etc.) to fetch the list of active breakpoints so they can instrument their code accordingly. 

Authentication: Requires a Project API Key in the Authorization header: `Authorization: Bearer phs_<your-project-api-key>`. You can find your Project API Key in PostHog at: Settings → Project → Project API Key

# paths./api/projects/{project_id}/live_debugger_breakpoints/active/.get.parameters[].description
Filter breakpoints for a specific repository (e.g., 'PostHog/posthog')

# paths./api/projects/{project_id}/live_debugger_breakpoints/active/.get.responses.200.description
List of breakpoints for client consumption

# paths./api/projects/{project_id}/live_debugger_breakpoints/breakpoint_.get.description
Retrieve breakpoint hit events from ClickHouse with optional filtering and pagination. Returns hit events containing stack traces, local variables, and execution context from your application's runtime. 

Security: Breakpoint IDs are filtered to only include those belonging to the current team.

# paths./api/projects/{project_id}/live_debugger_breakpoints/breakpoint_.get.parameters[].description
Filter hits for specific breakpoints (repeat parameter for multiple IDs, e.g., ?breakpoint_ids=uuid1&breakpoint_ids=uuid2)

# paths./api/projects/{project_id}/live_debugger_breakpoints/breakpoint_.get.parameters[].description
Number of hits to return (default: 100, max: 1000)

# paths./api/projects/{project_id}/live_debugger_breakpoints/breakpoint_.get.parameters[].description
Pagination offset for retrieving additional results (default: 0)

# paths./api/projects/{project_id}/live_debugger_breakpoints/breakpoint_.get.responses.200.description
List of breakpoint hits with pagination info

# paths./api/projects/{project_id}/live_debugger_breakpoints/breakpoint_.get.responses.400.description
Invalid query parameters (invalid UUID, limit out of range, etc.)

# paths./api/projects/{project_id}/llm_analytics/clustering_config/.get.description
Team-level clustering configuration (event filters for automated pipelines).

# paths./api/projects/{project_id}/llm_analytics/clustering_config/set_e.post.description
Team-level clustering configuration (event filters for automated pipelines).

# paths./api/projects/{project_id}/llm_analytics/clustering_jobs/.get.description
CRUD for clustering job configurations (max 5 per team).

# paths./api/projects/{project_id}/llm_analytics/clustering_jobs/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/llm_analytics/clustering_jobs/.post.description
CRUD for clustering job configurations (max 5 per team).

# paths./api/projects/{project_id}/llm_analytics/clustering_jobs/{id}/.get.description
CRUD for clustering job configurations (max 5 per team).

# paths./api/projects/{project_id}/llm_analytics/clustering_jobs/{id}/.get.parameters[].description
A UUID string identifying this clustering job.

# paths./api/projects/{project_id}/llm_analytics/clustering_jobs/{id}/.put.description
CRUD for clustering job configurations (max 5 per team).

# paths./api/projects/{project_id}/llm_analytics/clustering_jobs/{id}/.put.parameters[].description
A UUID string identifying this clustering job.

# paths./api/projects/{project_id}/llm_analytics/clustering_jobs/{id}/.patch.description
CRUD for clustering job configurations (max 5 per team).

# paths./api/projects/{project_id}/llm_analytics/clustering_jobs/{id}/.patch.parameters[].description
A UUID string identifying this clustering job.

# paths./api/projects/{project_id}/llm_analytics/clustering_jobs/{id}/.delete.description
CRUD for clustering job configurations (max 5 per team).

# paths./api/projects/{project_id}/llm_analytics/clustering_jobs/{id}/.delete.parameters[].description
A UUID string identifying this clustering job.

# paths./api/projects/{project_id}/llm_analytics/evaluation_config/set_a.post.description
Set the active provider key for evaluations

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/.get.description
CRUD for evaluation report configurations + report run history.

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/.post.description
CRUD for evaluation report configurations + report run history.

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/{id}.get.description
CRUD for evaluation report configurations + report run history.

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/{id}.get.parameters[].description
A UUID string identifying this evaluation report.

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/{id}.put.description
CRUD for evaluation report configurations + report run history.

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/{id}.put.parameters[].description
A UUID string identifying this evaluation report.

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/{id}.patch.description
CRUD for evaluation report configurations + report run history.

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/{id}.patch.parameters[].description
A UUID string identifying this evaluation report.

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/{id}.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/{id}.delete.parameters[].description
A UUID string identifying this evaluation report.

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/{id}.post.parameters[].description
A UUID string identifying this evaluation report.

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/{id}.get.description
List report runs (history) for this report.

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/{id}.get.parameters[].description
A UUID string identifying this evaluation report.

# paths./api/projects/{project_id}/llm_analytics/evaluation_reports/{id}.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/llm_analytics/evaluation_summary/.post.description
Generate an AI-powered summary of evaluation results.

This endpoint analyzes evaluation runs and identifies patterns in passing
and failing evaluations, providing actionable recommendations.

Data is fetched server-side by evaluation ID to ensure data integrity.

**Use Cases:**
- Understand why evaluations are passing or failing
- Identify systematic issues in LLM responses
- Get recommendations for improving response quality
- Review patterns across many evaluation runs at once
        

# paths./api/projects/{project_id}/llm_analytics/evaluation_summary/.post.responses.200.content.application/json.examples.SuccessResponse.value.overall_assessment
Evaluations show generally good quality with some factual accuracy issues.

# paths./api/projects/{project_id}/llm_analytics/evaluation_summary/.post.responses.200.content.application/json.examples.SuccessResponse.value.fail_patterns[].description
Some responses contained inaccurate information

# paths./api/projects/{project_id}/llm_analytics/evaluation_summary/.post.responses.200.content.application/json.examples.SuccessResponse.value.recommendations[]
Implement fact-checking for critical claims

# paths./api/projects/{project_id}/llm_analytics/models/.get.parameters[].description
Optional provider key UUID. When supplied, models reachable with that specific key are returned (useful for Azure OpenAI, where the deployment list depends on the configured endpoint). Must belong to the same provider as the `provider` parameter.

# paths./api/projects/{project_id}/llm_analytics/models/.get.parameters[].description
LLM provider to list models for. Must be one of the supported providers.

# paths./api/projects/{project_id}/llm_analytics/provider_key_validation.post.description
Validate LLM provider API keys without persisting them

# paths./api/projects/{project_id}/llm_analytics/provider_keys/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/llm_analytics/provider_keys/{id}/.get.parameters[].description
A UUID string identifying this llm provider key.

# paths./api/projects/{project_id}/llm_analytics/provider_keys/{id}/.put.parameters[].description
A UUID string identifying this llm provider key.

# paths./api/projects/{project_id}/llm_analytics/provider_keys/{id}/.patch.parameters[].description
A UUID string identifying this llm provider key.

# paths./api/projects/{project_id}/llm_analytics/provider_keys/{id}/.delete.parameters[].description
A UUID string identifying this llm provider key.

# paths./api/projects/{project_id}/llm_analytics/provider_keys/{id}/assi.post.description
Assign this key to evaluations and optionally re-enable them.

# paths./api/projects/{project_id}/llm_analytics/provider_keys/{id}/assi.post.parameters[].description
A UUID string identifying this llm provider key.

# paths./api/projects/{project_id}/llm_analytics/provider_keys/{id}/depe.get.description
Get evaluations using this key and alternative keys for replacement.

# paths./api/projects/{project_id}/llm_analytics/provider_keys/{id}/depe.get.parameters[].description
A UUID string identifying this llm provider key.

# paths./api/projects/{project_id}/llm_analytics/provider_keys/{id}/vali.post.parameters[].description
A UUID string identifying this llm provider key.

# paths./api/projects/{project_id}/llm_analytics/provider_keys/trial_eva.get.description
List enabled evaluations currently using trial credits for a given provider.

# paths./api/projects/{project_id}/llm_analytics/review_queue_items/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/llm_analytics/review_queue_items/.get.parameters[].description
Filter by multiple trace IDs separated by commas.

# paths./api/projects/{project_id}/llm_analytics/review_queue_items/{id}.get.parameters[].description
A UUID string identifying this review queue item.

# paths./api/projects/{project_id}/llm_analytics/review_queue_items/{id}.patch.parameters[].description
A UUID string identifying this review queue item.

# paths./api/projects/{project_id}/llm_analytics/review_queue_items/{id}.delete.parameters[].description
A UUID string identifying this review queue item.

# paths./api/projects/{project_id}/llm_analytics/review_queues/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/llm_analytics/review_queues/.get.parameters[].description
Order by `name`, `updated_at`, or `created_at`.

# paths./api/projects/{project_id}/llm_analytics/review_queues/{id}/.get.parameters[].description
A UUID string identifying this review queue.

# paths./api/projects/{project_id}/llm_analytics/review_queues/{id}/.patch.parameters[].description
A UUID string identifying this review queue.

# paths./api/projects/{project_id}/llm_analytics/review_queues/{id}/.delete.parameters[].description
A UUID string identifying this review queue.

# paths./api/projects/{project_id}/llm_analytics/score_definitions/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/llm_analytics/score_definitions/.get.parameters[].description
Sort by name, kind, created_at, updated_at, or current_version.

# paths./api/projects/{project_id}/llm_analytics/score_definitions/{id}/.get.parameters[].description
A UUID string identifying this score definition.

# paths./api/projects/{project_id}/llm_analytics/score_definitions/{id}/.patch.parameters[].description
A UUID string identifying this score definition.

# paths./api/projects/{project_id}/llm_analytics/score_definitions/{id}/.post.parameters[].description
A UUID string identifying this score definition.

# paths./api/projects/{project_id}/llm_analytics/summarization/.post.description
Generate an AI-powered summary of an LLM trace or event.

This endpoint analyzes the provided trace/event, generates a line-numbered text
representation, and uses an LLM to create a concise summary with line references.

**Two ways to use this endpoint:**

1. **By ID (recommended):** Pass `trace_id` or `generation_id` with an optional `date_from`/`date_to`.
   The backend fetches the data automatically. `summarize_type` is inferred.
2. **By data:** Pass the full trace/event data blob in `data` with `summarize_type`.
   This is how the frontend uses it.

**Summary Format:**
- Title (concise, max 10 words)
- Mermaid flow diagram showing the main flow
- 3-10 summary bullets with line references
- "Interesting Notes" section for failures, successes, or unusual patterns
- Line references in [L45] or [L45-52] format pointing to relevant sections

The response includes the structured summary, the text representation, and metadata.
        

# paths./api/projects/{project_id}/llm_analytics/summarization/.post.responses.200.content.application/json.examples.SuccessResponse.value.summary
## Summary
- User initiated conversation with greeting [L5-8]
- Assistant responded with friendly message [L12-15]

## Interesting Notes
- Standard greeting pattern with no errors

# paths./api/projects/{project_id}/llm_analytics/summarization/batch_che.post.description
Check which traces have cached summaries available.

This endpoint allows batch checking of multiple trace IDs to see which ones
have cached summaries. Returns only the traces that have cached summaries
with their titles.

**Use Cases:**
- Load cached summaries on session view load
- Avoid unnecessary LLM calls for already-summarized traces
- Display summary previews without generating new summaries
        

# paths./api/projects/{project_id}/llm_analytics/text_repr/.post.description
Generate a human-readable text representation of an LLM trace event.

This endpoint converts AI observability events ($ai_generation, $ai_span, $ai_embedding, or $ai_trace)
into formatted text representations suitable for display, logging, or analysis.

**Supported Event Types:**
- `$ai_generation`: Individual LLM API calls with input/output messages
- `$ai_span`: Logical spans with state transitions
- `$ai_embedding`: Embedding generation events (text input → vector)
- `$ai_trace`: Full traces with hierarchical structure

**Options:**
- `max_length`: Maximum character count (default: 2000000)
- `truncated`: Enable middle-content truncation within events (default: true)
- `truncate_buffer`: Characters at start/end when truncating (default: 1000)
- `include_markers`: Use interactive markers vs plain text indicators (default: true)
  - Frontend: set true for `<<<TRUNCATED|base64|...>>>` markers
  - Backend/LLM: set false for `... (X chars truncated) ...` text
- `collapsed`: Show summary vs full trace tree (default: false)
- `include_hierarchy`: Include tree structure for traces (default: true)
- `max_depth`: Maximum depth for hierarchical rendering (default: unlimited)
- `tools_collapse_threshold`: Number of tools before auto-collapsing list (default: 5)
  - Tool lists >5 items show `<<<TOOLS_EXPANDABLE|...>>>` marker for frontend
  - Or `[+] AVAILABLE TOOLS: N` for backend when `include_markers: false`
- `include_line_numbers`: Prefix each line with line number like L001:, L010: (default: false)

**Use Cases:**
- Frontend display: `truncated: true, include_markers: true, include_line_numbers: true`
- Backend LLM context (summary): `truncated: true, include_markers: false, collapsed: true`
- Backend LLM context (full): `truncated: false`

The response includes the formatted text and metadata about the rendering.
        

# paths./api/projects/{project_id}/llm_analytics/text_repr/.post.responses.200.content.application/json.examples.SuccessResponse.value.text
INPUT:

[1] USER

What is the capital of France?

...

# paths./api/projects/{project_id}/llm_analytics/trace_reviews/.get.parameters[].description
Filter by a stable scorer definition ID.

# paths./api/projects/{project_id}/llm_analytics/trace_reviews/.get.parameters[].description
Filter by multiple scorer definition IDs separated by commas.

# paths./api/projects/{project_id}/llm_analytics/trace_reviews/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/llm_analytics/trace_reviews/.get.parameters[].description
Filter by multiple trace IDs separated by commas.

# paths./api/projects/{project_id}/llm_analytics/trace_reviews/{id}/.get.parameters[].description
A UUID string identifying this trace review.

# paths./api/projects/{project_id}/llm_analytics/trace_reviews/{id}/.patch.parameters[].description
A UUID string identifying this trace review.

# paths./api/projects/{project_id}/llm_analytics/trace_reviews/{id}/.delete.parameters[].description
A UUID string identifying this trace review.

# paths./api/projects/{project_id}/llm_prompts/.get.parameters[].description
Controls how much prompt content is included in the response. 'full' includes the full prompt, 'preview' includes a short prompt_preview, and 'none' omits prompt content entirely. The outline field is always included.

* `full` - full
* `preview` - preview
* `none` - none

# paths./api/projects/{project_id}/llm_prompts/.get.parameters[].description
Filter prompts by the ID of the user who created them.

# paths./api/projects/{project_id}/llm_prompts/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/llm_prompts/.get.parameters[].description
Optional substring filter applied to prompt names and prompt content.

# paths./api/projects/{project_id}/llm_prompts/name/{prompt_name}/.get.parameters[].description
Controls how much prompt content is included in the response. 'full' includes the full prompt, 'preview' includes a short prompt_preview, and 'none' omits prompt content entirely. The outline field is always included.

* `full` - full
* `preview` - preview
* `none` - none

# paths./api/projects/{project_id}/llm_prompts/name/{prompt_name}/.get.parameters[].description
Specific prompt version to fetch. If omitted, the latest version is returned.

# paths./api/projects/{project_id}/llm_prompts/resolve/name/{prompt_name.get.parameters[].description
Return versions older than this version number. Mutually exclusive with offset.

# paths./api/projects/{project_id}/llm_prompts/resolve/name/{prompt_name.get.parameters[].description
Maximum number of versions to return per page (1-100).

# paths./api/projects/{project_id}/llm_prompts/resolve/name/{prompt_name.get.parameters[].description
Zero-based offset into version history for pagination. Mutually exclusive with before_version.

# paths./api/projects/{project_id}/llm_prompts/resolve/name/{prompt_name.get.parameters[].description
Specific prompt version to fetch. If omitted, the latest version is returned.

# paths./api/projects/{project_id}/llm_prompts/resolve/name/{prompt_name.get.parameters[].description
Exact prompt version UUID to resolve. Can be used together with version for extra safety.

# paths./api/projects/{project_id}/llm_skills/.get.parameters[].description
Filter skills by the ID of the user who created them.

# paths./api/projects/{project_id}/llm_skills/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/llm_skills/.get.parameters[].description
Optional substring filter applied to skill names and descriptions.

# paths./api/projects/{project_id}/llm_skills/name/{skill_name}/.get.parameters[].description
Specific skill version to fetch. If omitted, the latest version is returned.

# paths./api/projects/{project_id}/llm_skills/name/{skill_name}/files/{f.get.parameters[].description
Specific skill version to fetch. If omitted, the latest version is returned.

# paths./api/projects/{project_id}/llm_skills/name/{skill_name}/files/{f.delete.parameters[].description
Latest version you are editing from. If provided, the request fails with 409 when another write has landed in the meantime.

# paths./api/projects/{project_id}/llm_skills/resolve/name/{skill_name}/.get.parameters[].description
Return versions older than this version number. Mutually exclusive with offset.

# paths./api/projects/{project_id}/llm_skills/resolve/name/{skill_name}/.get.parameters[].description
Maximum number of versions to return per page (1-100).

# paths./api/projects/{project_id}/llm_skills/resolve/name/{skill_name}/.get.parameters[].description
Zero-based offset into version history for pagination. Mutually exclusive with before_version.

# paths./api/projects/{project_id}/llm_skills/resolve/name/{skill_name}/.get.parameters[].description
Specific skill version to fetch. If omitted, the latest version is returned.

# paths./api/projects/{project_id}/logs/alerts/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/logs/alerts/{id}/.get.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/projects/{project_id}/logs/alerts/{id}/.put.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/projects/{project_id}/logs/alerts/{id}/.patch.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/projects/{project_id}/logs/alerts/{id}/.delete.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/projects/{project_id}/logs/alerts/{id}/destinations/.post.description
Create a notification destination for this alert. One HogFunction is created per alert event kind (firing, resolved, ...) atomically.

# paths./api/projects/{project_id}/logs/alerts/{id}/destinations/.post.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/projects/{project_id}/logs/alerts/{id}/destinations/delete/.post.description
Delete a notification destination by deleting its HogFunction group atomically.

# paths./api/projects/{project_id}/logs/alerts/{id}/destinations/delete/.post.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/projects/{project_id}/logs/alerts/{id}/events/.get.description
Paginated event history for this alert, newest first. Returns state transitions, errored checks, and user-initiated control-plane rows (reset, enable/disable, snooze/unsnooze, threshold change) — quiet no-op check rows (where state didn't change and there was no error) are filtered out since only the last 10 are kept and they carry no forensic value. Optional `?kind=...` narrows to a single kind.

# paths./api/projects/{project_id}/logs/alerts/{id}/events/.get.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/projects/{project_id}/logs/alerts/{id}/events/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/logs/alerts/{id}/reset/.post.description
Reset a broken alert. Clears the consecutive-failure counter and schedules an immediate recheck.

# paths./api/projects/{project_id}/logs/alerts/{id}/reset/.post.parameters[].description
A UUID string identifying this logs alert configuration.

# paths./api/projects/{project_id}/logs/alerts/simulate/.post.description
Simulate a logs alert on historical data using the full state machine. Read-only — no alert check records are created.

# paths./api/projects/{project_id}/logs/attributes/.get.parameters[].description
Type of attributes: "log" for log attributes, "resource" for resource attributes. Defaults to "log".

* `log` - log
* `resource` - resource

# paths./api/projects/{project_id}/logs/attributes/.get.parameters[].description
Date range to search within. Defaults to last hour.

# paths./api/projects/{project_id}/logs/attributes/.get.parameters[].description
Property filters to narrow which logs are scanned for attributes.

# paths./api/projects/{project_id}/logs/attributes/.get.parameters[].description
When true, the search query also matches attribute values (not just keys). Each result indicates whether it matched on key or value.

# paths./api/projects/{project_id}/logs/attributes/.get.parameters[].description
Filter attributes to those appearing in logs from these services.

# paths./api/projects/{project_id}/logs/explainLogWithAI/.post.description
Explain a log entry using AI.

POST /api/environments/:id/logs/explainLogWithAI/

# paths./api/projects/{project_id}/logs/sampling_rules/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/logs/sampling_rules/{id}/.get.parameters[].description
A UUID string identifying this logs exclusion rule.

# paths./api/projects/{project_id}/logs/sampling_rules/{id}/.put.parameters[].description
A UUID string identifying this logs exclusion rule.

# paths./api/projects/{project_id}/logs/sampling_rules/{id}/.patch.parameters[].description
A UUID string identifying this logs exclusion rule.

# paths./api/projects/{project_id}/logs/sampling_rules/{id}/.delete.parameters[].description
A UUID string identifying this logs exclusion rule.

# paths./api/projects/{project_id}/logs/sampling_rules/{id}/simulate/.post.description
Dry-run estimate for how much volume this rule would remove (placeholder response until CH-backed simulation is wired).

# paths./api/projects/{project_id}/logs/sampling_rules/{id}/simulate/.post.parameters[].description
A UUID string identifying this logs exclusion rule.

# paths./api/projects/{project_id}/logs/sampling_rules/reorder/.post.description
Atomically reassign priorities so the given ID order maps to ascending priorities (0..n-1).

# paths./api/projects/{project_id}/logs/sampling_rules/reorder/.post.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/logs/values/.get.parameters[].description
Type of attribute: "log" or "resource". Defaults to "log".

* `log` - log
* `resource` - resource

# paths./api/projects/{project_id}/logs/values/.get.parameters[].description
Date range to search within. Defaults to last hour.

# paths./api/projects/{project_id}/logs/values/.get.parameters[].description
Property filters to narrow which logs are scanned for values.

# paths./api/projects/{project_id}/logs/values/.get.parameters[].description
Filter values to those appearing in logs from these services.

# paths./api/projects/{project_id}/logs/views/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/managed_viewsets/{kind}/.get.description
Get all views associated with a specific managed viewset.
GET /api/environments/{team_id}/managed_viewsets/{kind}/

# paths./api/projects/{project_id}/managed_viewsets/{kind}/.get.parameters[].schema.description
* `revenue_analytics` - Revenue Analytics

# paths./api/projects/{project_id}/managed_viewsets/{kind}/.put.description
Enable or disable a managed viewset by kind.
PUT /api/environments/{team_id}/managed_viewsets/{kind}/ with body {"enabled": true/false}

# paths./api/projects/{project_id}/managed_viewsets/{kind}/.put.parameters[].schema.description
* `revenue_analytics` - Revenue Analytics

# paths./api/projects/{project_id}/mcp_server_installations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/mcp_server_installations/{id}/.get.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/projects/{project_id}/mcp_server_installations/{id}/.put.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/projects/{project_id}/mcp_server_installations/{id}/.patch.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/projects/{project_id}/mcp_server_installations/{id}/.delete.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/projects/{project_id}/mcp_server_installations/{id}/proxy/.post.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/projects/{project_id}/mcp_server_installations/{id}/tools/.get.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/projects/{project_id}/mcp_server_installations/{id}/tools/{.patch.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/projects/{project_id}/mcp_server_installations/{id}/tools/r.post.parameters[].description
A UUID string identifying this mcp server installation.

# paths./api/projects/{project_id}/mcp_server_installations/authorize/.get.description
Start (or re-start) an OAuth flow.

Pass ``template_id`` to (re)connect a catalog template, or
``installation_id`` to reconnect an existing custom install using its
cached metadata and per-user DCR creds.

# paths./api/projects/{project_id}/mcp_server_installations/authorize/.get.parameters[].description
* `posthog` - posthog
* `posthog-code` - posthog-code

# paths./api/projects/{project_id}/mcp_servers/.get.description
Lists curated MCP server templates that users can install with one click.

Templates are seeded by PostHog operators and carry shared, encrypted
OAuth client credentials. Inactive templates are hidden from the catalog.

# paths./api/projects/{project_id}/mcp_servers/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/mcp_tools/{tool_name}/.post.description
Invoke an MCP tool by name.

This endpoint allows MCP callers to invoke Max AI tools directly
without going through the full LangChain conversation flow.

Scopes are resolved dynamically per tool via dangerously_get_required_scopes.

# paths./api/projects/{project_id}/mcp_tools/docs_search/.post.description
Run a hybrid (semantic + full-text) RAG search over the PostHog documentation via Inkeep. Returns a markdown body with title, URL, and excerpt for each match for the agent to cite back to the user.

# paths./api/projects/{project_id}/metrics/values/.get.description
Distinct metric names for the team. Backs the picker UI.

# paths./api/projects/{project_id}/metrics/values/.get.parameters[].description
Max number of names to return. Defaults to 100, capped at 1000.

# paths./api/projects/{project_id}/metrics/values/.get.parameters[].description
Substring filter (case-insensitive) applied to metric names.

# paths./api/projects/{project_id}/notebooks/.get.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/.get.parameters[].description
Filter for notebooks that match a provided filter.
                Each match pair is separated by a colon,
                multiple match pairs can be sent separated by a space or a comma

# paths./api/projects/{project_id}/notebooks/.get.parameters[].examples.FilterForNotebooksThatHaveAnyRecording.summary
Filter for notebooks that have any recording

# paths./api/projects/{project_id}/notebooks/.get.parameters[].examples.FilterForNotebooksThatDoNotHaveAnyRecording.summary
Filter for notebooks that do not have any recording

# paths./api/projects/{project_id}/notebooks/.get.parameters[].examples.FilterForNotebooksThatHaveASpecificRecording.summary
Filter for notebooks that have a specific recording

# paths./api/projects/{project_id}/notebooks/.get.parameters[].description
Filter for notebooks created after this date & time

# paths./api/projects/{project_id}/notebooks/.get.parameters[].description
Filter for notebooks created before this date & time

# paths./api/projects/{project_id}/notebooks/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/notebooks/.get.parameters[].description
If any value is provided for this parameter, return notebooks created by the logged in user.

# paths./api/projects/{project_id}/notebooks/.post.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{notebook_id}/sharing/passw.post.description
Create a new password for the sharing configuration.

# paths./api/projects/{project_id}/notebooks/{notebook_id}/sharing/passw.delete.description
Delete a password from the sharing configuration.

# paths./api/projects/{project_id}/notebooks/{short_id}/.get.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{short_id}/.put.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{short_id}/.patch.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{short_id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/notebooks/{short_id}/activity/.get.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{short_id}/collab/save/.post.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{short_id}/collab/stream/.get.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{short_id}/hogql/execute/.post.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{short_id}/kernel/config/.post.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{short_id}/kernel/dataframe.get.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{short_id}/kernel/execute/.post.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{short_id}/kernel/execute/s.post.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{short_id}/kernel/restart/.post.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{short_id}/kernel/start/.post.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{short_id}/kernel/status/.get.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/{short_id}/kernel/stop/.post.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/activity/.get.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/notebooks/recording_comments/.get.description
The API for interacting with Notebooks. This feature is in early access and the API can have breaking changes without announcement.

# paths./api/projects/{project_id}/object_media_previews/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/object_media_previews/{id}/.get.parameters[].description
A UUID string identifying this object media preview.

# paths./api/projects/{project_id}/object_media_previews/{id}/.put.parameters[].description
A UUID string identifying this object media preview.

# paths./api/projects/{project_id}/object_media_previews/{id}/.patch.parameters[].description
A UUID string identifying this object media preview.

# paths./api/projects/{project_id}/object_media_previews/{id}/.delete.parameters[].description
A UUID string identifying this object media preview.

# paths./api/projects/{project_id}/object_media_previews/preferred_for_e.get.description
Get the preferred media preview for an event definition.
Most recent user-uploaded, then most recent exported asset.
Requires event_definition (query param).

# paths./api/projects/{project_id}/persisted_folder/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/persisted_folder/{id}/.get.parameters[].description
A UUID string identifying this Persisted Folder.

# paths./api/projects/{project_id}/persisted_folder/{id}/.put.parameters[].description
A UUID string identifying this Persisted Folder.

# paths./api/projects/{project_id}/persisted_folder/{id}/.patch.parameters[].description
A UUID string identifying this Persisted Folder.

# paths./api/projects/{project_id}/persisted_folder/{id}/.delete.parameters[].description
A UUID string identifying this Persisted Folder.

# paths./api/projects/{project_id}/persons/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/persons/.get.parameters[].description
Search persons, either by email (full text search) or distinct_id (exact match).

# paths./api/projects/{project_id}/persons/{id}/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/{id}/.get.parameters[].description
A unique value identifying this person. Accepts both numeric ID and UUID.

# paths./api/projects/{project_id}/persons/{id}/.put.description
Only for setting properties on the person. "properties" from the request data will be updated via a "$set" event.
This means that only the properties listed will be updated, but other properties won't be removed nor updated.
If you would like to remove a property use the `delete_property` endpoint.

# paths./api/projects/{project_id}/persons/{id}/.put.parameters[].description
A unique value identifying this person. Accepts both numeric ID and UUID.

# paths./api/projects/{project_id}/persons/{id}/.patch.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/{id}/.patch.parameters[].description
A unique value identifying this person. Accepts both numeric ID and UUID.

# paths./api/projects/{project_id}/persons/{id}/activity/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/{id}/activity/.get.parameters[].description
A unique integer value identifying this person.

# paths./api/projects/{project_id}/persons/{id}/delete_property/.post.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/{id}/delete_property/.post.parameters[].description
A unique value identifying this person. Accepts both numeric ID and UUID.

# paths./api/projects/{project_id}/persons/{id}/properties_timeline/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/{id}/properties_timeline/.get.parameters[].description
A unique integer value identifying this person.

# paths./api/projects/{project_id}/persons/{id}/split/.post.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/{id}/split/.post.parameters[].description
A unique integer value identifying this person.

# paths./api/projects/{project_id}/persons/{id}/update_property/.post.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/{id}/update_property/.post.parameters[].description
A unique value identifying this person. Accepts both numeric ID and UUID.

# paths./api/projects/{project_id}/persons/activity/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/batch_by_distinct_ids/.post.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/batch_by_uuids/.post.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/bulk_delete/.post.description
This endpoint allows you to bulk delete persons, either by the PostHog person IDs or by distinct IDs. You can pass in a maximum of 1000 IDs per call. Only events captured before the request will be deleted.

# paths./api/projects/{project_id}/persons/cohorts/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/cohorts/.get.parameters[].description
The person ID or UUID to get cohorts for.

# paths./api/projects/{project_id}/persons/deletion_status/.get.description
List the status of queued event deletions for persons. When you delete a person with `delete_events=true`, an async deletion is queued. Use this endpoint to check whether those deletions are still pending or have been completed.

# paths./api/projects/{project_id}/persons/deletion_status/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/persons/deletion_status/.get.parameters[].description
Filter by deletion status: 'pending', 'completed', or 'all'.

# paths./api/projects/{project_id}/persons/funnel/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/funnel/.post.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/lifecycle/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/properties_at_time/.get.description
Get person properties as they existed at a specific point in time.

This endpoint reconstructs person properties by querying ClickHouse events
for $set and $set_once operations up to the specified timestamp.

Query parameters:
- distinct_id: The distinct_id of the person
- timestamp: ISO datetime string for the point in time (e.g., "2023-06-15T14:30:00Z")
- include_set_once: Whether to handle $set_once operations (default: false)

# paths./api/projects/{project_id}/persons/properties_at_time/.get.parameters[].description
The distinct_id of the person (mutually exclusive with person_id)

# paths./api/projects/{project_id}/persons/properties_at_time/.get.parameters[].description
Whether to handle $set_once operations (default: false)

# paths./api/projects/{project_id}/persons/properties_at_time/.get.parameters[].description
The person_id (UUID) to build properties for (mutually exclusive with distinct_id)

# paths./api/projects/{project_id}/persons/properties_at_time/.get.parameters[].description
ISO datetime string for the point in time (e.g., '2023-06-15T14:30:00Z')

# paths./api/projects/{project_id}/persons/reset_person_distinct_id/.post.description
Reset a distinct_id for a deleted person. This allows the distinct_id to be used again.

# paths./api/projects/{project_id}/persons/trends/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/values/.get.description
This endpoint is meant for reading and deleting persons. To create or update persons, we recommend using the [capture API](https://posthog.com/docs/api/capture), the `$set` and `$unset` [properties](https://posthog.com/docs/product-analytics/user-properties), or one of our SDKs.

# paths./api/projects/{project_id}/persons/values/.get.parameters[].description
The person property key to get values for (e.g., 'email', 'plan', 'role').

# paths./api/projects/{project_id}/persons/values/.get.parameters[].description
Optional search string to filter values (case-insensitive substring match).

# paths./api/projects/{project_id}/plugin_configs/{plugin_config_id}/log.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/product_tours/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/product_tours/.get.parameters[].description
Fuzzy match against product tour `name` and `description` using Postgres trigram word similarity. Supports typos and prefix-as-you-type.

# paths./api/projects/{project_id}/product_tours/{id}/.get.parameters[].description
A UUID string identifying this product tour.

# paths./api/projects/{project_id}/product_tours/{id}/.put.parameters[].description
A UUID string identifying this product tour.

# paths./api/projects/{project_id}/product_tours/{id}/.patch.parameters[].description
A UUID string identifying this product tour.

# paths./api/projects/{project_id}/product_tours/{id}/.delete.parameters[].description
A UUID string identifying this product tour.

# paths./api/projects/{project_id}/product_tours/{id}/discard_draft/.delete.parameters[].description
A UUID string identifying this product tour.

# paths./api/projects/{project_id}/product_tours/{id}/draft/.patch.description
Save draft content (server-side merge). No side effects triggered.

# paths./api/projects/{project_id}/product_tours/{id}/draft/.patch.parameters[].description
A UUID string identifying this product tour.

# paths./api/projects/{project_id}/product_tours/{id}/draft_status/.get.description
Lightweight polling endpoint for draft change detection.

# paths./api/projects/{project_id}/product_tours/{id}/draft_status/.get.parameters[].description
A UUID string identifying this product tour.

# paths./api/projects/{project_id}/product_tours/{id}/generate/.post.parameters[].description
A UUID string identifying this product tour.

# paths./api/projects/{project_id}/product_tours/{id}/publish_draft/.post.description
Commit draft to live tour. Runs full validation and triggers side effects.

Accepts an optional body payload. If provided, merges it into the draft
before publishing so the caller can save + publish in a single request.

# paths./api/projects/{project_id}/product_tours/{id}/publish_draft/.post.parameters[].description
A UUID string identifying this product tour.

# paths./api/projects/{project_id}/project_secret_api_keys/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/project_secret_api_keys/{id}/.get.parameters[].description
A unique value identifying this project secret api key.

# paths./api/projects/{project_id}/project_secret_api_keys/{id}/.put.parameters[].description
A unique value identifying this project secret api key.

# paths./api/projects/{project_id}/project_secret_api_keys/{id}/.patch.parameters[].description
A unique value identifying this project secret api key.

# paths./api/projects/{project_id}/project_secret_api_keys/{id}/.delete.parameters[].description
A unique value identifying this project secret api key.

# paths./api/projects/{project_id}/project_secret_api_keys/{id}/roll/.post.parameters[].description
A unique value identifying this project secret api key.

# paths./api/projects/{project_id}/property_definitions/.get.parameters[].description
If sent, response value will have `is_seen_on_filtered_events` populated. JSON-encoded

# paths./api/projects/{project_id}/property_definitions/.get.parameters[].description
Whether to exclude properties marked as hidden

# paths./api/projects/{project_id}/property_definitions/.get.parameters[].description
Whether to exclude properties that the current user does not have read access to via field-level access control

# paths./api/projects/{project_id}/property_definitions/.get.parameters[].description
JSON-encoded list of excluded properties

# paths./api/projects/{project_id}/property_definitions/.get.parameters[].description
Whether to return only properties for events in `event_names`. Note: this event scoping does not apply to feature flag properties ($feature/*), which are global and not tracked per-event; to retrieve feature flags use is_feature_flag=true instead.

# paths./api/projects/{project_id}/property_definitions/.get.parameters[].description
What group type is the property for. Only should be set if `type=group`

# paths./api/projects/{project_id}/property_definitions/.get.parameters[].description
Whether to return only (or excluding) feature flag properties ($feature/*). Flags are global, not per-event, so they can't be scoped by event_names/filter_by_event_names — pass is_feature_flag=true to list them all.

# paths./api/projects/{project_id}/property_definitions/.get.parameters[].description
Whether to return only (or excluding) numerical property definitions

# paths./api/projects/{project_id}/property_definitions/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/property_definitions/.get.parameters[].description
Comma-separated list of properties to filter

# paths./api/projects/{project_id}/property_definitions/.get.parameters[].description
What property definitions to return

* `event` - event
* `person` - person
* `group` - group
* `session` - session

# paths./api/projects/{project_id}/property_definitions/.get.parameters[].description
Filter by verified status. True returns only verified, false returns only unverified.

# paths./api/projects/{project_id}/property_definitions/{id}/.get.parameters[].description
A UUID string identifying this property definition.

# paths./api/projects/{project_id}/property_definitions/{id}/.put.parameters[].description
A UUID string identifying this property definition.

# paths./api/projects/{project_id}/property_definitions/{id}/.patch.parameters[].description
A UUID string identifying this property definition.

# paths./api/projects/{project_id}/property_definitions/{id}/.delete.parameters[].description
A UUID string identifying this property definition.

# paths./api/projects/{project_id}/property_definitions/bulk_update_tags.post.description
Bulk update tags on multiple objects.

PAT access: this action has no ``required_scopes=`` on the decorator —
inheriting viewsets must add ``"bulk_update_tags"`` to their
``scope_object_write_actions`` list to accept personal API keys.
Without that opt-in, ``APIScopePermission`` rejects PAT requests with
"This action does not support personal API key access". Done per-viewset
so granting ``<scope>:write`` for one resource doesn't leak access to
sibling resources that share this mixin.

Accepts:
- {"ids": [...], "action": "add"|"remove"|"set", "tags": ["tag1", "tag2"]}

Actions:
- "add": Add tags to existing tags on each object
- "remove": Remove specific tags from each object
- "set": Replace all tags on each object with the provided list

# paths./api/projects/{project_id}/property_definitions/seen_together/.get.description
Allows a caller to provide a list of event names and a single property name
Returns a map of the event names to a boolean representing whether that property has ever been seen with that event_name

# paths./api/projects/{project_id}/query/.post.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/projects/{project_id}/query/{id}/log/.get.description
Get query log details from query_log_archive table for a specific query_id, the query must have been issued in last 24 hours.

# paths./api/projects/{project_id}/query/{query_kind}/.post.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/projects/{project_id}/query/check_auth_for_async/.post.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/projects/{project_id}/query/draft_sql/.get.description
DRF ViewSet mixin that gates coalesced responses behind permission checks.

The QueryCoalescingMiddleware attaches cached response data to
request.META["_coalesced_response"] for followers. This mixin runs DRF's
initial() (auth + permissions + throttling) before returning the
cached response, ensuring the request is authorized.

# paths./api/projects/{project_id}/query/upgrade/.post.description
Upgrades a query without executing it. Returns a query with all nodes migrated to the latest version.

# paths./api/projects/{project_id}/quota_limits/.get.description
Return the current quota-limit state for the team identified in the URL, keyed by `QuotaResource` value. Used by the LLM gateway to gate billable products on AI credits exhaustion.

# paths./api/projects/{project_id}/sandbox_environments/.get.description
API for managing sandbox environments that control network access for task runs.

# paths./api/projects/{project_id}/sandbox_environments/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/sandbox_environments/.post.description
API for managing sandbox environments that control network access for task runs.

# paths./api/projects/{project_id}/sandbox_environments/{id}/.get.description
API for managing sandbox environments that control network access for task runs.

# paths./api/projects/{project_id}/sandbox_environments/{id}/.get.parameters[].description
A UUID string identifying this sandbox environment.

# paths./api/projects/{project_id}/sandbox_environments/{id}/.patch.description
API for managing sandbox environments that control network access for task runs.

# paths./api/projects/{project_id}/sandbox_environments/{id}/.patch.parameters[].description
A UUID string identifying this sandbox environment.

# paths./api/projects/{project_id}/sandbox_environments/{id}/.delete.description
API for managing sandbox environments that control network access for task runs.

# paths./api/projects/{project_id}/sandbox_environments/{id}/.delete.parameters[].description
A UUID string identifying this sandbox environment.

# paths./api/projects/{project_id}/saved/.get.description
List saved heatmaps for the project. A saved heatmap pins a page URL and a set of viewport widths, and (for type 'screenshot') renders the page so heatmap data can be overlaid on it.

# paths./api/projects/{project_id}/saved/.get.parameters[].description
Field to order by, e.g. '-updated_at' (default) or 'created_at'.

# paths./api/projects/{project_id}/saved/.get.parameters[].description
Case-insensitive substring match on URL or name.

# paths./api/projects/{project_id}/saved/.get.parameters[].description
Filter by generation status: 'processing', 'completed', or 'failed'.

# paths./api/projects/{project_id}/saved/.get.parameters[].description
Filter by render mode: 'screenshot', 'iframe', or 'recording'.

# paths./api/projects/{project_id}/saved/.post.description
Create a saved heatmap for a page URL. For type 'screenshot' (the default) this enqueues a headless render of the page at each target width; poll the saved heatmap or its content endpoint until status is 'completed'. Provide 'widths' to control which viewport widths are rendered.

# paths./api/projects/{project_id}/saved/{short_id}/.get.description
Get a single saved heatmap by its short_id, including per-width render status.

# paths./api/projects/{project_id}/saved/{short_id}/.patch.description
Update a saved heatmap (e.g. rename, change widths, or soft-delete via 'deleted'). Changing the URL of a 'screenshot' heatmap triggers a re-render.

# paths./api/projects/{project_id}/saved/{short_id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/saved/{short_id}/regenerate/.post.description
Re-run screenshot generation for a saved heatmap of type 'screenshot'. Clears existing renders and re-renders at every target width; status returns to 'processing'.

# paths./api/projects/{project_id}/schema_property_groups/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/schema_property_groups/{id}/.get.parameters[].description
A UUID string identifying this schema property group.

# paths./api/projects/{project_id}/schema_property_groups/{id}/.put.parameters[].description
A UUID string identifying this schema property group.

# paths./api/projects/{project_id}/schema_property_groups/{id}/.patch.parameters[].description
A UUID string identifying this schema property group.

# paths./api/projects/{project_id}/schema_property_groups/{id}/.delete.parameters[].description
A UUID string identifying this schema property group.

# paths./api/projects/{project_id}/sdk_doctor/report/.get.description
Returns a pre-digested health assessment of the PostHog SDKs the project is using. Covers which SDKs are current vs outdated (smart-semver rules with grace periods and traffic-percentage thresholds), per-version breakdown, and a human-readable reason for each assessment. Use this to diagnose SDK version issues, surface upgrade recommendations, or check overall SDK health.

# paths./api/projects/{project_id}/sdk_doctor/report/.get.parameters[].description
When true, bypasses the Redis cache and re-queries ClickHouse for SDK usage. Use sparingly — data is refreshed every 12 hours by a background job.

# paths./api/projects/{project_id}/session_group_summaries/.get.description
API for retrieving and managing stored group session summaries.

# paths./api/projects/{project_id}/session_group_summaries/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/session_group_summaries/.post.description
API for retrieving and managing stored group session summaries.

# paths./api/projects/{project_id}/session_group_summaries/{id}/.get.description
API for retrieving and managing stored group session summaries.

# paths./api/projects/{project_id}/session_group_summaries/{id}/.get.parameters[].description
A UUID string identifying this session group summary.

# paths./api/projects/{project_id}/session_group_summaries/{id}/.put.description
API for retrieving and managing stored group session summaries.

# paths./api/projects/{project_id}/session_group_summaries/{id}/.put.parameters[].description
A UUID string identifying this session group summary.

# paths./api/projects/{project_id}/session_group_summaries/{id}/.patch.description
API for retrieving and managing stored group session summaries.

# paths./api/projects/{project_id}/session_group_summaries/{id}/.patch.parameters[].description
A UUID string identifying this session group summary.

# paths./api/projects/{project_id}/session_group_summaries/{id}/.delete.description
API for retrieving and managing stored group session summaries.

# paths./api/projects/{project_id}/session_group_summaries/{id}/.delete.parameters[].description
A UUID string identifying this session group summary.

# paths./api/projects/{project_id}/session_recording_playlists/.get.description
Override list to include synthetic playlists

# paths./api/projects/{project_id}/session_recording_playlists/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/session_recording_playlists/{short_id.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/session_recordings/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/session_recordings/{id}/.get.parameters[].description
A UUID string identifying this session recording.

# paths./api/projects/{project_id}/session_recordings/{id}/.put.parameters[].description
A UUID string identifying this session recording.

# paths./api/projects/{project_id}/session_recordings/{id}/.patch.parameters[].description
A UUID string identifying this session recording.

# paths./api/projects/{project_id}/session_recordings/{id}/.delete.parameters[].description
A UUID string identifying this session recording.

# paths./api/projects/{project_id}/session_recordings/{recording_id}/sha.post.description
Create a new password for the sharing configuration.

# paths./api/projects/{project_id}/session_recordings/{recording_id}/sha.delete.description
Delete a password from the sharing configuration.

# paths./api/projects/{project_id}/signals/processing/.get.description
Return current processing state including pause status.

# paths./api/projects/{project_id}/signals/processing/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/signals/processing/pause/.put.description
View and control signal processing pipeline state for a team.

# paths./api/projects/{project_id}/signals/processing/pause/.delete.description
View and control signal processing pipeline state for a team.

# paths./api/projects/{project_id}/signals/reports/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/signals/reports/.get.parameters[].description
Comma-separated ordering clauses. Each clause is a field name optionally prefixed with '-' for descending. Allowed fields: status, is_suggested_reviewer, signal_count, total_weight, priority, created_at, updated_at, id. Defaults to '-is_suggested_reviewer,status,-updated_at'.

# paths./api/projects/{project_id}/signals/reports/.get.parameters[].description
Comma-separated list of priorities to include. Valid values: P0, P1, P2, P3, P4. Reports without a priority assignment are excluded when this filter is set.

# paths./api/projects/{project_id}/signals/reports/.get.parameters[].description
Case-insensitive substring match against report title and summary.

# paths./api/projects/{project_id}/signals/reports/.get.parameters[].description
Comma-separated list of source products to include. Reports are kept if at least one of their contributing signals comes from one of these products (e.g. error_tracking, session_replay).

# paths./api/projects/{project_id}/signals/reports/.get.parameters[].description
Comma-separated list of statuses to include. Valid values: potential, candidate, in_progress, pending_input, ready, failed, suppressed. Defaults to all statuses except suppressed.

# paths./api/projects/{project_id}/signals/reports/.get.parameters[].description
Comma-separated list of PostHog user UUIDs. Reports are kept if their suggested reviewers include any of the given users.

# paths./api/projects/{project_id}/signals/reports/{id}/.get.parameters[].description
A UUID string identifying this signal report.

# paths./api/projects/{project_id}/signals/reports/{id}/state/.post.description
Transition a report to a new state. The model validates allowed transitions.

The request body is validated by SignalReportStateRequestSerializer — only the
fields it declares (state, dismissal_reason, dismissal_note, snooze_for) are read,
and only snooze_for is ever forwarded to transition_to. Any other key is ignored,
so internal transition_to kwargs (reset_weight, error, ...) can't be injected.

Body: {
    "state": "suppressed" | "potential",
    # Optional dismissal feedback (honored when state == "suppressed" or "potential"):
    "dismissal_reason": "<any string code, owned by the caller>",
    "dismissal_note": "free-form text",
    # Optional, only honored for state == "potential":
    "snooze_for": <number of additional signals before re-promotion>,
}

# paths./api/projects/{project_id}/signals/reports/{id}/state/.post.parameters[].description
A UUID string identifying this signal report.

# paths./api/projects/{project_id}/signals/scout/configs/.get.description
List the per-(team, skill) scout configs for this project — schedule (`run_interval_minutes`), `enabled`, and `emit` posture per scout.

# paths./api/projects/{project_id}/signals/scout/configs/.get.responses.200.description
Per-scout configs for this project, ordered by skill name.

# paths./api/projects/{project_id}/signals/scout/configs/{id}/.patch.description
Tune one scout: change its schedule (`run_interval_minutes`), `enabled`, or `emit` (dry-run) posture. `skill_name` is fixed. Enabling records `enabled_by` and is activity-logged since it drives spend.

# paths./api/projects/{project_id}/signals/scout/configs/{id}/.patch.parameters[].description
A UUID string identifying this Signal scout config.

# paths./api/projects/{project_id}/signals/scout/project_profile/current.get.description
Return the team's deterministic project profile. For the internal scout token the response reflects the newest non-expired cached row or a freshly-built one (lazy compute on cache miss); `force_refresh=true` skips the cache and rebuilds from authoritative sources. Public read callers (session auth or a `signal_scout:read` PAK) get the newest cached profile, or 404 if none has been built yet — they never trigger a rebuild. Read this at the start of a run to orient on the team's product mix, integrations, warehouse sources, signal coverage, and existing inbox surface.

# paths./api/projects/{project_id}/signals/scout/project_profile/current.get.parameters[].description
When true, skip the cache and rebuild the profile from authoritative sources before responding. Use after seeding events, importing data, or any other change the caller knows just landed but hasn't surfaced through natural cache expiry yet. Honored only for the internal scout token — public read callers get the cached profile regardless. Concurrent forced rebuilds are serialized by the team-keyed advisory lock — at most one extra `build_inventory` per simultaneous request.

# paths./api/projects/{project_id}/signals/scout/project_profile/current.get.responses.200.description
The team's current project profile (cached, or freshly built for the internal scout token).

# paths./api/projects/{project_id}/signals/scout/project_profile/current.get.responses.404.description
No profile has been built for this team yet, and the caller is not the internal scout token (which builds on cache miss). Public read callers never trigger a build.

# paths./api/projects/{project_id}/signals/scout/runs/.get.description
Return the most recent `SignalScoutRun` summaries for this project, newest first. Used by the headless scout to dedupe against work other runs already covered. ILIKE matches on `summary`. `date_from` / `date_to` are a half-open window on `created_at` (`>= date_from`, `< date_to`); pass `date_to` on subsequent calls to walk past the 100-row cap. Results capped at 100.

# paths./api/projects/{project_id}/signals/scout/runs/.get.parameters[].description
ISO-8601 inclusive lower bound on `created_at`. Omit to skip the lower bound.

# paths./api/projects/{project_id}/signals/scout/runs/.get.parameters[].description
ISO-8601 exclusive upper bound on `created_at`. Pass to walk back past the result cap on subsequent calls (cursor-style: set to the `started_at` of the oldest run from the prior page).

# paths./api/projects/{project_id}/signals/scout/runs/.get.parameters[].description
Max rows to return (default 20, hard cap 100).

# paths./api/projects/{project_id}/signals/scout/runs/.get.parameters[].description
Case-insensitive substring match on the scout's end-of-run `summary`. Omit to skip the filter.

# paths./api/projects/{project_id}/signals/scout/runs/{id}/.get.description
Return the full `SignalScoutRun` row. Status, timing, and error flow from the linked `tasks.TaskRun`. Strictly team-scoped — a UUID belonging to another team returns 404.

# paths./api/projects/{project_id}/signals/scout/runs/{id}/.get.parameters[].description
A UUID string identifying this Signal scout run.

# paths./api/projects/{project_id}/signals/scout/runs/{id}/.get.responses.404.description
Run not found or not visible to this project.

# paths./api/projects/{project_id}/signals/scout/runs/{id}/emit-signal/.post.description
Fire `emit_signal` with `source_product = signals_scout`. The `finding_id` is baked into the deterministic `Signal.source_id = run:<id>:finding:<id>` for traceability, but this is NOT idempotent — a second call with the same `finding_id` emits a second signal, so do not retry an emit that may have already succeeded.

# paths./api/projects/{project_id}/signals/scout/runs/{id}/emit-signal/.post.parameters[].description
A UUID string identifying this Signal scout run.

# paths./api/projects/{project_id}/signals/scout/runs/{id}/emit-signal/.post.responses.200.description
Finding emitted, or skipped by a preflight gate.

# paths./api/projects/{project_id}/signals/scout/runs/{id}/emit-signal/.post.responses.400.description
Invalid emit shape (description, weight, confidence, evidence cap).

# paths./api/projects/{project_id}/signals/scout/scratchpad/.get.description
Return `SignalScratchpad` entries for this project. ILIKE matches on `content` and `key`.

# paths./api/projects/{project_id}/signals/scout/scratchpad/.get.parameters[].description
Max rows to return (default 20, hard cap 100).

# paths./api/projects/{project_id}/signals/scout/scratchpad/.get.parameters[].description
ILIKE substring match against `content`. Omit to return the most recent entries.

# paths./api/projects/{project_id}/signals/scout/scratchpad/.post.description
Upsert a memory keyed on `(team, key)`. Re-using a key updates the existing entry in place.

# paths./api/projects/{project_id}/signals/scout/scratchpad/.post.responses.400.description
Invalid memory shape (empty key/content, key too long).

# paths./api/projects/{project_id}/signals/scout/scratchpad/forget/.post.description
Delete an entry by key. Returns `deleted=false` if no row matched.

# paths./api/projects/{project_id}/signals/source_configs/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/signals/source_configs/{id}/.get.parameters[].description
A UUID string identifying this signal source config.

# paths./api/projects/{project_id}/signals/source_configs/{id}/.put.parameters[].description
A UUID string identifying this signal source config.

# paths./api/projects/{project_id}/signals/source_configs/{id}/.patch.parameters[].description
A UUID string identifying this signal source config.

# paths./api/projects/{project_id}/signals/source_configs/{id}/.delete.parameters[].description
A UUID string identifying this signal source config.

# paths./api/projects/{project_id}/single_session_summaries/.get.description
List stored AI-generated session summaries for the team, one row per session (latest summary kept). Use to discover which sessions have been summarized and to filter for sessions with specific problems — `has_exceptions=true`, `outcome=failure`, or a custom `session_ids` narrowing. Returns lightweight rows without the full summary JSON; use the retrieve endpoint for the per-segment / per-action detail.

# paths./api/projects/{project_id}/single_session_summaries/.get.parameters[].description
Filter to summaries triggered by a specific user, identified by `User.uuid`.

# paths./api/projects/{project_id}/single_session_summaries/.get.parameters[].description
Inclusive lower bound on `created_at`, accepts relative shorthand like `-7d`.

# paths./api/projects/{project_id}/single_session_summaries/.get.parameters[].description
Inclusive upper bound on `created_at`, accepts relative shorthand like `-1d`.

# paths./api/projects/{project_id}/single_session_summaries/.get.parameters[].description
Filter to summaries for a single user (the session's `distinct_id`).

# paths./api/projects/{project_id}/single_session_summaries/.get.parameters[].description
When true, only summaries that surfaced one or more exception events; when false, only summaries without exceptions.

# paths./api/projects/{project_id}/single_session_summaries/.get.parameters[].description
When true, only summaries produced via the video-based visual-confirmation workflow.

# paths./api/projects/{project_id}/single_session_summaries/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/single_session_summaries/.get.parameters[].description
Ordering field, defaults to `-created_at` (most recent first). Allowed: `created_at`, `session_start_time`, `session_duration` (prefix with `-` for descending).

# paths./api/projects/{project_id}/single_session_summaries/.get.parameters[].description
Filter by the summary's recorded `session_outcome.success` field. `success` for true, `failure` for false, `unknown` for summaries without an outcome.

# paths./api/projects/{project_id}/single_session_summaries/.get.parameters[].description
Comma-separated list of session IDs to restrict the result to (uses the `(team, session_id)` index).

# paths./api/projects/{project_id}/single_session_summaries/{session_id}.get.description
Get the latest stored AI summary for a single session by `session_id`. Returns the full `summary` JSON (segments with named timeline, per-action `abandonment` / `confusion` / `exception` flags, segment outcomes, headline `session_outcome`, optional `sentiment`), the `exception_event_ids` array, the `extra_summary_context` (e.g. `focus_area`) used at generation time, and the `run_metadata` (LLM model used, whether visual confirmation was applied). 404 if no summary has been generated for this session yet — to trigger generation, use the existing `session-recording-summarize` flow rather than this endpoint.

# paths./api/projects/{project_id}/subscriptions/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/subscriptions/.get.parameters[].description
Which field to use when ordering the results.

# paths./api/projects/{project_id}/subscriptions/.get.parameters[].description
Filter by subscription resource: insight vs dashboard export.

# paths./api/projects/{project_id}/subscriptions/.get.parameters[].description
Filter by delivery channel (email, Slack, or webhook).

# paths./api/projects/{project_id}/subscriptions/{id}/.get.parameters[].description
A unique integer value identifying this subscription.

# paths./api/projects/{project_id}/subscriptions/{id}/.put.parameters[].description
A unique integer value identifying this subscription.

# paths./api/projects/{project_id}/subscriptions/{id}/.patch.parameters[].description
A unique integer value identifying this subscription.

# paths./api/projects/{project_id}/subscriptions/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/subscriptions/{id}/.delete.parameters[].description
A unique integer value identifying this subscription.

# paths./api/projects/{project_id}/subscriptions/{id}/test-delivery/.post.parameters[].description
A unique integer value identifying this subscription.

# paths./api/projects/{project_id}/subscriptions/summary_quota/.get.responses.200.description
Org-wide AI summary quota: count of currently-active summaries and the limit for the org's plan tier. `limit` is null when no cap is configured.

# paths./api/projects/{project_id}/surveys/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/surveys/.get.parameters[].description
Fuzzy match against survey `name` and `description` using Postgres trigram word similarity. Supports typos and prefix-as-you-type.

# paths./api/projects/{project_id}/surveys/.get.parameters[].description
* `popover` - popover
* `widget` - widget
* `external_survey` - external survey
* `api` - api

# paths./api/projects/{project_id}/surveys/{id}/archived-response-uuids/.get.description
Get list of archived response UUIDs for HogQL filtering.

Returns list of UUIDs that the frontend can use to filter out archived responses
in HogQL queries.

# paths./api/projects/{project_id}/surveys/{id}/duplicate_to_projects/.post.description
Duplicate a survey to multiple projects in a single transaction.

Accepts a list of target team IDs and creates a copy of the survey in each project.
Uses an all-or-nothing approach - if any duplication fails, all changes are rolled back.

# paths./api/projects/{project_id}/surveys/{id}/launch/.post.description
Launch a survey by setting `start_date` to the current time. No-op if the survey is already launched (start_date set in the past) — returns the existing state unchanged. Does not affect archived surveys or surveys with an end_date in the past; unarchive or extend the end_date first.

# paths./api/projects/{project_id}/surveys/{id}/responses/.get.description
List survey responses for a specific survey, with question text resolved server-side so callers do not have to map opaque `$survey_response_<id>` keys. Each row carries `distinct_id`, `session_id`, `submitted_at`, and an `extra` block (device, browser, OS, geoip, current_url, iteration) so agents can cross-pivot to recordings, persons, or paths in a single follow-up call. For person properties at event time, follow up with `persons-get` using the returned `distinct_id` — keeps scopes scoped. Use `question_id` + `score_lte` to fetch NPS detractors and similar score-filtered cohorts.

# paths./api/projects/{project_id}/surveys/{id}/responses/.get.parameters[].description
When true, exclude responses that have been archived via the archive_response endpoint.

# paths./api/projects/{project_id}/surveys/{id}/responses/.get.parameters[].description
Maximum number of rows to return (1-500). Defaults to 100.

# paths./api/projects/{project_id}/surveys/{id}/responses/.get.parameters[].description
Number of rows to skip for pagination. Combine with `limit` and the `has_more` field to paginate.

# paths./api/projects/{project_id}/surveys/{id}/responses/.get.parameters[].description
If set, only return rows where this question has a non-empty answer, and only include that question's answer in each row. Required when using score_lte or score_gte.

# paths./api/projects/{project_id}/surveys/{id}/responses/.get.parameters[].description
Filter to rows where the rating answer for `question_id` is >= this value. Common use: NPS promoters with score_gte=9. Requires question_id.

# paths./api/projects/{project_id}/surveys/{id}/responses/.get.parameters[].description
Filter to rows where the rating answer for `question_id` is <= this value. Common use: NPS detractors with score_lte=6. Requires question_id.

# paths./api/projects/{project_id}/surveys/{id}/responses/.get.parameters[].description
Only return responses submitted on or after this ISO 8601 timestamp.

# paths./api/projects/{project_id}/surveys/{id}/responses/.get.parameters[].description
Only return responses submitted on or before this ISO 8601 timestamp.

# paths./api/projects/{project_id}/surveys/{id}/stats/.get.description
Get survey response statistics for a specific survey.

Args:
    date_from: Optional ISO timestamp for start date (e.g. 2024-01-01T00:00:00Z)
    date_to: Optional ISO timestamp for end date (e.g. 2024-01-31T23:59:59Z)
    exclude_archived: Optional boolean to exclude archived responses (default: false, includes archived)
    include_per_question_stats: Optional boolean to include per-question response counts and distributions

Returns:
    Survey statistics including event counts, unique respondents, and conversion rates

# paths./api/projects/{project_id}/surveys/{id}/stats/.get.parameters[].description
Optional ISO timestamp for start date (e.g. 2024-01-01T00:00:00Z)

# paths./api/projects/{project_id}/surveys/{id}/stats/.get.parameters[].description
Optional ISO timestamp for end date (e.g. 2024-01-31T23:59:59Z)

# paths./api/projects/{project_id}/surveys/{id}/stats/.get.parameters[].description
When true, also return per-question response counts and answer distributions. Adds one extra HogQL query per question, so leave off unless you need the breakdown.

# paths./api/projects/{project_id}/surveys/{id}/stop/.post.description
Stop a survey by setting `end_date` to the current time. No new responses are accepted after this; existing responses remain available. No-op if the survey already has an end_date in the past.

# paths./api/projects/{project_id}/surveys/{id}/summarize_responses/.post.description
Summarize survey responses. When `question_index` or `question_id` is provided, returns a per-question theme summary using cached `survey.question_summaries` when fresh. When neither is provided, returns the survey-wide headline summary (delegates to summary_headline). Pass `force_refresh=true` in the body to bypass caches.

# paths./api/projects/{project_id}/surveys/{id}/summarize_responses/.post.parameters[].description
Question UUID. Preferred over question_index — stable across question edits.

# paths./api/projects/{project_id}/surveys/{id}/summarize_responses/.post.parameters[].description
Zero-based question index. Omit to get the survey-wide headline instead.

# paths./api/projects/{project_id}/surveys/question_labels/.get.description
Return a slim list of question labels for the team's surveys. Used by the frontend to resolve `$survey_response_<question_id>` property keys into human-readable question text without loading the full survey payload.

# paths./api/projects/{project_id}/surveys/responses_count/.get.description
Get response counts for all surveys.

Args:
    exclude_archived: Optional boolean to exclude archived responses (default: false, includes archived)
    survey_ids: Optional comma-separated list of survey IDs to filter by

Returns:
    Dictionary mapping survey IDs to response counts

# paths./api/projects/{project_id}/surveys/stats/.get.description
Get aggregated response statistics across all surveys.

Args:
    date_from: Optional ISO timestamp for start date (e.g. 2024-01-01T00:00:00Z)
    date_to: Optional ISO timestamp for end date (e.g. 2024-01-31T23:59:59Z)

Returns:
    Aggregated statistics across all surveys including total counts and rates

# paths./api/projects/{project_id}/surveys/stats/.get.parameters[].description
Optional ISO timestamp for start date (e.g. 2024-01-01T00:00:00Z)

# paths./api/projects/{project_id}/surveys/stats/.get.parameters[].description
Optional ISO timestamp for end date (e.g. 2024-01-31T23:59:59Z)

# paths./api/projects/{project_id}/taggers/.get.parameters[].description
Multiple values may be separated by commas.

# paths./api/projects/{project_id}/taggers/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/taggers/.get.parameters[].description
Ordering

* `created_at` - Created At
* `-created_at` - Created At (descending)
* `updated_at` - Updated At
* `-updated_at` - Updated At (descending)
* `name` - Name
* `-name` - Name (descending)

# paths./api/projects/{project_id}/taggers/{id}/.delete.description
Hard delete of this model is not allowed. Use a patch API call to set "deleted" to true

# paths./api/projects/{project_id}/taggers/test_hog/.post.description
Test Hog tagger code against sample events without saving.

# paths./api/projects/{project_id}/task_automations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/task_automations/{id}/.get.parameters[].description
A UUID string identifying this task automation.

# paths./api/projects/{project_id}/task_automations/{id}/.put.parameters[].description
A UUID string identifying this task automation.

# paths./api/projects/{project_id}/task_automations/{id}/.patch.parameters[].description
A UUID string identifying this task automation.

# paths./api/projects/{project_id}/task_automations/{id}/.delete.parameters[].description
A UUID string identifying this task automation.

# paths./api/projects/{project_id}/task_automations/{id}/run/.post.parameters[].description
A UUID string identifying this task automation.

# paths./api/projects/{project_id}/tasks/.get.description
Get a list of tasks for the current project, with optional filtering by origin product, stage, organization, repository, and created_by.

# paths./api/projects/{project_id}/tasks/.get.parameters[].description
Filter by archived state. Defaults to excluding archived tasks. Use 'true' to list only archived tasks, 'false' for the default, or 'all' to include both.

* `true` - true
* `false` - false
* `all` - all

# paths./api/projects/{project_id}/tasks/.get.parameters[].description
When true, list internal tasks instead of user-facing ones. Honored in debug environments or for staff users; ignored for non-staff users in production. Defaults to excluding internal tasks.

# paths./api/projects/{project_id}/tasks/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/tasks/.get.parameters[].description
Filter by repository name (can include org/repo format)

# paths./api/projects/{project_id}/tasks/.get.parameters[].description
Case-insensitive substring search over task title and description. A numeric value also matches the task number. An empty value disables the filter.

# paths./api/projects/{project_id}/tasks/.get.parameters[].description
Filter tasks by the status of their most recent run.

* `not_started` - not_started
* `queued` - queued
* `in_progress` - in_progress
* `completed` - completed
* `failed` - failed
* `cancelled` - cancelled

# paths./api/projects/{project_id}/tasks/.post.description
API for managing tasks within a project. Tasks represent units of work to be performed by an agent.

# paths./api/projects/{project_id}/tasks/{id}/.get.description
API for managing tasks within a project. Tasks represent units of work to be performed by an agent.

# paths./api/projects/{project_id}/tasks/{id}/.put.description
API for managing tasks within a project. Tasks represent units of work to be performed by an agent.

# paths./api/projects/{project_id}/tasks/{id}/.patch.description
API for managing tasks within a project. Tasks represent units of work to be performed by an agent.

# paths./api/projects/{project_id}/tasks/{id}/.delete.description
API for managing tasks within a project. Tasks represent units of work to be performed by an agent.

# paths./api/projects/{project_id}/tasks/{id}/file/.post.description
Add this task to the desktop project tree so it can be organized into folders. Optionally pass a destination folder path. Idempotent — re-filing updates the existing entry.

# paths./api/projects/{project_id}/tasks/{id}/file/.post.responses.200.description
Task filed into the desktop project tree

# paths./api/projects/{project_id}/tasks/{id}/presence/.post.description
Idempotent upsert: marks the calling user + `device_id` as actively watching this task for the next ~60 seconds. While at least one device for the user has a non-expired presence row for this task, the push fanout will skip ALL of that user's other registered devices for task notifications — the contract is 'if any device is demonstrably watching, suppress the others'. Clients call this every ~30s while the task screen is foregrounded. `device_id` is the UUID of the caller's UserPushToken row.

# paths./api/projects/{project_id}/tasks/{id}/presence/.post.summary
Beacon presence for a device watching this task

# paths./api/projects/{project_id}/tasks/{id}/presence/.post.responses.404.description
`device_id` does not match a push token registered by the caller.

# paths./api/projects/{project_id}/tasks/{id}/presence/.delete.description
Idempotent upsert: marks the calling user + `device_id` as actively watching this task for the next ~60 seconds. While at least one device for the user has a non-expired presence row for this task, the push fanout will skip ALL of that user's other registered devices for task notifications — the contract is 'if any device is demonstrably watching, suppress the others'. Clients call this every ~30s while the task screen is foregrounded. `device_id` is the UUID of the caller's UserPushToken row.

# paths./api/projects/{project_id}/tasks/{id}/presence/.delete.summary
Beacon presence for a device watching this task

# paths./api/projects/{project_id}/tasks/{id}/presence/.delete.responses.404.description
`device_id` does not match a push token registered by the caller.

# paths./api/projects/{project_id}/tasks/{id}/run/.post.description
Create a new task run and kick off the workflow.

# paths./api/projects/{project_id}/tasks/{id}/staged_artifacts/finalize_.post.description
Verify staged S3 uploads and cache their metadata so they can be attached to the next run created for this task.

# paths./api/projects/{project_id}/tasks/{id}/staged_artifacts/finalize_.post.summary
Finalize staged direct uploads for task attachments

# paths./api/projects/{project_id}/tasks/{id}/staged_artifacts/finalize_.post.responses.200.description
Finalized staged artifacts available for the next task run

# paths./api/projects/{project_id}/tasks/{id}/staged_artifacts/prepare_u.post.description
Reserve S3 object keys for task attachments before creating a new run and return presigned POST forms for direct uploads.

# paths./api/projects/{project_id}/tasks/{id}/staged_artifacts/prepare_u.post.summary
Prepare staged direct uploads for task attachments

# paths./api/projects/{project_id}/tasks/{id}/staged_artifacts/prepare_u.post.responses.200.description
Prepared staged uploads for the requested artifacts

# paths./api/projects/{project_id}/tasks/{id}/unfile/.post.description
Remove this task's entry from the desktop project tree. The task itself is not deleted.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/.post.description
Create a new run for a specific task without starting execution.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/.get.description
API for managing task runs. Each run represents an execution of a task.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/.get.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/.patch.description
API for managing task runs. Each run represents an execution of a task.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/.patch.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/append_log/.post.description
Append one or more log entries to the task run log array

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/append_log/.post.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/.post.description
Persist task artifacts to S3 and attach them to the run manifest.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/.post.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/d.post.description
Streams artifact content for a task run artifact after validating that it belongs to the run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/d.post.summary
Download an artifact through the backend

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/d.post.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/f.post.description
Verify directly uploaded S3 objects and attach them to the run artifact manifest.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/f.post.summary
Finalize direct uploads for task run artifacts

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/f.post.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/p.post.description
Reserve S3 object keys for task artifacts and return presigned POST forms for direct uploads.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/p.post.summary
Prepare direct uploads for task run artifacts

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/p.post.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/p.post.responses.200.description
Prepared uploads for the requested artifacts

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/p.post.description
Returns a temporary, signed URL that can be used to download a specific artifact.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/p.post.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/artifacts/p.post.responses.200.description
Presigned URL for the requested artifact

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/command/.post.description
Queue user_message JSON-RPC commands through the task workflow and forward sandbox control commands to the agent server. Supports user_message, cancel, close, permission_response, and set_config_option commands.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/command/.post.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/connection_.get.description
Generate a JWT token for direct connection to the sandbox. Valid for 24 hours.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/connection_.get.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/connection_.get.responses.200.description
Connection token for direct sandbox connection

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/logs/.get.description
Fetch the logs for a task run as JSONL. If the run resumes from another (state.resume_from_run_id), each ancestor's log is concatenated first (oldest ancestor → ... → this run) so resume consumers see a single continuous history and can find the most recent git_checkpoint event regardless of which run emitted it.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/logs/.get.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/relay_messa.post.description
Queue a Slack relay workflow to post a run message into the mapped Slack thread.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/relay_messa.post.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/resume_in_c.post.description
Resume an existing task run in a cloud sandbox. Terminates any existing workflow and starts a new one.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/resume_in_c.post.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/session_log.get.description
Fetch session log entries for a task run with optional filtering by timestamp, event type, and limit.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/session_log.get.parameters[].description
Only return events after this ISO8601 timestamp

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/session_log.get.parameters[].description
Comma-separated list of event types to include

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/session_log.get.parameters[].description
Comma-separated list of event types to exclude

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/session_log.get.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/session_log.get.parameters[].description
Maximum number of entries to return (default 1000, max 5000)

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/session_log.get.parameters[].description
Zero-based offset into the filtered log entries

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/set_output/.patch.description
Update the output field for a task run (e.g., PR URL, commit SHA, etc.)

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/set_output/.patch.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/start/.post.description
Start an existing cloud run after any initial run-scoped attachments have been uploaded.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/start/.post.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/stream/.get.description
API for managing task runs. Each run represents an execution of a task.

# paths./api/projects/{project_id}/tasks/{task_id}/runs/{id}/stream/.get.parameters[].description
A UUID string identifying this task run.

# paths./api/projects/{project_id}/tasks/repositories/.get.description
Return the set of repositories referenced by non-deleted, non-internal tasks in the current project. Used to populate repository filter pickers without being constrained by task list pagination.

# paths./api/projects/{project_id}/tasks/repositories/.get.responses.200.description
Distinct repositories used by tasks in the current project.

# paths./api/projects/{project_id}/tasks/repository_readiness/.get.description
Get autonomy readiness details for a specific repository in the current project.

# paths./api/projects/{project_id}/tasks/slack_thread_context/.get.description
PostHog-internal debug tool. Resolves a Slack permalink to the linked task, its runs, the task-processing and mention-dispatch Temporal workflow ids/URLs, and presigned log URLs.

# paths./api/projects/{project_id}/tasks/slack_thread_context/.get.summary
Resolve a Slack thread to its task, runs, and Temporal workflows

# paths./api/projects/{project_id}/tasks/slack_thread_context/.get.parameters[].description
Full Slack permalink to any message in the thread (e.g. https://posthog.slack.com/archives/C…/p1779956938619299). Replies inside the thread are accepted too — the `thread_ts` query param (when present) takes precedence over the in-path message ts.

# paths./api/projects/{project_id}/tasks/slack_thread_context/.get.responses.200.description
Task, runs, and Temporal workflow handles for the Slack thread.

# paths./api/projects/{project_id}/tasks/slack_thread_context/.get.responses.400.description
Malformed Slack URL or unparseable thread identifiers.

# paths./api/projects/{project_id}/tasks/slack_thread_context/.get.responses.403.description
Endpoint is gated to PostHog-internal debugging.

# paths./api/projects/{project_id}/tasks/slack_thread_context/.get.responses.404.description
No SlackThreadTaskMapping exists for the parsed (channel, thread_ts).

# paths./api/projects/{project_id}/tasks/summaries/.post.description
Returns summary for the requested tasks: `id`, `title`, `repository`, `created_at`, `updated_at`, and the latest run's `status` and `environment`.

# paths./api/projects/{project_id}/tasks/summaries/.post.parameters[].description
Offset into the result set for pagination.

# paths./api/projects/{project_id}/tracing/spans/attributes/.get.parameters[].description
Type of attributes: "span_attribute" for span-level attributes, "span_resource_attribute" for resource-level attributes.

* `span_attribute` - span_attribute
* `span_resource_attribute` - span_resource_attribute

# paths./api/projects/{project_id}/tracing/spans/service-names/.get.parameters[].description
JSON-encoded date range, e.g. '{"date_from": "-1h"}'.

# paths./api/projects/{project_id}/tracing/spans/values/.get.parameters[].description
Type of attribute: "span" for built-in span fields (e.g. name), "span_attribute" for span-level attributes, "span_resource_attribute" for resource-level attributes.

* `span` - span
* `span_attribute` - span_attribute
* `span_resource_attribute` - span_resource_attribute

# paths./api/projects/{project_id}/uploaded_media/.post.description
    When object storage is available this API allows upload of media which can be used, for example, in text cards on dashboards.

    Uploaded media must have a content type beginning with 'image/' and be less than 4MB.
    

# paths./api/projects/{project_id}/user_interview_topics/.get.description
Planned user interview topics: who we want to target and what we want to ask about.

# paths./api/projects/{project_id}/user_interview_topics/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/user_interview_topics/.post.description
Planned user interview topics: who we want to target and what we want to ask about.

# paths./api/projects/{project_id}/user_interview_topics/{id}/.get.description
Planned user interview topics: who we want to target and what we want to ask about.

# paths./api/projects/{project_id}/user_interview_topics/{id}/.get.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/projects/{project_id}/user_interview_topics/{id}/.put.description
Planned user interview topics: who we want to target and what we want to ask about.

# paths./api/projects/{project_id}/user_interview_topics/{id}/.put.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/projects/{project_id}/user_interview_topics/{id}/.patch.description
Planned user interview topics: who we want to target and what we want to ask about.

# paths./api/projects/{project_id}/user_interview_topics/{id}/.patch.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/projects/{project_id}/user_interview_topics/{id}/.delete.description
Planned user interview topics: who we want to target and what we want to ask about.

# paths./api/projects/{project_id}/user_interview_topics/{id}/.delete.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/projects/{project_id}/user_interview_topics/{id}/add_interv.post.description
Add a single interviewee to this topic. Email-shaped identifiers (including the `Display Name <email@host>` form) are appended to `interviewee_emails`; everything else is appended to `interviewee_distinct_ids`. Idempotent — adding an identifier that's already present leaves the topic unchanged. Returns the updated topic.

# paths./api/projects/{project_id}/user_interview_topics/{id}/add_interv.post.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/projects/{project_id}/user_interview_topics/{id}/generate_l.post.description
Generate one public interview link per targeted interviewee. Materializes an IntervieweeContext row for every identifier on the topic (without overwriting existing per-person context), and an enabled SharingConfiguration with a unique access token. The URL resolves to the public interview viewer with no PostHog auth required.

# paths./api/projects/{project_id}/user_interview_topics/{id}/generate_l.post.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/projects/{project_id}/user_interview_topics/{id}/links_csv/.post.description
Same materialization as generate_links, returned as a downloadable CSV. Intended for users who want to mail-merge the per-person interview links into their own email tooling.

# paths./api/projects/{project_id}/user_interview_topics/{id}/links_csv/.post.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/projects/{project_id}/user_interview_topics/{id}/links_csv/.post.responses.200.description
CSV with columns: interviewee_identifier, interviewee_email, user_name, interview_url. One row per targeted interviewee.

# paths./api/projects/{project_id}/user_interview_topics/{id}/remove_int.post.description
Remove an interviewee from this topic. Drops the identifier from both `interviewee_emails` and `interviewee_distinct_ids`, and disables any active SharingConfiguration linked to an IntervieweeContext for that identifier on this topic so the removed person can no longer open their interview link. Idempotent — removing an identifier that isn't present is a no-op. Returns the updated topic.

# paths./api/projects/{project_id}/user_interview_topics/{id}/remove_int.post.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/projects/{project_id}/user_interview_topics/{id}/send_invit.post.description
Generate (if needed) and email a personalized public interview link to every targeted interviewee on this topic whose identifier is an email address. Distinct-ID-only interviewees are skipped and surfaced in the response. Each invite is keyed on the underlying SharingConfiguration so re-runs after token rotation produce a fresh send.

# paths./api/projects/{project_id}/user_interview_topics/{id}/send_invit.post.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/projects/{project_id}/user_interview_topics/{id}/test_link/.get.description
Return the calling user's personal dogfood interview link for this topic, plus the latest test interview they have recorded against it. Lazily get-or-creates a per-caller IntervieweeContext + enabled SharingConfiguration the first time it's called, then returns the same stable URL on subsequent calls. The caller's identifier is intentionally not added to the topic's targeting arrays — each user dogfoods under their own row, so test calls never mint a public share token on someone else's behalf.

# paths./api/projects/{project_id}/user_interview_topics/{id}/test_link/.get.parameters[].description
A UUID string identifying this user interview topic.

# paths./api/projects/{project_id}/user_interview_topics/{topic_id}/inte.get.description
Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).

# paths./api/projects/{project_id}/user_interview_topics/{topic_id}/inte.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/user_interview_topics/{topic_id}/inte.post.description
Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).

# paths./api/projects/{project_id}/user_interview_topics/{topic_id}/inte.get.description
Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).

# paths./api/projects/{project_id}/user_interview_topics/{topic_id}/inte.get.parameters[].description
A UUID string identifying this interviewee context.

# paths./api/projects/{project_id}/user_interview_topics/{topic_id}/inte.put.description
Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).

# paths./api/projects/{project_id}/user_interview_topics/{topic_id}/inte.put.parameters[].description
A UUID string identifying this interviewee context.

# paths./api/projects/{project_id}/user_interview_topics/{topic_id}/inte.patch.description
Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).

# paths./api/projects/{project_id}/user_interview_topics/{topic_id}/inte.patch.parameters[].description
A UUID string identifying this interviewee context.

# paths./api/projects/{project_id}/user_interview_topics/{topic_id}/inte.delete.description
Per-interviewee extra context for a user interview topic. At most one row per (topic, interviewee_identifier).

# paths./api/projects/{project_id}/user_interview_topics/{topic_id}/inte.delete.parameters[].description
A UUID string identifying this interviewee context.

# paths./api/projects/{project_id}/user_interview_topics/{topic_id}/inte.post.description
Create up to 500 interviewee context rows for a topic in a single request. Rows whose (topic, interviewee_identifier) already exists are skipped — the response surfaces an `inserted_count`, a `skipped_count`, and the `skipped_identifiers` so the caller can reconcile. Items must have unique `interviewee_identifier` values within the batch.

# paths./api/projects/{project_id}/user_interviews/.get.parameters[].description
Comma-separated classifications; returns responses carrying any of them (OR). Valid values: abandoned, off-topic.

# paths./api/projects/{project_id}/user_interviews/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/user_interviews/{id}/.get.parameters[].description
A UUID string identifying this user interview.

# paths./api/projects/{project_id}/user_interviews/{id}/.put.parameters[].description
A UUID string identifying this user interview.

# paths./api/projects/{project_id}/user_interviews/{id}/.patch.parameters[].description
A UUID string identifying this user interview.

# paths./api/projects/{project_id}/user_interviews/{id}/.delete.parameters[].description
A UUID string identifying this user interview.

# paths./api/projects/{project_id}/user_interviews/search/.post.description
Embed `query` with the same model used to index interview transcripts and summaries, then return the top matches by cosine distance. Each match is a single (interview, document_type) pair — an interview can appear up to twice if both its transcript and summary score above other interviews. Useful for surfacing relevant interview snippets in natural language, without exact keyword matches.

# paths./api/projects/{project_id}/user_interviews/search/.post.summary
Search interview responses by semantic similarity

# paths./api/projects/{project_id}/user_interviews/search/.post.responses.200.description
Matches ranked by cosine similarity (descending).

# paths./api/projects/{project_id}/vision/observations/.get.description
Read-only access to a session's observations across every scanner the caller can read, for the replay-page dock.

# paths./api/projects/{project_id}/vision/observations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/vision/observations/.get.parameters[].description
Sort observations. Plain keys: created_at, started_at, completed_at, status. JSONB keys: result_score (scorer), result_verdict (monitor), scanner_version. Prefix with `-` for descending.

# paths./api/projects/{project_id}/vision/observations/.get.parameters[].description
Session recording id to return observations for.

# paths./api/projects/{project_id}/vision/observations/{id}/.get.description
Read-only access to a session's observations across every scanner the caller can read, for the replay-page dock.

# paths./api/projects/{project_id}/vision/observations/{id}/.get.parameters[].description
A UUID string identifying this replay observation.

# paths./api/projects/{project_id}/vision/scanners/.get.parameters[].description
Filter to scanners created by the given user IDs (comma-separated).

# paths./api/projects/{project_id}/vision/scanners/.get.parameters[].description
Filter by enabled state. Accepts a comma-separated list of `enabled`/`disabled`.

# paths./api/projects/{project_id}/vision/scanners/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/vision/scanners/.get.parameters[].description
Sort scanners by name, created_at, updated_at, scanner_type, enabled, sampling_rate, or created_by. Prefix with `-` for descending.

# paths./api/projects/{project_id}/vision/scanners/.get.parameters[].description
Filter by scanner type (monitor, classifier, scorer, summarizer). Accepts a comma-separated list.

# paths./api/projects/{project_id}/vision/scanners/.get.parameters[].description
Case-insensitive substring match across name, description, and the prompt in scanner_config.

# paths./api/projects/{project_id}/vision/scanners/{id}/.get.parameters[].description
A UUID string identifying this replay scanner.

# paths./api/projects/{project_id}/vision/scanners/{id}/.patch.parameters[].description
A UUID string identifying this replay scanner.

# paths./api/projects/{project_id}/vision/scanners/{id}/.delete.parameters[].description
A UUID string identifying this replay scanner.

# paths./api/projects/{project_id}/vision/scanners/{id}/observe/.post.description
Apply this scanner to one specific session, on demand. Returns 202 with the workflow handle.

# paths./api/projects/{project_id}/vision/scanners/{id}/observe/.post.parameters[].description
A UUID string identifying this replay scanner.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.description
Read-only access to observations produced by a scanner.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.parameters[].description
Sort observations. Plain keys: created_at, started_at, completed_at, status. JSONB keys: result_score (scorer), result_verdict (monitor), scanner_version. Prefix with `-` for descending.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.parameters[].description
Filter to observations of a specific session recording.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.parameters[].description
Filter by observation status. Accepts a comma-separated list.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.parameters[].description
Filter classifier observations whose fixed or freeform tags include any of the given values (comma-separated). Matches if the tag appears in either `tags` or `tags_freeform`.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.parameters[].description
Filter by trigger source (schedule or on_demand). Accepts a comma-separated list.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.parameters[].description
Filter monitor observations by verdict. Accepts a comma-separated list (e.g. `yes,inconclusive`).

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.description
Read-only access to observations produced by a scanner.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.parameters[].description
A UUID string identifying this replay observation.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.description
Aggregate counts and per-scanner-type distributions over the filtered observation set. Same filters as the list endpoint apply.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.parameters[].description
Filter to observations of a specific session recording.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.parameters[].description
Filter by observation status. Accepts a comma-separated list.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.parameters[].description
Filter classifier observations whose fixed or freeform tags include any of the given values (comma-separated). Matches if the tag appears in either `tags` or `tags_freeform`.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.parameters[].description
Filter by trigger source (schedule or on_demand). Accepts a comma-separated list.

# paths./api/projects/{project_id}/vision/scanners/{scanner_id}/observat.get.parameters[].description
Filter monitor observations by verdict. Accepts a comma-separated list (e.g. `yes,inconclusive`).

# paths./api/projects/{project_id}/vision/scanners/creators/.get.description
Distinct creators across the team's scanners — feeds the `Created by` filter dropdown.

# paths./api/projects/{project_id}/vision/scanners/estimate/.post.description
Estimate the observation volume a proposed scanner would generate, for the pre-save cost preview.

# paths./api/projects/{project_id}/vision/scanners/stats/.get.description
Team-wide scanner counts — independent of list filters, so the overview stays stable.

# paths./api/projects/{project_id}/visual_review/repos/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/visual_review/repos/{id}/baselines/.get.description
Snapshots overview for a repo: every identifier with a current baseline (latest non-superseded master/main run per run_type), plus tolerate counts, active quarantine state, and a 30-day stability sparkline. Capped at 5000 entries — sets `truncated` and returns the most recently active when exceeded. Filtering / faceting / search are all done client-side; this endpoint takes no filter query params.

# paths./api/projects/{project_id}/visual_review/repos/{id}/quarantine/.get.description
List quarantined identifiers. Without filter: active only. With identifier: full history.

# paths./api/projects/{project_id}/visual_review/repos/{id}/quarantine/.get.parameters[].description
Filter by identifier (returns full history)

# paths./api/projects/{project_id}/visual_review/repos/{id}/quarantine/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/visual_review/repos/{id}/quarantine/{.post.description
Quarantine a snapshot identifier for a specific run type.

# paths./api/projects/{project_id}/visual_review/repos/{id}/quarantine/{.post.description
Expire all active quarantine entries for an identifier.

# paths./api/projects/{project_id}/visual_review/repos/{id}/thumbnails/{.get.description
Serve a snapshot thumbnail by identifier. Returns WebP with ETag caching.

# paths./api/projects/{project_id}/visual_review/repos/{repo_id}/runs/.get.description
List runs in this repo, optionally filtered by review state.

# paths./api/projects/{project_id}/visual_review/repos/{repo_id}/runs/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/visual_review/repos/{repo_id}/runs/co.get.description
Review state counts for runs in this repo.

# paths./api/projects/{project_id}/visual_review/repos/{repo_id}/snapsho.get.description
Deduped baseline timeline for a snapshot identity. Newest first.

# paths./api/projects/{project_id}/visual_review/repos/{repo_id}/snapsho.get.parameters[].description
Snapshot identifier; clients must percent-encode before sending

# paths./api/projects/{project_id}/visual_review/repos/{repo_id}/snapsho.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/visual_review/runs/.get.description
List runs for the team, optionally filtered by review state, PR number, commit SHA, or branch.

# paths./api/projects/{project_id}/visual_review/runs/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/visual_review/runs/{id}/add-snapshots.post.description
Add a batch of snapshots to a pending run (shard-based flow).

# paths./api/projects/{project_id}/visual_review/runs/{id}/approve/.post.description
Mark snapshots reviewed (DB only).

Records the per-snapshot "Accept change" decision. Does not commit the baseline
or change the GitHub gate — call finalize to ship the run.

# paths./api/projects/{project_id}/visual_review/runs/{id}/complete/.post.description
Complete a run: detect removals, verify uploads, trigger diff processing.

# paths./api/projects/{project_id}/visual_review/runs/{id}/finalize/.post.description
Finalize a fully-reviewed run: commit the approved baseline and green the gate.

Commits exactly the snapshots approved in the DB (tolerated ones keep their baseline)
and only succeeds once every changed/new snapshot is resolved. With approve_all=true,
any still-pending changed/new snapshot is approved first. With commit_to_github=false
the server returns the signed baseline YAML instead of committing it.

# paths./api/projects/{project_id}/visual_review/runs/{id}/recompute/.post.description
Re-evaluate quarantine and counts, update commit status, and optionally rerun the CI job.

# paths./api/projects/{project_id}/visual_review/runs/{id}/snapshot-hist.get.description
Recent change history for a snapshot identifier across runs.

# paths./api/projects/{project_id}/visual_review/runs/{id}/snapshot-hist.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/visual_review/runs/{id}/snapshots/.get.description
Get all snapshots for a run with diff results.

# paths./api/projects/{project_id}/visual_review/runs/{id}/snapshots/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/visual_review/runs/{id}/tolerate/.post.description
Mark a changed snapshot as a known tolerated alternate.

# paths./api/projects/{project_id}/visual_review/runs/{id}/tolerated-has.get.description
List known tolerated hashes for a snapshot identifier.

# paths./api/projects/{project_id}/visual_review/runs/{id}/tolerated-has.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/warehouse_dag/.get.description
Return this team's DAG as a set of edges and nodes

# paths./api/projects/{project_id}/warehouse_model_paths/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/warehouse_model_paths/{id}/.get.parameters[].description
A UUID string identifying this data warehouse model path.

# paths./api/projects/{project_id}/warehouse_saved_queries/.get.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_saved_queries/.get.parameters[].description
A page number within the paginated result set.

# paths./api/projects/{project_id}/warehouse_saved_queries/.post.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/.get.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/.get.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/.put.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/.put.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/.patch.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/.patch.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/.delete.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/.delete.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/activity.get.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/activity.get.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/ancestor.post.description
Return the ancestors of this saved query.

By default, we return the immediate parents. The `level` parameter can be used to
look further back into the ancestor tree. If `level` overshoots (i.e. points to only
ancestors beyond the root), we return an empty list.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/ancestor.post.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/cancel/.post.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/dependen.get.description
Return the count of immediate upstream and downstream dependencies for this saved query.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/dependen.get.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/descenda.post.description
Return the descendants of this saved query.

By default, we return the immediate children. The `level` parameter can be used to
look further ahead into the descendants tree. If `level` overshoots (i.e. points to only
descendants further than a leaf), we return an empty list.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/descenda.post.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/material.post.description
Enable materialization for this saved query with a 24-hour sync frequency.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/material.post.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/revert_m.post.description
Undo materialization, revert back to the original view.
(i.e. delete the materialized table and the schedule)

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/revert_m.post.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/run/.post.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/run_hist.get.description
Return the recent run history (up to 5 most recent) for this materialized view.

# paths./api/projects/{project_id}/warehouse_saved_queries/{id}/run_hist.get.parameters[].description
A UUID string identifying this data warehouse saved query.

# paths./api/projects/{project_id}/warehouse_saved_queries/resume_schedu.post.description
Resume paused materialization schedules for multiple matviews.

Accepts a list of view IDs in the request body: {"view_ids": ["id1", "id2", ...]}
This endpoint is idempotent - calling it on already running or non-existent schedules is safe.

# paths./api/projects/{project_id}/warehouse_saved_query_folders/{id}/.get.parameters[].description
A UUID string identifying this data warehouse saved query folder.

# paths./api/projects/{project_id}/warehouse_saved_query_folders/{id}/.patch.parameters[].description
A UUID string identifying this data warehouse saved query folder.

# paths./api/projects/{project_id}/warehouse_saved_query_folders/{id}/.delete.parameters[].description
A UUID string identifying this data warehouse saved query folder.

# paths./api/projects/{project_id}/warehouse_tables/.get.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_tables/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/warehouse_tables/.post.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_tables/{id}/.get.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_tables/{id}/.get.parameters[].description
A UUID string identifying this data warehouse table.

# paths./api/projects/{project_id}/warehouse_tables/{id}/.put.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_tables/{id}/.put.parameters[].description
A UUID string identifying this data warehouse table.

# paths./api/projects/{project_id}/warehouse_tables/{id}/.patch.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_tables/{id}/.patch.parameters[].description
A UUID string identifying this data warehouse table.

# paths./api/projects/{project_id}/warehouse_tables/{id}/.delete.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_tables/{id}/.delete.parameters[].description
A UUID string identifying this data warehouse table.

# paths./api/projects/{project_id}/warehouse_tables/{id}/refresh_schema/.post.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_tables/{id}/refresh_schema/.post.parameters[].description
A UUID string identifying this data warehouse table.

# paths./api/projects/{project_id}/warehouse_tables/{id}/update_schema/.post.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_tables/{id}/update_schema/.post.parameters[].description
A UUID string identifying this data warehouse table.

# paths./api/projects/{project_id}/warehouse_tables/file/.post.description
Create, Read, Update and Delete Warehouse Tables.

# paths./api/projects/{project_id}/warehouse_view_link/.get.description
Create, Read, Update and Delete View Columns.

# paths./api/projects/{project_id}/warehouse_view_link/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/warehouse_view_link/.post.description
Create, Read, Update and Delete View Columns.

# paths./api/projects/{project_id}/warehouse_view_link/{id}/.get.description
Create, Read, Update and Delete View Columns.

# paths./api/projects/{project_id}/warehouse_view_link/{id}/.get.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/projects/{project_id}/warehouse_view_link/{id}/.put.description
Create, Read, Update and Delete View Columns.

# paths./api/projects/{project_id}/warehouse_view_link/{id}/.put.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/projects/{project_id}/warehouse_view_link/{id}/.patch.description
Create, Read, Update and Delete View Columns.

# paths./api/projects/{project_id}/warehouse_view_link/{id}/.patch.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/projects/{project_id}/warehouse_view_link/{id}/.delete.description
Create, Read, Update and Delete View Columns.

# paths./api/projects/{project_id}/warehouse_view_link/{id}/.delete.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/projects/{project_id}/warehouse_view_link/validate/.post.description
Create, Read, Update and Delete View Columns.

# paths./api/projects/{project_id}/warehouse_view_links/.get.description
Create, Read, Update and Delete View Columns.

# paths./api/projects/{project_id}/warehouse_view_links/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/warehouse_view_links/.post.description
Create, Read, Update and Delete View Columns.

# paths./api/projects/{project_id}/warehouse_view_links/{id}/.get.description
Create, Read, Update and Delete View Columns.

# paths./api/projects/{project_id}/warehouse_view_links/{id}/.get.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/projects/{project_id}/warehouse_view_links/{id}/.put.description
Create, Read, Update and Delete View Columns.

# paths./api/projects/{project_id}/warehouse_view_links/{id}/.put.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/projects/{project_id}/warehouse_view_links/{id}/.patch.description
Create, Read, Update and Delete View Columns.

# paths./api/projects/{project_id}/warehouse_view_links/{id}/.patch.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/projects/{project_id}/warehouse_view_links/{id}/.delete.description
Create, Read, Update and Delete View Columns.

# paths./api/projects/{project_id}/warehouse_view_links/{id}/.delete.parameters[].description
A UUID string identifying this data warehouse join.

# paths./api/projects/{project_id}/warehouse_view_links/validate/.post.description
Create, Read, Update and Delete View Columns.

# paths./api/projects/{project_id}/web_analytics/weekly_digest/.get.description
Summarizes a project's web analytics over a lookback window (default 7 days): unique visitors, pageviews, sessions, bounce rate, and average session duration with period-over-period comparisons, plus the top 5 pages, top 5 traffic sources, and goal conversions.

# paths./api/projects/{project_id}/web_analytics/weekly_digest/.get.parameters[].description
When true (default), include period-over-period change for each metric comparing against the prior equal-length period. Set to false to skip the comparison query (faster).

# paths./api/projects/{project_id}/web_analytics/weekly_digest/.get.parameters[].description
Lookback window in days (1–90). Defaults to 7.

# paths./api/projects/{project_id}/web_experiments/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/web_experiments/{id}/.get.parameters[].description
A unique integer value identifying this web experiment.

# paths./api/projects/{project_id}/web_experiments/{id}/.put.parameters[].description
A unique integer value identifying this web experiment.

# paths./api/projects/{project_id}/web_experiments/{id}/.patch.parameters[].description
A unique integer value identifying this web experiment.

# paths./api/projects/{project_id}/web_experiments/{id}/.delete.parameters[].description
A unique integer value identifying this web experiment.

# paths./api/projects/{project_id}/web_vitals/.get.description
Get web vitals for a specific pathname.
Toolbar accesses this via OAuth (handled by TeamAndOrgViewSetMixin.get_authenticators).

# paths./api/projects/{project_id}/wizard/sessions/.get.description
List wizard sessions for the project, ordered by started_at desc. This should only be called by the PostHog Wizard. Optional filters: ?workflow_id=<id> and ?skill_id=<id>.

# paths./api/projects/{project_id}/wizard/sessions/.get.parameters[].description
The initial index from which to return the results.

# paths./api/projects/{project_id}/wizard/sessions/.get.parameters[].description
Filter to a single skill within the workflow (e.g. 'nextjs').

# paths./api/projects/{project_id}/wizard/sessions/.get.parameters[].description
Filter to a single workflow (e.g. 'onboarding').

# paths./api/projects/{project_id}/wizard/sessions/.post.description
Upsert a wizard session. The `session_id` key is the idempotency anchor — reposting the same `session_id` replaces the existing row. Returns 201 on create, 200 on update.

# paths./api/projects/{project_id}/wizard/sessions/{session_id}/.get.description
Retrieve a single wizard session by its session_id.

# paths./api/projects/{project_id}/wizard/sessions/{session_id}/.get.responses.404.description
No session with that id for this project.

# paths./api/projects/{project_id}/wizard/sessions/stream/.get.description
Server-Sent Events stream of wizard session updates for a (workflow_id, skill_id) pair. On connect, the current latest session (if any) is emitted as the first event; subsequent upserts are streamed in real time. The server closes the connection after 1800 seconds with an `event: end` line so the client (EventSource) can reconnect.

**SDK consumers**: do not call the generated fetch wrapper for this path — it will buffer the entire infinite stream. Use the URL builder (`getWizardSessionsStreamRetrieveUrl`) with the browser's `EventSource` API instead.

# paths./api/public_hog_function_templates/.get.parameters[].description
The initial index from which to return the results.

# paths./api/public_hog_function_templates/.get.parameters[].description
Filter to a specific template by its template_id. Deprecated templates are excluded from list results; use the retrieve endpoint to look up a template by ID regardless of status.

# paths./api/public_hog_function_templates/.get.parameters[].description
Filter by template type (e.g. destination, email, sms_provider, broadcast). Defaults to destination if neither type nor types is provided.

# paths./api/public_hog_function_templates/.get.parameters[].description
Comma-separated list of template types to include (e.g. destination,email,sms_provider).

# paths./api/user_home_settings/{uuid}/.get.description
Get the authenticated user's pinned sidebar tabs and configured homepage for the current team. Pass `@me` as the UUID.

# paths./api/user_home_settings/{uuid}/.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, search results, scene). Either field may be omitted to leave it unchanged; sending `homepage: null` or `{}` clears the homepage.

# paths./api/users/.get.parameters[].description
The initial index from which to return the results.

# paths./api/users/{user_id}/signal_autonomy/.get.description
Per-user signal autonomy config (singleton keyed by user).

GET    /api/users/<id>/signal_autonomy/ → current config (or 404)
POST   /api/users/<id>/signal_autonomy/ → create or update
DELETE /api/users/<id>/signal_autonomy/ → remove (opt out)

# paths./api/users/{user_id}/signal_autonomy/.post.description
Per-user signal autonomy config (singleton keyed by user).

GET    /api/users/<id>/signal_autonomy/ → current config (or 404)
POST   /api/users/<id>/signal_autonomy/ → create or update
DELETE /api/users/<id>/signal_autonomy/ → remove (opt out)

# paths./api/users/{user_id}/signal_autonomy/.delete.description
Per-user signal autonomy config (singleton keyed by user).

GET    /api/users/<id>/signal_autonomy/ → current config (or 404)
POST   /api/users/<id>/signal_autonomy/ → create or update
DELETE /api/users/<id>/signal_autonomy/ → remove (opt out)

# paths./api/users/{uuid}/.get.description
Retrieve a user's profile and settings. Pass `@me` as the UUID to fetch the authenticated user; non-staff callers may only access their own account.

# paths./api/users/{uuid}/.put.description
Replace the authenticated user's profile and settings. Pass `@me` as the UUID to update the authenticated user. Prefer the PATCH endpoint for partial updates — PUT requires every writable field to be provided.

# paths./api/users/{uuid}/.patch.description
Update one or more of the authenticated user's profile fields or settings.

# paths./api/users/{uuid}/credentials_review_complete/.post.description
Mark the user as having reviewed their existing credentials. Idempotent. Flips `requires_credential_review` to False so the post-login interstitial isn't shown again. Does not modify any credentials; the user revokes individual Personal API Keys via the existing PAT endpoints from the same screen.

# paths./api/users/{uuid}/integrations/.get.description
`/api/users/@me/integrations/` — manage the user's personal GitHub integrations.

# paths./api/users/{uuid}/integrations/.get.parameters[].description
The initial index from which to return the results.

# paths./api/users/{uuid}/integrations/github/{installation_id}/.delete.description
Remove a specific GitHub installation by its installation_id.

# paths./api/users/{uuid}/integrations/github/{installation_id}/.delete.summary
Disconnect a personal GitHub integration

# paths./api/users/{uuid}/integrations/github/{installation_id}/branches.get.description
List branches for a repository accessible to a personal GitHub installation.

# paths./api/users/{uuid}/integrations/github/{installation_id}/branches.get.summary
List branches for a personal GitHub installation repository

# paths./api/users/{uuid}/integrations/github/{installation_id}/branches.get.parameters[].description
Optional case-insensitive branch name search query.

# paths./api/users/{uuid}/integrations/github/{installation_id}/repos/.get.description
List repositories accessible to a specific GitHub installation (paginated, cached).

# paths./api/users/{uuid}/integrations/github/{installation_id}/repos/.get.summary
List repositories for a personal GitHub installation

# paths./api/users/{uuid}/integrations/github/{installation_id}/repos/.get.parameters[].description
Maximum number of repositories to return per request (max 500).

# paths./api/users/{uuid}/integrations/github/{installation_id}/repos/.get.parameters[].description
Number of repositories to skip before returning results.

# paths./api/users/{uuid}/integrations/github/{installation_id}/repos/.get.parameters[].description
Optional case-insensitive repository name search query.

# paths./api/users/{uuid}/integrations/github/{installation_id}/repos/re.post.description
Refresh repositories accessible to a specific GitHub installation.

# paths./api/users/{uuid}/integrations/github/{installation_id}/repos/re.post.summary
Refresh repositories for a personal GitHub installation

# paths./api/users/{uuid}/integrations/github/start/.post.description
Start GitHub linking: either full App install or OAuth-only (user-to-server).

``**_kwargs`` absorbs ``parent_lookup_uuid`` from the nested
``/api/users/{uuid}/integrations/`` router (same pattern as ``local_evaluation``
under projects).

Usually returns ``install_url`` pointing at ``/installations/new`` so the
user can pick any GitHub org (new or already connected).  GitHub's install
page handles both cases: orgs where the app is installed show "Configure"
(no admin needed), orgs where it isn't show "Install" (needs admin).

**OAuth fast path:** when the current project already has a team-level
GitHub installation, and the user has no ``UserIntegration`` for that
installation yet, we skip the org picker and redirect straight to
``/login/oauth/authorize`` so the user only authorizes themselves.
``connect_from`` is preserved for first-party clients so they return to
the originating client immediately.

In both cases the response key is ``install_url`` for compatibility with callers.

# paths./api/users/{uuid}/integrations/github/start/.post.summary
Start GitHub personal integration linking

# paths./api/users/{uuid}/onboarding/skip/.post.description
Mark the current user as having exited onboarding with a non-delegated reason.
Idempotent: the skip timestamp is only set on the first successful call.

Callers wanting to delegate setup to a teammate must use the dedicated
/organizations/{id}/invites/delegate/ endpoint, which atomically creates the
invite and sets reason="delegated". This endpoint rejects that reason so state
can't be faked without a real invite.

# paths./api/users/{uuid}/push_tokens/.post.description
Idempotent upsert: if the (user, token) pair already exists, `platform` and `last_seen_at` are refreshed. Otherwise a new row is created.

# paths./api/users/{uuid}/push_tokens/unregister/.post.description
Delete the row matching `(user, token)`. Returns 204 even if no row matches so the mobile client can call this unconditionally when the user opts out.

# paths./api/users/{uuid}/two_factor_backup_codes/.post.description
Generate new backup codes, invalidating any existing ones

# paths./api/users/{uuid}/two_factor_disable/.post.description
Disable 2FA and remove all related devices

# paths./api/users/{uuid}/two_factor_status/.get.description
Get current 2FA status including backup codes if enabled

# components.schemas.AccessLevelEnum.description
* `read_write` - read_write
* `read` - read
* `none` - none

# components.schemas.AccessMethodEnum.description
* `warehouse` - warehouse
* `direct` - direct

# components.schemas.Account.description
A Customer Analytics account — a logical grouping used to assign customer-success ownership.

# components.schemas.Account.properties.external_id.description
Identifier for the account in an external system (e.g. CRM ID). Optional.

# components.schemas.Account.properties.properties.description
Typed account properties: assignment fields (csm, account_executive, account_owner) and external system identifiers (stripe_customer_id, hubspot_deal_id, billing_id, sfdc_id, zendesk_id, slack_channel_id, usage_dashboard_link). Defaults to an empty object. Unknown keys are rejected.

# components.schemas.Account.properties.tags.description
Tag names attached to the account. Pass a list to replace existing tags.

# components.schemas.Account.properties.notebooks.description
Short IDs of the internal notebooks linked to this account, used to persist investigations, call notes, and other free-form context. Empty list if no notebooks have been created for the account.

# components.schemas.AccountNotebook.properties.title.description
Human-readable title of the account notebook.

# components.schemas.AccountNotebook.properties.content.description
Notebook content as a ProseMirror JSON document structure.

# components.schemas.AccountNotebook.properties.text_content.description
Plain text representation of the notebook content for search.

# components.schemas.AccountsQuery.properties.filterExpression.description
Optional HogQL boolean expression AND-ed into the WHERE clause. Used by the overview tile click-to-filter affordance.

# components.schemas.AccountsQuery.properties.metrics.description
Aggregation expressions evaluated against the filtered account set; one value per metric is returned in `metricsResults`. When `metrics` is set without a `select`, the runner skips the regular row fetch and returns only the aggregated values.

# components.schemas.AccountsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.AccountsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.AccountsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.AccountsQueryResponse.properties.metricsResults.description
When `metrics` is set on the query, the aggregated values in the same order.

# components.schemas.AccountsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.AccountsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.AccountsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.AccountsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.AccountsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Action.description
Serializer mixin that handles tags for objects.

# components.schemas.Action.properties.name.description
Name of the action (must be unique within the project).

# components.schemas.Action.properties.description.description
Human-readable description of what this action represents.

# components.schemas.Action.properties.post_to_slack.description
Whether to post a notification to Slack when this action is triggered.

# components.schemas.Action.properties.slack_message_format.description
Custom Slack message format. Supports templates with event properties.

# components.schemas.Action.properties.steps.description
Action steps defining trigger conditions. Each step matches events by name, properties, URL, or element attributes. Multiple steps are OR-ed together.

# components.schemas.Action.properties.pinned_at.description
ISO 8601 timestamp when the action was pinned, or null if not pinned. Set any value to pin, null to unpin.

# components.schemas.Action.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.ActionEnum.description
* `add` - add
* `remove` - remove
* `set` - set

# components.schemas.ActionReference.properties.type.description
Resource type: insight, experiment, cohort, or hog_function

# components.schemas.ActionReference.properties.id.description
Resource ID (integer or UUID depending on type)

# components.schemas.ActionStepJSON.properties.event.description
Event name to match (e.g. '$pageview', '$autocapture', or a custom event name).

# components.schemas.ActionStepJSON.properties.properties.description
Event or person property filters. Each item should have 'key' (string), 'value' (string, number, boolean, or array), optional 'operator' (exact, is_not, is_set, is_not_set, icontains, not_icontains, regex, not_regex, gt, gte, lt, lte), and optional 'type' (event, person).

# components.schemas.ActionStepJSON.properties.selector.description
CSS selector to match the target element (e.g. 'div > button.cta').

# components.schemas.ActionStepJSON.properties.tag_name.description
HTML tag name to match (e.g. "button", "a", "input").

# components.schemas.ActionStepJSON.properties.text_matching.description
How to match the text value. Defaults to exact.

* `contains` - contains
* `regex` - regex
* `exact` - exact

# components.schemas.ActionStepJSON.properties.href_matching.description
How to match the href value. Defaults to exact.

* `contains` - contains
* `regex` - regex
* `exact` - exact

# components.schemas.ActionStepJSON.properties.url_matching.description
How to match the URL value. Defaults to contains.

* `contains` - contains
* `regex` - regex
* `exact` - exact

# components.schemas.ActionStepMatchingEnum.description
* `contains` - contains
* `regex` - regex
* `exact` - exact

# components.schemas.ActionsNode.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.ActionsNode.properties.properties.description
Properties configurable in the interface

# components.schemas.ActionsNode.properties.version.description
version of the node, used for schema migrations

# components.schemas.ActiveBreakpointsResponse.description
Response schema for active breakpoints endpoint

# components.schemas.ActiveEnum.description
* `true` - true
* `false` - false
* `STALE` - STALE

# components.schemas.ActivityLog.properties.unread.description
is the date of this log item newer than the user's bookmark

# components.schemas.ActivityLogPaginatedResponse.description
Response shape for paginated activity log endpoints.

# components.schemas.ActorsPropertyTaxonomyQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ActorsPropertyTaxonomyQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.ActorsPropertyTaxonomyQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.ActorsPropertyTaxonomyQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ActorsPropertyTaxonomyQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.ActorsPropertyTaxonomyQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.ActorsPropertyTaxonomyQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.ActorsPropertyTaxonomyQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.ActorsQuery.properties.fixedProperties.description
Currently only person filters supported. No filters for querying groups. See `filter_conditions()` in actor_strategies.py.

# components.schemas.ActorsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ActorsQuery.properties.properties.description
Currently only person filters supported. No filters for querying groups. See `filter_conditions()` in actor_strategies.py.

# components.schemas.ActorsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.ActorsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.ActorsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ActorsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.ActorsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.ActorsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.ActorsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.AddDashboardWidgetsBatchRequestOpenApi.description
OpenAPI-only batch-add schema with widget_type-discriminated config shapes for agents.

# components.schemas.AddDashboardWidgetsBatchRequestOpenApi.properties.widgets.description
Widget tiles to add atomically. Supported widget_type values: error_tracking_list, session_replay_list. Use dashboard-widget-catalog-list for config_schema_hints per type. (1–10 per request).

# components.schemas.AddDashboardWidgetsBatchResponse.properties.tiles.description
Created dashboard widget tiles in request order.

# components.schemas.AgentModeEnum.description
* `product_analytics` - product_analytics
* `sql` - sql
* `session_replay` - session_replay
* `error_tracking` - error_tracking
* `plan` - plan
* `execution` - execution
* `survey` - survey
* `research` - research
* `flags` - flags
* `llm_analytics` - llm_analytics
* `sandbox` - sandbox
* `user_interview` - user_interview

# components.schemas.Alert.properties.insight.description
Insight ID monitored by this alert. Note: Response returns full InsightBasicSerializer object.

# components.schemas.Alert.properties.subscribed_users.description
User IDs to subscribe to this alert. Note: Response returns full UserBasicSerializer object.

# components.schemas.Alert.properties.threshold.description
Threshold configuration with bounds and type for evaluating the alert.

# components.schemas.Alert.properties.condition.description
Alert condition type. Determines how the value is evaluated: absolute_value, relative_increase, or relative_decrease.

# components.schemas.Alert.properties.state.description
Current alert state: Firing, Not firing, Errored, or Snoozed.

# components.schemas.Alert.properties.enabled.description
Whether the alert is actively being evaluated.

# components.schemas.Alert.properties.checks.description
Alert check results. By default returns the last 5. Use checks_date_from and checks_date_to (e.g. '-24h', '-7d') to get checks within a time window, checks_limit to cap how many are returned (default 5, max 500), and checks_offset to skip the newest N checks for pagination (0-based). Newest checks first. Only populated on retrieve.

# components.schemas.Alert.properties.checks_total.description
Total alert checks matching the retrieve filters (date window). Only set on alert retrieve; omitted otherwise.

# components.schemas.Alert.properties.config.description
Trends-specific alert configuration. Includes series_index (which series to monitor) and check_ongoing_interval (whether to check the current incomplete interval).

# components.schemas.Alert.properties.calculation_interval.description
How often the alert is checked: every 15 minutes (Boost+), hourly, daily, weekly, or monthly.

* `every_15_minutes` - every_15_minutes
* `hourly` - hourly
* `daily` - daily
* `weekly` - weekly
* `monthly` - monthly

# components.schemas.Alert.properties.snoozed_until.description
Snooze the alert until this time. Pass a relative date string (e.g. '2h', '1d') or null to unsnooze.

# components.schemas.Alert.properties.skip_weekend.description
Skip alert evaluation on weekends (Saturday and Sunday, local to project timezone).

# components.schemas.Alert.properties.schedule_restriction.description
Blocked local time windows (HH:MM in the project timezone). Interval is half-open [start, end): start inclusive, end exclusive. Use blocked_windows array of {start, end}. Null disables.

# components.schemas.Alert.properties.last_value.description
The last calculated value from the most recent alert check.

# components.schemas.Alert.properties.investigation_agent_enabled.description
When enabled, an investigation agent runs on the state transition to firing and writes findings to a Notebook linked from the alert check. Only effective for detector-based (anomaly) alerts.

# components.schemas.Alert.properties.investigation_gates_notifications.description
When enabled (and investigation_agent_enabled is on), notification dispatch is held until the investigation agent produces a verdict. Notifications are suppressed when the verdict is false_positive (and optionally when inconclusive). A safety-net task force-fires after a few minutes if the investigation stalls.

# components.schemas.Alert.properties.investigation_inconclusive_action.description
How to handle an 'inconclusive' verdict when notifications are gated. 'notify' is the safe default — an agent that can't be sure is itself useful signal.

* `notify` - Notify
* `suppress` - Suppress

# components.schemas.AlertCheck.properties.investigation_notebook_short_id.description
Short ID of the Notebook produced by the investigation agent, when the agent ran for this check.

# components.schemas.AlertCheckStateEnum.description
* `Firing` - Firing
* `Not firing` - Not firing
* `Errored` - Errored
* `Snoozed` - Snoozed

# components.schemas.AlertScheduleRestriction.properties.blocked_windows.description
Blocked local time windows when the alert must not run. Overlapping or identical windows are merged when saved. At most five windows before normalization; empty array clears quiet hours.

# components.schemas.AlertScheduleRestrictionWindow.properties.start.description
Start time HH:MM (24-hour, project timezone). Inclusive. Each window must span ≥ 30 minutes on the local daily timeline (half-open [start, end)).

# components.schemas.AlertScheduleRestrictionWindow.properties.end.description
End time HH:MM (24-hour). Exclusive (half-open interval). Each window must span ≥ 30 minutes locally.

# components.schemas.AlertSimulate.properties.series_index.description
Zero-based index of the series to analyze.

# components.schemas.AlertSimulate.properties.date_from.description
Relative date string for how far back to simulate (e.g. '-24h', '-30d', '-4w'). If not provided, uses the detector's minimum required samples.

# components.schemas.AlertSimulateResponse.properties.scores.description
Anomaly score for each point (null if insufficient data).

# components.schemas.AlertSimulateResponse.properties.interval.description
Interval of the trends query (hour, day, week, month).

# components.schemas.AlertSimulateResponse.properties.sub_detector_scores.description
Per-sub-detector scores for ensemble detectors. Each entry has 'type' and 'scores' fields.

# components.schemas.AlertSimulateResponse.properties.breakdown_results.description
Per-breakdown-value simulation results. Present only when the insight has breakdowns (up to 25 values).

# components.schemas.Annotation.properties.content.description
Annotation text shown on charts to describe the change, release, or incident.

# components.schemas.Annotation.properties.date_marker.description
When this annotation happened (ISO 8601 timestamp). Used to position it on charts.

# components.schemas.Annotation.properties.creation_type.description
Who created this annotation. Use `USR` for user-created notes and `GIT` for bot/deployment notes.

* `USR` - user
* `GIT` - GitHub

# components.schemas.Annotation.properties.deleted.description
Soft-delete flag. Set to true to hide the annotation, or false to restore it.

# components.schemas.Annotation.properties.scope.description
Annotation visibility scope: `project`, `organization`, `dashboard`, or `dashboard_item`. `recording` is deprecated and rejected.

* `dashboard_item` - insight
* `dashboard` - dashboard
* `project` - project
* `organization` - organization
* `recording` - recording

# components.schemas.Annotation.properties.emoji.description
Optional emoji shown in place of the default badge when this annotation is surfaced on a chart.

# components.schemas.AnnotationScopeEnum.description
* `dashboard_item` - insight
* `dashboard` - dashboard
* `project` - project
* `organization` - organization
* `recording` - recording

# components.schemas.AppendSegments.description
Serializer for appending transcript segments (supports batched real-time uploads)

# components.schemas.ApprovalPolicy.properties.expires_after.description
Auto-expire change requests after this duration

# components.schemas.ApproveRunRequestInput.properties.snapshots.description
Snapshots to mark reviewed, each with `identifier` and `new_hash`. This only records the review in the database (the per-snapshot "Accept change" action) — it does not change the baseline or the GitHub gate. Commit the baseline and green the gate with the finalize endpoint.

# components.schemas.ApproveSnapshotInput.properties.identifier.description
The snapshot identifier to approve (e.g. Storybook story id plus theme).

# components.schemas.ApproveSnapshotInput.properties.new_hash.description
The content hash of the new baseline image to record for this identifier.

# components.schemas.ArrayPropertyFilter.description
Matches against a list of values (OR semantics for exact/is_not, set membership for in/not_in).

# components.schemas.ArrayPropertyFilter.properties.key.description
Key of the property you're filtering on. For example `email` or `$current_url`.

# components.schemas.ArrayPropertyFilter.properties.type.description
Property type (event, person, session, etc.).

* `event` - event
* `event_metadata` - event_metadata
* `feature` - feature
* `person` - person
* `cohort` - cohort
* `element` - element
* `static-cohort` - static-cohort
* `dynamic-cohort` - dynamic-cohort
* `precalculated-cohort` - precalculated-cohort
* `group` - group
* `recording` - recording
* `log_entry` - log_entry
* `behavioral` - behavioral
* `session` - session
* `hogql` - hogql
* `data_warehouse` - data_warehouse
* `data_warehouse_person_property` - data_warehouse_person_property
* `error_tracking_issue` - error_tracking_issue
* `log` - log
* `log_attribute` - log_attribute
* `log_resource_attribute` - log_resource_attribute
* `span` - span
* `span_attribute` - span_attribute
* `span_resource_attribute` - span_resource_attribute
* `revenue_analytics` - revenue_analytics
* `flag` - flag
* `workflow_variable` - workflow_variable

# components.schemas.ArrayPropertyFilter.properties.value.description
List of values to match. For example `["test@example.com", "ok@example.com"]`.

# components.schemas.ArrayPropertyFilter.properties.operator.description
Array comparison operator.

* `exact` - exact
* `is_not` - is_not
* `in` - in
* `not_in` - not_in

# components.schemas.ArrayPropertyFilterOperatorEnum.description
* `exact` - exact
* `is_not` - is_not
* `in` - in
* `not_in` - not_in

# components.schemas.AsyncDeletionStatus.properties.person_uuid.description
The UUID of the person whose events are queued for deletion.

# components.schemas.AsyncDeletionStatus.properties.status.description
Current status: 'pending' or 'completed'.

# components.schemas.AsyncDeletionStatus.properties.delete_verified_at.description
When the deletion was verified complete. Null if still pending.

# components.schemas.AttributionModeEnum.description
* `first_touch` - First Touch
* `last_touch` - Last Touch
* `linear` - Linear
* `time_decay` - Time Decay
* `position_based` - Position Based

# components.schemas.AutocompleteCompletionItem.properties.detail.description
A human-readable string with additional information about this item, like type or symbol information.

# components.schemas.AutocompleteCompletionItem.properties.documentation.description
A human-readable string that represents a doc-comment.

# components.schemas.AutocompleteCompletionItem.properties.insertText.description
A string or snippet that should be inserted in a document when selecting this completion.

# components.schemas.AutocompleteCompletionItem.properties.kind.description
The kind of this completion item. Based on the kind an icon is chosen by the editor.

# components.schemas.AutocompleteCompletionItem.properties.label.description
The label of this completion item. By default this is also the text that is inserted when selecting this completion.

# components.schemas.AvailableFiltersResponse.properties.static_filters.description
Pre-computed filter options for scopes, activities, and users.

# components.schemas.AvailableFiltersResponse.properties.detail_fields.description
Discovered detail fields and their value distributions.

# components.schemas.AzureBlobDestinationConfig.description
Typed configuration for an Azure Blob Storage batch-export destination.

Credentials live in the linked Integration, not in this config. Mirrors
`AzureBlobBatchExportInputs` in `products/batch_exports/backend/service.py`.

# components.schemas.AzureBlobDestinationConfig.properties.prefix.description
Object key prefix applied to every exported file.

# components.schemas.AzureBlobDestinationConfig.properties.compression.description
Optional compression codec applied to exported files. Valid codecs depend on file_format.

* `brotli` - brotli
* `gzip` - gzip
* `lz4` - lz4
* `snappy` - snappy
* `zstd` - zstd

# components.schemas.AzureBlobDestinationConfig.properties.file_format.description
File format used for exported objects.

* `JSONLines` - JSONLines
* `Parquet` - Parquet

# components.schemas.AzureBlobDestinationConfig.properties.max_file_size_mb.description
If set, rolls to a new file once the current file exceeds this size in MB.

# components.schemas.AzureBlobDestinationRequest.description
Request shape for creating or updating an Azure Blob Storage batch-export destination.

# components.schemas.AzureBlobDestinationRequest.properties.integration_id.description
ID of an azure-blob-kind Integration. Use the integrations-list MCP tool to find one.

# components.schemas.BaselineEntry.properties.quarantine.description
Active quarantine details when `is_quarantined` is true. Null otherwise.

# components.schemas.BatchCheckRequest.properties.trace_ids.description
List of trace IDs to check for cached summaries

# components.schemas.BatchCheckRequest.properties.mode.description
Summary detail level to check for

* `minimal` - minimal
* `detailed` - detailed

# components.schemas.BatchExport.properties.name.description
A human-readable name for this BatchExport.

# components.schemas.BatchExport.properties.model.description
Which model this BatchExport is exporting.

* `events` - Events
* `persons` - Persons
* `sessions` - Sessions

# components.schemas.BatchExport.properties.destination.description
Destination configuration (type, config, and optional integration).

# components.schemas.BatchExport.properties.interval.description
How often the batch export should run.

* `hour` - hour
* `day` - day
* `week` - week
* `every 5 minutes` - every 5 minutes
* `every 15 minutes` - every 15 minutes

# components.schemas.BatchExport.properties.paused.description
Whether this BatchExport is paused or not.

# components.schemas.BatchExport.properties.created_at.description
The timestamp at which this BatchExport was created.

# components.schemas.BatchExport.properties.last_updated_at.description
The timestamp at which this BatchExport was last updated.

# components.schemas.BatchExport.properties.last_paused_at.description
The timestamp at which this BatchExport was last paused.

# components.schemas.BatchExport.properties.start_at.description
Time before which any Batch Export runs won't be triggered.

# components.schemas.BatchExport.properties.end_at.description
Time after which any Batch Export runs won't be triggered.

# components.schemas.BatchExport.properties.latest_runs.description
The 10 most recent runs of this batch export, ordered newest first.

# components.schemas.BatchExport.properties.hogql_query.description
Optional HogQL SELECT defining a custom model schema. Only recommended in advanced use cases.

# components.schemas.BatchExport.properties.schema.description
A schema of custom fields to select when exporting data.

# components.schemas.BatchExport.properties.timezone.description
IANA timezone name controlling daily and weekly interval boundaries. Defaults to UTC.

* `Africa/Abidjan` - Africa/Abidjan
* `Africa/Accra` - Africa/Accra
* `Africa/Addis_Ababa` - Africa/Addis_Ababa
* `Africa/Algiers` - Africa/Algiers
* `Africa/Asmara` - Africa/Asmara
* `Africa/Asmera` - Africa/Asmera
* `Africa/Bamako` - Africa/Bamako
* `Africa/Bangui` - Africa/Bangui
* `Africa/Banjul` - Africa/Banjul
* `Africa/Bissau` - Africa/Bissau
* `Africa/Blantyre` - Africa/Blantyre
* `Africa/Brazzaville` - Africa/Brazzaville
* `Africa/Bujumbura` - Africa/Bujumbura
* `Africa/Cairo` - Africa/Cairo
* `Africa/Casablanca` - Africa/Casablanca
* `Africa/Ceuta` - Africa/Ceuta
* `Africa/Conakry` - Africa/Conakry
* `Africa/Dakar` - Africa/Dakar
* `Africa/Dar_es_Salaam` - Africa/Dar_es_Salaam
* `Africa/Djibouti` - Africa/Djibouti
* `Africa/Douala` - Africa/Douala
* `Africa/El_Aaiun` - Africa/El_Aaiun
* `Africa/Freetown` - Africa/Freetown
* `Africa/Gaborone` - Africa/Gaborone
* `Africa/Harare` - Africa/Harare
* `Africa/Johannesburg` - Africa/Johannesburg
* `Africa/Juba` - Africa/Juba
* `Africa/Kampala` - Africa/Kampala
* `Africa/Khartoum` - Africa/Khartoum
* `Africa/Kigali` - Africa/Kigali
* `Africa/Kinshasa` - Africa/Kinshasa
* `Africa/Lagos` - Africa/Lagos
* `Africa/Libreville` - Africa/Libreville
* `Africa/Lome` - Africa/Lome
* `Africa/Luanda` - Africa/Luanda
* `Africa/Lubumbashi` - Africa/Lubumbashi
* `Africa/Lusaka` - Africa/Lusaka
* `Africa/Malabo` - Africa/Malabo
* `Africa/Maputo` - Africa/Maputo
* `Africa/Maseru` - Africa/Maseru
* `Africa/Mbabane` - Africa/Mbabane
* `Africa/Mogadishu` - Africa/Mogadishu
* `Africa/Monrovia` - Africa/Monrovia
* `Africa/Nairobi` - Africa/Nairobi
* `Africa/Ndjamena` - Africa/Ndjamena
* `Africa/Niamey` - Africa/Niamey
* `Africa/Nouakchott` - Africa/Nouakchott
* `Africa/Ouagadougou` - Africa/Ouagadougou
* `Africa/Porto-Novo` - Africa/Porto-Novo
* `Africa/Sao_Tome` - Africa/Sao_Tome
* `Africa/Timbuktu` - Africa/Timbuktu
* `Africa/Tripoli` - Africa/Tripoli
* `Africa/Tunis` - Africa/Tunis
* `Africa/Windhoek` - Africa/Windhoek
* `America/Adak` - America/Adak
* `America/Anchorage` - America/Anchorage
* `America/Anguilla` - America/Anguilla
* `America/Antigua` - America/Antigua
* `America/Araguaina` - America/Araguaina
* `America/Argentina/Buenos_Aires` - America/Argentina/Buenos_Aires
* `America/Argentina/Catamarca` - America/Argentina/Catamarca
* `America/Argentina/ComodRivadavia` - America/Argentina/ComodRivadavia
* `America/Argentina/Cordoba` - America/Argentina/Cordoba
* `America/Argentina/Jujuy` - America/Argentina/Jujuy
* `America/Argentina/La_Rioja` - America/Argentina/La_Rioja
* `America/Argentina/Mendoza` - America/Argentina/Mendoza
* `America/Argentina/Rio_Gallegos` - America/Argentina/Rio_Gallegos
* `America/Argentina/Salta` - America/Argentina/Salta
* `America/Argentina/San_Juan` - America/Argentina/San_Juan
* `America/Argentina/San_Luis` - America/Argentina/San_Luis
* `America/Argentina/Tucuman` - America/Argentina/Tucuman
* `America/Argentina/Ushuaia` - America/Argentina/Ushuaia
* `America/Aruba` - America/Aruba
* `America/Asuncion` - America/Asuncion
* `America/Atikokan` - America/Atikokan
* `America/Atka` - America/Atka
* `America/Bahia` - America/Bahia
* `America/Bahia_Banderas` - America/Bahia_Banderas
* `America/Barbados` - America/Barbados
* `America/Belem` - America/Belem
* `America/Belize` - America/Belize
* `America/Blanc-Sablon` - America/Blanc-Sablon
* `America/Boa_Vista` - America/Boa_Vista
* `America/Bogota` - America/Bogota
* `America/Boise` - America/Boise
* `America/Buenos_Aires` - America/Buenos_Aires
* `America/Cambridge_Bay` - America/Cambridge_Bay
* `America/Campo_Grande` - America/Campo_Grande
* `America/Cancun` - America/Cancun
* `America/Caracas` - America/Caracas
* `America/Catamarca` - America/Catamarca
* `America/Cayenne` - America/Cayenne
* `America/Cayman` - America/Cayman
* `America/Chicago` - America/Chicago
* `America/Chihuahua` - America/Chihuahua
* `America/Ciudad_Juarez` - America/Ciudad_Juarez
* `America/Coral_Harbour` - America/Coral_Harbour
* `America/Cordoba` - America/Cordoba
* `America/Costa_Rica` - America/Costa_Rica
* `America/Creston` - America/Creston
* `America/Cuiaba` - America/Cuiaba
* `America/Curacao` - America/Curacao
* `America/Danmarkshavn` - America/Danmarkshavn
* `America/Dawson` - America/Dawson
* `America/Dawson_Creek` - America/Dawson_Creek
* `America/Denver` - America/Denver
* `America/Detroit` - America/Detroit
* `America/Dominica` - America/Dominica
* `America/Edmonton` - America/Edmonton
* `America/Eirunepe` - America/Eirunepe
* `America/El_Salvador` - America/El_Salvador
* `America/Ensenada` - America/Ensenada
* `America/Fort_Nelson` - America/Fort_Nelson
* `America/Fort_Wayne` - America/Fort_Wayne
* `America/Fortaleza` - America/Fortaleza
* `America/Glace_Bay` - America/Glace_Bay
* `America/Godthab` - America/Godthab
* `America/Goose_Bay` - America/Goose_Bay
* `America/Grand_Turk` - America/Grand_Turk
* `America/Grenada` - America/Grenada
* `America/Guadeloupe` - America/Guadeloupe
* `America/Guatemala` - America/Guatemala
* `America/Guayaquil` - America/Guayaquil
* `America/Guyana` - America/Guyana
* `America/Halifax` - America/Halifax
* `America/Havana` - America/Havana
* `America/Hermosillo` - America/Hermosillo
* `America/Indiana/Indianapolis` - America/Indiana/Indianapolis
* `America/Indiana/Knox` - America/Indiana/Knox
* `America/Indiana/Marengo` - America/Indiana/Marengo
* `America/Indiana/Petersburg` - America/Indiana/Petersburg
* `America/Indiana/Tell_City` - America/Indiana/Tell_City
* `America/Indiana/Vevay` - America/Indiana/Vevay
* `America/Indiana/Vincennes` - America/Indiana/Vincennes
* `America/Indiana/Winamac` - America/Indiana/Winamac
* `America/Indianapolis` - America/Indianapolis
* `America/Inuvik` - America/Inuvik
* `America/Iqaluit` - America/Iqaluit
* `America/Jamaica` - America/Jamaica
* `America/Jujuy` - America/Jujuy
* `America/Juneau` - America/Juneau
* `America/Kentucky/Louisville` - America/Kentucky/Louisville
* `America/Kentucky/Monticello` - America/Kentucky/Monticello
* `America/Knox_IN` - America/Knox_IN
* `America/Kralendijk` - America/Kralendijk
* `America/La_Paz` - America/La_Paz
* `America/Lima` - America/Lima
* `America/Los_Angeles` - America/Los_Angeles
* `America/Louisville` - America/Louisville
* `America/Lower_Princes` - America/Lower_Princes
* `America/Maceio` - America/Maceio
* `America/Managua` - America/Managua
* `America/Manaus` - America/Manaus
* `America/Marigot` - America/Marigot
* `America/Martinique` - America/Martinique
* `America/Matamoros` - America/Matamoros
* `America/Mazatlan` - America/Mazatlan
* `America/Mendoza` - America/Mendoza
* `America/Menominee` - America/Menominee
* `America/Merida` - America/Merida
* `America/Metlakatla` - America/Metlakatla
* `America/Mexico_City` - America/Mexico_City
* `America/Miquelon` - America/Miquelon
* `America/Moncton` - America/Moncton
* `America/Monterrey` - America/Monterrey
* `America/Montevideo` - America/Montevideo
* `America/Montreal` - America/Montreal
* `America/Montserrat` - America/Montserrat
* `America/Nassau` - America/Nassau
* `America/New_York` - America/New_York
* `America/Nipigon` - America/Nipigon
* `America/Nome` - America/Nome
* `America/Noronha` - America/Noronha
* `America/North_Dakota/Beulah` - America/North_Dakota/Beulah
* `America/North_Dakota/Center` - America/North_Dakota/Center
* `America/North_Dakota/New_Salem` - America/North_Dakota/New_Salem
* `America/Nuuk` - America/Nuuk
* `America/Ojinaga` - America/Ojinaga
* `America/Panama` - America/Panama
* `America/Pangnirtung` - America/Pangnirtung
* `America/Paramaribo` - America/Paramaribo
* `America/Phoenix` - America/Phoenix
* `America/Port-au-Prince` - America/Port-au-Prince
* `America/Port_of_Spain` - America/Port_of_Spain
* `America/Porto_Acre` - America/Porto_Acre
* `America/Porto_Velho` - America/Porto_Velho
* `America/Puerto_Rico` - America/Puerto_Rico
* `America/Punta_Arenas` - America/Punta_Arenas
* `America/Rainy_River` - America/Rainy_River
* `America/Rankin_Inlet` - America/Rankin_Inlet
* `America/Recife` - America/Recife
* `America/Regina` - America/Regina
* `America/Resolute` - America/Resolute
* `America/Rio_Branco` - America/Rio_Branco
* `America/Rosario` - America/Rosario
* `America/Santa_Isabel` - America/Santa_Isabel
* `America/Santarem` - America/Santarem
* `America/Santiago` - America/Santiago
* `America/Santo_Domingo` - America/Santo_Domingo
* `America/Sao_Paulo` - America/Sao_Paulo
* `America/Scoresbysund` - America/Scoresbysund
* `America/Shiprock` - America/Shiprock
* `America/Sitka` - America/Sitka
* `America/St_Barthelemy` - America/St_Barthelemy
* `America/St_Johns` - America/St_Johns
* `America/St_Kitts` - America/St_Kitts
* `America/St_Lucia` - America/St_Lucia
* `America/St_Thomas` - America/St_Thomas
* `America/St_Vincent` - America/St_Vincent
* `America/Swift_Current` - America/Swift_Current
* `America/Tegucigalpa` - America/Tegucigalpa
* `America/Thule` - America/Thule
* `America/Thunder_Bay` - America/Thunder_Bay
* `America/Tijuana` - America/Tijuana
* `America/Toronto` - America/Toronto
* `America/Tortola` - America/Tortola
* `America/Vancouver` - America/Vancouver
* `America/Virgin` - America/Virgin
* `America/Whitehorse` - America/Whitehorse
* `America/Winnipeg` - America/Winnipeg
* `America/Yakutat` - America/Yakutat
* `America/Yellowknife` - America/Yellowknife
* `Antarctica/Casey` - Antarctica/Casey
* `Antarctica/Davis` - Antarctica/Davis
* `Antarctica/DumontDUrville` - Antarctica/DumontDUrville
* `Antarctica/Macquarie` - Antarctica/Macquarie
* `Antarctica/Mawson` - Antarctica/Mawson
* `Antarctica/McMurdo` - Antarctica/McMurdo
* `Antarctica/Palmer` - Antarctica/Palmer
* `Antarctica/Rothera` - Antarctica/Rothera
* `Antarctica/South_Pole` - Antarctica/South_Pole
* `Antarctica/Syowa` - Antarctica/Syowa
* `Antarctica/Troll` - Antarctica/Troll
* `Antarctica/Vostok` - Antarctica/Vostok
* `Arctic/Longyearbyen` - Arctic/Longyearbyen
* `Asia/Aden` - Asia/Aden
* `Asia/Almaty` - Asia/Almaty
* `Asia/Amman` - Asia/Amman
* `Asia/Anadyr` - Asia/Anadyr
* `Asia/Aqtau` - Asia/Aqtau
* `Asia/Aqtobe` - Asia/Aqtobe
* `Asia/Ashgabat` - Asia/Ashgabat
* `Asia/Ashkhabad` - Asia/Ashkhabad
* `Asia/Atyrau` - Asia/Atyrau
* `Asia/Baghdad` - Asia/Baghdad
* `Asia/Bahrain` - Asia/Bahrain
* `Asia/Baku` - Asia/Baku
* `Asia/Bangkok` - Asia/Bangkok
* `Asia/Barnaul` - Asia/Barnaul
* `Asia/Beirut` - Asia/Beirut
* `Asia/Bishkek` - Asia/Bishkek
* `Asia/Brunei` - Asia/Brunei
* `Asia/Calcutta` - Asia/Calcutta
* `Asia/Chita` - Asia/Chita
* `Asia/Choibalsan` - Asia/Choibalsan
* `Asia/Chongqing` - Asia/Chongqing
* `Asia/Chungking` - Asia/Chungking
* `Asia/Colombo` - Asia/Colombo
* `Asia/Dacca` - Asia/Dacca
* `Asia/Damascus` - Asia/Damascus
* `Asia/Dhaka` - Asia/Dhaka
* `Asia/Dili` - Asia/Dili
* `Asia/Dubai` - Asia/Dubai
* `Asia/Dushanbe` - Asia/Dushanbe
* `Asia/Famagusta` - Asia/Famagusta
* `Asia/Gaza` - Asia/Gaza
* `Asia/Harbin` - Asia/Harbin
* `Asia/Hebron` - Asia/Hebron
* `Asia/Ho_Chi_Minh` - Asia/Ho_Chi_Minh
* `Asia/Hong_Kong` - Asia/Hong_Kong
* `Asia/Hovd` - Asia/Hovd
* `Asia/Irkutsk` - Asia/Irkutsk
* `Asia/Istanbul` - Asia/Istanbul
* `Asia/Jakarta` - Asia/Jakarta
* `Asia/Jayapura` - Asia/Jayapura
* `Asia/Jerusalem` - Asia/Jerusalem
* `Asia/Kabul` - Asia/Kabul
* `Asia/Kamchatka` - Asia/Kamchatka
* `Asia/Karachi` - Asia/Karachi
* `Asia/Kashgar` - Asia/Kashgar
* `Asia/Kathmandu` - Asia/Kathmandu
* `Asia/Katmandu` - Asia/Katmandu
* `Asia/Khandyga` - Asia/Khandyga
* `Asia/Kolkata` - Asia/Kolkata
* `Asia/Krasnoyarsk` - Asia/Krasnoyarsk
* `Asia/Kuala_Lumpur` - Asia/Kuala_Lumpur
* `Asia/Kuching` - Asia/Kuching
* `Asia/Kuwait` - Asia/Kuwait
* `Asia/Macao` - Asia/Macao
* `Asia/Macau` - Asia/Macau
* `Asia/Magadan` - Asia/Magadan
* `Asia/Makassar` - Asia/Makassar
* `Asia/Manila` - Asia/Manila
* `Asia/Muscat` - Asia/Muscat
* `Asia/Nicosia` - Asia/Nicosia
* `Asia/Novokuznetsk` - Asia/Novokuznetsk
* `Asia/Novosibirsk` - Asia/Novosibirsk
* `Asia/Omsk` - Asia/Omsk
* `Asia/Oral` - Asia/Oral
* `Asia/Phnom_Penh` - Asia/Phnom_Penh
* `Asia/Pontianak` - Asia/Pontianak
* `Asia/Pyongyang` - Asia/Pyongyang
* `Asia/Qatar` - Asia/Qatar
* `Asia/Qostanay` - Asia/Qostanay
* `Asia/Qyzylorda` - Asia/Qyzylorda
* `Asia/Rangoon` - Asia/Rangoon
* `Asia/Riyadh` - Asia/Riyadh
* `Asia/Saigon` - Asia/Saigon
* `Asia/Sakhalin` - Asia/Sakhalin
* `Asia/Samarkand` - Asia/Samarkand
* `Asia/Seoul` - Asia/Seoul
* `Asia/Shanghai` - Asia/Shanghai
* `Asia/Singapore` - Asia/Singapore
* `Asia/Srednekolymsk` - Asia/Srednekolymsk
* `Asia/Taipei` - Asia/Taipei
* `Asia/Tashkent` - Asia/Tashkent
* `Asia/Tbilisi` - Asia/Tbilisi
* `Asia/Tehran` - Asia/Tehran
* `Asia/Tel_Aviv` - Asia/Tel_Aviv
* `Asia/Thimbu` - Asia/Thimbu
* `Asia/Thimphu` - Asia/Thimphu
* `Asia/Tokyo` - Asia/Tokyo
* `Asia/Tomsk` - Asia/Tomsk
* `Asia/Ujung_Pandang` - Asia/Ujung_Pandang
* `Asia/Ulaanbaatar` - Asia/Ulaanbaatar
* `Asia/Ulan_Bator` - Asia/Ulan_Bator
* `Asia/Urumqi` - Asia/Urumqi
* `Asia/Ust-Nera` - Asia/Ust-Nera
* `Asia/Vientiane` - Asia/Vientiane
* `Asia/Vladivostok` - Asia/Vladivostok
* `Asia/Yakutsk` - Asia/Yakutsk
* `Asia/Yangon` - Asia/Yangon
* `Asia/Yekaterinburg` - Asia/Yekaterinburg
* `Asia/Yerevan` - Asia/Yerevan
* `Atlantic/Azores` - Atlantic/Azores
* `Atlantic/Bermuda` - Atlantic/Bermuda
* `Atlantic/Canary` - Atlantic/Canary
* `Atlantic/Cape_Verde` - Atlantic/Cape_Verde
* `Atlantic/Faeroe` - Atlantic/Faeroe
* `Atlantic/Faroe` - Atlantic/Faroe
* `Atlantic/Jan_Mayen` - Atlantic/Jan_Mayen
* `Atlantic/Madeira` - Atlantic/Madeira
* `Atlantic/Reykjavik` - Atlantic/Reykjavik
* `Atlantic/South_Georgia` - Atlantic/South_Georgia
* `Atlantic/St_Helena` - Atlantic/St_Helena
* `Atlantic/Stanley` - Atlantic/Stanley
* `Australia/ACT` - Australia/ACT
* `Australia/Adelaide` - Australia/Adelaide
* `Australia/Brisbane` - Australia/Brisbane
* `Australia/Broken_Hill` - Australia/Broken_Hill
* `Australia/Canberra` - Australia/Canberra
* `Australia/Currie` - Australia/Currie
* `Australia/Darwin` - Australia/Darwin
* `Australia/Eucla` - Australia/Eucla
* `Australia/Hobart` - Australia/Hobart
* `Australia/LHI` - Australia/LHI
* `Australia/Lindeman` - Australia/Lindeman
* `Australia/Lord_Howe` - Australia/Lord_Howe
* `Australia/Melbourne` - Australia/Melbourne
* `Australia/NSW` - Australia/NSW
* `Australia/North` - Australia/North
* `Australia/Perth` - Australia/Perth
* `Australia/Queensland` - Australia/Queensland
* `Australia/South` - Australia/South
* `Australia/Sydney` - Australia/Sydney
* `Australia/Tasmania` - Australia/Tasmania
* `Australia/Victoria` - Australia/Victoria
* `Australia/West` - Australia/West
* `Australia/Yancowinna` - Australia/Yancowinna
* `Brazil/Acre` - Brazil/Acre
* `Brazil/DeNoronha` - Brazil/DeNoronha
* `Brazil/East` - Brazil/East
* `Brazil/West` - Brazil/West
* `CET` - CET
* `CST6CDT` - CST6CDT
* `Canada/Atlantic` - Canada/Atlantic
* `Canada/Central` - Canada/Central
* `Canada/Eastern` - Canada/Eastern
* `Canada/Mountain` - Canada/Mountain
* `Canada/Newfoundland` - Canada/Newfoundland
* `Canada/Pacific` - Canada/Pacific
* `Canada/Saskatchewan` - Canada/Saskatchewan
* `Canada/Yukon` - Canada/Yukon
* `Chile/Continental` - Chile/Continental
* `Chile/EasterIsland` - Chile/EasterIsland
* `Cuba` - Cuba
* `EET` - EET
* `EST` - EST
* `EST5EDT` - EST5EDT
* `Egypt` - Egypt
* `Eire` - Eire
* `Etc/GMT` - Etc/GMT
* `Etc/GMT+0` - Etc/GMT+0
* `Etc/GMT+1` - Etc/GMT+1
* `Etc/GMT+10` - Etc/GMT+10
* `Etc/GMT+11` - Etc/GMT+11
* `Etc/GMT+12` - Etc/GMT+12
* `Etc/GMT+2` - Etc/GMT+2
* `Etc/GMT+3` - Etc/GMT+3
* `Etc/GMT+4` - Etc/GMT+4
* `Etc/GMT+5` - Etc/GMT+5
* `Etc/GMT+6` - Etc/GMT+6
* `Etc/GMT+7` - Etc/GMT+7
* `Etc/GMT+8` - Etc/GMT+8
* `Etc/GMT+9` - Etc/GMT+9
* `Etc/GMT-0` - Etc/GMT-0
* `Etc/GMT-1` - Etc/GMT-1
* `Etc/GMT-10` - Etc/GMT-10
* `Etc/GMT-11` - Etc/GMT-11
* `Etc/GMT-12` - Etc/GMT-12
* `Etc/GMT-13` - Etc/GMT-13
* `Etc/GMT-14` - Etc/GMT-14
* `Etc/GMT-2` - Etc/GMT-2
* `Etc/GMT-3` - Etc/GMT-3
* `Etc/GMT-4` - Etc/GMT-4
* `Etc/GMT-5` - Etc/GMT-5
* `Etc/GMT-6` - Etc/GMT-6
* `Etc/GMT-7` - Etc/GMT-7
* `Etc/GMT-8` - Etc/GMT-8
* `Etc/GMT-9` - Etc/GMT-9
* `Etc/GMT0` - Etc/GMT0
* `Etc/Greenwich` - Etc/Greenwich
* `Etc/UCT` - Etc/UCT
* `Etc/UTC` - Etc/UTC
* `Etc/Universal` - Etc/Universal
* `Etc/Zulu` - Etc/Zulu
* `Europe/Amsterdam` - Europe/Amsterdam
* `Europe/Andorra` - Europe/Andorra
* `Europe/Astrakhan` - Europe/Astrakhan
* `Europe/Athens` - Europe/Athens
* `Europe/Belfast` - Europe/Belfast
* `Europe/Belgrade` - Europe/Belgrade
* `Europe/Berlin` - Europe/Berlin
* `Europe/Bratislava` - Europe/Bratislava
* `Europe/Brussels` - Europe/Brussels
* `Europe/Bucharest` - Europe/Bucharest
* `Europe/Budapest` - Europe/Budapest
* `Europe/Busingen` - Europe/Busingen
* `Europe/Chisinau` - Europe/Chisinau
* `Europe/Copenhagen` - Europe/Copenhagen
* `Europe/Dublin` - Europe/Dublin
* `Europe/Gibraltar` - Europe/Gibraltar
* `Europe/Guernsey` - Europe/Guernsey
* `Europe/Helsinki` - Europe/Helsinki
* `Europe/Isle_of_Man` - Europe/Isle_of_Man
* `Europe/Istanbul` - Europe/Istanbul
* `Europe/Jersey` - Europe/Jersey
* `Europe/Kaliningrad` - Europe/Kaliningrad
* `Europe/Kiev` - Europe/Kiev
* `Europe/Kirov` - Europe/Kirov
* `Europe/Kyiv` - Europe/Kyiv
* `Europe/Lisbon` - Europe/Lisbon
* `Europe/Ljubljana` - Europe/Ljubljana
* `Europe/London` - Europe/London
* `Europe/Luxembourg` - Europe/Luxembourg
* `Europe/Madrid` - Europe/Madrid
* `Europe/Malta` - Europe/Malta
* `Europe/Mariehamn` - Europe/Mariehamn
* `Europe/Minsk` - Europe/Minsk
* `Europe/Monaco` - Europe/Monaco
* `Europe/Moscow` - Europe/Moscow
* `Europe/Nicosia` - Europe/Nicosia
* `Europe/Oslo` - Europe/Oslo
* `Europe/Paris` - Europe/Paris
* `Europe/Podgorica` - Europe/Podgorica
* `Europe/Prague` - Europe/Prague
* `Europe/Riga` - Europe/Riga
* `Europe/Rome` - Europe/Rome
* `Europe/Samara` - Europe/Samara
* `Europe/San_Marino` - Europe/San_Marino
* `Europe/Sarajevo` - Europe/Sarajevo
* `Europe/Saratov` - Europe/Saratov
* `Europe/Simferopol` - Europe/Simferopol
* `Europe/Skopje` - Europe/Skopje
* `Europe/Sofia` - Europe/Sofia
* `Europe/Stockholm` - Europe/Stockholm
* `Europe/Tallinn` - Europe/Tallinn
* `Europe/Tirane` - Europe/Tirane
* `Europe/Tiraspol` - Europe/Tiraspol
* `Europe/Ulyanovsk` - Europe/Ulyanovsk
* `Europe/Uzhgorod` - Europe/Uzhgorod
* `Europe/Vaduz` - Europe/Vaduz
* `Europe/Vatican` - Europe/Vatican
* `Europe/Vienna` - Europe/Vienna
* `Europe/Vilnius` - Europe/Vilnius
* `Europe/Volgograd` - Europe/Volgograd
* `Europe/Warsaw` - Europe/Warsaw
* `Europe/Zagreb` - Europe/Zagreb
* `Europe/Zaporozhye` - Europe/Zaporozhye
* `Europe/Zurich` - Europe/Zurich
* `GB` - GB
* `GB-Eire` - GB-Eire
* `GMT` - GMT
* `GMT+0` - GMT+0
* `GMT-0` - GMT-0
* `GMT0` - GMT0
* `Greenwich` - Greenwich
* `HST` - HST
* `Hongkong` - Hongkong
* `Iceland` - Iceland
* `Indian/Antananarivo` - Indian/Antananarivo
* `Indian/Chagos` - Indian/Chagos
* `Indian/Christmas` - Indian/Christmas
* `Indian/Cocos` - Indian/Cocos
* `Indian/Comoro` - Indian/Comoro
* `Indian/Kerguelen` - Indian/Kerguelen
* `Indian/Mahe` - Indian/Mahe
* `Indian/Maldives` - Indian/Maldives
* `Indian/Mauritius` - Indian/Mauritius
* `Indian/Mayotte` - Indian/Mayotte
* `Indian/Reunion` - Indian/Reunion
* `Iran` - Iran
* `Israel` - Israel
* `Jamaica` - Jamaica
* `Japan` - Japan
* `Kwajalein` - Kwajalein
* `Libya` - Libya
* `MET` - MET
* `MST` - MST
* `MST7MDT` - MST7MDT
* `Mexico/BajaNorte` - Mexico/BajaNorte
* `Mexico/BajaSur` - Mexico/BajaSur
* `Mexico/General` - Mexico/General
* `NZ` - NZ
* `NZ-CHAT` - NZ-CHAT
* `Navajo` - Navajo
* `PRC` - PRC
* `PST8PDT` - PST8PDT
* `Pacific/Apia` - Pacific/Apia
* `Pacific/Auckland` - Pacific/Auckland
* `Pacific/Bougainville` - Pacific/Bougainville
* `Pacific/Chatham` - Pacific/Chatham
* `Pacific/Chuuk` - Pacific/Chuuk
* `Pacific/Easter` - Pacific/Easter
* `Pacific/Efate` - Pacific/Efate
* `Pacific/Enderbury` - Pacific/Enderbury
* `Pacific/Fakaofo` - Pacific/Fakaofo
* `Pacific/Fiji` - Pacific/Fiji
* `Pacific/Funafuti` - Pacific/Funafuti
* `Pacific/Galapagos` - Pacific/Galapagos
* `Pacific/Gambier` - Pacific/Gambier
* `Pacific/Guadalcanal` - Pacific/Guadalcanal
* `Pacific/Guam` - Pacific/Guam
* `Pacific/Honolulu` - Pacific/Honolulu
* `Pacific/Johnston` - Pacific/Johnston
* `Pacific/Kanton` - Pacific/Kanton
* `Pacific/Kiritimati` - Pacific/Kiritimati
* `Pacific/Kosrae` - Pacific/Kosrae
* `Pacific/Kwajalein` - Pacific/Kwajalein
* `Pacific/Majuro` - Pacific/Majuro
* `Pacific/Marquesas` - Pacific/Marquesas
* `Pacific/Midway` - Pacific/Midway
* `Pacific/Nauru` - Pacific/Nauru
* `Pacific/Niue` - Pacific/Niue
* `Pacific/Norfolk` - Pacific/Norfolk
* `Pacific/Noumea` - Pacific/Noumea
* `Pacific/Pago_Pago` - Pacific/Pago_Pago
* `Pacific/Palau` - Pacific/Palau
* `Pacific/Pitcairn` - Pacific/Pitcairn
* `Pacific/Pohnpei` - Pacific/Pohnpei
* `Pacific/Ponape` - Pacific/Ponape
* `Pacific/Port_Moresby` - Pacific/Port_Moresby
* `Pacific/Rarotonga` - Pacific/Rarotonga
* `Pacific/Saipan` - Pacific/Saipan
* `Pacific/Samoa` - Pacific/Samoa
* `Pacific/Tahiti` - Pacific/Tahiti
* `Pacific/Tarawa` - Pacific/Tarawa
* `Pacific/Tongatapu` - Pacific/Tongatapu
* `Pacific/Truk` - Pacific/Truk
* `Pacific/Wake` - Pacific/Wake
* `Pacific/Wallis` - Pacific/Wallis
* `Pacific/Yap` - Pacific/Yap
* `Poland` - Poland
* `Portugal` - Portugal
* `ROC` - ROC
* `ROK` - ROK
* `Singapore` - Singapore
* `Turkey` - Turkey
* `UCT` - UCT
* `US/Alaska` - US/Alaska
* `US/Aleutian` - US/Aleutian
* `US/Arizona` - US/Arizona
* `US/Central` - US/Central
* `US/East-Indiana` - US/East-Indiana
* `US/Eastern` - US/Eastern
* `US/Hawaii` - US/Hawaii
* `US/Indiana-Starke` - US/Indiana-Starke
* `US/Michigan` - US/Michigan
* `US/Mountain` - US/Mountain
* `US/Pacific` - US/Pacific
* `US/Samoa` - US/Samoa
* `UTC` - UTC
* `Universal` - Universal
* `W-SU` - W-SU
* `WET` - WET
* `Zulu` - Zulu

# components.schemas.BatchExport.properties.offset_day.description
Day-of-week offset for weekly intervals (0=Sunday, 6=Saturday). Only valid when interval is 'week'.

# components.schemas.BatchExport.properties.offset_hour.description
Hour-of-day offset (0-23) for daily and weekly intervals. Only valid when interval is 'day' or 'week'.

# components.schemas.BatchExportBackfill.properties.status.description
The status of this backfill.

* `Cancelled` - Cancelled
* `Completed` - Completed
* `ContinuedAsNew` - Continued As New
* `Failed` - Failed
* `FailedRetryable` - Failed Retryable
* `Terminated` - Terminated
* `TimedOut` - Timedout
* `Running` - Running
* `Starting` - Starting

# components.schemas.BatchExportBackfill.properties.created_at.description
The timestamp at which this BatchExportBackfill was created.

# components.schemas.BatchExportBackfill.properties.finished_at.description
The timestamp at which this BatchExportBackfill finished, successfully or not.

# components.schemas.BatchExportBackfill.properties.last_updated_at.description
The timestamp at which this BatchExportBackfill was last updated.

# components.schemas.BatchExportBackfill.properties.total_records_count.description
The total number of records to export. Initially estimated, updated with actual count after completion.

# components.schemas.BatchExportBackfill.properties.adjusted_start_at.description
The actual start time after adjustment for earliest available data. May differ from start_at if user requested a date before data exists.

# components.schemas.BatchExportBackfill.properties.batch_export.description
The BatchExport this backfill belongs to.

# components.schemas.BatchExportBackfillStatusEnum.description
* `Cancelled` - Cancelled
* `Completed` - Completed
* `ContinuedAsNew` - Continued As New
* `Failed` - Failed
* `FailedRetryable` - Failed Retryable
* `Terminated` - Terminated
* `TimedOut` - Timedout
* `Running` - Running
* `Starting` - Starting

# components.schemas.BatchExportDestination.description
Serializer for an BatchExportDestination model.

The `config` field is polymorphic and typed only for destinations that keep
credentials in the linked Integration (currently Databricks, AzureBlob, BigQuery).
Other destination types accept the same JSON shape but without a typed
OpenAPI schema. Secret fields are stripped from `config` on read.

# components.schemas.BatchExportDestination.properties.type.description
A choice of supported BatchExportDestination types.

* `S3` - S3
* `AwsS3` - Aws S3
* `S3Compatible` - S3 Compatible
* `Snowflake` - Snowflake
* `Postgres` - Postgres
* `Redshift` - Redshift
* `BigQuery` - Bigquery
* `Databricks` - Databricks
* `AzureBlob` - Azure Blob
* `Workflows` - Workflows
* `HTTP` - Http
* `NoOp` - Noop
* `FileDownload` - File Download

# components.schemas.BatchExportDestination.properties.config.description
Destination-specific configuration. Fields depend on `type`. Credentials for integration-backed destinations (Databricks, AzureBlob, BigQuery) are NOT stored here — they live in the linked Integration. Secret fields are stripped from responses.

# components.schemas.BatchExportDestination.properties.integration_id.description
ID of a team-scoped Integration providing credentials. Required for Databricks, AzureBlob, and BigQuery destinations; unused for other types.

# components.schemas.BatchExportDestinationTypeEnum.description
* `S3` - S3
* `AwsS3` - Aws S3
* `S3Compatible` - S3 Compatible
* `Snowflake` - Snowflake
* `Postgres` - Postgres
* `Redshift` - Redshift
* `BigQuery` - Bigquery
* `Databricks` - Databricks
* `AzureBlob` - Azure Blob
* `Workflows` - Workflows
* `HTTP` - Http
* `NoOp` - Noop
* `FileDownload` - File Download

# components.schemas.BatchExportRequest.description
Request body for create/partial_update on BatchExportViewSet.

Mirrors the writeable fields of `BatchExportSerializer` but uses a polymorphic
`destination` schema so integration_id is marked required on the types that need
it. Responses continue to use `BatchExportSerializer`.

# components.schemas.BatchExportRequest.properties.name.description
Human-readable name for the batch export.

# components.schemas.BatchExportRequest.properties.model.description
Which data model to export (events, persons, sessions).

* `events` - Events
* `persons` - Persons
* `sessions` - Sessions

# components.schemas.BatchExportRequest.properties.destination.description
Destination configuration. Required integration_id is enforced per destination type.

# components.schemas.BatchExportRequest.properties.interval.description
How often the batch export should run.

* `hour` - hour
* `day` - day
* `week` - week
* `every 5 minutes` - every 5 minutes
* `every 15 minutes` - every 15 minutes

# components.schemas.BatchExportRequest.properties.hogql_query.description
Optional HogQL SELECT defining a custom model schema. Only recommended in advanced use cases.

# components.schemas.BatchExportRequest.properties.timezone.description
IANA timezone name (e.g. 'America/New_York', 'Europe/London', 'UTC') controlling daily and weekly interval boundaries.

# components.schemas.BatchExportRequest.properties.offset_day.description
Day-of-week offset for weekly intervals (0=Sunday, 6=Saturday).

# components.schemas.BatchExportRequest.properties.offset_hour.description
Hour-of-day offset (0-23) for daily and weekly intervals.

# components.schemas.BatchExportRun.properties.status.description
The status of this run.

* `Cancelled` - Cancelled
* `Completed` - Completed
* `ContinuedAsNew` - Continued As New
* `Failed` - Failed
* `FailedRetryable` - Failed Retryable
* `FailedBilling` - Failed Billing
* `Terminated` - Terminated
* `TimedOut` - Timedout
* `Running` - Running
* `Starting` - Starting

# components.schemas.BatchExportRun.properties.records_completed.description
The number of records that have been exported.

# components.schemas.BatchExportRun.properties.records_failed.description
The number of records that failed downstream processing (e.g. hog function execution errors).

# components.schemas.BatchExportRun.properties.latest_error.description
The latest error that occurred during this run.

# components.schemas.BatchExportRun.properties.cursor.description
An opaque cursor that may be used to resume.

# components.schemas.BatchExportRun.properties.created_at.description
The timestamp at which this BatchExportRun was created.

# components.schemas.BatchExportRun.properties.finished_at.description
The timestamp at which this BatchExportRun finished, successfully or not.

# components.schemas.BatchExportRun.properties.last_updated_at.description
The timestamp at which this BatchExportRun was last updated.

# components.schemas.BatchExportRun.properties.records_total_count.description
The total count of records that should be exported in this BatchExportRun.

# components.schemas.BatchExportRun.properties.bytes_exported.description
The number of bytes that have been exported in this BatchExportRun.

# components.schemas.BatchExportRun.properties.batch_export_on_demand.description
The `BatchExportOnDemand` this run belongs to.

# components.schemas.BatchExportRunStatusEnum.description
* `Cancelled` - Cancelled
* `Completed` - Completed
* `ContinuedAsNew` - Continued As New
* `Failed` - Failed
* `FailedRetryable` - Failed Retryable
* `FailedBilling` - Failed Billing
* `Terminated` - Terminated
* `TimedOut` - Timedout
* `Running` - Running
* `Starting` - Starting

# components.schemas.BiasRisk.properties.multiple_variant_percentage.description
Observed share of users assigned to `$multiple`, as a percentage (0-100).

# components.schemas.BigQueryDestinationConfig.description
Typed configuration for a BigQuery batch-export destination.

Credentials live in the linked Integration, not in this config. Mirrors the
non-credential fields of `BigQueryBatchExportInputs` in
`products/batch_exports/backend/service.py`.

# components.schemas.BigQueryDestinationConfig.properties.use_json_type.description
Whether to export 'properties', 'set', and 'set_once' fields as the BigQuery JSON type rather than STRING. Cannot be changed after the export is created.

# components.schemas.BigQueryDestinationRequest.description
Request shape for creating or updating a BigQuery batch-export destination.

# components.schemas.BigQueryDestinationRequest.properties.integration_id.description
ID of a google-cloud-service-account-kind Integration. Use the integrations-list MCP tool to find one.

# components.schemas.BlastRadiusRequest.properties.group_type_index.description
Group type index for group-based targeting

# components.schemas.BreakdownSimulationResult.properties.sub_detector_scores.description
Per-sub-detector scores for ensemble detectors.

# components.schemas.BreakpointHit.description
Schema for a single breakpoint hit event

# components.schemas.BreakpointHit.properties.lineNumber.description
Line number where the breakpoint was hit

# components.schemas.BreakpointHit.properties.functionName.description
Name of the function where breakpoint was hit

# components.schemas.BreakpointHitsResponse.description
Response schema for breakpoint hits endpoint

# components.schemas.BreakpointHitsResponse.properties.has_more.description
Whether there are more results available

# components.schemas.BucketingIdentifierEnum.description
* `distinct_id` - User ID (default)
* `device_id` - Device ID

# components.schemas.BulkDeleteDeletedItem.properties.rollout_state.description
Rollout state captured before deletion.

* `fully_rolled_out` - fully_rolled_out
* `not_rolled_out` - not_rolled_out
* `partial` - partial

# components.schemas.BulkDeleteDeletedItem.properties.active_variant.description
Variant key when a multivariate flag was fully rolled out to a single variant; otherwise null.

# components.schemas.BulkDeleteErrorItem.properties.id.description
Feature flag ID — integer for valid inputs; the original raw value for invalid inputs.

# components.schemas.BulkDeleteErrorItem.properties.reason.description
Human-readable reason the flag could not be deleted.

# components.schemas.BulkDeleteFilters.description
Allowed filter keys for bulk_delete — same shape as the list endpoint's query params.

# components.schemas.BulkDeleteFilters.properties.active.description
Filter by active state.

* `true` - true
* `false` - false
* `STALE` - STALE

# components.schemas.BulkDeleteFilters.properties.created_by_id.description
Filter to flags created by a specific user ID.

# components.schemas.BulkDeleteFilters.properties.search.description
Search by feature flag key or name (case-insensitive).

# components.schemas.BulkDeleteFilters.properties.type.description
Filter by flag type.

* `boolean` - boolean
* `multivariant` - multivariant
* `experiment` - experiment
* `remote_config` - remote_config

# components.schemas.BulkDeleteFilters.properties.evaluation_runtime.description
Filter by evaluation runtime.

* `server` - Server
* `client` - Client
* `all` - All

# components.schemas.BulkDeleteFilters.properties.excluded_properties.description
JSON-encoded property filter to exclude. Same shape as the list endpoint.

# components.schemas.BulkDeleteFilters.properties.tags.description
Tag names to filter by. Flags carrying at least one of these tags match.

# components.schemas.BulkDeleteFilters.properties.has_evaluation_contexts.description
When true, only matches flags with at least one evaluation context.

# components.schemas.BulkDeleteFiltersTypeEnum.description
* `boolean` - boolean
* `multivariant` - multivariant
* `experiment` - experiment
* `remote_config` - remote_config

# components.schemas.BulkDeleteRequest.properties.filters.description
Filter criteria — same shape as the list endpoint's query params. Mutually exclusive with `ids`. Use this to bulk-delete by search/active/tags/etc. instead of supplying explicit IDs.

# components.schemas.BulkDeleteRequest.properties.ids.description
Explicit feature flag IDs to soft-delete. Mutually exclusive with `filters`.

# components.schemas.BulkDeleteResponse.description
Schema-only — referenced from ``@extend_schema(responses=...)`` to describe the wire format.
Never instantiate this for validation or call ``.is_valid()`` / ``.errors`` on it: the
declared ``errors`` field shadows DRF's inherited ``Serializer.errors`` ReturnDict property,
so accessing ``serializer.errors`` would return this field descriptor instead of validation
errors. The handler builds the response dict directly; this class exists only so drf-spectacular
can render the response in the OpenAPI spec and downstream generated clients.

# components.schemas.BulkDeleteResponse.properties.errors.description
Flags that could not be deleted, with reasons.

# components.schemas.BulkIntervieweeContextItem.properties.interviewee_identifier.description
Identifier for the interviewee — typically an email address or PostHog distinct ID. Must match a value in the parent topic's interviewee_emails or interviewee_distinct_ids.

# components.schemas.BulkIntervieweeContextItem.properties.agent_context.description
Extra context the voice agent should know about this specific interviewee — e.g. 'uses the replay product but has never used summarization'.

# components.schemas.BulkIntervieweeContextRequest.properties.items.description
List of interviewee context rows to create. Each item has an `interviewee_identifier` and an `agent_context`. At most 500 items per request.

# components.schemas.BulkIntervieweeContextResponse.properties.inserted_count.description
Number of rows inserted by this request.

# components.schemas.BulkIntervieweeContextResponse.properties.skipped_count.description
Number of items skipped because a row for that (topic, interviewee_identifier) already existed.

# components.schemas.BulkIntervieweeContextResponse.properties.skipped_identifiers.description
Identifiers from the request whose rows were skipped because a row for that (topic, interviewee_identifier) already existed.

# components.schemas.BulkKeysRequest.properties.ids.description
Feature flag IDs to look up keys for. Strings of digits are also accepted; any other value is reported in the response `warning` field and otherwise ignored.

# components.schemas.BulkKeysResponse.properties.keys.description
Mapping of feature flag ID (as a string) to flag key, for IDs that exist in this project.

# components.schemas.BulkKeysResponse.properties.warning.description
Present when some submitted IDs were not numeric and were ignored.

# components.schemas.BulkUpdateStatusRequest.properties.status.description
New status to apply to all selected tickets: new, open, pending, on_hold, or resolved.

* `new` - New
* `open` - Open
* `pending` - Pending
* `on_hold` - On hold
* `resolved` - Resolved

# components.schemas.BulkUpdateStatusResponse.properties.updated.description
Number of tickets whose status actually changed.

# components.schemas.BulkUpdateStatusResponse.properties.ids.description
UUIDs of the tickets whose status changed.

# components.schemas.BulkUpdateTagsRequest.properties.action.description
'add' merges with existing tags, 'remove' deletes specific tags, 'set' replaces all tags.

* `add` - add
* `remove` - remove
* `set` - set

# components.schemas.CIMDVerificationTokenWithValue.description
Create-response variant that includes the plaintext token.

Only emitted from the create endpoint - storage-side we only persist the
hash, so subsequent reads use the base serializer.

# components.schemas.CIMDVerificationTokenWithValue.properties.value.description
Plaintext token, only returned on creation

# components.schemas.COPODDetectorConfig.properties.threshold.description
Anomaly probability threshold (default: 0.9)

# components.schemas.COPODDetectorConfig.properties.window.description
Rolling window size — how many historical data points to train on (default: based on calculation interval)

# components.schemas.CalculationIntervalEnum.description
* `every_15_minutes` - every_15_minutes
* `hourly` - hourly
* `daily` - daily
* `weekly` - weekly
* `monthly` - monthly

# components.schemas.CalendarHeatmapFilter.properties.bucketBySessionStart.description
When true and the series math is `dau`/`unique_users`, each user contributes to the (day-of-week, hour) bucket of their session's first event only — matching the web overview session-start attribution. When false (default), the user contributes to every bucket they have any event in. No effect on `total` math (event counts are unchanged either way).

# components.schemas.CalendarHeatmapQuery.properties.calendarHeatmapFilter.description
Properties specific to the trends insight

# components.schemas.CalendarHeatmapQuery.properties.conversionGoal.description
Whether we should be comparing against a specific conversion goal

# components.schemas.CalendarHeatmapQuery.properties.dataColorTheme.description
Colors used in the insight's visualization

# components.schemas.CalendarHeatmapQuery.properties.filterTestAccounts.description
Exclude internal and test users by applying the respective filters

# components.schemas.CalendarHeatmapQuery.properties.interval.description
Granularity of the response. Can be one of `hour`, `day`, `week` or `month`

# components.schemas.CalendarHeatmapQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.CalendarHeatmapQuery.properties.tags.description
Tags that will be added to the Query log comment

# components.schemas.CalendarHeatmapQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.CalendarHeatmapResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.CalendarHeatmapResponse.properties.hasMore.description
Wether more breakdown values are available.

# components.schemas.CalendarHeatmapResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.CalendarHeatmapResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.CalendarHeatmapResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.CalendarHeatmapResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.CalendarHeatmapResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.CapabilityState.properties.state.description
Current state of the capability

* `needs_setup` - needs_setup
* `detected` - detected
* `waiting_for_data` - waiting_for_data
* `ready` - ready
* `not_applicable` - not_applicable
* `unknown` - unknown

# components.schemas.CapabilityState.properties.estimated.description
Whether the state is estimated from static analysis

# components.schemas.CapabilityStateStateEnum.description
* `needs_setup` - needs_setup
* `detected` - detected
* `waiting_for_data` - waiting_for_data
* `ready` - ready
* `not_applicable` - not_applicable
* `unknown` - unknown

# components.schemas.CategoricalScoreDefinitionConfig.properties.options.description
Ordered categorical options available to the scorer.

# components.schemas.CategoricalScoreDefinitionConfig.properties.selection_mode.description
Whether reviewers can select one option or multiple options. Defaults to `single`.

* `single` - single
* `multiple` - multiple

# components.schemas.CategoricalScoreDefinitionConfig.properties.min_selections.description
Optional minimum number of options that can be selected when `selection_mode` is `multiple`.

# components.schemas.CategoricalScoreDefinitionConfig.properties.max_selections.description
Optional maximum number of options that can be selected when `selection_mode` is `multiple`.

# components.schemas.CategoricalScoreOption.properties.key.description
Stable option key. Use lowercase letters, numbers, underscores, or hyphens.

# components.schemas.CategoryEnum.description
* `business` - Business Operations
* `data` - Data & Analytics
* `design` - Design & Content
* `dev` - Developer Tools & APIs
* `infra` - Infrastructure
* `productivity` - Productivity & Collaboration

# components.schemas.CdcTableModeEnum.description
* `consolidated` - consolidated
* `cdc_only` - cdc_only
* `both` - both

# components.schemas.ChangeRequest.properties.can_approve.description
Check if current user can approve this change request.

# components.schemas.ChangeRequest.properties.user_decision.description
Get the current user's approval decision if they have voted.

# components.schemas.ChangeRequestStateEnum.description
* `pending` - Pending
* `approved` - Approved (awaiting application)
* `applied` - Applied
* `rejected` - Rejected
* `expired` - Expired
* `failed` - Failed to apply

# components.schemas.ChannelDetailEnum.description
* `slack_channel_message` - Channel message
* `slack_bot_mention` - Bot mention
* `slack_emoji_reaction` - Emoji reaction
* `teams_channel_message` - Teams channel message
* `teams_bot_mention` - Teams bot mention
* `widget_embedded` - Widget
* `widget_api` - API
* `github_issue` - GitHub issue

# components.schemas.ChannelSourceEnum.description
* `widget` - Widget
* `email` - Email
* `slack` - Slack
* `teams` - Microsoft Teams
* `github` - GitHub

# components.schemas.ChartSettings.properties.resultCustomizations.description
Per-breakdown-value color customizations. Keyed by the raw breakdown column value.

# components.schemas.ChartSettings.properties.stackBars100.description
Whether we fill the bars to 100% in stacked mode

# components.schemas.ChartSettings.properties.yAxisAtZero.description
Deprecated: use `[left|right]YAxisSettings`. Whether the Y axis should start at zero

# components.schemas.ClassificationsEnum.description
* `abandoned` - Abandoned
* `off-topic` - Off-topic

# components.schemas.ClassifierStats.properties.fixed_ranked.description
Top fixed-vocabulary tags by emission count.

# components.schemas.ClassifierStats.properties.total_with_tags.description
Succeeded observations that emitted at least one tag.

# components.schemas.ClaudeTaskRunCreateSchema.description
Request body for creating a new task run

# components.schemas.ClaudeTaskRunCreateSchema.properties.mode.description
Execution mode: 'interactive' for user-connected runs, 'background' for autonomous runs

* `interactive` - interactive
* `background` - background

# components.schemas.ClaudeTaskRunCreateSchema.properties.resume_from_run_id.description
ID of a previous run to resume from. Must belong to the same task.

# components.schemas.ClaudeTaskRunCreateSchema.properties.pending_user_message.description
Initial or follow-up user message to include in the run prompt.

# components.schemas.ClaudeTaskRunCreateSchema.properties.pending_user_artifact_ids.description
Identifiers for staged task artifacts that should be attached to the initial run prompt.

# components.schemas.ClaudeTaskRunCreateSchema.properties.sandbox_environment_id.description
Optional sandbox environment to apply for this cloud run.

# components.schemas.ClaudeTaskRunCreateSchema.properties.pr_authorship_mode.description
Whether pull requests for this run should be authored by the user or the bot.

* `user` - user
* `bot` - bot

# components.schemas.ClaudeTaskRunCreateSchema.properties.run_source.description
High-level source that triggered this run, used to distinguish manual and signal-based cloud runs.

* `manual` - manual
* `signal_report` - signal_report

# components.schemas.ClaudeTaskRunCreateSchema.properties.signal_report_id.description
Optional signal report identifier when this run was started from Inbox.

# components.schemas.ClaudeTaskRunCreateSchema.properties.runtime_adapter.description
Agent runtime adapter to launch for this run. Must be 'claude' for Claude runtimes.

* `claude` - claude

# components.schemas.ClaudeTaskRunCreateSchema.properties.model.description
LLM model identifier to run in the Claude runtime.

# components.schemas.ClaudeTaskRunCreateSchema.properties.reasoning_effort.description
Reasoning effort to request for models that expose an effort control.

* `low` - low
* `medium` - medium
* `high` - high
* `xhigh` - xhigh
* `max` - max

# components.schemas.ClaudeTaskRunCreateSchema.properties.github_user_token.description
Optional GitHub user token from PostHog Code for user-authored cloud pull requests. Prefer linking GitHub from Settings → Linked accounts so the server can manage tokens; this field remains supported for callers that still manage their own tokens.

# components.schemas.ClaudeTaskRunCreateSchema.properties.initial_permission_mode.description
Initial permission mode for Claude runtimes.

* `default` - default
* `acceptEdits` - acceptEdits
* `plan` - plan
* `bypassPermissions` - bypassPermissions
* `auto` - auto

# components.schemas.ClaudeTaskRunCreateSchemaInitialPermissionModeEnum.description
* `default` - default
* `acceptEdits` - acceptEdits
* `plan` - plan
* `bypassPermissions` - bypassPermissions
* `auto` - auto

# components.schemas.ClusteringJobAnalysisLevelEnum.description
* `trace` - trace
* `generation` - generation
* `evaluation` - evaluation

# components.schemas.CodexTaskRunCreateSchema.description
Request body for creating a new task run

# components.schemas.CodexTaskRunCreateSchema.properties.mode.description
Execution mode: 'interactive' for user-connected runs, 'background' for autonomous runs

* `interactive` - interactive
* `background` - background

# components.schemas.CodexTaskRunCreateSchema.properties.resume_from_run_id.description
ID of a previous run to resume from. Must belong to the same task.

# components.schemas.CodexTaskRunCreateSchema.properties.pending_user_message.description
Initial or follow-up user message to include in the run prompt.

# components.schemas.CodexTaskRunCreateSchema.properties.pending_user_artifact_ids.description
Identifiers for staged task artifacts that should be attached to the initial run prompt.

# components.schemas.CodexTaskRunCreateSchema.properties.sandbox_environment_id.description
Optional sandbox environment to apply for this cloud run.

# components.schemas.CodexTaskRunCreateSchema.properties.pr_authorship_mode.description
Whether pull requests for this run should be authored by the user or the bot.

* `user` - user
* `bot` - bot

# components.schemas.CodexTaskRunCreateSchema.properties.run_source.description
High-level source that triggered this run, used to distinguish manual and signal-based cloud runs.

* `manual` - manual
* `signal_report` - signal_report

# components.schemas.CodexTaskRunCreateSchema.properties.signal_report_id.description
Optional signal report identifier when this run was started from Inbox.

# components.schemas.CodexTaskRunCreateSchema.properties.runtime_adapter.description
Agent runtime adapter to launch for this run. Must be 'codex' for Codex runtimes.

* `codex` - codex

# components.schemas.CodexTaskRunCreateSchema.properties.model.description
LLM model identifier to run in the Codex runtime.

# components.schemas.CodexTaskRunCreateSchema.properties.reasoning_effort.description
Reasoning effort to request for models that expose an effort control.

* `low` - low
* `medium` - medium
* `high` - high
* `xhigh` - xhigh
* `max` - max

# components.schemas.CodexTaskRunCreateSchema.properties.github_user_token.description
Optional GitHub user token from PostHog Code for user-authored cloud pull requests. Prefer linking GitHub from Settings → Linked accounts so the server can manage tokens; this field remains supported for callers that still manage their own tokens.

# components.schemas.CodexTaskRunCreateSchema.properties.initial_permission_mode.description
Initial permission mode for Codex runtimes.

* `auto` - auto
* `read-only` - read-only
* `full-access` - full-access

# components.schemas.CodexTaskRunCreateSchemaInitialPermissionModeEnum.description
* `auto` - auto
* `read-only` - read-only
* `full-access` - full-access

# components.schemas.Cohort.properties.cohort_type.description
Type of cohort based on filter complexity

* `static` - static
* `person_property` - person_property
* `behavioral` - behavioral
* `realtime` - realtime
* `analytical` - analytical

# components.schemas.CohortFilterGroup.description
AND/OR group containing cohort filters. Named to avoid collision with analytics Group model.

# components.schemas.CohortTypeEnum.description
* `static` - static
* `person_property` - person_property
* `behavioral` - behavioral
* `realtime` - realtime
* `analytical` - analytical

# components.schemas.Comment.properties.is_task.description
Whether this comment is an actionable task that can be marked complete. Tasks render with a checkbox in the UI and can be filtered as a separate kind. Cannot be set on replies (source_comment) or emoji reactions. Immutable after creation.

# components.schemas.Comment.properties.completed_by.description
The user who marked this task complete. Null for open tasks and non-task comments.

# components.schemas.Comment.properties.completed_at.description
ISO timestamp when the task was marked complete. Only meaningful when is_task is true. Read-only — toggled via the /complete and /reopen actions, not via PATCH.

# components.schemas.CompareFilter.properties.compare.description
Whether to compare the current date range to a previous date range.

# components.schemas.CompareFilter.properties.compare_to.description
The date range to compare to. The value is a relative date. Examples of relative dates are: `-1y` for 1 year ago, `-14m` for 14 months ago, `-100w` for 100 weeks ago, `-14d` for 14 days ago, `-30h` for 30 hours ago.

# components.schemas.ComposeTicket.properties.recipient_distinct_id.description
PostHog distinct_id to link the ticket to a person. Falls back to recipient_email.

# components.schemas.ComposeTicket.properties.rich_content.description
TipTap rich content JSON for formatted messages.

# components.schemas.CompressionEnum.description
* `brotli` - brotli
* `gzip` - gzip
* `lz4` - lz4
* `snappy` - snappy
* `zstd` - zstd

# components.schemas.ConclusionEnum.description
* `won` - won
* `lost` - lost
* `inconclusive` - inconclusive
* `stopped_early` - stopped_early
* `invalid` - invalid

# components.schemas.ConnectionTokenResponse.description
Response containing a JWT token for direct sandbox connection

# components.schemas.ConnectionTokenResponse.properties.token.description
JWT token for authenticating with the sandbox

# components.schemas.Conversation.properties.is_internal.description
Whether this conversation was created during an impersonated session (e.g., by support agents). Internal conversations are hidden from customers.

# components.schemas.Conversation.properties.slack_workspace_domain.description
Slack workspace subdomain (e.g. 'posthog' for posthog.slack.com)

# components.schemas.Conversation.properties.pending_approvals.description
Return pending approval cards as structured data.

Combines metadata from conversation.approval_decisions with payload from checkpoint
interrupts (single source of truth for payload data).

# components.schemas.ConversationMinimal.properties.is_internal.description
Whether this conversation was created during an impersonated session (e.g., by support agents). Internal conversations are hidden from customers.

# components.schemas.ConversationMinimal.properties.slack_workspace_domain.description
Slack workspace subdomain (e.g. 'posthog' for posthog.slack.com)

# components.schemas.ConversationStatus.description
* `idle` - Idle
* `in_progress` - In progress
* `canceling` - Canceling

# components.schemas.ConversationType.description
* `assistant` - Assistant
* `tool_call` - Tool call
* `deep_research` - Deep research
* `slack` - Slack

# components.schemas.ConversionGoalFilter1.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.ConversionGoalFilter1.properties.properties.description
Properties configurable in the interface

# components.schemas.ConversionGoalFilter1.properties.version.description
version of the node, used for schema migrations

# components.schemas.ConversionGoalFilter2.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.ConversionGoalFilter2.properties.properties.description
Properties configurable in the interface

# components.schemas.ConversionGoalFilter2.properties.version.description
version of the node, used for schema migrations

# components.schemas.ConversionGoalFilter3.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.ConversionGoalFilter3.properties.properties.description
Properties configurable in the interface

# components.schemas.ConversionGoalFilter3.properties.version.description
version of the node, used for schema migrations

# components.schemas.CookielessServerHashModeEnum.description
* `0` - Disabled
* `1` - Stateless
* `2` - Stateful

# components.schemas.CopyDashboardTemplate.properties.source_template_id.description
UUID of a team-scoped template in the same organization. Global and feature-flag templates cannot be copied with this endpoint.

# components.schemas.CopyDashboardTileRequest.properties.fromDashboardId.description
Dashboard id the tile currently belongs to.

# components.schemas.CopyExperimentToProject.properties.feature_flag_key.description
Optional feature flag key to use in the destination team.

# components.schemas.CopyExperimentToProject.properties.name.description
Optional name for the copied experiment.

# components.schemas.CoverageStats.properties.recent_sessions.description
Distinct sessions observed within the last `recent_days` days.

# components.schemas.CoverageStats.properties.recent_days.description
Window size in days used for `recent_sessions`.

# components.schemas.CrawlModeEnum.description
* `single` - Single page
* `sitemap` - Sitemap
* `same_origin` - Same origin crawl
* `github_repo` - GitHub repository

# components.schemas.CreateFromPromptInput.properties.prompt_name.description
The name of the LLM prompt to experiment on. Must already exist for this team.

# components.schemas.CreateFromPromptInput.properties.versions.description
Ordered list of prompt version numbers to assign to experiment variants. The first entry is the control variant. Must contain between 2 and 10 distinct versions.

# components.schemas.CreateFromPromptInput.properties.templates.description
One or more metric templates to attach as primary metrics. Each template becomes one metric on the experiment. Allowed values: cost, latency, eval_pass_rate.

# components.schemas.CreateFromPromptInput.properties.name.description
Optional experiment name. If omitted, a name is generated from the prompt and versions.

# components.schemas.CreateFromPromptInput.properties.feature_flag_key.description
Optional feature flag key. If omitted, a slug is derived from the experiment name.

# components.schemas.CreateLegalDocument.description
Input serializer for POST. Mirrors the submittable fields on the model plus
cross-field rules (BAA addon, DPA mode, uniqueness). The view supplies the
organization and submitting user.

# components.schemas.CreateLegalDocument.properties.document_type.description
Either 'BAA' or 'DPA'.

* `BAA` - BAA
* `DPA` - DPA

# components.schemas.CreateLegalDocument.properties.company_name.description
The customer legal entity entering the agreement (PandaDoc's Client.Company).

# components.schemas.CreateLegalDocument.properties.representative_email.description
Email the signed PandaDoc envelope is sent to (PandaDoc's Client.Email).

# components.schemas.CreateRecordingRequest.description
Request body for creating a new recording

# components.schemas.CreateRecordingRequest.properties.platform.description
Meeting platform being recorded

* `zoom` - zoom
* `teams` - teams
* `meet` - meet
* `desktop_audio` - desktop_audio
* `slack` - slack

# components.schemas.CreateRecordingRequestPlatformEnum.description
* `zoom` - zoom
* `teams` - teams
* `meet` - meet
* `desktop_audio` - desktop_audio
* `slack` - slack

# components.schemas.CreateRecordingResponse.description
Response for creating a new recording (includes upload_token)

# components.schemas.CreateRecordingResponse.properties.upload_token.description
Recall.ai upload token for the desktop SDK

# components.schemas.CreateTextSource.properties.name.description
Short human label for the source. Shown in the settings list and in agent citations.

# components.schemas.CreateTextSource.properties.text.description
Raw text to index. Capped at 1 MB; larger payloads should be split into multiple sources or wait for URL/file support in Stage 2/3.

# components.schemas.CreateTextTileRequest.properties.body.description
Markdown body for the text tile. Supports headings, lists, and inline formatting. Useful as a dashboard section heading, divider, or annotation between insights. Max 4000 characters.

# components.schemas.CreateTextTileRequest.properties.layouts.description
Optional grid layout per breakpoint. If omitted, the tile is placed at the bottom of the dashboard using the default size. Text tiles typically use a thin full-width banner (e.g. w=12, h=1).

# components.schemas.CreateTextTileRequest.properties.color.description
Optional accent color name (e.g. 'blue', 'green', 'purple', 'black').

# components.schemas.CreatedViaEnum.description
* `web` - web
* `api` - api
* `mcp` - mcp

# components.schemas.CreationModeEnum.description
* `default` - Default
* `template` - Template
* `duplicate` - Duplicate
* `unlisted` - Unlisted (product-embedded)

# components.schemas.CustomerProfileConfigScopeEnum.description
* `person` - Person
* `group_0` - Group 0
* `group_1` - Group 1
* `group_2` - Group 2
* `group_3` - Group 3
* `group_4` - Group 4

# components.schemas.Dashboard.description
Serializer mixin that handles tags for objects.

# components.schemas.Dashboard.properties.breakdown_colors.description
Custom color mapping for breakdown values.

# components.schemas.Dashboard.properties.data_color_theme_id.description
ID of the color theme used for chart visualizations.

# components.schemas.Dashboard.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.Dashboard.properties.quick_filter_ids.description
List of quick filter IDs associated with this dashboard

# components.schemas.Dashboard.properties.use_template.description
Template key to create the dashboard from a predefined template.

# components.schemas.Dashboard.properties.use_dashboard.description
ID of an existing dashboard to duplicate.

# components.schemas.Dashboard.properties.delete_insights.description
When deleting, also delete insights that are only on this dashboard.

# components.schemas.DashboardBasic.description
Serializer mixin that handles tags for objects.

# components.schemas.DashboardBasic.properties.pinned.description
Whether the dashboard is pinned to the top of the list.

# components.schemas.DashboardBasic.properties.restriction_level.description
Controls who can edit the dashboard.

* `21` - Everyone in the project can edit
* `37` - Only those invited to this dashboard can edit

# components.schemas.DashboardBasic.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.DashboardTemplate.properties.is_featured.description
Manually curated; used to highlight templates in the UI.

# components.schemas.DashboardTemplateScopeEnum.description
* `team` - Only team
* `global` - Global
* `feature_flag` - Feature Flag

# components.schemas.DashboardTileResult.description
DashboardTileSerializer restricted to tile id + insight result fields.

# components.schemas.DashboardWidget.properties.widget_type.description
Widget type identifier from the dashboard widget catalog.

# components.schemas.DashboardWidget.properties.name.description
Optional custom display name for this widget tile. Falls back to the widget catalog label when unset.

# components.schemas.DashboardWidget.properties.description.description
Optional markdown description shown on the dashboard tile when enabled.

# components.schemas.DashboardWidget.properties.config.description
Widget-specific configuration JSON for this widget type.

# components.schemas.DashboardWidgetRunResult.properties.tile_id.description
Dashboard tile ID for this widget result.

# components.schemas.DashboardWidgetRunResult.properties.widget_type.description
Widget type identifier, or null when the tile was not found.

# components.schemas.DashboardWidgetRunResult.properties.error.description
Error message when the widget could not be run.

# components.schemas.DataModelingJobStatusEnum.description
* `Cancelled` - Cancelled
* `Completed` - Completed
* `Failed` - Failed
* `Running` - Running

# components.schemas.DataTableNode.properties.allowSorting.description
Can the user click on column headers to sort the table? (default: true)

# components.schemas.DataTableNode.properties.columns.description
Columns shown in the table, unless the `source` provides them.

# components.schemas.DataTableNode.properties.context.description
Context for the table, used by components like ColumnConfigurator

# components.schemas.DataTableNode.properties.contextKey.description
Context key for universal column configuration (e.g., "survey:123")

# components.schemas.DataTableNode.properties.defaultColumns.description
Default columns to use when resetting column configuration

# components.schemas.DataTableNode.properties.expandable.description
Can expand row to show raw event data (default: true)

# components.schemas.DataTableNode.properties.full.description
Show with most visual options enabled. Used in scenes.

# components.schemas.DataTableNode.properties.hiddenColumns.description
Columns that aren't shown in the table, even if in columns or returned data

# components.schemas.DataTableNode.properties.pinnedColumns.description
Columns that are sticky when scrolling horizontally

# components.schemas.DataTableNode.properties.propertiesViaUrl.description
Link properties via the URL (default: false)

# components.schemas.DataTableNode.properties.showAbsoluteTime.description
Render date-time columns (timestamp, created_at, last_seen, last_seen_at, session_start, session_end) as absolute date+time instead of relative ("X ago"). The toggle is exposed in the column header menu only on EventsQuery / ActorsQuery sources.

# components.schemas.DataTableNode.properties.showActions.description
Show the kebab menu at the end of the row

# components.schemas.DataTableNode.properties.showColumnConfigurator.description
Show a button to configure the table's columns if possible

# components.schemas.DataTableNode.properties.showCount.description
Show count of total and filtered results

# components.schemas.DataTableNode.properties.showEventFilter.description
Include an event filter above the table (EventsNode only)

# components.schemas.DataTableNode.properties.showEventsFilter.description
Include an events filter above the table to filter by multiple events (EventsQuery only)

# components.schemas.DataTableNode.properties.showHogQLEditor.description
Include a HogQL query editor above HogQL tables

# components.schemas.DataTableNode.properties.showOpenEditorButton.description
Show a button to open the current query as a new insight. (default: true)

# components.schemas.DataTableNode.properties.showPersistentColumnConfigurator.description
Show a button to configure and persist the table's default columns if possible

# components.schemas.DataTableNode.properties.showPropertyFilter.description
Include a property filter above the table

# components.schemas.DataTableNode.properties.showRecordingColumn.description
Show a recording column for events with session recordings

# components.schemas.DataTableNode.properties.showSavedFilters.description
Show saved filters feature for this table (requires uniqueKey)

# components.schemas.DataTableNode.properties.showSearch.description
Include a free text search field (PersonsNode only)

# components.schemas.DataTableNode.properties.showSourceQueryOptions.description
Show actors query options and back to source

# components.schemas.DataTableNode.properties.showTableViews.description
Show table views feature for this table (requires uniqueKey)

# components.schemas.DataTableNode.properties.version.description
version of the node, used for schema migrations

# components.schemas.DataVisualizationNode.properties.version.description
version of the node, used for schema migrations

# components.schemas.DataWarehouseNode.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.DataWarehouseNode.properties.properties.description
Properties configurable in the interface

# components.schemas.DataWarehouseNode.properties.version.description
version of the node, used for schema migrations

# components.schemas.DataWarehouseSavedQuery.description
Shared methods for DataWarehouseSavedQuery serializers.

This mixin is intended to be used with serializers.ModelSerializer subclasses.

# components.schemas.DataWarehouseSavedQuery.properties.name.description
Unique name for the view. Used as the table name in HogQL queries and the node name in the data modeling Node.

# components.schemas.DataWarehouseSavedQuery.properties.query.description
HogQL query definition as a JSON object with a "query" key containing the SQL string and a "kind" key (always "HogQLQuery"). Format the SQL string multi-line with indentation and inline `--` comments for non-obvious logic — the SQL editor renders it verbatim, so avoid minified single-line SQL. Example: {"kind": "HogQLQuery", "query": "SELECT\n    event,\n    count() AS cnt\nFROM events\nGROUP BY event\nLIMIT 100"}

# components.schemas.DataWarehouseSavedQuery.properties.status.description
The status of when this SavedQuery last ran.

* `Cancelled` - Cancelled
* `Modified` - Modified
* `Completed` - Completed
* `Failed` - Failed
* `Running` - Running

# components.schemas.DataWarehouseSavedQuery.properties.folder_id.description
Optional folder ID used to organize this view in the SQL editor sidebar.

# components.schemas.DataWarehouseSavedQuery.properties.folder_name.description
Folder name used to organize this view in the SQL editor sidebar.

# components.schemas.DataWarehouseSavedQuery.properties.edited_history_id.description
Activity log ID from the last known edit. Used for conflict detection.

# components.schemas.DataWarehouseSavedQuery.properties.soft_update.description
If true, skip column inference and validation. For saving drafts.

# components.schemas.DataWarehouseSavedQuery.properties.origin.description
Where this SavedQuery is created.

* `data_warehouse` - Data Warehouse
* `endpoint` - Endpoint
* `managed_viewset` - Managed Viewset

# components.schemas.DataWarehouseSavedQuery.properties.is_test.description
Whether this view is for testing only and will auto-expire.

# components.schemas.DataWarehouseSavedQuery.properties.expires_at.description
When this test view should be automatically deleted.

# components.schemas.DataWarehouseSavedQuery.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.DataWarehouseSavedQueryFolder.description
Mixin for serializers to add user access control fields

# components.schemas.DataWarehouseSavedQueryFolder.properties.name.description
Display name for the folder used to organize saved queries in the SQL editor sidebar.

# components.schemas.DataWarehouseSavedQueryFolder.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.DataWarehouseSavedQueryMinimal.description
Lightweight serializer for list views - excludes large query field to reduce memory usage.

# components.schemas.DataWarehouseSavedQueryMinimal.properties.status.description
The status of when this SavedQuery last ran.

* `Cancelled` - Cancelled
* `Modified` - Modified
* `Completed` - Completed
* `Failed` - Failed
* `Running` - Running

# components.schemas.DataWarehouseSavedQueryMinimal.properties.origin.description
Where this SavedQuery is created.

* `data_warehouse` - Data Warehouse
* `endpoint` - Endpoint
* `managed_viewset` - Managed Viewset

# components.schemas.DataWarehouseSavedQueryMinimal.properties.is_test.description
Whether this view is for testing only and will auto-expire.

# components.schemas.DataWarehouseSavedQueryMinimal.properties.expires_at.description
When this test view should be automatically deleted.

# components.schemas.DataWarehouseSavedQueryMinimal.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.DataWarehouseSyncWarning.properties.message.description
Human-readable warning shown to the user

# components.schemas.DataWarehouseSyncWarning.properties.schema_name.description
Name of the ExternalDataSchema responsible for syncing the table

# components.schemas.DataWarehouseSyncWarning.properties.source_id.description
ID of the ExternalDataSource, used to link to its management page. Null for self-managed tables.

# components.schemas.DataWarehouseSyncWarning.properties.status.description
Sync status that triggered the warning, e.g. "Failed", "Paused", "BillingLimitReached"

# components.schemas.DataWarehouseSyncWarning.properties.table_name.description
Name of the warehouse table the warning refers to

# components.schemas.DatabaseSchemaDataWarehouseTable.properties.search_aliases.description
Alternate names the table is queryable by (e.g. the flat underscore form), in addition to `name`.

# components.schemas.DatabaseSchemaQuery.properties.connectionId.description
Optional direct external data source id for schema introspection

# components.schemas.DatabaseSchemaQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.DatabaseSchemaQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.DatabaseSchemaRequest.description
Validate credentials and preview available tables from a remote database.

The request body contains source_type plus flat source-specific credential fields
(e.g. host, port, database, user, password, schema for Postgres). The credential
fields vary per source_type and are validated dynamically by the source registry.

# components.schemas.DatabaseSchemaRequest.properties.source_type.description
The source type to validate against.

* `Ashby` - Ashby
* `Supabase` - Supabase
* `CustomerIO` - CustomerIO
* `Github` - Github
* `Stripe` - Stripe
* `Hubspot` - Hubspot
* `Postgres` - Postgres
* `Zendesk` - Zendesk
* `Snowflake` - Snowflake
* `Salesforce` - Salesforce
* `MySQL` - MySQL
* `MongoDB` - MongoDB
* `MSSQL` - MSSQL
* `Vitally` - Vitally
* `BigQuery` - BigQuery
* `Chargebee` - Chargebee
* `Clerk` - Clerk
* `GoogleAds` - GoogleAds
* `GoogleSearchConsole` - GoogleSearchConsole
* `TemporalIO` - TemporalIO
* `DoIt` - DoIt
* `GoogleSheets` - GoogleSheets
* `MetaAds` - MetaAds
* `Klaviyo` - Klaviyo
* `Mailchimp` - Mailchimp
* `Braze` - Braze
* `Mailjet` - Mailjet
* `Redshift` - Redshift
* `Polar` - Polar
* `RevenueCat` - RevenueCat
* `LinkedinAds` - LinkedinAds
* `RedditAds` - RedditAds
* `TikTokAds` - TikTokAds
* `BingAds` - BingAds
* `Shopify` - Shopify
* `Attio` - Attio
* `SnapchatAds` - SnapchatAds
* `Linear` - Linear
* `Intercom` - Intercom
* `Amplitude` - Amplitude
* `Mixpanel` - Mixpanel
* `Jira` - Jira
* `ActiveCampaign` - ActiveCampaign
* `Marketo` - Marketo
* `Adjust` - Adjust
* `AppsFlyer` - AppsFlyer
* `Freshdesk` - Freshdesk
* `GoogleAnalytics` - GoogleAnalytics
* `Pipedrive` - Pipedrive
* `SendGrid` - SendGrid
* `Slack` - Slack
* `PagerDuty` - PagerDuty
* `Asana` - Asana
* `Notion` - Notion
* `Airtable` - Airtable
* `Greenhouse` - Greenhouse
* `BambooHR` - BambooHR
* `Lever` - Lever
* `GitLab` - GitLab
* `Datadog` - Datadog
* `Sentry` - Sentry
* `Pendo` - Pendo
* `FullStory` - FullStory
* `AmazonAds` - AmazonAds
* `PinterestAds` - PinterestAds
* `AppleSearchAds` - AppleSearchAds
* `QuickBooks` - QuickBooks
* `Xero` - Xero
* `NetSuite` - NetSuite
* `WooCommerce` - WooCommerce
* `BigCommerce` - BigCommerce
* `PayPal` - PayPal
* `Square` - Square
* `Zoom` - Zoom
* `Trello` - Trello
* `Monday` - Monday
* `ClickUp` - ClickUp
* `Confluence` - Confluence
* `Recurly` - Recurly
* `SalesLoft` - SalesLoft
* `Outreach` - Outreach
* `Gong` - Gong
* `Calendly` - Calendly
* `Typeform` - Typeform
* `Iterable` - Iterable
* `ZohoCRM` - ZohoCRM
* `Close` - Close
* `Oracle` - Oracle
* `DynamoDB` - DynamoDB
* `Elasticsearch` - Elasticsearch
* `Kafka` - Kafka
* `LaunchDarkly` - LaunchDarkly
* `Braintree` - Braintree
* `Recharge` - Recharge
* `HelpScout` - HelpScout
* `Gorgias` - Gorgias
* `Instagram` - Instagram
* `YouTubeAnalytics` - YouTubeAnalytics
* `FacebookPages` - FacebookPages
* `TwitterAds` - TwitterAds
* `Workday` - Workday
* `ServiceNow` - ServiceNow
* `Pardot` - Pardot
* `Copper` - Copper
* `Front` - Front
* `ChartMogul` - ChartMogul
* `Zuora` - Zuora
* `Paddle` - Paddle
* `CircleCI` - CircleCI
* `CockroachDB` - CockroachDB
* `Firebase` - Firebase
* `AzureBlob` - AzureBlob
* `GoogleDrive` - GoogleDrive
* `OneDrive` - OneDrive
* `SharePoint` - SharePoint
* `Box` - Box
* `SFTP` - SFTP
* `MicrosoftTeams` - MicrosoftTeams
* `Aircall` - Aircall
* `Webflow` - Webflow
* `Okta` - Okta
* `Auth0` - Auth0
* `Productboard` - Productboard
* `Smartsheet` - Smartsheet
* `Wrike` - Wrike
* `Plaid` - Plaid
* `SurveyMonkey` - SurveyMonkey
* `Eventbrite` - Eventbrite
* `RingCentral` - RingCentral
* `Twilio` - Twilio
* `Freshsales` - Freshsales
* `Shortcut` - Shortcut
* `ConvertKit` - ConvertKit
* `Drip` - Drip
* `CampaignMonitor` - CampaignMonitor
* `MailerLite` - MailerLite
* `Omnisend` - Omnisend
* `Brevo` - Brevo
* `Postmark` - Postmark
* `Granola` - Granola
* `BuildBetter` - BuildBetter
* `Convex` - Convex
* `ClickHouse` - ClickHouse
* `Plain` - Plain
* `Resend` - Resend
* `PgAnalyze` - PgAnalyze
* `WorkOS` - WorkOS
* `Custom` - Custom

# components.schemas.DatabricksDestinationConfig.description
Typed configuration for a Databricks batch-export destination.

Credentials live in the linked Integration, not in this config. Mirrors
`DatabricksBatchExportInputs` in `products/batch_exports/backend/service.py`.

# components.schemas.DatabricksDestinationConfig.properties.schema.description
Schema (database) name inside the catalog.

# components.schemas.DatabricksDestinationConfig.properties.use_variant_type.description
Whether to use the Databricks VARIANT type for JSON-like columns.

# components.schemas.DatabricksDestinationConfig.properties.use_automatic_schema_evolution.description
Whether to let Databricks evolve the destination table schema automatically.

# components.schemas.DatabricksDestinationRequest.description
Request shape for creating or updating a Databricks batch-export destination.

# components.schemas.DatabricksDestinationRequest.properties.integration_id.description
ID of a databricks-kind Integration. Use the integrations-list MCP tool to find one.

# components.schemas.DateOperatorEnum.description
* `is_date_exact` - is_date_exact
* `is_date_before` - is_date_before
* `is_date_after` - is_date_after

# components.schemas.DatePropertyFilter.description
Matches date/datetime values with date-specific operators.

# components.schemas.DatePropertyFilter.properties.key.description
Key of the property you're filtering on. For example `email` or `$current_url`.

# components.schemas.DatePropertyFilter.properties.type.description
Property type (event, person, session, etc.).

* `event` - event
* `event_metadata` - event_metadata
* `feature` - feature
* `person` - person
* `cohort` - cohort
* `element` - element
* `static-cohort` - static-cohort
* `dynamic-cohort` - dynamic-cohort
* `precalculated-cohort` - precalculated-cohort
* `group` - group
* `recording` - recording
* `log_entry` - log_entry
* `behavioral` - behavioral
* `session` - session
* `hogql` - hogql
* `data_warehouse` - data_warehouse
* `data_warehouse_person_property` - data_warehouse_person_property
* `error_tracking_issue` - error_tracking_issue
* `log` - log
* `log_attribute` - log_attribute
* `log_resource_attribute` - log_resource_attribute
* `span` - span
* `span_attribute` - span_attribute
* `span_resource_attribute` - span_resource_attribute
* `revenue_analytics` - revenue_analytics
* `flag` - flag
* `workflow_variable` - workflow_variable

# components.schemas.DatePropertyFilter.properties.operator.description
Date comparison operator.

* `is_date_exact` - is_date_exact
* `is_date_before` - is_date_before
* `is_date_after` - is_date_after

# components.schemas.DateRange.properties.date_from.description
Start of the date range. Accepts ISO 8601 timestamps (e.g., 2024-01-15T00:00:00Z) or relative formats: -7d (7 days ago), -2w (2 weeks ago), -1m (1 month ago),
-1h (1 hour ago), -1mStart (start of last month), -1yStart (start of last year).

# components.schemas.DateRange.properties.date_to.description
End of the date range. Same format as date_from. Omit or null for "now".

# components.schemas.DateRange.properties.explicitDate.description
Whether the date_from and date_to should be used verbatim. Disables rounding to the start and end of period.

# components.schemas.DefaultExperimentStatsMethodEnum.description
* `bayesian` - Bayesian
* `frequentist` - Frequentist

# components.schemas.DeleteTileRequest.properties.tile_id.description
ID of the dashboard tile to delete. Use dashboard-get to look up tile IDs.

# components.schemas.DeliveryStatusEnum.description
* `pending` - Pending
* `delivered` - Delivered
* `partial_failure` - Partial Failure
* `failed` - Failed

# components.schemas.DesktopRecordingStatusEnum.description
* `recording` - Recording
* `uploading` - Uploading
* `processing` - Processing
* `ready` - Ready
* `error` - Error

# components.schemas.DetailModeValueEnum.description
* `minimal` - minimal
* `detailed` - detailed

# components.schemas.DeviceTypesEnum.description
* `Desktop` - Desktop
* `Mobile` - Mobile
* `Tablet` - Tablet

# components.schemas.DiagnosticCheckResult.properties.id.description
Stable identifier for the check (e.g. cname, cloudflare, caa, http_challenge, live_event, cert_expiry).

# components.schemas.DiagnosticCheckResult.properties.status.description
passed: ok. warned: degraded but not blocking. failed: blocking. skipped: not run for this state.

* `passed` - passed
* `warned` - warned
* `failed` - failed
* `skipped` - skipped

# components.schemas.DiagnosticCheckResult.properties.detail.description
Customer-facing explanation of the check's outcome.

# components.schemas.DiagnosticCheckResult.properties.remediation.description
Concrete remediation steps when the check failed; null when there's nothing actionable.

# components.schemas.DiagnosticCheckResultStatusEnum.description
* `passed` - passed
* `warned` - warned
* `failed` - failed
* `skipped` - skipped

# components.schemas.DiagnosticDnsRecord.properties.name.description
DNS record name (the hostname the record is set on).

# components.schemas.DiagnosticRemediation.properties.type.description
Category of fix. dns: customer must change DNS records. config: customer must adjust their server config (e.g. allow port 80). wait: no action — the system will resolve on its own. retry: hit Retry.

* `dns` - dns
* `config` - config
* `wait` - wait
* `retry` - retry

# components.schemas.DiagnosticRemediation.properties.summary.description
One-line, action-oriented summary of what to do.

# components.schemas.DiagnosticRemediation.properties.records.description
DNS records the customer should add (empty when remediation is not DNS-based).

# components.schemas.DiagnosticRemediationTypeEnum.description
* `dns` - dns
* `config` - config
* `wait` - wait
* `retry` - retry

# components.schemas.DiagnosticReport.properties.ran_at.description
When this diagnostic report was generated (UTC).

# components.schemas.DiagnosticReport.properties.summary.description
Top-level outcome and recommended next action.

# components.schemas.DiagnosticReportSummary.properties.status.description
Overall outcome: healthy if the proxy is serving requests, warn for non-blocking issues, fail otherwise.

* `healthy` - healthy
* `warn` - warn
* `fail` - fail

# components.schemas.DiagnosticReportSummary.properties.primary_issue.description
Check id of the most actionable failure, if any. Null when status is healthy.

# components.schemas.DiagnosticReportSummary.properties.next_action.description
One-sentence next action the customer should take. Null when nothing's wrong.

# components.schemas.DiagnosticReportSummaryStatusEnum.description
* `healthy` - healthy
* `warn` - warn
* `fail` - fail

# components.schemas.DocsSearchRequest.properties.query.description
Natural-language description of what to find in the PostHog documentation. Inkeep performs hybrid (semantic + full-text) RAG, so phrase the query the way a user would ask the question.

# components.schemas.DocsSearchResponse.properties.content.description
Markdown-formatted documentation results. Each block has a title, URL and excerpt; an empty result set returns guidance to navigate to https://posthog.com/docs.

# components.schemas.DocumentSimilarityQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.DocumentSimilarityQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.DocumentSimilarityQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.DocumentSimilarityQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.DocumentSimilarityQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.DocumentSimilarityQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.DocumentSimilarityQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.DocumentSimilarityQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.DurationMetric.properties.change.description
Period-over-period change, null when not meaningful.

# components.schemas.ECODDetectorConfig.properties.threshold.description
Anomaly probability threshold (default: 0.9)

# components.schemas.ECODDetectorConfig.properties.window.description
Rolling window size — how many historical data points to train on (default: based on calculation interval)

# components.schemas.EarlyAccessFeature.properties.description.description
A longer description of what this early access feature does, shown to users in the opt-in UI.

# components.schemas.EarlyAccessFeature.properties.stage.description
Lifecycle stage. Valid values: draft, concept, alpha, beta, general-availability, archived. Moving to an active stage (alpha/beta/general-availability) enables the feature flag for opted-in users.

* `draft` - draft
* `concept` - concept
* `alpha` - alpha
* `beta` - beta
* `general-availability` - general availability
* `archived` - archived

# components.schemas.EarlyAccessFeature.properties.documentation_url.description
URL to external documentation for this feature. Shown to users in the opt-in UI.

# components.schemas.EarlyAccessFeature.properties.payload.description
Feature flag payload for this early access feature

# components.schemas.EarlyAccessFeatureSerializerCreateOnly.properties.description.description
A longer description of what this early access feature does, shown to users in the opt-in UI.

# components.schemas.EarlyAccessFeatureSerializerCreateOnly.properties.stage.description
Lifecycle stage. Valid values: draft, concept, alpha, beta, general-availability, archived. Moving to an active stage (alpha/beta/general-availability) enables the feature flag for opted-in users.

* `draft` - draft
* `concept` - concept
* `alpha` - alpha
* `beta` - beta
* `general-availability` - general availability
* `archived` - archived

# components.schemas.EarlyAccessFeatureSerializerCreateOnly.properties.documentation_url.description
URL to external documentation for this feature. Shown to users in the opt-in UI.

# components.schemas.EarlyAccessFeatureSerializerCreateOnly.properties.payload.description
Arbitrary JSON metadata associated with this feature.

# components.schemas.EarlyAccessFeatureSerializerCreateOnly.properties.feature_flag_id.description
Optional ID of an existing feature flag to link. If omitted, a new flag is auto-created from the feature name. The flag must not already be linked to another feature, must not be group-based, and must not be multivariate.

# components.schemas.EmitFindingRequest.description
Request body for `emit-finding`. Run attribution is taken from the URL path.

# components.schemas.EmitFindingRequest.properties.description.description
Canonical evidence-bundle prose. Becomes the signal's `description`.

# components.schemas.EmitFindingRequest.properties.weight.description
Agent's weight for the signal in [0, 1]. Drives ranking in the inbox.

# components.schemas.EmitFindingRequest.properties.confidence.description
Agent's confidence the finding is real in [0, 1]. Persisted in `extra`.

# components.schemas.EmitFindingRequest.properties.evidence.description
Citations supporting the finding. Capped at 20 entries.

# components.schemas.EmitFindingRequest.properties.hypothesis.description
Optional one-line hypothesis the finding tests.

# components.schemas.EmitFindingRequest.properties.dedupe_keys.description
Optional keys for downstream dedupe (e.g. `error_tracking_issue:<id>`).

# components.schemas.EmitFindingRequest.properties.time_range.description
Optional time window the finding refers to.

# components.schemas.EmitFindingRequest.properties.mcp_trace_id.description
Optional MCP trace id for cross-system debugging.

# components.schemas.EmitFindingRequest.properties.finding_id.description
Stable id for this finding, baked into the signal's source_id for traceability. NOT a dedupe key — re-emitting the same id creates another signal.

# components.schemas.EmitFindingResponse.properties.finding_id.description
Stable id for the finding (echoed back from request, or generated).

# components.schemas.EmitFindingResponse.properties.emitted.description
Whether `emit_signal` was actually fired.

# components.schemas.EmitFindingResponse.properties.skipped_reason.description
`ai_processing_not_approved` | `source_disabled` | null when emitted normally.

# components.schemas.EndExperiment.properties.conclusion.description
The conclusion of the experiment.

* `won` - won
* `lost` - lost
* `inconclusive` - inconclusive
* `stopped_early` - stopped_early
* `invalid` - invalid

# components.schemas.EndExperiment.properties.conclusion_comment.description
Optional comment about the experiment conclusion.

# components.schemas.EndpointColumn.description
A column in the endpoint's query result.

# components.schemas.EndpointColumn.properties.name.description
Column name from the query SELECT clause.

# components.schemas.EndpointColumn.properties.type.description
Serialized column type: integer, float, string, datetime, date, boolean, array, json, or unknown.

# components.schemas.EndpointMaterialization.description
Materialization status for an endpoint version.

# components.schemas.EndpointMaterialization.properties.can_materialize.description
Whether this endpoint query can be materialized.

# components.schemas.EndpointMaterialization.properties.reason.description
Reason why materialization is not possible (only when can_materialize is false).

# components.schemas.EndpointMaterialization.properties.last_materialized_at.description
ISO 8601 timestamp of the last successful materialization.

# components.schemas.EndpointMaterialization.properties.error.description
Last materialization error message, if any.

# components.schemas.EndpointMaterialization.properties.saved_query_id.description
UUID of the underlying saved query backing this materialization. Only populated when the version is materialized.

# components.schemas.EndpointRequest.description
Schema for creating/updating endpoints. OpenAPI docs only — validation uses Pydantic.

# components.schemas.EndpointRequest.properties.name.description
Unique URL-safe name. Must start with a letter, only letters/numbers/hyphens/underscores, max 128 chars.

# components.schemas.EndpointRequest.properties.query.description
HogQL or insight query this endpoint executes. Changing this auto-creates a new version.

# components.schemas.EndpointRequest.properties.description.description
Human-readable description of what this endpoint returns.

# components.schemas.EndpointRequest.properties.data_freshness_seconds.description
How fresh the data should be, in seconds. Must be one of: 900 (15 min), 1800 (30 min), 3600 (1 h), 21600 (6 h), 43200 (12 h), 86400 (24 h, default), 604800 (7 d). Controls cache TTL and materialization sync frequency.

# components.schemas.EndpointRequest.properties.is_active.description
Whether this endpoint is available for execution via the API.

# components.schemas.EndpointRequest.properties.is_materialized.description
Whether query results are materialized to S3.

# components.schemas.EndpointRequest.properties.derived_from_insight.description
Short ID of the insight this endpoint was derived from.

# components.schemas.EndpointRequest.properties.version.description
Target a specific version for updates (defaults to current version).

# components.schemas.EndpointRequest.properties.bucket_overrides.description
Per-column bucket overrides for range variable materialization. Keys are column names, values are bucket keys.

# components.schemas.EndpointRequest.properties.deleted.description
Set to true to soft-delete this endpoint.

# components.schemas.EndpointRequest.properties.tags.description
List of tag names to associate with this endpoint. Replaces any existing tags.

# components.schemas.EndpointResponse.properties.name.description
URL-safe endpoint name, unique per team.

# components.schemas.EndpointResponse.properties.description.description
Human-readable description of the endpoint.

# components.schemas.EndpointResponse.properties.query.description
The HogQL or insight query definition (JSON object with 'kind' key).

# components.schemas.EndpointResponse.properties.is_active.description
Whether the endpoint can be executed via the API.

# components.schemas.EndpointResponse.properties.endpoint_path.description
Relative API path to execute this endpoint (e.g. /api/projects/{team_id}/endpoints/{name}/run).

# components.schemas.EndpointResponse.properties.ui_url.description
Absolute URL to view this endpoint in the PostHog UI.

# components.schemas.EndpointResponse.properties.created_at.description
When the endpoint was created (ISO 8601).

# components.schemas.EndpointResponse.properties.updated_at.description
When the endpoint was last updated (ISO 8601).

# components.schemas.EndpointResponse.properties.is_materialized.description
Whether the current version's results are pre-computed to S3.

# components.schemas.EndpointResponse.properties.current_version_id.description
UUID of the current EndpointVersion row.

# components.schemas.EndpointResponse.properties.versions_count.description
Total number of versions for this endpoint.

# components.schemas.EndpointResponse.properties.derived_from_insight.description
Short ID of the source insight, if derived from one.

# components.schemas.EndpointResponse.properties.last_executed_at.description
When this endpoint was last executed via the API (ISO 8601), or null if never executed.

# components.schemas.EndpointResponse.properties.materialization.description
Materialization status and configuration for the current version.

# components.schemas.EndpointResponse.properties.bucket_overrides.description
Per-column bucket overrides for range variable materialization.

# components.schemas.EndpointResponse.properties.columns.description
Column names and types from the query's SELECT clause.

# components.schemas.EndpointResponse.properties.tags.description
Tag names associated with this endpoint.

# components.schemas.EndpointRunRequest.properties.client_query_id.description
Client provided query ID. Can be used to retrieve the status or cancel the query.

# components.schemas.EndpointRunRequest.properties.debug.description
Whether to include debug information (such as the executed HogQL) in the response.

# components.schemas.EndpointRunRequest.properties.limit.description
Maximum number of results to return. If not provided, returns all results.

# components.schemas.EndpointRunRequest.properties.offset.description
Number of results to skip. Must be used together with limit. Only supported for HogQL endpoints.

# components.schemas.EndpointRunRequest.properties.variables.description
Variables to parameterize the endpoint query. The key is the variable name and the value is the variable value.

For HogQL endpoints:   Keys must match a variable `code_name` defined in the query (referenced as `{variables.code_name}`).   Example: `{"event_name": "$pageview"}`

For non-materialized insight endpoints (e.g. TrendsQuery):   - `date_from` and `date_to` are built-in variables that filter the date range.     Example: `{"date_from": "2024-01-01", "date_to": "2024-01-31"}`

For materialized insight endpoints:   - Use the breakdown property name as the key to filter by breakdown value.     Example: `{"$browser": "Chrome"}`   - `date_from`/`date_to` are not supported on materialized insight endpoints.

Unknown variable names will return a 400 error.

# components.schemas.EndpointRunRequest.properties.version.description
Specific endpoint version to execute. If not provided, the latest version is used.

# components.schemas.EndpointRunResponse.description
Response from executing an endpoint query.

# components.schemas.EndpointRunResponse.properties.name.description
URL-safe endpoint name that was executed.

# components.schemas.EndpointRunResponse.properties.results.description
Query result rows. Each row is a list of values matching the columns order.

# components.schemas.EndpointRunResponse.properties.columns.description
Column names from the query SELECT clause.

# components.schemas.EndpointRunResponse.properties.hasMore.description
Whether more results are available beyond the limit.

# components.schemas.EndpointRunResponse.properties.endpoint_version.description
Version number of the endpoint that was executed.

# components.schemas.EndpointVersionResponse.description
Extended endpoint representation when viewing a specific version.

# components.schemas.EndpointVersionResponse.properties.name.description
URL-safe endpoint name, unique per team.

# components.schemas.EndpointVersionResponse.properties.description.description
Human-readable description of the endpoint.

# components.schemas.EndpointVersionResponse.properties.query.description
The HogQL or insight query definition (JSON object with 'kind' key).

# components.schemas.EndpointVersionResponse.properties.is_active.description
Whether the endpoint can be executed via the API.

# components.schemas.EndpointVersionResponse.properties.endpoint_path.description
Relative API path to execute this endpoint (e.g. /api/projects/{team_id}/endpoints/{name}/run).

# components.schemas.EndpointVersionResponse.properties.ui_url.description
Absolute URL to view this endpoint in the PostHog UI.

# components.schemas.EndpointVersionResponse.properties.created_at.description
When the endpoint was created (ISO 8601).

# components.schemas.EndpointVersionResponse.properties.updated_at.description
When the endpoint was last updated (ISO 8601).

# components.schemas.EndpointVersionResponse.properties.is_materialized.description
Whether the current version's results are pre-computed to S3.

# components.schemas.EndpointVersionResponse.properties.current_version_id.description
UUID of the current EndpointVersion row.

# components.schemas.EndpointVersionResponse.properties.versions_count.description
Total number of versions for this endpoint.

# components.schemas.EndpointVersionResponse.properties.derived_from_insight.description
Short ID of the source insight, if derived from one.

# components.schemas.EndpointVersionResponse.properties.last_executed_at.description
When this specific version was last executed via the API (ISO 8601), or null if it hasn't been executed. Per-version tracking is recent, so versions that predate it read null until their next run.

# components.schemas.EndpointVersionResponse.properties.materialization.description
Materialization status and configuration for the current version.

# components.schemas.EndpointVersionResponse.properties.bucket_overrides.description
Per-column bucket overrides for range variable materialization.

# components.schemas.EndpointVersionResponse.properties.columns.description
Column names and types from the query's SELECT clause.

# components.schemas.EndpointVersionResponse.properties.tags.description
Tag names associated with this endpoint.

# components.schemas.EndpointVersionResponse.properties.endpoint_is_active.description
Whether the parent endpoint is active (distinct from version.is_active).

# components.schemas.EndpointVersionResponse.properties.version_created_at.description
ISO 8601 timestamp when this version was created.

# components.schemas.EndpointVersionResponse.properties.version_updated_at.description
ISO 8601 timestamp when this version was last updated.

# components.schemas.EndpointsUsageOverviewQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.EndpointsUsageOverviewQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.EndpointsUsageOverviewQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.EndpointsUsageOverviewQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.EndpointsUsageOverviewQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.EndpointsUsageOverviewQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.EndpointsUsageOverviewQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.EndpointsUsageOverviewQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.EndpointsUsageTableQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.EndpointsUsageTableQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.EndpointsUsageTableQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.EndpointsUsageTableQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.EndpointsUsageTableQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.EndpointsUsageTableQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.EndpointsUsageTableQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.EndpointsUsageTableQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.EndpointsUsageTrendsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.EndpointsUsageTrendsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.EndpointsUsageTrendsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.EndpointsUsageTrendsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.EndpointsUsageTrendsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.EndpointsUsageTrendsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.EndpointsUsageTrendsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.EndpointsUsageTrendsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.EngineEnum.description
* `duckdb` - duckdb
* `postgres` - postgres

# components.schemas.EnterpriseEventDefinition.description
Serializer mixin that handles tags for objects.

# components.schemas.EnterpriseEventDefinition.properties.primary_property.description
Name of a single property on this event that PostHog UIs should display alongside the event (for example `$pathname` on `$pageview`). When set, surfaces like the session replay inspector show the property's value next to the event name without the user having to open the event.

# components.schemas.EnterprisePropertyDefinition.description
Serializer mixin that handles tags for objects.

# components.schemas.ErrorTrackingAssignee.properties.type.description
Assignee target type: user or role.

* `user` - user
* `role` - role

# components.schemas.ErrorTrackingAssignmentRuleAssigneeRequest.properties.type.description
Assignee type. Use `user` for a user ID or `role` for a role UUID.

* `user` - user
* `role` - role

# components.schemas.ErrorTrackingAssignmentRuleAssigneeRequest.properties.id.description
User ID when `type` is `user`, or role UUID when `type` is `role`.

# components.schemas.ErrorTrackingAssignmentRuleCreateRequest.properties.filters.description
Property-group filters that define when this rule matches incoming error events.

# components.schemas.ErrorTrackingAssignmentRuleCreateRequest.properties.assignee.description
User or role to assign matching issues to.

# components.schemas.ErrorTrackingAssignmentRuleUpdateRequest.properties.filters.description
Property-group filters that define when this rule matches incoming error events.

# components.schemas.ErrorTrackingAssignmentRuleUpdateRequest.properties.assignee.description
User or role to assign matching issues to.

# components.schemas.ErrorTrackingBreakdownsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ErrorTrackingBreakdownsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.ErrorTrackingBreakdownsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.ErrorTrackingBreakdownsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ErrorTrackingBreakdownsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.ErrorTrackingBreakdownsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.ErrorTrackingBreakdownsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.ErrorTrackingBreakdownsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.ErrorTrackingDateRange.properties.date_from.description
Start of the date range as an ISO timestamp or relative date such as -7d. Defaults to -7d.

# components.schemas.ErrorTrackingDateRange.properties.date_to.description
End of the date range as an ISO timestamp or relative date. Defaults to now when omitted.

# components.schemas.ErrorTrackingEvent.properties.properties.description
Normalized sampled exception event properties.

# components.schemas.ErrorTrackingGroupingRuleAssigneeRequest.properties.type.description
Assignee type. Use `user` for a user ID or `role` for a role UUID.

* `user` - user
* `role` - role

# components.schemas.ErrorTrackingGroupingRuleAssigneeRequest.properties.id.description
User ID when `type` is `user`, or role UUID when `type` is `role`.

# components.schemas.ErrorTrackingGroupingRuleCreateRequest.properties.filters.description
Property-group filters that define which exceptions should be grouped into the same issue.

# components.schemas.ErrorTrackingGroupingRuleCreateRequest.properties.assignee.description
Optional user or role to assign to issues created by this grouping rule.

# components.schemas.ErrorTrackingGroupingRuleCreateRequest.properties.description.description
Optional human-readable description of what this grouping rule is for.

# components.schemas.ErrorTrackingGroupingRuleUpdateRequest.properties.filters.description
Property-group filters that define which exceptions should be grouped into the same issue. Omit to preserve the existing filters.

# components.schemas.ErrorTrackingIssueCorrelationQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ErrorTrackingIssueCorrelationQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.ErrorTrackingIssueCorrelationQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.ErrorTrackingIssueCorrelationQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ErrorTrackingIssueCorrelationQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.ErrorTrackingIssueCorrelationQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.ErrorTrackingIssueCorrelationQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.ErrorTrackingIssueCorrelationQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.ErrorTrackingIssueDetail.properties.source.description
Top source/file associated with the issue.

# components.schemas.ErrorTrackingIssueEventsQueryRequest.properties.dateRange.description
Date range for sampled exception events. Defaults to the last 7 days.

# components.schemas.ErrorTrackingIssueEventsQueryRequest.properties.filterTestAccounts.description
When true, exclude internal/test account data from results. Defaults to true.

# components.schemas.ErrorTrackingIssueEventsQueryRequest.properties.filterGroup.description
Advanced flat AND property filters applied to sampled events. HogQL filters are rejected.

# components.schemas.ErrorTrackingIssueEventsQueryRequest.properties.searchQuery.description
Search exception types, exception values, and current URL among sampled events.

# components.schemas.ErrorTrackingIssueEventsQueryRequest.properties.orderDirection.description
Timestamp sort direction. Defaults to DESC.

* `ASC` - ASC
* `DESC` - DESC

# components.schemas.ErrorTrackingIssueEventsQueryRequest.properties.verbosity.description
Controls exception detail size: summary, stack, or raw. Defaults to summary.

* `summary` - summary
* `stack` - stack
* `raw` - raw

# components.schemas.ErrorTrackingIssueEventsQueryRequest.properties.onlyAppFrames.description
When true, include only stack frames marked in_app. Defaults to true.

# components.schemas.ErrorTrackingIssueEventsResponse.properties.nextOffset.description
Offset to fetch the next page when hasMore is true.

# components.schemas.ErrorTrackingIssueFullStatusEnum.description
* `archived` - Archived
* `active` - Active
* `resolved` - Resolved
* `pending_release` - Pending release
* `suppressed` - Suppressed

# components.schemas.ErrorTrackingIssueListItem.properties.source.description
Top source/file associated with the issue.

# components.schemas.ErrorTrackingIssueMergeRequest.properties.ids.description
IDs of the issues to merge into the current issue.

# components.schemas.ErrorTrackingIssueMergeResponse.properties.success.description
Whether the merge completed successfully.

# components.schemas.ErrorTrackingIssueOrderByEnum.description
* `last_seen` - last_seen
* `first_seen` - first_seen
* `occurrences` - occurrences
* `users` - users
* `sessions` - sessions

# components.schemas.ErrorTrackingIssueQueryRequest.properties.dateRange.description
Date range for issue impact and latest-event metadata. Defaults to the last 7 days.

# components.schemas.ErrorTrackingIssueQueryRequest.properties.filterTestAccounts.description
When true, exclude internal/test account data from results. Defaults to true.

# components.schemas.ErrorTrackingIssueQueryRequest.properties.includeSparkline.description
Set true to include a compact numeric occurrence sparkline. Defaults to false.

# components.schemas.ErrorTrackingIssueSplitFingerprint.properties.name.description
Optional name for the new issue created from this fingerprint.

# components.schemas.ErrorTrackingIssueSplitFingerprint.properties.description.description
Optional description for the new issue created from this fingerprint.

# components.schemas.ErrorTrackingIssueSplitRequest.properties.fingerprints.description
Fingerprints to split into new issues. Each fingerprint becomes its own new issue.

# components.schemas.ErrorTrackingIssueSplitResponse.properties.success.description
Whether the split completed successfully.

# components.schemas.ErrorTrackingIssueSplitResponse.properties.new_issue_ids.description
IDs of the new issues created by the split.

# components.schemas.ErrorTrackingIssueStatusEnum.description
* `archived` - archived
* `active` - active
* `resolved` - resolved
* `pending_release` - pending_release
* `suppressed` - suppressed
* `all` - all

# components.schemas.ErrorTrackingIssuesListQueryRequest.properties.dateRange.description
Date range for issue aggregates. Defaults to the last 7 days.

# components.schemas.ErrorTrackingIssuesListQueryRequest.properties.status.description
Filter by issue status. Defaults to active.

* `archived` - archived
* `active` - active
* `resolved` - resolved
* `pending_release` - pending_release
* `suppressed` - suppressed
* `all` - all

# components.schemas.ErrorTrackingIssuesListQueryRequest.properties.assignee.description
Filter by issue assignee. Omit to include all assignees.

# components.schemas.ErrorTrackingIssuesListQueryRequest.properties.filterTestAccounts.description
When true, exclude internal/test account data from results. Defaults to true.

# components.schemas.ErrorTrackingIssuesListQueryRequest.properties.searchQuery.description
Free-text search across exception types, values, stack frames, and email fields.

# components.schemas.ErrorTrackingIssuesListQueryRequest.properties.filterGroup.description
Advanced flat AND property filters. Prefer typed shortcut fields when they fit. HogQL filters are rejected.

# components.schemas.ErrorTrackingIssuesListQueryRequest.properties.orderBy.description
Field used to sort issues. Defaults to occurrences.

* `last_seen` - last_seen
* `first_seen` - first_seen
* `occurrences` - occurrences
* `users` - users
* `sessions` - sessions

# components.schemas.ErrorTrackingIssuesListQueryRequest.properties.orderDirection.description
Sort direction. Defaults to DESC.

* `ASC` - ASC
* `DESC` - DESC

# components.schemas.ErrorTrackingIssuesListQueryRequest.properties.volumeResolution.description
Number of volume buckets. Defaults to 0 for compact aggregate counts.

# components.schemas.ErrorTrackingIssuesListQueryRequest.properties.library.description
Filter by SDK/library value from event $lib, for example posthog-js.

# components.schemas.ErrorTrackingIssuesListQueryRequest.properties.release.description
Filter by exact release ID, version, or git commit ID captured in $exception_releases.

# components.schemas.ErrorTrackingIssuesListQueryRequest.properties.fingerprint.description
Filter by exact exception fingerprint hash, not fuzzy search.

# components.schemas.ErrorTrackingIssuesListQueryRequest.properties.filePath.description
Search stack-frame source/file path text.

# components.schemas.ErrorTrackingIssuesListResponse.properties.nextOffset.description
Offset to fetch the next page when hasMore is true.

# components.schemas.ErrorTrackingListWidgetAddRequestOpenApi.properties.name.description
Optional custom display name for the widget tile.

# components.schemas.ErrorTrackingListWidgetAddRequestOpenApi.properties.description.description
Optional markdown description shown when show_description is enabled.

# components.schemas.ErrorTrackingListWidgetAddRequestOpenApi.properties.layouts.description
Optional react-grid-layout positions keyed by breakpoint (sm, xs).

# components.schemas.ErrorTrackingListWidgetAddRequestOpenApi.properties.show_description.description
Whether to show the description on the dashboard tile.

# components.schemas.ErrorTrackingListWidgetAddRequestOpenApi.properties.config.description
Configuration for the error tracking list widget.

# components.schemas.ErrorTrackingListWidgetConfig.properties.orderBy.description
Issue ranking column.

* `first_seen` - first_seen
* `last_seen` - last_seen
* `occurrences` - occurrences
* `sessions` - sessions
* `users` - users

# components.schemas.ErrorTrackingListWidgetConfig.properties.orderDirection.description
Sort direction for orderBy.

* `ASC` - ASC
* `DESC` - DESC

# components.schemas.ErrorTrackingListWidgetConfig.properties.status.description
Issue status filter.

* `archived` - archived
* `active` - active
* `resolved` - resolved
* `pending_release` - pending_release
* `suppressed` - suppressed
* `all` - all

# components.schemas.ErrorTrackingListWidgetConfig.properties.filterTestAccounts.description
When omitted, follows the project default for filtering test accounts.

# components.schemas.ErrorTrackingPendingFingerprintIssueStateUpdate.properties.version.description
Client-stamped monotonic version (`Date.now()` ms at mutation success).

# components.schemas.ErrorTrackingQuery.properties.issueId.description
Filter to a specific error tracking issue by ID.

# components.schemas.ErrorTrackingQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ErrorTrackingQuery.properties.pendingFingerprintIssueStateUpdates.description
Pending fingerprint issue state updates UNIONed into the fingerprint issue state subquery (V3 only). The backend caps the list at 50 entries; extras are dropped silently.

# components.schemas.ErrorTrackingQuery.properties.searchQuery.description
Free-text search across exception type, message, and stack frames.

# components.schemas.ErrorTrackingQuery.properties.useQueryV2.description
Use V2 query path (ClickHouse postgres connector join instead of separate Postgres queries)

# components.schemas.ErrorTrackingQuery.properties.useQueryV3.description
Use V3 query path (denormalized ClickHouse table, no Postgres joins)

# components.schemas.ErrorTrackingQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.ErrorTrackingQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.ErrorTrackingQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ErrorTrackingQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.ErrorTrackingQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.ErrorTrackingQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.ErrorTrackingQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.ErrorTrackingRecommendation.properties.type.description
Recommendation type identifier (e.g. 'alerts').

# components.schemas.ErrorTrackingRecommendation.properties.meta.description
Recommendation payload, shape depends on type.

# components.schemas.ErrorTrackingRecommendation.properties.completed.description
Whether the recommendation's recommended action has been satisfied.

# components.schemas.ErrorTrackingRecommendation.properties.status.description
'ready' if meta is fresh, 'computing' if a refresh is in progress.

* `ready` - Ready
* `computing` - Computing

# components.schemas.ErrorTrackingRecommendation.properties.computed_at.description
Timestamp meta was last successfully computed.

# components.schemas.ErrorTrackingRecommendation.properties.dismissed_at.description
Timestamp the user dismissed this recommendation, if any.

# components.schemas.ErrorTrackingRecommendation.properties.created_at.description
Timestamp the recommendation row was first created.

# components.schemas.ErrorTrackingRecommendation.properties.updated_at.description
Timestamp the recommendation row was last updated.

# components.schemas.ErrorTrackingRecommendationStatusEnum.description
* `ready` - Ready
* `computing` - Computing

# components.schemas.ErrorTrackingSettings.properties.project_rate_limit_value.description
Maximum number of exception events ingested per bucket for the entire project. Null removes the limit.

# components.schemas.ErrorTrackingSettings.properties.project_rate_limit_bucket_size_minutes.description
Bucket window over which the project-wide rate limit applies, in minutes.

# components.schemas.ErrorTrackingSettings.properties.per_issue_rate_limit_value.description
Maximum number of exception events ingested per bucket for each individual issue. Null removes the limit.

# components.schemas.ErrorTrackingSettings.properties.per_issue_rate_limit_bucket_size_minutes.description
Bucket window over which the per-issue rate limit applies, in minutes.

# components.schemas.ErrorTrackingSimilarIssuesQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ErrorTrackingSimilarIssuesQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.ErrorTrackingSimilarIssuesQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.ErrorTrackingSimilarIssuesQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ErrorTrackingSimilarIssuesQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.ErrorTrackingSimilarIssuesQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.ErrorTrackingSimilarIssuesQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.ErrorTrackingSimilarIssuesQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.ErrorTrackingSpikeDetectionConfig.properties.snooze_duration_minutes.description
Time to wait before alerting again for the same issue after a spike is detected.

# components.schemas.ErrorTrackingSpikeDetectionConfig.properties.multiplier.description
The factor by which the current exception count must exceed the baseline to be considered a spike.

# components.schemas.ErrorTrackingSpikeDetectionConfig.properties.threshold.description
The minimum number of exceptions required in a 5-minute window before a spike can be detected.

# components.schemas.ErrorTrackingSuppressionRuleCreateRequest.properties.filters.description
Optional property-group filters that define which incoming error events should be suppressed. Omit this field or provide an empty `values` array to create a match-all suppression rule.

# components.schemas.ErrorTrackingSuppressionRuleCreateRequest.properties.sampling_rate.description
Probability that a matching event is dropped. `1.0` drops every match (default); `0.0` drops none; `0.5` drops half. Higher values suppress more.

# components.schemas.ErrorTrackingSuppressionRuleUpdateRequest.properties.filters.description
Property-group filters that define which incoming error events should be suppressed. Provide an empty `values` array to convert the rule into a match-all suppression. Omit to preserve the existing filters.

# components.schemas.ErrorTrackingSuppressionRuleUpdateRequest.properties.sampling_rate.description
Probability that a matching event is dropped. `1.0` drops every match; `0.0` drops none; `0.5` drops half. Higher values suppress more. Omit to preserve the existing rate.

# components.schemas.ErrorTrackingSymbolSet.properties.ref.description
Reference used to match stack frames to this symbol set.

# components.schemas.ErrorTrackingSymbolSet.properties.team_id.description
Project/team ID that owns this symbol set.

# components.schemas.ErrorTrackingSymbolSet.properties.last_used.description
When this symbol set was last used to resolve a stack frame.

# components.schemas.ErrorTrackingSymbolSet.properties.failure_reason.description
Reason symbol lookup failed, if the source map is missing or invalid.

# components.schemas.ErrorTrackingSymbolSet.properties.has_uploaded_file.description
Whether this symbol set has an uploaded source map file available to download.

# components.schemas.ErrorTrackingSymbolSet.properties.release.description
Release associated with this symbol set, if any.

# components.schemas.ErrorTrackingSymbolSetBulkFinishUpload.properties.content_hashes.description
Map of symbol set ID to uploaded content hash.

# components.schemas.ErrorTrackingSymbolSetBulkStartUpload.properties.chunk_ids.description
Legacy list of symbol set references to upload, all associated with `release_id`.

# components.schemas.ErrorTrackingSymbolSetBulkStartUpload.properties.release_id.description
Optional error tracking release ID used with `chunk_ids`.

# components.schemas.ErrorTrackingSymbolSetBulkStartUpload.properties.symbol_sets.description
Symbol sets to upload with per-symbol release IDs and content hashes.

# components.schemas.ErrorTrackingSymbolSetBulkStartUpload.properties.force.description
Whether to overwrite uploaded symbol sets whose content hash changed.

# components.schemas.ErrorTrackingSymbolSetBulkStartUpload.properties.skip_on_conflict.description
Whether to skip uploaded symbol sets whose content hash changed instead of failing.

# components.schemas.ErrorTrackingSymbolSetFinishUpload.properties.content_hash.description
Hash of the uploaded symbol set content.

# components.schemas.ErrorTrackingSymbolSetUpload.properties.release_id.description
Optional error tracking release ID associated with this symbol set.

# components.schemas.ErrorTrackingSymbolSetUpload.properties.content_hash.description
Optional hash of the symbol set content, used to skip unchanged uploads.

# components.schemas.ErrorTrackingTopFrame.properties.in_app.description
Whether the frame is an application frame.

# components.schemas.EstimateRequest.description
Body of POST /vision/scanners/estimate/ — a proposed, unsaved scanner config.

# components.schemas.EstimateRequest.properties.query.description
Proposed `RecordingsQuery` for the candidate filter. `date_from`/`date_to` are ignored — the estimate always uses a fixed 30-day lookback. Omit to estimate against all recordings.

# components.schemas.EstimateRequest.properties.sampling_rate.description
0..1 downsample applied to matched sessions. Defaults to 1.0 (no downsampling).

# components.schemas.EstimateResponse.properties.matched_sessions_in_window.description
Distinct sessions matching the query within the 30-day lookback, before sampling.

# components.schemas.EstimateResponse.properties.window_days.description
Lookback window the estimate is based on. Normally 30; smaller when the team has fewer days of recordings.

# components.schemas.EstimateResponse.properties.estimated_observations_per_month.description
Projected monthly observations: matched sessions scaled to 30 days, times sampling_rate.

# components.schemas.EstimateResponse.properties.sampling_rate.description
Sampling rate applied to the projection. Echoed from the request.

# components.schemas.Evaluation.properties.description.description
Optional description of what this evaluation checks.

# components.schemas.Evaluation.properties.enabled.description
Whether the evaluation runs automatically on new $ai_generation events.

# components.schemas.Evaluation.properties.evaluation_type.description
'llm_judge' uses an LLM to score outputs against a prompt; 'hog' runs deterministic Hog code.

* `llm_judge` - LLM as a judge
* `hog` - Hog

# components.schemas.Evaluation.properties.evaluation_config.oneOf[].properties.prompt.description
Evaluation criteria for the LLM judge. Describe what makes a good vs bad response.

# components.schemas.Evaluation.properties.evaluation_config.oneOf[].properties.source.description
Hog source code. Must return true (pass), false (fail), or null for N/A.

# components.schemas.Evaluation.properties.evaluation_config.description
Configuration dict. For 'llm_judge': {prompt}. For 'hog': {source}.

# components.schemas.Evaluation.properties.output_type.description
Output format. Currently only 'boolean' is supported.

* `boolean` - Boolean (Pass/Fail)

# components.schemas.Evaluation.properties.output_config.properties.allows_na.description
Whether the evaluation can return N/A for non-applicable generations.

# components.schemas.Evaluation.properties.output_config.description
Output config. For 'boolean' output_type: {allows_na} to permit N/A results.

# components.schemas.Evaluation.properties.conditions.description
Trigger conditions that filter which events are evaluated. OR between condition sets, AND within each. Each set is {id, rollout_percentage, properties[]} — `rollout_percentage` (0-100, defaults to 100) is the sampling field the dispatcher reads.

# components.schemas.Evaluation.properties.deleted.description
Set to true to soft-delete the evaluation.

# components.schemas.EvaluationCondition.description
A trigger condition set controlling which generations an evaluation runs on.

# components.schemas.EvaluationCondition.properties.id.description
Stable identifier for this condition set.

# components.schemas.EvaluationCondition.properties.rollout_percentage.description
Percentage (0-100) of matching events to sample for this evaluation. Defaults to 100.

# components.schemas.EvaluationCondition.properties.properties.description
Property filters (event or person) that scope which generations match this condition set.

# components.schemas.EvaluationConfig.properties.trial_eval_limit.description
Maximum number of llm_judge runs the team may execute on PostHog trial credits.

# components.schemas.EvaluationConfig.properties.trial_evals_used.description
Number of llm_judge runs already consumed against the trial credit pool.

# components.schemas.EvaluationConfig.properties.trial_evals_remaining.description
Number of trial evaluation runs remaining before the team must supply its own provider key.

# components.schemas.EvaluationConfig.properties.active_provider_key.description
Provider key currently used to run llm_judge evaluations. Null when the team is on trial credits.

# components.schemas.EvaluationConfig.properties.created_at.description
Timestamp when the evaluation config row was created.

# components.schemas.EvaluationConfig.properties.updated_at.description
Timestamp when the evaluation config row was last modified.

# components.schemas.EvaluationConfigSetActiveKeyRequest.properties.key_id.description
UUID of an existing LLM provider key (state must be 'ok') to mark as the active key for running llm_judge evaluations team-wide.

# components.schemas.EvaluationReport.properties.evaluation.description
UUID of the evaluation this report config belongs to.

# components.schemas.EvaluationReport.properties.frequency.description
How report generation is triggered. 'every_n' fires once N new evaluation results have accumulated (subject to cooldown_minutes and daily_run_cap). 'scheduled' fires on the cadence defined by rrule + starts_at + timezone_name.

* `scheduled` - Scheduled
* `every_n` - Every N

# components.schemas.EvaluationReport.properties.rrule.description
RFC 5545 recurrence rule string (e.g. 'FREQ=WEEKLY;BYDAY=MO'). Must not contain DTSTART — the anchor is set via starts_at. Required when frequency is 'scheduled'; ignored otherwise.

# components.schemas.EvaluationReport.properties.starts_at.description
Anchor datetime for the rrule (ISO 8601, UTC — must end in 'Z'). Local-time interpretation is controlled by timezone_name. Required when frequency is 'scheduled'; ignored otherwise.

# components.schemas.EvaluationReport.properties.timezone_name.description
IANA timezone name used to expand the rrule in local time so e.g. '9am' stays at 9am across DST transitions (e.g. 'America/New_York'). Defaults to 'UTC'.

# components.schemas.EvaluationReport.properties.delivery_targets.description
List of delivery targets. Each entry is either {type: 'email', value: 'user@example.com'} or {type: 'slack', integration_id: <int>, channel: '<channel>'}. Slack integration_id must belong to this team.

# components.schemas.EvaluationReport.properties.max_sample_size.description
Maximum number of evaluation runs included in each report. Defaults to 200.

# components.schemas.EvaluationReport.properties.enabled.description
Whether report delivery is active. Disabled configs do not fire.

# components.schemas.EvaluationReport.properties.deleted.description
Set to true to soft-delete this report config.

# components.schemas.EvaluationReport.properties.report_prompt_guidance.description
Optional custom instructions appended to the AI report prompt to steer focus, scope, or section choices without modifying the base prompt.

# components.schemas.EvaluationReport.properties.trigger_threshold.description
Number of new evaluation results that triggers a report (every_n mode only). Min 10, max 10000. Defaults to 100. Required when frequency is 'every_n'.

# components.schemas.EvaluationReport.properties.cooldown_minutes.description
Minimum minutes between count-triggered reports to prevent spam (every_n mode only). Min 60, max 1440 (24 hours). Defaults to 60.

# components.schemas.EvaluationReport.properties.daily_run_cap.description
Maximum count-triggered report runs per calendar day (UTC). Min 1, max 24 (one per cooldown window). Defaults to 10.

# components.schemas.EvaluationReportFrequencyEnum.description
* `scheduled` - Scheduled
* `every_n` - Every N

# components.schemas.EvaluationReportRun.properties.report.description
UUID of the report config that generated this run.

# components.schemas.EvaluationReportRun.properties.content.description
Generated report content (markdown or structured text).

# components.schemas.EvaluationReportRun.properties.metadata.description
Run metadata including model used, token counts, and generation stats.

# components.schemas.EvaluationReportRun.properties.period_start.description
Start of the evaluation window covered by this report.

# components.schemas.EvaluationReportRun.properties.period_end.description
End of the evaluation window covered by this report.

# components.schemas.EvaluationReportRun.properties.delivery_status.description
'pending', 'delivered', or 'failed'.

* `pending` - Pending
* `delivered` - Delivered
* `partial_failure` - Partial Failure
* `failed` - Failed

# components.schemas.EvaluationReportRun.properties.delivery_errors.description
List of delivery error messages if delivery failed.

# components.schemas.EvaluationRunRequest.properties.target_event_id.description
UUID of the $ai_generation event to evaluate.

# components.schemas.EvaluationRunRequest.properties.timestamp.description
ISO 8601 timestamp of the target event (needed for efficient ClickHouse lookup).

# components.schemas.EvaluationRunRequest.properties.event.description
Event name. Defaults to '$ai_generation'.

# components.schemas.EvaluationRunRequest.properties.distinct_id.description
Distinct ID of the event (optional, improves lookup performance).

# components.schemas.EvaluationRuntimeEnum.description
* `server` - Server
* `client` - Client
* `all` - All

# components.schemas.EvaluationStatusEnum.description
* `active` - Active
* `paused` - Paused
* `error` - Error

# components.schemas.EvaluationSummaryRequest.description
Request serializer for evaluation summary - accepts IDs only, fetches data server-side.

# components.schemas.EvaluationSummaryRequest.properties.evaluation_id.description
UUID of the evaluation config to summarize

# components.schemas.EvaluationSummaryRequest.properties.filter.description
Filter type to apply ('all', 'pass', 'fail', or 'na')

* `all` - all
* `pass` - pass
* `fail` - fail
* `na` - na

# components.schemas.EvaluationSummaryRequest.properties.generation_ids.description
Optional: specific generation IDs to include in summary (max 250)

# components.schemas.EvaluationSummaryRequest.properties.force_refresh.description
If true, bypass cache and generate a fresh summary

# components.schemas.EvaluationTypeEnum.description
* `llm_judge` - LLM as a judge
* `hog` - Hog

# components.schemas.EventDefinitionRecord.description
Serializer mixin that handles tags for objects.

# components.schemas.EventDefinitionRecord.properties.primary_property.description
Name of a single property on this event that PostHog UIs should display alongside the event (for example `$pathname` on `$pageview`). When set, surfaces like the session replay inspector show the property's value next to the event name without the user having to open the event.

# components.schemas.EventFilterConfig.properties.filter_tree.description
Boolean expression tree. Nodes: {"type": "and"|"or", "children": [...]}, {"type": "not", "child": {...}}, {"type": "condition", "field": "event_name"|"distinct_id", "operator": "exact"|"contains", "value": "<string>"}

# components.schemas.EventFilterConfig.properties.test_cases.description
Test events to validate the filter. Each: {"event_name": "...", "distinct_id": "...", "expected_result": "drop"|"ingest"}

# components.schemas.EventFilterConfigModeEnum.description
* `disabled` - Disabled
* `dry_run` - Dry Run
* `live` - Live

# components.schemas.EventTaxonomyQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.EventTaxonomyQuery.properties.offset.description
Number of rows to skip before returning rows

# components.schemas.EventTaxonomyQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.EventTaxonomyQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.EventTaxonomyQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.EventTaxonomyQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.EventTaxonomyQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.EventTaxonomyQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.EventTaxonomyQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.EventTypeEnum.description
* `$ai_generation` - $ai_generation
* `$ai_span` - $ai_span
* `$ai_embedding` - $ai_embedding
* `$ai_trace` - $ai_trace

# components.schemas.EventsNode.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.EventsNode.properties.properties.description
Properties configurable in the interface

# components.schemas.EventsNode.properties.version.description
version of the node, used for schema migrations

# components.schemas.EventsQuery.properties.actionSteps.description
Show events matching action steps directly, used when no actionId is provided (e.g. previewing unsaved actions). Ignored if actionId is set.

# components.schemas.EventsQuery.properties.after.description
Only fetch events that happened after this timestamp

# components.schemas.EventsQuery.properties.before.description
Only fetch events that happened before this timestamp

# components.schemas.EventsQuery.properties.events.description
Filter to events matching any of these event names

# components.schemas.EventsQuery.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.EventsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.EventsQuery.properties.offset.description
Number of rows to skip before returning rows

# components.schemas.EventsQuery.properties.properties.description
Properties configurable in the interface

# components.schemas.EventsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.EventsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.EventsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.EventsQueryResponse.properties.nextCursor.description
Cursor for fetching the next page of results

# components.schemas.EventsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.EventsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.EventsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.EventsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.EvidenceEntry.description
One citation attached to a finding. Mirrors `SignalsScoutEvidenceEntry`.

# components.schemas.EvidenceEntry.properties.source_product.description
Source the citation came from (`error_tracking`, `session_replay`, `logs`, ...).

# components.schemas.EvidenceEntry.properties.summary.description
One-sentence prose about why this evidence supports the finding.

# components.schemas.EvidenceEntry.properties.entity_id.description
Optional ID of the cited entity (issue id, recording id, log query id).

# components.schemas.ExistenceOperatorEnum.description
* `is_set` - is_set
* `is_not_set` - is_not_set

# components.schemas.ExistencePropertyFilter.description
Checks whether a property is set or not, without comparing values.

# components.schemas.ExistencePropertyFilter.properties.key.description
Key of the property you're filtering on. For example `email` or `$current_url`.

# components.schemas.ExistencePropertyFilter.properties.type.description
Property type (event, person, session, etc.).

* `event` - event
* `event_metadata` - event_metadata
* `feature` - feature
* `person` - person
* `cohort` - cohort
* `element` - element
* `static-cohort` - static-cohort
* `dynamic-cohort` - dynamic-cohort
* `precalculated-cohort` - precalculated-cohort
* `group` - group
* `recording` - recording
* `log_entry` - log_entry
* `behavioral` - behavioral
* `session` - session
* `hogql` - hogql
* `data_warehouse` - data_warehouse
* `data_warehouse_person_property` - data_warehouse_person_property
* `error_tracking_issue` - error_tracking_issue
* `log` - log
* `log_attribute` - log_attribute
* `log_resource_attribute` - log_resource_attribute
* `span` - span
* `span_attribute` - span_attribute
* `span_resource_attribute` - span_resource_attribute
* `revenue_analytics` - revenue_analytics
* `flag` - flag
* `workflow_variable` - workflow_variable

# components.schemas.ExistencePropertyFilter.properties.operator.description
Existence check operator.

* `is_set` - is_set
* `is_not_set` - is_not_set

# components.schemas.ExistingInboxReports.description
`inventory.existing_inbox_reports` — what's already been surfaced to the inbox.

# components.schemas.ExistingInboxReports.properties.total.description
Total non-deleted, non-suppressed reports for this team.

# components.schemas.ExitConditionEnum.description
* `exit_on_conversion` - Conversion
* `exit_on_trigger_not_matched` - Trigger Not Matched
* `exit_on_trigger_not_matched_or_conversion` - Trigger Not Matched Or Conversion
* `exit_only_at_end` - Only At End

# components.schemas.Experiment.description
Mixin for serializers to add user access control fields

# components.schemas.Experiment.properties.description.description
Description of the experiment hypothesis and expected outcomes.

# components.schemas.Experiment.properties.feature_flag_key.description
Unique key for the experiment's feature flag. Letters, numbers, hyphens, and underscores only. Search existing flags with the feature-flags-get-all tool first — reuse an existing flag when possible.

# components.schemas.Experiment.properties.holdout_id.description
ID of a holdout group to exclude from the experiment.

# components.schemas.Experiment.properties.parameters.description
Experiment parameters JSON. Supported keys include `feature_flag_variants`, `rollout_percentage`, `minimum_detectable_effect`, `recommended_running_time`, `recommended_sample_size`, `custom_exposure_filter`, and `excluded_variants` (list of variant keys to drop from statistical analysis; the baseline variant and holdout pseudo-variants cannot be excluded).

# components.schemas.Experiment.properties.saved_metrics_ids.description
IDs of shared saved metrics to attach to this experiment. Each item has 'id' (saved metric ID) and 'metadata' with 'type' (primary or secondary).

# components.schemas.Experiment.properties.type.description
Experiment type: web for frontend UI changes, product for backend/API changes.

* `web` - web
* `product` - product

# components.schemas.Experiment.properties.exposure_criteria.description
Exposure configuration including filter test accounts and custom exposure events.

# components.schemas.Experiment.properties.metrics.description
Primary experiment metrics. Each metric must have kind='ExperimentMetric' and a metric_type: 'mean' (set source to an EventsNode with an event name), 'funnel' (set series to an array of EventsNode steps), 'ratio' (set numerator and denominator EventsNode entries), or 'retention' (set start_event and completion_event). Use the event-definitions-list tool to find available events in the project.

# components.schemas.Experiment.properties.metrics_secondary.description
Secondary metrics for additional measurements. Same format as primary metrics.

# components.schemas.Experiment.properties.allow_unknown_events.description
Suppresses the validation that rejects metrics referencing events not yet ingested by this project. REQUIRES explicit user confirmation before being set to true — never flip this silently to retry a failed call. The default validation catches typo'd event names and missing instrumentation. Set this to true only when the user has confirmed the event is intentional (e.g. they are about to instrument it).

# components.schemas.Experiment.properties.conclusion.description
Experiment conclusion: won, lost, inconclusive, stopped_early, or invalid.

* `won` - won
* `lost` - lost
* `inconclusive` - inconclusive
* `stopped_early` - stopped_early
* `invalid` - invalid

# components.schemas.Experiment.properties.conclusion_comment.description
Comment about the experiment conclusion.

# components.schemas.Experiment.properties.update_feature_flag_params.description
When true, sync feature flag configuration from parameters to the linked feature flag. Draft experiments always sync regardless of update_feature_flag_params, so only required for non-drafts.

# components.schemas.Experiment.properties.status.description
Experiment lifecycle state: 'draft' (not yet launched), 'running' (launched with active feature flag), 'paused' (running with feature flag deactivated — virtual state derived from feature_flag.active, not stored), 'stopped' (ended).

# components.schemas.Experiment.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.ExperimentActorsQuery.properties.exposureConfig.description
Exposure configuration for filtering events. Defines when users were first exposed to the experiment.

# components.schemas.ExperimentActorsQuery.properties.featureFlagKey.description
Feature flag key for breakdown filtering.

# components.schemas.ExperimentActorsQuery.properties.funnelStep.description
Index of the step for which we want to get actors for, per experiment variant. Positive for converted persons, negative for dropped off persons.

# components.schemas.ExperimentActorsQuery.properties.funnelStepBreakdown.description
The variant key for filtering actors. For experiments, this filters by feature flag variant (e.g., 'control', 'test').

# components.schemas.ExperimentActorsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ExperimentActorsQuery.properties.multipleVariantHandling.description
How to handle users with multiple variant exposures.

# components.schemas.ExperimentActorsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.ExperimentApiEventSource.properties.event.description
Event name, e.g. '$pageview'. Required for EventsNode.

# components.schemas.ExperimentApiEventSource.properties.math.description
How to aggregate this source. Defaults to 'total' (event count). Use 'sum' together with math_property to aggregate a numeric property — e.g. a ratio numerator of revenue per order. Other options: 'avg', 'min', 'max', 'unique_session', 'dau', 'unique_group', 'hogql'.

# components.schemas.ExperimentApiEventSource.properties.math_group_type_index.description
Group type index to aggregate over. Required when math is 'unique_group'.

# components.schemas.ExperimentApiEventSource.properties.math_hogql.description
HogQL aggregation expression. Required when math is 'hogql' — without it the metric silently falls back to a plain count/sum.

# components.schemas.ExperimentApiEventSource.properties.math_property.description
Numeric event property to aggregate when math is 'sum', 'avg', 'min', or 'max' (e.g. 'revenue').

# components.schemas.ExperimentApiEventSource.properties.properties.description
Event property filters to narrow which events are counted.

# components.schemas.ExperimentApiExposureConfig.properties.properties.description
Event property filters. Pass an empty array if no filters needed.

# components.schemas.ExperimentApiMetric.properties.completion_event.description
For retention metrics: completion event.

# components.schemas.ExperimentApiMetric.properties.denominator_outlier_handling.description
For ratio metrics: winsorization applied to the denominator aggregate. Leave unset for a binomial-style denominator, which is never clamped.

# components.schemas.ExperimentApiMetric.properties.goal.description
Whether higher or lower values indicate success.

# components.schemas.ExperimentApiMetric.properties.ignore_zeros.description
For mean metrics: exclude zero values when computing the winsorization percentile thresholds.

# components.schemas.ExperimentApiMetric.properties.lower_bound_percentile.description
For mean metrics: winsorization lower percentile bound, as a fraction in [0, 1] (e.g. 0.01 for the 1st percentile). Per-user values below this percentile are clamped to it before aggregation.

# components.schemas.ExperimentApiMetric.properties.numerator_outlier_handling.description
For ratio metrics: winsorization applied to the numerator aggregate, independently of the denominator and each with its own percentile thresholds.

# components.schemas.ExperimentApiMetric.properties.series.description
For funnel metrics: array of EventsNode/ActionsNode steps.

# components.schemas.ExperimentApiMetric.properties.upper_bound_percentile.description
For mean metrics: winsorization upper percentile bound, as a fraction in [0, 1] (e.g. 0.99 for the 99th percentile). Per-user values above this percentile are clamped to it before aggregation.

# components.schemas.ExperimentApiMetric.properties.uuid.description
Unique identifier. Auto-generated if omitted.

# components.schemas.ExperimentBreakdownResult.properties.baseline.description
Control variant stats for this breakdown

# components.schemas.ExperimentBreakdownResult.properties.breakdown_value.description
The breakdown values as an array (e.g., ["MacOS", "Chrome"] for multi-breakdown, ["Chrome"] for single) Although `BreakdownKeyType` could be an array, we only use the array form for the breakdown_value. The way `BreakdownKeyType` is defined is problematic. It should be treated as a primitive and allow for the types using it to define if it's and array or an optional value.

# components.schemas.ExperimentBreakdownResult.properties.variants.description
Test variant results with statistical comparisons for this breakdown

# components.schemas.ExperimentDataWarehouseNode.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.ExperimentDataWarehouseNode.properties.properties.description
Properties configurable in the interface

# components.schemas.ExperimentDataWarehouseNode.properties.version.description
version of the node, used for schema migrations

# components.schemas.ExperimentEventExposureConfig.properties.version.description
version of the node, used for schema migrations

# components.schemas.ExperimentExposureQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ExperimentExposureQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.ExperimentExposureQueryResponse.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.ExperimentFunnelMetric.properties.version.description
version of the node, used for schema migrations

# components.schemas.ExperimentFunnelsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ExperimentFunnelsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.ExperimentFunnelsQueryResponse.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.ExperimentMeanMetric.properties.lower_bound_percentile.description
Winsorization lower percentile bound, as a fraction in [0, 1] (e.g. 0.01 for the 1st percentile).

# components.schemas.ExperimentMeanMetric.properties.upper_bound_percentile.description
Winsorization upper percentile bound, as a fraction in [0, 1] (e.g. 0.99 for the 99th percentile).

# components.schemas.ExperimentMeanMetric.properties.version.description
version of the node, used for schema migrations

# components.schemas.ExperimentMetricKindEnum.description
* `categorical` - categorical
* `numeric` - numeric
* `boolean` - boolean

# components.schemas.ExperimentMetricOutlierHandling.properties.lower_bound_percentile.description
Winsorization lower percentile bound, as a fraction in [0, 1] (e.g. 0.01 for the 1st percentile).

# components.schemas.ExperimentMetricOutlierHandling.properties.upper_bound_percentile.description
Winsorization upper percentile bound, as a fraction in [0, 1] (e.g. 0.99 for the 99th percentile).

# components.schemas.ExperimentParameters.properties.excluded_variants.description
Variant keys to exclude from metric result calculations. Excluded variants are still served to users but omitted from statistical analysis.

# components.schemas.ExperimentParameters.properties.feature_flag_variants.description
Experiment variants. If specified, must include a variant with key 'control' (lowercase). Defaults to a 50/50 control/test split when omitted. Minimum 2, maximum 20.

# components.schemas.ExperimentParameters.properties.minimum_detectable_effect.description
Minimum detectable effect as a percentage. Lower values need more users but catch smaller changes. Suggest 20–30% for most experiments.

# components.schemas.ExperimentParameters.properties.rollout_percentage.description
Overall rollout percentage (0-100). Controls what fraction of all users enter the experiment. Users outside the rollout never see any variant and are excluded from analysis. Default: 100.

# components.schemas.ExperimentQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ExperimentQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.ExperimentQueryResponse.properties.breakdown_results.description
Results grouped by breakdown value. When present, baseline and variant_results contain aggregated data.

# components.schemas.ExperimentQueryResponse.properties.is_precomputed.description
Whether exposures were served from the precomputation system

# components.schemas.ExperimentQueryResponse.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.ExperimentRatioMetric.properties.version.description
version of the node, used for schema migrations

# components.schemas.ExperimentRetentionMetric.properties.version.description
version of the node, used for schema migrations

# components.schemas.ExperimentSavedMetric.description
Mixin for serializers to add user access control fields

# components.schemas.ExperimentSavedMetric.properties.name.description
Name of the shared metric. Must be unique within the project (case-insensitive).

# components.schemas.ExperimentSavedMetric.properties.description.description
Short description of what the metric measures.

# components.schemas.ExperimentSavedMetric.properties.query.description
ExperimentMetric JSON. Must have kind='ExperimentMetric' and a metric_type: 'mean' (set source to an EventsNode with an event name), 'funnel' (set series to an array of EventsNode steps), 'ratio' (set numerator and denominator EventsNode entries), or 'retention' (set start_event and completion_event). Legacy kinds (ExperimentTrendsQuery, ExperimentFunnelsQuery) are rejected for new shared metrics.

# components.schemas.ExperimentSavedMetric.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.ExperimentTrendsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.ExperimentTrendsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.ExperimentTrendsQueryResponse.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.ExperimentVariant.properties.key.description
Variant key. Exactly one variant in feature_flag_variants must use key 'control' (lowercase, exactly) — that is the baseline used for analysis and the special key the experiment runtime expects. Other variants use keys like 'test', 'variant_a', 'variant_b'. Map natural-language names ('original', 'A', 'baseline') to 'control'.

# components.schemas.ExperimentVariant.properties.split_percent.description
Percentage of users assigned to this variant (0–100). All variants must sum to 100. One of split_percent (recommended) or rollout_percentage must be provided.

# components.schemas.ExplainRequest.properties.timestamp.description
Timestamp of the log entry (used for efficient lookup)

# components.schemas.ExplainRequest.properties.force_refresh.description
Force regenerate explanation, bypassing cache

# components.schemas.ExportFormatEnum.description
* `image/png` - image/png
* `application/pdf` - application/pdf
* `text/csv` - text/csv
* `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
* `video/webm` - video/webm
* `video/mp4` - video/mp4
* `image/gif` - image/gif
* `application/json` - application/json

# components.schemas.ExportedAsset.description
Standard ExportedAsset serializer that doesn't return content.

# components.schemas.ExternalDataSchema.properties.latest_error.description
The latest error that occurred when syncing this schema.

# components.schemas.ExternalDataSchema.properties.sync_type.description
Sync strategy: incremental, full_refresh, append, or cdc.

* `full_refresh` - full_refresh
* `incremental` - incremental
* `append` - append
* `webhook` - webhook
* `cdc` - cdc

# components.schemas.ExternalDataSchema.properties.incremental_field.description
Column name used to track sync progress.

# components.schemas.ExternalDataSchema.properties.incremental_field_type.description
Data type of the incremental field.

* `integer` - integer
* `numeric` - numeric
* `datetime` - datetime
* `date` - date
* `timestamp` - timestamp
* `objectid` - objectid

# components.schemas.ExternalDataSchema.properties.sync_time_of_day.description
UTC time of day to run the sync (HH:MM:SS).

# components.schemas.ExternalDataSchema.properties.primary_key_columns.description
Column names for primary key deduplication.

# components.schemas.ExternalDataSchema.properties.cdc_table_mode.description
For CDC syncs: consolidated, cdc_only, or both.

* `consolidated` - consolidated
* `cdc_only` - cdc_only
* `both` - both

# components.schemas.ExternalDataSchema.properties.enabled_columns.description
Names of source columns to sync. `null` (default) syncs all columns. Primary-key columns and the active incremental field are always retained, even if not listed here.

# components.schemas.ExternalDataSchema.properties.available_columns.description
Source-side column metadata (name, data type, nullable) discovered for this schema. Empty until the source has been refreshed via `refresh_schemas`.

# components.schemas.ExternalDataSchema.properties.source.description
Lightweight parent-source summary (id, source_type, column-selection support, the requesting user's access level). Only populated on the single-schema retrieve endpoint — `null` elsewhere — so read-only views can render without fetching the full source and all its schemas.

# components.schemas.ExternalDataSourceBulkUpdateSchema.properties.should_sync.description
Whether the schema should be queryable/synced.

# components.schemas.ExternalDataSourceBulkUpdateSchema.properties.sync_type.description
Requested sync mode for the schema.

* `full_refresh` - full_refresh
* `incremental` - incremental
* `append` - append
* `webhook` - webhook
* `cdc` - cdc

# components.schemas.ExternalDataSourceBulkUpdateSchema.properties.incremental_field.description
Incremental cursor field for incremental or append syncs.

# components.schemas.ExternalDataSourceBulkUpdateSchema.properties.cdc_table_mode.description
How CDC-backed tables should be exposed.

* `consolidated` - consolidated
* `cdc_only` - cdc_only
* `both` - both

# components.schemas.ExternalDataSourceBulkUpdateSchema.properties.enabled_columns.description
Columns to sync. Null means sync all columns.

# components.schemas.ExternalDataSourceConnectionOption.properties.engine.description
Backend engine detected for the direct connection.

* `duckdb` - duckdb
* `postgres` - postgres

# components.schemas.ExternalDataSourceCreate.properties.source_type.description
The source type (e.g. 'Postgres', 'Stripe').

* `Ashby` - Ashby
* `Supabase` - Supabase
* `CustomerIO` - CustomerIO
* `Github` - Github
* `Stripe` - Stripe
* `Hubspot` - Hubspot
* `Postgres` - Postgres
* `Zendesk` - Zendesk
* `Snowflake` - Snowflake
* `Salesforce` - Salesforce
* `MySQL` - MySQL
* `MongoDB` - MongoDB
* `MSSQL` - MSSQL
* `Vitally` - Vitally
* `BigQuery` - BigQuery
* `Chargebee` - Chargebee
* `Clerk` - Clerk
* `GoogleAds` - GoogleAds
* `GoogleSearchConsole` - GoogleSearchConsole
* `TemporalIO` - TemporalIO
* `DoIt` - DoIt
* `GoogleSheets` - GoogleSheets
* `MetaAds` - MetaAds
* `Klaviyo` - Klaviyo
* `Mailchimp` - Mailchimp
* `Braze` - Braze
* `Mailjet` - Mailjet
* `Redshift` - Redshift
* `Polar` - Polar
* `RevenueCat` - RevenueCat
* `LinkedinAds` - LinkedinAds
* `RedditAds` - RedditAds
* `TikTokAds` - TikTokAds
* `BingAds` - BingAds
* `Shopify` - Shopify
* `Attio` - Attio
* `SnapchatAds` - SnapchatAds
* `Linear` - Linear
* `Intercom` - Intercom
* `Amplitude` - Amplitude
* `Mixpanel` - Mixpanel
* `Jira` - Jira
* `ActiveCampaign` - ActiveCampaign
* `Marketo` - Marketo
* `Adjust` - Adjust
* `AppsFlyer` - AppsFlyer
* `Freshdesk` - Freshdesk
* `GoogleAnalytics` - GoogleAnalytics
* `Pipedrive` - Pipedrive
* `SendGrid` - SendGrid
* `Slack` - Slack
* `PagerDuty` - PagerDuty
* `Asana` - Asana
* `Notion` - Notion
* `Airtable` - Airtable
* `Greenhouse` - Greenhouse
* `BambooHR` - BambooHR
* `Lever` - Lever
* `GitLab` - GitLab
* `Datadog` - Datadog
* `Sentry` - Sentry
* `Pendo` - Pendo
* `FullStory` - FullStory
* `AmazonAds` - AmazonAds
* `PinterestAds` - PinterestAds
* `AppleSearchAds` - AppleSearchAds
* `QuickBooks` - QuickBooks
* `Xero` - Xero
* `NetSuite` - NetSuite
* `WooCommerce` - WooCommerce
* `BigCommerce` - BigCommerce
* `PayPal` - PayPal
* `Square` - Square
* `Zoom` - Zoom
* `Trello` - Trello
* `Monday` - Monday
* `ClickUp` - ClickUp
* `Confluence` - Confluence
* `Recurly` - Recurly
* `SalesLoft` - SalesLoft
* `Outreach` - Outreach
* `Gong` - Gong
* `Calendly` - Calendly
* `Typeform` - Typeform
* `Iterable` - Iterable
* `ZohoCRM` - ZohoCRM
* `Close` - Close
* `Oracle` - Oracle
* `DynamoDB` - DynamoDB
* `Elasticsearch` - Elasticsearch
* `Kafka` - Kafka
* `LaunchDarkly` - LaunchDarkly
* `Braintree` - Braintree
* `Recharge` - Recharge
* `HelpScout` - HelpScout
* `Gorgias` - Gorgias
* `Instagram` - Instagram
* `YouTubeAnalytics` - YouTubeAnalytics
* `FacebookPages` - FacebookPages
* `TwitterAds` - TwitterAds
* `Workday` - Workday
* `ServiceNow` - ServiceNow
* `Pardot` - Pardot
* `Copper` - Copper
* `Front` - Front
* `ChartMogul` - ChartMogul
* `Zuora` - Zuora
* `Paddle` - Paddle
* `CircleCI` - CircleCI
* `CockroachDB` - CockroachDB
* `Firebase` - Firebase
* `AzureBlob` - AzureBlob
* `GoogleDrive` - GoogleDrive
* `OneDrive` - OneDrive
* `SharePoint` - SharePoint
* `Box` - Box
* `SFTP` - SFTP
* `MicrosoftTeams` - MicrosoftTeams
* `Aircall` - Aircall
* `Webflow` - Webflow
* `Okta` - Okta
* `Auth0` - Auth0
* `Productboard` - Productboard
* `Smartsheet` - Smartsheet
* `Wrike` - Wrike
* `Plaid` - Plaid
* `SurveyMonkey` - SurveyMonkey
* `Eventbrite` - Eventbrite
* `RingCentral` - RingCentral
* `Twilio` - Twilio
* `Freshsales` - Freshsales
* `Shortcut` - Shortcut
* `ConvertKit` - ConvertKit
* `Drip` - Drip
* `CampaignMonitor` - CampaignMonitor
* `MailerLite` - MailerLite
* `Omnisend` - Omnisend
* `Brevo` - Brevo
* `Postmark` - Postmark
* `Granola` - Granola
* `BuildBetter` - BuildBetter
* `Convex` - Convex
* `ClickHouse` - ClickHouse
* `Plain` - Plain
* `Resend` - Resend
* `PgAnalyze` - PgAnalyze
* `WorkOS` - WorkOS
* `Custom` - Custom

# components.schemas.ExternalDataSourceCreate.properties.payload.description
Connection credentials and a 'schemas' array. Keys depend on source_type.

# components.schemas.ExternalDataSourceCreate.properties.access_method.description
Connection mode: 'warehouse' (import) or 'direct' (live query).

* `warehouse` - warehouse
* `direct` - direct

# components.schemas.ExternalDataSourceCreate.properties.created_via.description
Where the request came from

* `web` - web
* `api` - api
* `mcp` - mcp

# components.schemas.ExternalDataSourceEntry.properties.source_type.description
Warehouse source type (e.g. `Stripe`, `Postgres`, `BigQuery`).

# components.schemas.ExternalDataSourceEntry.properties.status.description
Current sync status (`Running`, `Failed`, `Paused`, etc.).

# components.schemas.ExternalDataSourceEntry.properties.prefix.description
Schema prefix used by this source, if any.

# components.schemas.ExternalDataSourceEntry.properties.created_at.description
ISO-8601 timestamp the source was connected.

# components.schemas.ExternalDataSourceSerializers.description
Mixin for serializers to add user access control fields

# components.schemas.ExternalDataSourceSerializers.properties.created_via.description
How this source was created. Defaults to `api` on create when omitted. `web` for the in-app UI, `api` for direct API callers, `mcp` for agent/MCP tool calls. Ignored on update.

* `web` - web
* `api` - api
* `mcp` - mcp

# components.schemas.ExternalDataSourceSerializers.properties.engine.description
Backend engine detected for the direct connection.

* `duckdb` - duckdb
* `postgres` - postgres

# components.schemas.ExternalDataSourceSerializers.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.ExternalDataSourceSerializers.properties.supports_column_selection.description
Whether this source supports per-column sync selection via `enabled_columns`.

# components.schemas.ExternalDataSourceTypeEnum.description
* `Ashby` - Ashby
* `Supabase` - Supabase
* `CustomerIO` - CustomerIO
* `Github` - Github
* `Stripe` - Stripe
* `Hubspot` - Hubspot
* `Postgres` - Postgres
* `Zendesk` - Zendesk
* `Snowflake` - Snowflake
* `Salesforce` - Salesforce
* `MySQL` - MySQL
* `MongoDB` - MongoDB
* `MSSQL` - MSSQL
* `Vitally` - Vitally
* `BigQuery` - BigQuery
* `Chargebee` - Chargebee
* `Clerk` - Clerk
* `GoogleAds` - GoogleAds
* `GoogleSearchConsole` - GoogleSearchConsole
* `TemporalIO` - TemporalIO
* `DoIt` - DoIt
* `GoogleSheets` - GoogleSheets
* `MetaAds` - MetaAds
* `Klaviyo` - Klaviyo
* `Mailchimp` - Mailchimp
* `Braze` - Braze
* `Mailjet` - Mailjet
* `Redshift` - Redshift
* `Polar` - Polar
* `RevenueCat` - RevenueCat
* `LinkedinAds` - LinkedinAds
* `RedditAds` - RedditAds
* `TikTokAds` - TikTokAds
* `BingAds` - BingAds
* `Shopify` - Shopify
* `Attio` - Attio
* `SnapchatAds` - SnapchatAds
* `Linear` - Linear
* `Intercom` - Intercom
* `Amplitude` - Amplitude
* `Mixpanel` - Mixpanel
* `Jira` - Jira
* `ActiveCampaign` - ActiveCampaign
* `Marketo` - Marketo
* `Adjust` - Adjust
* `AppsFlyer` - AppsFlyer
* `Freshdesk` - Freshdesk
* `GoogleAnalytics` - GoogleAnalytics
* `Pipedrive` - Pipedrive
* `SendGrid` - SendGrid
* `Slack` - Slack
* `PagerDuty` - PagerDuty
* `Asana` - Asana
* `Notion` - Notion
* `Airtable` - Airtable
* `Greenhouse` - Greenhouse
* `BambooHR` - BambooHR
* `Lever` - Lever
* `GitLab` - GitLab
* `Datadog` - Datadog
* `Sentry` - Sentry
* `Pendo` - Pendo
* `FullStory` - FullStory
* `AmazonAds` - AmazonAds
* `PinterestAds` - PinterestAds
* `AppleSearchAds` - AppleSearchAds
* `QuickBooks` - QuickBooks
* `Xero` - Xero
* `NetSuite` - NetSuite
* `WooCommerce` - WooCommerce
* `BigCommerce` - BigCommerce
* `PayPal` - PayPal
* `Square` - Square
* `Zoom` - Zoom
* `Trello` - Trello
* `Monday` - Monday
* `ClickUp` - ClickUp
* `Confluence` - Confluence
* `Recurly` - Recurly
* `SalesLoft` - SalesLoft
* `Outreach` - Outreach
* `Gong` - Gong
* `Calendly` - Calendly
* `Typeform` - Typeform
* `Iterable` - Iterable
* `ZohoCRM` - ZohoCRM
* `Close` - Close
* `Oracle` - Oracle
* `DynamoDB` - DynamoDB
* `Elasticsearch` - Elasticsearch
* `Kafka` - Kafka
* `LaunchDarkly` - LaunchDarkly
* `Braintree` - Braintree
* `Recharge` - Recharge
* `HelpScout` - HelpScout
* `Gorgias` - Gorgias
* `Instagram` - Instagram
* `YouTubeAnalytics` - YouTubeAnalytics
* `FacebookPages` - FacebookPages
* `TwitterAds` - TwitterAds
* `Workday` - Workday
* `ServiceNow` - ServiceNow
* `Pardot` - Pardot
* `Copper` - Copper
* `Front` - Front
* `ChartMogul` - ChartMogul
* `Zuora` - Zuora
* `Paddle` - Paddle
* `CircleCI` - CircleCI
* `CockroachDB` - CockroachDB
* `Firebase` - Firebase
* `AzureBlob` - AzureBlob
* `GoogleDrive` - GoogleDrive
* `OneDrive` - OneDrive
* `SharePoint` - SharePoint
* `Box` - Box
* `SFTP` - SFTP
* `MicrosoftTeams` - MicrosoftTeams
* `Aircall` - Aircall
* `Webflow` - Webflow
* `Okta` - Okta
* `Auth0` - Auth0
* `Productboard` - Productboard
* `Smartsheet` - Smartsheet
* `Wrike` - Wrike
* `Plaid` - Plaid
* `SurveyMonkey` - SurveyMonkey
* `Eventbrite` - Eventbrite
* `RingCentral` - RingCentral
* `Twilio` - Twilio
* `Freshsales` - Freshsales
* `Shortcut` - Shortcut
* `ConvertKit` - ConvertKit
* `Drip` - Drip
* `CampaignMonitor` - CampaignMonitor
* `MailerLite` - MailerLite
* `Omnisend` - Omnisend
* `Brevo` - Brevo
* `Postmark` - Postmark
* `Granola` - Granola
* `BuildBetter` - BuildBetter
* `Convex` - Convex
* `ClickHouse` - ClickHouse
* `Plain` - Plain
* `Resend` - Resend
* `PgAnalyze` - PgAnalyze
* `WorkOS` - WorkOS
* `Custom` - Custom

# components.schemas.FeatureFlag.description
Serializer mixin that handles tags for objects.

# components.schemas.FeatureFlag.properties.name.description
contains the description for the flag (field name `name` is kept for backwards-compatibility)

# components.schemas.FeatureFlag.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.FeatureFlag.properties.creation_context.description
Indicates the origin product of the feature flag. Choices: 'feature_flags', 'experiments', 'surveys', 'early_access_features', 'web_experiments', 'product_tours'.

* `feature_flags` - feature_flags
* `experiments` - experiments
* `surveys` - surveys
* `early_access_features` - early_access_features
* `web_experiments` - web_experiments
* `product_tours` - product_tours

# components.schemas.FeatureFlag.properties.evaluation_runtime.description
Specifies where this feature flag should be evaluated

* `server` - Server
* `client` - Client
* `all` - All

# components.schemas.FeatureFlag.properties.bucketing_identifier.description
Identifier used for bucketing users into rollout and variants

* `distinct_id` - User ID (default)
* `device_id` - Device ID

# components.schemas.FeatureFlag.properties.last_called_at.description
Last time this feature flag was called (from $feature_flag_called events)

# components.schemas.FeatureFlag.properties.is_used_in_replay_settings.description
Check if this feature flag is used in any team's session recording linked flag setting.

# components.schemas.FeatureFlagConditionAnalysis.properties.index.description
Index of this condition in the feature flag

# components.schemas.FeatureFlagConditionAnalysis.properties.matched.description
True when this condition was the one that determined the flag's outcome. Use this to find the winning condition — at most one condition per flag is True.

# components.schemas.FeatureFlagConditionAnalysis.properties.properties_matched.description
True when every property in this condition evaluated to true, regardless of whether this condition was the eventual winner.

# components.schemas.FeatureFlagConditionAnalysis.properties.explanation.description
Human-readable explanation of why this condition matched/didn't match

# components.schemas.FeatureFlagConditionAnalysis.properties.rollout_percentage.description
Rollout percentage for this condition (0.0-100.0)

# components.schemas.FeatureFlagConditionAnalysis.properties.rollout_excluded.description
Whether this condition matched properties but was excluded due to rollout

# components.schemas.FeatureFlagConditionAnalysis.properties.properties.description
Analysis of each property in this condition

# components.schemas.FeatureFlagConditionGroupSchema.properties.properties.description
Property conditions for this release condition group.

# components.schemas.FeatureFlagConditionGroupSchema.properties.rollout_percentage.description
Rollout percentage for this release condition group.

# components.schemas.FeatureFlagConditionGroupSchema.properties.variant.description
Variant key override for multivariate flags.

# components.schemas.FeatureFlagConditionGroupSchema.properties.aggregation_group_type_index.description
Group type index for this condition set. None means person-level aggregation.

# components.schemas.FeatureFlagConditionPropertyAnalysis.properties.explanation.description
Human-readable explanation of the match result

# components.schemas.FeatureFlagCreateRequestSchema.properties.name.description
Feature flag description (stored in the `name` field for backwards compatibility).

# components.schemas.FeatureFlagCreateRequestSchema.properties.tags.description
Organizational tags for this feature flag.

# components.schemas.FeatureFlagCreateRequestSchema.properties.evaluation_contexts.description
Evaluation contexts that control where this flag evaluates at runtime.

# components.schemas.FeatureFlagCreationContextEnum.description
* `feature_flags` - feature_flags
* `experiments` - experiments
* `surveys` - surveys
* `early_access_features` - early_access_features
* `web_experiments` - web_experiments
* `product_tours` - product_tours

# components.schemas.FeatureFlagFilterPropertyCohortInSchema.properties.key.description
Property key used in this feature flag condition.

# components.schemas.FeatureFlagFilterPropertyCohortInSchema.properties.type.description
Cohort property type required for in/not_in operators.

* `cohort` - cohort

# components.schemas.FeatureFlagFilterPropertyCohortInSchema.properties.cohort_name.description
Resolved cohort name for cohort-type filters.

# components.schemas.FeatureFlagFilterPropertyCohortInSchema.properties.group_type_index.description
Group type index when using group-based filters.

# components.schemas.FeatureFlagFilterPropertyCohortInSchema.properties.operator.description
Membership operator for cohort properties.

* `in` - in
* `not_in` - not_in

# components.schemas.FeatureFlagFilterPropertyCohortInSchema.properties.value.description
Cohort comparison value (single or list, depending on usage).

# components.schemas.FeatureFlagFilterPropertyDateSchema.properties.key.description
Property key used in this feature flag condition.

# components.schemas.FeatureFlagFilterPropertyDateSchema.properties.type.description
Property filter type. Common values are 'person' and 'cohort'.

* `cohort` - cohort
* `person` - person
* `group` - group

# components.schemas.FeatureFlagFilterPropertyDateSchema.properties.cohort_name.description
Resolved cohort name for cohort-type filters.

# components.schemas.FeatureFlagFilterPropertyDateSchema.properties.group_type_index.description
Group type index when using group-based filters.

# components.schemas.FeatureFlagFilterPropertyDateSchema.properties.operator.description
Date comparison operator.

* `is_date_exact` - is_date_exact
* `is_date_after` - is_date_after
* `is_date_before` - is_date_before

# components.schemas.FeatureFlagFilterPropertyDateSchema.properties.value.description
Date value in ISO format or relative date expression.

# components.schemas.FeatureFlagFilterPropertyExistsSchema.properties.key.description
Property key used in this feature flag condition.

# components.schemas.FeatureFlagFilterPropertyExistsSchema.properties.type.description
Property filter type. Common values are 'person' and 'cohort'.

* `cohort` - cohort
* `person` - person
* `group` - group

# components.schemas.FeatureFlagFilterPropertyExistsSchema.properties.cohort_name.description
Resolved cohort name for cohort-type filters.

# components.schemas.FeatureFlagFilterPropertyExistsSchema.properties.group_type_index.description
Group type index when using group-based filters.

# components.schemas.FeatureFlagFilterPropertyExistsSchema.properties.operator.description
Existence operator.

* `is_set` - is_set
* `is_not_set` - is_not_set

# components.schemas.FeatureFlagFilterPropertyExistsSchema.properties.value.description
Optional value. Runtime behavior determines whether this is ignored.

# components.schemas.FeatureFlagFilterPropertyFlagEvaluatesSchema.properties.key.description
Property key used in this feature flag condition.

# components.schemas.FeatureFlagFilterPropertyFlagEvaluatesSchema.properties.type.description
Flag property type required for flag dependency checks.

* `flag` - flag

# components.schemas.FeatureFlagFilterPropertyFlagEvaluatesSchema.properties.cohort_name.description
Resolved cohort name for cohort-type filters.

# components.schemas.FeatureFlagFilterPropertyFlagEvaluatesSchema.properties.group_type_index.description
Group type index when using group-based filters.

# components.schemas.FeatureFlagFilterPropertyFlagEvaluatesSchema.properties.operator.description
Operator for feature flag dependency evaluation.

* `flag_evaluates_to` - flag_evaluates_to

# components.schemas.FeatureFlagFilterPropertyFlagEvaluatesSchema.properties.value.description
Value to compare flag evaluation against.

# components.schemas.FeatureFlagFilterPropertyGenericSchema.properties.key.description
Property key used in this feature flag condition.

# components.schemas.FeatureFlagFilterPropertyGenericSchema.properties.type.description
Property filter type. Common values are 'person' and 'cohort'.

* `cohort` - cohort
* `person` - person
* `group` - group

# components.schemas.FeatureFlagFilterPropertyGenericSchema.properties.cohort_name.description
Resolved cohort name for cohort-type filters.

# components.schemas.FeatureFlagFilterPropertyGenericSchema.properties.group_type_index.description
Group type index when using group-based filters.

# components.schemas.FeatureFlagFilterPropertyGenericSchema.properties.value.description
Comparison value for the property filter. Supports strings, numbers, booleans, and arrays.

# components.schemas.FeatureFlagFilterPropertyGenericSchema.properties.operator.description
Operator used to compare the property value.

* `exact` - exact
* `is_not` - is_not
* `icontains` - icontains
* `not_icontains` - not_icontains
* `regex` - regex
* `not_regex` - not_regex
* `gt` - gt
* `gte` - gte
* `lt` - lt
* `lte` - lte

# components.schemas.FeatureFlagFilterPropertyGenericSchemaOperatorEnum.description
* `exact` - exact
* `is_not` - is_not
* `icontains` - icontains
* `not_icontains` - not_icontains
* `regex` - regex
* `not_regex` - not_regex
* `gt` - gt
* `gte` - gte
* `lt` - lt
* `lte` - lte

# components.schemas.FeatureFlagFilterPropertyMultiContainsSchema.properties.key.description
Property key used in this feature flag condition.

# components.schemas.FeatureFlagFilterPropertyMultiContainsSchema.properties.type.description
Property filter type. Common values are 'person' and 'cohort'.

* `cohort` - cohort
* `person` - person
* `group` - group

# components.schemas.FeatureFlagFilterPropertyMultiContainsSchema.properties.cohort_name.description
Resolved cohort name for cohort-type filters.

# components.schemas.FeatureFlagFilterPropertyMultiContainsSchema.properties.group_type_index.description
Group type index when using group-based filters.

# components.schemas.FeatureFlagFilterPropertyMultiContainsSchema.properties.operator.description
Multi-contains operator.

* `icontains_multi` - icontains_multi
* `not_icontains_multi` - not_icontains_multi

# components.schemas.FeatureFlagFilterPropertyMultiContainsSchemaOperatorEnum.description
* `icontains_multi` - icontains_multi
* `not_icontains_multi` - not_icontains_multi

# components.schemas.FeatureFlagFilterPropertySemverSchema.properties.key.description
Property key used in this feature flag condition.

# components.schemas.FeatureFlagFilterPropertySemverSchema.properties.type.description
Property filter type. Common values are 'person' and 'cohort'.

* `cohort` - cohort
* `person` - person
* `group` - group

# components.schemas.FeatureFlagFilterPropertySemverSchema.properties.cohort_name.description
Resolved cohort name for cohort-type filters.

# components.schemas.FeatureFlagFilterPropertySemverSchema.properties.group_type_index.description
Group type index when using group-based filters.

# components.schemas.FeatureFlagFilterPropertySemverSchema.properties.operator.description
Semantic version comparison operator.

* `semver_gt` - semver_gt
* `semver_gte` - semver_gte
* `semver_lt` - semver_lt
* `semver_lte` - semver_lte
* `semver_eq` - semver_eq
* `semver_neq` - semver_neq
* `semver_tilde` - semver_tilde
* `semver_caret` - semver_caret
* `semver_wildcard` - semver_wildcard

# components.schemas.FeatureFlagFilterPropertySemverSchemaOperatorEnum.description
* `semver_gt` - semver_gt
* `semver_gte` - semver_gte
* `semver_lt` - semver_lt
* `semver_lte` - semver_lte
* `semver_eq` - semver_eq
* `semver_neq` - semver_neq
* `semver_tilde` - semver_tilde
* `semver_caret` - semver_caret
* `semver_wildcard` - semver_wildcard

# components.schemas.FeatureFlagFiltersSchema.properties.groups.description
Release condition groups for the feature flag.

# components.schemas.FeatureFlagFiltersSchema.properties.aggregation_group_type_index.description
Group type index for group-based feature flags.

# components.schemas.FeatureFlagFiltersSchema.properties.payloads.description
Optional payload values keyed by variant key.

# components.schemas.FeatureFlagFiltersSchema.properties.feature_enrollment.description
Whether this flag has early access feature enrollment enabled. When true, the flag is evaluated against the person property $feature_enrollment/{flag_key}.

# components.schemas.FeatureFlagFiltersSchema.properties.early_exit.description
When true, condition evaluation stops at the first matching condition set rather than continuing to evaluate subsequent groups.

# components.schemas.FeatureFlagMultivariateSchema.properties.variants.description
Variant definitions for multivariate feature flags.

# components.schemas.FeatureFlagStatusResponse.properties.status.description
Flag status: active, stale, deleted, or unknown

# components.schemas.FeatureFlagStatusResponse.properties.reason.description
Human-readable explanation of the status

# components.schemas.FeatureFlagTestEvaluationRequest.properties.distinct_id.description
User distinct ID to test against (mutually exclusive with person_id)

# components.schemas.FeatureFlagTestEvaluationRequest.properties.person_id.description
Person ID to test against (mutually exclusive with distinct_id)

# components.schemas.FeatureFlagTestEvaluationRequest.properties.timestamp.description
Optional point-in-time to evaluate the flag against — both flag conditions and person properties are reconstructed as they existed at that timestamp. ISO 8601 with timezone, e.g. ``2026-04-29T15:30:00Z`` or ``2026-04-29T15:30:00+00:00``. Naive timestamps (no timezone) are interpreted as UTC.

# components.schemas.FeatureFlagTestEvaluationRequest.properties.groups.description
Groups for feature flag evaluation (JSON object, defaults to empty dict)

# components.schemas.FeatureFlagTestEvaluationResponse.properties.result.description
The evaluated value of the feature flag (boolean or variant key string)

# components.schemas.FeatureFlagTestEvaluationResponse.properties.condition_index.description
The index of the condition that matched, if applicable

# components.schemas.FeatureFlagTestEvaluationResponse.properties.payload.description
Payload associated with the flag result, if any

# components.schemas.FeatureFlagTestEvaluationResponse.properties.person_properties.description
Person properties at the time of evaluation (for historical evaluations)

# components.schemas.FeatureFlagTestEvaluationResponse.properties.evaluation_distinct_id.description
The distinct_id used for rollout/variant bucketing. Echoes the caller-provided distinct_id when one was sent; null on the person_id path so the endpoint doesn't leak the person's other distinct_ids to a feature_flag:read-only token.

# components.schemas.FeatureFlagTestEvaluationResponse.properties.conditions.description
Detailed analysis of each condition in the feature flag

# components.schemas.FeatureFlagVersionResponse.description
Feature flag state at a given version plus reconstruction metadata.

# components.schemas.FeatureFlagVersionResponse.properties.evaluation_runtime.description
Specifies where this feature flag should be evaluated

* `server` - Server
* `client` - Client
* `all` - All

# components.schemas.FeatureFlagVersionResponse.properties.bucketing_identifier.description
Identifier used for bucketing users into rollout and variants

* `distinct_id` - User ID (default)
* `device_id` - Device ID

# components.schemas.FeatureFlagVersionResponse.properties.last_called_at.description
Last time this feature flag was called (from $feature_flag_called events)

# components.schemas.FeatureFlagVersionResponse.properties.is_historical.description
False for the current version; true for reconstructed historical versions.

# components.schemas.FeatureFlagVersionResponse.properties.modified_by.description
User from the activity log entry that produced this version.

# components.schemas.FeaturePropertyFilter.properties.type.description
Event property with "$feature/" prepended

# components.schemas.FileDownloadBatchExportOnDemand.description
Request shape for a FileDownload batch export on demand.

# components.schemas.FileDownloadBatchExportOnDemandModelEnum.description
* `events` - events
* `persons` - persons
* `sessions` - sessions

# components.schemas.FileDownloadDestinationFileConfig.description
Typed configuration for a FileDownload batch-export destination.

# components.schemas.FileDownloadDestinationFileConfig.properties.format.description
File format

* `Parquet` - Parquet
* `JSONLines` - JSONLines

# components.schemas.FileDownloadDestinationFileConfig.properties.compression.description
Compress the file with a supported compression format

* `zstd` - zstd
* `gzip` - gzip
* `brotli` - brotli
* `lz4` - lz4
* `snappy` - snappy

# components.schemas.FileDownloadDestinationFileConfig.properties.max_size_mb.description
Split download into multiple files of at most this size in MB

# components.schemas.FileDownloadEventsRequest.description
Typed configuration for the events model.

# components.schemas.FileDownloadPersonsRequest.description
Typed configuration for the persons model.

# components.schemas.FileDownloadSessionsRequest.description
Typed configuration for the sessions model.

# components.schemas.FileFormatEnum.description
* `JSONLines` - JSONLines
* `Parquet` - Parquet

# components.schemas.FileSystemShortcut.properties.path.description
Display path of the shortcut in the sidebar.

# components.schemas.FileSystemShortcut.properties.type.description
Type of the linked item (e.g. 'folder', 'insight'), or blank.

# components.schemas.FileSystemShortcut.properties.ref.description
Reference to the linked item, scoped to its type. Null for href-only shortcuts.

# components.schemas.FileSystemShortcut.properties.href.description
Destination URL the shortcut opens. Null when the shortcut points at an item by ref.

# components.schemas.FileSystemShortcut.properties.order.description
Display order within the user's shortcut list, ascending.

# components.schemas.FileSystemShortcutReorder.properties.ordered_ids.description
IDs of the current user's shortcuts in the desired display order.

# components.schemas.FilterEnum.description
* `all` - all
* `pass` - pass
* `fail` - fail
* `na` - na

# components.schemas.FinalizeRunRequestInput.properties.approve_all.description
Approve every still-pending changed and new snapshot before finalizing (tolerated snapshots are left untouched). Leave false to finalize a run you've already reviewed — finalizing fails if any changed/new snapshot is still unreviewed.

# components.schemas.FinalizeRunRequestInput.properties.commit_to_github.description
Whether the server commits the approved baseline to the PR branch and greens the gate (the normal path — leave true). Set false only for tooling that commits the baseline itself: the server skips the commit and returns the signed YAML in `baseline_content` instead. With false, the gate is NOT greened and `metadata.baseline_commit_sha` is absent.

# components.schemas.FlagPropertyFilter.properties.operator.description
Only flag_evaluates_to operator is allowed for flag dependencies

# components.schemas.FlagPropertyFilter.properties.value.description
The value can be true, false, or a variant name

# components.schemas.ForgetResponse.properties.deleted.description
Whether a row was actually removed (false if the key didn't exist).

# components.schemas.FunnelCorrelationActorsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.FunnelCorrelationActorsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.FunnelCorrelationQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.FunnelCorrelationResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.FunnelCorrelationResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.FunnelCorrelationResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.FunnelCorrelationResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.FunnelCorrelationResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.FunnelCorrelationResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.FunnelExclusionActionsNode.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.FunnelExclusionActionsNode.properties.properties.description
Properties configurable in the interface

# components.schemas.FunnelExclusionActionsNode.properties.version.description
version of the node, used for schema migrations

# components.schemas.FunnelExclusionEventsNode.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.FunnelExclusionEventsNode.properties.properties.description
Properties configurable in the interface

# components.schemas.FunnelExclusionEventsNode.properties.version.description
version of the node, used for schema migrations

# components.schemas.FunnelsActorsQuery.properties.funnelStep.description
Index of the step for which we want to get the timestamp for, per person. Positive for converted persons, negative for dropped of persons.

# components.schemas.FunnelsActorsQuery.properties.funnelStepBreakdown.description
The breakdown value for which to get persons for. This is an array for person and event properties, a string for groups and an integer for cohorts.

# components.schemas.FunnelsActorsQuery.properties.funnelTrendsEntrancePeriodStart.description
Used together with `funnelTrendsDropOff` for funnels time conversion date for the persons modal.

# components.schemas.FunnelsActorsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.FunnelsActorsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.FunnelsDataWarehouseNode.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.FunnelsDataWarehouseNode.properties.properties.description
Properties configurable in the interface

# components.schemas.FunnelsDataWarehouseNode.properties.version.description
version of the node, used for schema migrations

# components.schemas.FunnelsFilter.properties.breakdownSorting.description
Breakdown table sorting. Format: 'column_key' or '-column_key' (descending)

# components.schemas.FunnelsFilter.properties.customAggregationTarget.description
For data warehouse based funnel insights when the aggregation target can't be mapped to persons or groups.

# components.schemas.FunnelsFilter.properties.funnelToStep.description
To select the range of steps for trends & time to convert funnels, 0-indexed

# components.schemas.FunnelsFilter.properties.hideIncompleteConversionWindowPeriods.description
Trends only: hide periods whose conversion window has not fully elapsed yet, so the recent tail of the trend isn't dragged down by entrants who still have time to convert.

# components.schemas.FunnelsFilter.properties.resultCustomizations.description
Customizations for the appearance of result datasets.

# components.schemas.FunnelsFilter.properties.showAnnotations.description
Whether to render annotations on the chart. Only applies to historical-trends funnels.

# components.schemas.FunnelsFilter.properties.showTrendLines.description
Display linear regression trend lines on the chart (only for historical trends viz)

# components.schemas.FunnelsQuery.properties.dataColorTheme.description
Colors used in the insight's visualization

# components.schemas.FunnelsQuery.properties.filterTestAccounts.description
Exclude internal and test users by applying the respective filters

# components.schemas.FunnelsQuery.properties.funnelsFilter.description
Properties specific to the funnels insight

# components.schemas.FunnelsQuery.properties.interval.description
Granularity of the response. Can be one of `hour`, `day`, `week` or `month`

# components.schemas.FunnelsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.FunnelsQuery.properties.tags.description
Tags that will be added to the Query log comment

# components.schemas.FunnelsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.FunnelsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.FunnelsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.FunnelsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.FunnelsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.FunnelsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.FunnelsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.GenerateSurveyTranslationsRequest.properties.target_language.description
Language code to generate translations for, for example pt-BR.

# components.schemas.GenerateSurveyTranslationsRequest.properties.source_language.description
Optional override for the source language code. Defaults to the survey's `base_language` (or 'en' if unset).

# components.schemas.GenerateSurveyTranslationsRequest.properties.overwrite.description
Whether to overwrite existing translations for this language.

# components.schemas.GenerateSurveyTranslationsRequest.properties.survey.description
Optional translation-only draft survey payload to translate instead of the last saved survey.

# components.schemas.GenerateSurveyTranslationsResponse.properties.translations.description
Survey-level translation patch keyed by language.

# components.schemas.GenerateSurveyTranslationsResponse.properties.questions.description
Question-level translation patches keyed by question id and language.

# components.schemas.GenerateSurveyTranslationsResponse.properties.generated_field_paths.description
Editor field paths generated by AI and safe to highlight as draft content.

# components.schemas.GenerateSurveyTranslationsResponse.properties.trace_id.description
LLM trace id for debugging and feedback.

# components.schemas.GeneratedSurveyQuestionTranslation.properties.choices.description
Translated choices in the same order as the source choices.

# components.schemas.GeneratedSurveyQuestionTranslationPatch.properties.id.description
Survey question id this patch applies to.

# components.schemas.GeneratedSurveyQuestionTranslationPatch.properties.translations.description
Question translation patch keyed by target language.

# components.schemas.GitHubBranchesResponse.properties.has_more.description
Whether more branches exist beyond the returned page

# components.schemas.GitHubReposResponse.properties.has_more.description
Whether more repositories are available beyond this page.

# components.schemas.GitHubTeamsResponse.properties.teams.description
List of GitHub teams available to the installation organization.

# components.schemas.GitHubTeamsResponse.properties.has_more.description
Whether more teams are available beyond this page.

# components.schemas.GitProviderFileLinkResolveResponse.properties.error.description
Error message when input parameters are invalid.

# components.schemas.Goal.properties.change.description
Period-over-period change in conversions, null when not meaningful.

# components.schemas.GroupNode.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.GroupNode.properties.operator.description
Group of entities combined with AND/OR operator

# components.schemas.GroupNode.properties.properties.description
Properties configurable in the interface

# components.schemas.GroupNode.properties.version.description
version of the node, used for schema migrations

# components.schemas.GroupUsageMetric.properties.name.description
Name of the usage metric. Must be unique per group type within the project.

# components.schemas.GroupUsageMetric.properties.format.description
How the metric value is formatted in the UI. One of `numeric` or `currency`.

* `numeric` - numeric
* `currency` - currency

# components.schemas.GroupUsageMetric.properties.interval.description
Rolling time window in days used to compute the metric. Defaults to 7.

# components.schemas.GroupUsageMetric.properties.display.description
Visual representation in the UI. One of `number` or `sparkline`.

* `number` - number
* `sparkline` - sparkline

# components.schemas.GroupUsageMetric.properties.filters.description
Filter definition for the metric. Two shapes are accepted, discriminated by an optional `source` key.

**Events** (default, when `source` is missing or `"events"`): HogFunction filter shape — `events: [...]`, optional `actions: [...]`, `properties: [...]`, `filter_test_accounts: bool`.

**Data warehouse** (`source: "data_warehouse"`): `table_name` (synced DW table), `timestamp_field` (timestamp column or HogQL expression), `key_field` (column whose value matches the entity key). Currently DW metrics only render on group profiles — person profiles are not yet supported.

# components.schemas.GroupUsageMetric.properties.math.description
Aggregation function. `count` counts matching events; `sum` sums the value of `math_property` on matching events.

* `count` - count
* `sum` - sum

# components.schemas.GroupUsageMetric.properties.math_property.description
Required when `math` is `sum`; must be empty when `math` is `count`. For events metrics this is an event property name. For data warehouse metrics this is the column name (or HogQL expression) to sum on the DW table.

# components.schemas.GroupUsageMetricDisplayEnum.description
* `number` - number
* `sparkline` - sparkline

# components.schemas.GroupUsageMetricFormatEnum.description
* `numeric` - numeric
* `currency` - currency

# components.schemas.GroupsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.GroupsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.GroupsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.GroupsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.GroupsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.GroupsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.GroupsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.GroupsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.HBOSDetectorConfig.properties.threshold.description
Anomaly probability threshold (default: 0.9)

# components.schemas.HBOSDetectorConfig.properties.window.description
Rolling window size — how many historical data points to train on (default: based on calculation interval)

# components.schemas.HealthEnum.description
* `success` - success
* `warning` - warning
* `danger` - danger

# components.schemas.HealthIssueSeverityEnum.description
* `critical` - Critical
* `warning` - Warning
* `info` - Info

# components.schemas.HealthIssueStatusEnum.description
* `active` - Active
* `resolved` - Resolved

# components.schemas.HeatmapFoldSummary.properties.total_count.description
Number of non-fixed interactions of this type on the page in the window (the population the above/below-the-fold split applies to; fixed-position elements are excluded since they're always on screen).

# components.schemas.HeatmapFoldSummary.properties.below_fold_count.description
How many of those interactions happened below the user's initial viewport — i.e. they had to scroll to reach them.

# components.schemas.HeatmapFoldSummary.properties.pct_below_fold.description
Percentage of non-fixed interactions that were below the initial viewport (0-100). A high value means engaged content sits off the first screen and is a candidate to move up.

# components.schemas.HeatmapFoldSummary.properties.median_viewport_height.description
Median viewport height in CSS pixels across the matched interactions — the typical fold line to recommend against. Null when there are no interactions.

# components.schemas.HeatmapScreenshotResponse.properties.short_id.description
Short, URL-safe identifier used as the lookup key for saved-heatmap routes.

# components.schemas.HeatmapScreenshotResponse.properties.name.description
Human-readable label for the saved heatmap.

# components.schemas.HeatmapScreenshotResponse.properties.url.description
The page URL this saved heatmap renders and overlays data on.

# components.schemas.HeatmapScreenshotResponse.properties.data_url.description
URL whose heatmap data is overlaid on the screenshot (defaults to 'url').

# components.schemas.HeatmapScreenshotResponse.properties.target_widths.description
Viewport widths (CSS pixels) the screenshot is rendered at.

# components.schemas.HeatmapScreenshotResponse.properties.type.description
Render mode: 'screenshot', 'iframe', or 'recording'.

* `screenshot` - Screenshot
* `iframe` - Iframe
* `recording` - Recording

# components.schemas.HeatmapScreenshotResponse.properties.status.description
Screenshot generation status: 'processing', 'completed', or 'failed'.

* `processing` - Processing
* `completed` - Completed
* `failed` - Failed

# components.schemas.HeatmapScreenshotResponse.properties.has_content.description
Whether at least one rendered image is ready to fetch.

# components.schemas.HeatmapScreenshotResponse.properties.snapshots.description
Per-width render metadata. Fetch the actual image bytes for a width from the content endpoint.

# components.schemas.HeatmapScreenshotResponse.properties.deleted.description
Soft-delete flag; deleted heatmaps are hidden from the list.

# components.schemas.HeatmapScreenshotResponse.properties.exception.description
Error detail when screenshot generation failed, otherwise null.

# components.schemas.HeatmapScreenshotResponseStatusEnum.description
* `processing` - Processing
* `completed` - Completed
* `failed` - Failed

# components.schemas.HeatmapSnapshotMetadata.properties.width.description
Viewport width (CSS pixels) this screenshot was rendered at.

# components.schemas.HeatmapSnapshotMetadata.properties.has_content.description
Whether the rendered image for this width is ready to fetch from the content endpoint.

# components.schemas.HeatmapType.description
* `screenshot` - Screenshot
* `iframe` - Iframe
* `recording` - Recording

# components.schemas.HeatmapsResponse.properties.fold.description
Above/below-the-fold summary for the returned interactions. Present for click/rageclick/mousemove; omitted for scrolldepth.

# components.schemas.HogFlow.properties.status.description
draft (no execution), active (live), archived (disabled).

* `draft` - Draft
* `active` - Active
* `archived` - Archived

# components.schemas.HogFlow.properties.trigger_masking.description
Optional dedup: {hash: <HogQL template>, ttl: <seconds, 60-94608000>, threshold?: <int>}. Server compiles bytecode from hash. Omit to disable.

# components.schemas.HogFlow.properties.conversion.description
Conversion goal: {filters: [<cond>, ...], window_minutes}. <cond>: {key, value, operator, type: event|person|group}. Empty filters = any event in window. Required for exit_on_conversion / exit_on_trigger_not_matched_or_conversion. bytecode compiled server-side.

# components.schemas.HogFlow.properties.exit_condition.description
exit_only_at_end: only at exit node (default). exit_on_conversion: also on conversion (needs 'conversion'; silent no-op otherwise). exit_on_trigger_not_matched: also when trigger filter stops matching. exit_on_trigger_not_matched_or_conversion: both (needs 'conversion').

* `exit_on_conversion` - Conversion
* `exit_on_trigger_not_matched` - Trigger Not Matched
* `exit_on_trigger_not_matched_or_conversion` - Trigger Not Matched Or Conversion
* `exit_only_at_end` - Only At End

# components.schemas.HogFlow.properties.edges.description
Graph edges: [{from, to, type: 'continue'|'branch', index?}]. 'continue' = fall-through (sequential, or no-match path of conditional_branch). 'branch' requires 'index': matches config.conditions[index] on conditional_branch / wait_until_condition. Every non-exit action needs a reachable next action ('No next action found' otherwise).

# components.schemas.HogFlow.properties.actions.description
Ordered action nodes. Exactly one type='trigger' required. Typically one type='exit' too.

# components.schemas.HogFlow.properties.variables.description
Workflow vars (key, type, default). Total <5KB.

# components.schemas.HogFlow.properties.schedules.description
Recurring schedules attached to this workflow (read-only here; manage via the schedules sub-resource). A batch/schedule workflow only fires when it's active AND has an active schedule. Empty for non-scheduled workflows.

# components.schemas.HogFlowAction.properties.on_error.description
On failure: continue (skip), abort (stop), complete (mark done), branch (follow error edge).

* `continue` - continue
* `abort` - abort
* `complete` - complete
* `branch` - branch

# components.schemas.HogFlowAction.properties.created_at.description
Created at (epoch ms). Frontend-managed.

# components.schemas.HogFlowAction.properties.updated_at.description
Updated at (epoch ms). Frontend-managed.

# components.schemas.HogFlowAction.properties.type.description
trigger | function | function_email | function_sms | function_push | delay | conditional_branch | wait_until_condition | wait_until_time_window | random_cohort_branch | exit.

# components.schemas.HogFlowAction.properties.config.description
Type-specific config keyed by action type. trigger: {type: event|webhook|manual|batch|schedule|tracking_pixel, filters?}. filters shape: {events: [{id, name, type:'events', properties:[<cond>]}], properties:[<cond>], actions:[...], filter_test_accounts:<bool>}. <cond>: {key, value, operator, type: event|person|group}. function*: {template_id, inputs: {<key>: {value: <str>}}}. Wrap values in {value:...} to enable hog templating ({person.x}, {event.x}); flat strings won't interpolate. delay: {delay_duration: '<number><unit>'} where unit is m|h|d. Fractions OK ('0.5m'=30s; seconds unsupported). Per-unit max m<=60, h<=24, d<=30; values above are SILENTLY CLAMPED. Max 30d. conditional_branch: {conditions: [{filters}, ...]}. Index N matches the 'branch' edge with index:N. wait_until_condition: {condition: {filters}, max_wait_duration: <duration>} (same rules as delay). exit: {reason}.

# components.schemas.HogFlowAction.properties.output_variable.description
Output variable definition for downstream actions.

# components.schemas.HogFlowBatchJob.properties.status.description
Not currently tracked — stays at its initial value. Use the workflow logs/metrics endpoints for run outcome.

* `waiting` - Waiting
* `queued` - Queued
* `active` - Active
* `completed` - Completed
* `cancelled` - Cancelled
* `failed` - Failed

# components.schemas.HogFlowBatchJob.properties.hog_flow.description
ID of the workflow this batch run belongs to.

# components.schemas.HogFlowBatchJob.properties.filters.description
Audience snapshot the run fanned out to, taken from the workflow's batch trigger filters.

# components.schemas.HogFlowBatchJob.properties.variables.description
Variable value overrides applied to this run.

# components.schemas.HogFlowBatchJobStatusEnum.description
* `waiting` - Waiting
* `queued` - Queued
* `active` - Active
* `completed` - Completed
* `cancelled` - Cancelled
* `failed` - Failed

# components.schemas.HogFlowEdge.properties.type.description
continue: fall-through (sequential or the no-match path of conditional_branch). branch: requires 'index' matching config.conditions[index].

* `continue` - continue
* `branch` - branch

# components.schemas.HogFlowEdge.properties.index.description
Required for type='branch'. Index into config.conditions on conditional_branch / wait_until_condition.

# components.schemas.HogFlowEdgeTypeEnum.description
* `continue` - continue
* `branch` - branch

# components.schemas.HogFlowInvocation.properties.configuration.description
Optional override; omit to use saved definition.

# components.schemas.HogFlowInvocation.properties.globals.description
Test trigger payload, typically {event, person, groups}.

# components.schemas.HogFlowInvocation.properties.mock_async_functions.description
True (default) mocks HTTP/email/SMS. False fires real side effects.

# components.schemas.HogFlowInvocation.properties.current_action_id.description
Start from this action ID instead of the trigger.

# components.schemas.HogFlowMasking.properties.threshold.description
Min matching events before triggering (k-anonymity).

# components.schemas.HogFlowSchedule.properties.rrule.description
iCalendar RRULE string (e.g. 'FREQ=DAILY;INTERVAL=1'). Must produce occurrences at most once per hour.

# components.schemas.HogFlowSchedule.properties.starts_at.description
ISO 8601 datetime the schedule starts from.

# components.schemas.HogFlowSchedule.properties.timezone.description
IANA timezone for interpreting the RRULE (default 'UTC').

# components.schemas.HogFlowSchedule.properties.variables.description
Variable value overrides merged with the workflow defaults on each run.

# components.schemas.HogFlowSchedule.properties.status.description
active, paused, or completed (set once the RRULE's COUNT/UNTIL is exhausted).

* `active` - Active
* `paused` - Paused
* `completed` - Completed

# components.schemas.HogFlowSchedule.properties.next_run_at.description
Next scheduled fire time, computed by the scheduler.

# components.schemas.HogFlowScheduleStatusEnum.description
* `active` - Active
* `paused` - Paused
* `completed` - Completed

# components.schemas.HogFlowStatusEnum.description
* `draft` - Draft
* `active` - Active
* `archived` - Archived

# components.schemas.HogFunction.properties.type.description
Function type: destination, site_destination, internal_destination, source_webhook, warehouse_source_webhook, site_app, or transformation.

* `destination` - Destination
* `site_destination` - Site Destination
* `internal_destination` - Internal Destination
* `source_webhook` - Source Webhook
* `warehouse_source_webhook` - Warehouse Source Webhook
* `site_app` - Site App
* `transformation` - Transformation

# components.schemas.HogFunction.properties.description.description
Human-readable description of what this function does.

# components.schemas.HogFunction.properties.enabled.description
Whether the function is active and processing events.

# components.schemas.HogFunction.properties.deleted.description
Soft-delete flag. Set to true to archive the function.

# components.schemas.HogFunction.properties.hog.description
Source code. Hog language for most types; TypeScript for site_destination and site_app.

# components.schemas.HogFunction.properties.inputs_schema.description
Schema defining the configurable input parameters for this function.

# components.schemas.HogFunction.properties.inputs.description
Values for each input defined in inputs_schema.

# components.schemas.HogFunction.properties.filters.description
Event filters that control which events trigger this function.

# components.schemas.HogFunction.properties.masking.description
PII masking configuration with TTL, threshold, and hash expression.

# components.schemas.HogFunction.properties.mappings.description
Event-to-destination field mappings. Only for destination and site_destination types.

# components.schemas.HogFunction.properties.icon_url.description
URL for the function's icon displayed in the UI.

# components.schemas.HogFunction.properties.template_id.description
ID of the template to create this function from.

# components.schemas.HogFunction.properties.execution_order.description
Execution priority for transformations. Lower values run first.

# components.schemas.HogFunctionFiltersSourceEnum.description
* `events` - events
* `person-updates` - person-updates
* `data-warehouse-table` - data-warehouse-table

# components.schemas.HogFunctionInvocation.properties.globals.description
Mock global variables available during test invocation.

# components.schemas.HogFunctionInvocation.properties.clickhouse_event.description
Mock ClickHouse event data to test the function with.

# components.schemas.HogFunctionInvocation.properties.mock_async_functions.description
When true (default), async functions like fetch() are simulated.

# components.schemas.HogFunctionInvocation.properties.logs.description
Execution logs from the test invocation.

# components.schemas.HogFunctionMappingTemplate.properties.include_by_default.description
Whether this mapping is enabled by default.

# components.schemas.HogFunctionMappingTemplate.properties.use_all_events_by_default.description
Whether this mapping should match all events by default, hiding the event filter UI.

# components.schemas.HogFunctionMappingTemplate.properties.inputs_schema.description
Additional input schema fields specific to this mapping.

# components.schemas.HogFunctionMasking.properties.ttl.description
Time-to-live in seconds for the masking cache (60–86400).

# components.schemas.HogFunctionMasking.properties.threshold.description
Optional threshold count before masking applies.

# components.schemas.HogFunctionMasking.properties.hash.description
Hog expression used to compute the masking hash.

# components.schemas.HogFunctionMasking.properties.bytecode.description
Compiled bytecode for the hash expression. Auto-generated.

# components.schemas.HogFunctionTemplate.properties.code_language.description
Programming language: 'hog' or 'javascript'.

# components.schemas.HogFunctionTemplate.properties.inputs_schema.description
Schema defining configurable inputs for functions created from this template.

# components.schemas.HogFunctionTemplate.properties.status.description
Lifecycle status: alpha, beta, stable, deprecated, or hidden.

# components.schemas.HogFunctionTypeEnum.description
* `destination` - Destination
* `site_destination` - Site Destination
* `internal_destination` - Internal Destination
* `source_webhook` - Source Webhook
* `warehouse_source_webhook` - Warehouse Source Webhook
* `site_app` - Site App
* `transformation` - Transformation

# components.schemas.HogQLAutocomplete.properties.connectionId.description
Optional id of a direct external data source (access_method='direct') to run against instead of ClickHouse. Warehouse import sources are not valid here.

# components.schemas.HogQLAutocomplete.properties.filters.description
Table to validate the expression against

# components.schemas.HogQLAutocomplete.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.HogQLAutocomplete.properties.version.description
version of the node, used for schema migrations

# components.schemas.HogQLAutocompleteResponse.properties.incomplete_list.description
Whether or not the suggestions returned are complete

# components.schemas.HogQLAutocompleteResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.HogQLMetadata.properties.connectionId.description
Optional id of a direct external data source (access_method='direct') to run against instead of ClickHouse. Warehouse import sources are not valid here.

# components.schemas.HogQLMetadata.properties.debug.description
Enable more verbose output, usually run from the /debug page

# components.schemas.HogQLMetadata.properties.filters.description
Extra filters applied to query via {filters}

# components.schemas.HogQLMetadata.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.HogQLMetadata.properties.sourceQuery.description
Query within which "expr" and "template" are validated. Defaults to "select * from events"

# components.schemas.HogQLMetadata.properties.variables.description
Variables to be subsituted into the query

# components.schemas.HogQLMetadata.properties.version.description
version of the node, used for schema migrations

# components.schemas.HogQLQuery.properties.connectionId.description
Optional id of a direct external data source (access_method='direct') to run against instead of ClickHouse. Warehouse import sources are not valid here.

# components.schemas.HogQLQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.HogQLQuery.properties.sendRawQuery.description
Run the selected connection query directly without translating it through HogQL first

# components.schemas.HogQLQuery.properties.values.description
Constant values that can be referenced with the {placeholder} syntax in the query

# components.schemas.HogQLQuery.properties.variables.description
Variables to be substituted into the query

# components.schemas.HogQLQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.HogQLQueryModifiers.properties.forceClickhouseDataSkippingIndexes.description
If these are provided, the query will fail if these skip indexes are not used

# components.schemas.HogQLQueryModifiers.properties.parserMode.description
HogQL parser backend; absent → `rust_py_with_cpp_shadow` (rust-py is primary, cpp runs as a sampled shadow). `*_shadow` modes return the primary result and sample-compare against the other parser, reporting divergences without failing the request. The `rust_py_*` modes drive the same hand-rolled Rust parser as `rust_*` but build `posthog.hogql.ast` dataclass instances directly via PyO3, skipping the JSON round-trip.

# components.schemas.HogQLQueryModifiers.properties.sessionIdPushdown.description
Push a `session_id_v7 IN (SELECT … FROM events WHERE …)` predicate into the raw_sessions subquery to limit aggregation to sessions that participate in the outer events filter.

# components.schemas.HogQLQueryModifiers.properties.sessionPropertyPreAggregation.description
Pre-filter raw_sessions aggregation by `session_id_v7 IN (cheap pre-aggregation that only materializes the columns referenced by the outer-WHERE session predicate)`. Useful when the breakdown/SELECT pulls in many session columns (e.g. `$channel_type`) but the filter only references one (e.g. `$entry_current_url`).

# components.schemas.HogQLQueryModifiers.properties.usePreaggregatedTableTransforms.description
Try to automatically convert HogQL queries to use preaggregated tables at the AST level *

# components.schemas.HogQLQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.HogQLQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.HogQLQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.HogQLQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.HogQLQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.HogQLQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data.

# components.schemas.HogQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.HogQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.HogTaggerConfig.properties.source.description
Hog source code to classify a generation into tags.

# components.schemas.HogTaggerConfig.properties.tags.description
Optional tag whitelist. Leave empty to allow any tag returned by the Hog code.

# components.schemas.IQRDetectorConfig.properties.multiplier.description
IQR multiplier for fence calculation (default: 1.5, use 3.0 for far outliers)

# components.schemas.IQRDetectorConfig.properties.window.description
Rolling window size for calculating quartiles (default: 30)

# components.schemas.InboxReportStatusBucket.properties.status.description
Report status (e.g. `potential`, `candidate`, `ready`).

# components.schemas.InboxReportStatusBucket.properties.count.description
Number of reports in this status (excludes deleted/suppressed).

# components.schemas.IncrementalFieldTypeEnum.description
* `integer` - integer
* `numeric` - numeric
* `datetime` - datetime
* `date` - date
* `timestamp` - timestamp
* `objectid` - objectid

# components.schemas.InputsSchemaItemTypeEnum.description
* `string` - string
* `number` - number
* `boolean` - boolean
* `dictionary` - dictionary
* `choice` - choice
* `json` - json
* `integration` - integration
* `integration_field` - integration_field
* `email` - email
* `native_email` - native_email
* `posthog_assignee` - posthog_assignee
* `posthog_ticket_tags` - posthog_ticket_tags
* `posthog_business_hours` - posthog_business_hours
* `non_failure_status_codes` - non_failure_status_codes

# components.schemas.Insight.description
Simplified serializer to speed response times when loading large amounts of objects.

# components.schemas.Insight.properties.dashboards.description
        DEPRECATED. Will be removed in a future release. Use dashboard_tiles instead.
        A dashboard ID for each of the dashboards that this insight is displayed on.
        

# components.schemas.Insight.properties.dashboard_tiles.description
    A dashboard tile ID and dashboard_id for each of the dashboards that this insight is displayed on.
    

# components.schemas.Insight.properties.last_refresh.description
    The datetime this insight's results were generated.
    If added to one or more dashboards the insight can be refreshed separately on each.
    Returns the appropriate last_refresh datetime for the context the insight is viewed in
    (see from_dashboard query parameter).
    

# components.schemas.Insight.properties.cache_target_age.description
The target age of the cached results for this insight.

# components.schemas.Insight.properties.next_allowed_client_refresh.description
    The earliest possible datetime at which we'll allow the cached results for this insight to be refreshed
    by querying the database.
    

# components.schemas.Insight.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.Insight.properties.timezone.description
The timezone this chart is displayed in.

# components.schemas.Insight.properties.search_match_type.description
How this row matched the `search` term: `exact` (the term is a case-insensitive substring of the name, derived_name, description, or a tag name) or `similar` (a fuzzy trigram match only). Results are ordered exact-first. Null when the list is not filtered by `search`.

# components.schemas.InsightActorsQuery.properties.interval.description
An interval selected out of available intervals in source query.

# components.schemas.InsightActorsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.InsightActorsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.InsightActorsQueryOptions.properties.version.description
version of the node, used for schema migrations

# components.schemas.InsightActorsQueryOptionsResponse.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.InsightResult.description
InsightSerializer restricted to identifiers + result only.

# components.schemas.InsightThreshold.properties.type.description
Whether bounds are compared as absolute values or as percentage change from the previous interval.

# components.schemas.InsightTypeEnum.description
* `trends` - trends
* `funnel` - funnel
* `retention` - retention
* `sql` - sql

# components.schemas.InsightVariable.properties.name.description
Human-readable name for the SQL variable.

# components.schemas.InsightVariable.properties.type.description
Variable type. Controls how the value is rendered and substituted in HogQL.

* `String` - String
* `Number` - Number
* `Boolean` - Boolean
* `List` - List
* `Date` - Date

# components.schemas.InsightVariable.properties.default_value.description
Default value used when a query references this variable.

# components.schemas.InsightVariable.properties.created_by.description
ID of the user who created the SQL variable.

# components.schemas.InsightVariable.properties.created_at.description
Timestamp when the SQL variable was created.

# components.schemas.InsightVariable.properties.code_name.description
Generated code-safe name used in HogQL as {variables.code_name}. Derived from name.

# components.schemas.InsightVariable.properties.values.description
Allowed values for List variables. Null for other variable types.

# components.schemas.InsightVariableTypeEnum.description
* `String` - String
* `Number` - Number
* `Boolean` - Boolean
* `List` - List
* `Date` - Date

# components.schemas.InsightViewedRequest.properties.insight_ids.description
Insight IDs that were just viewed by the current user. At most 2500 ids per request.

# components.schemas.InsightVizNode.properties.embedded.description
Query is embedded inside another bordered component

# components.schemas.InsightVizNode.properties.full.description
Show with most visual options enabled. Used in insight scene.

# components.schemas.InsightVizNode.properties.version.description
version of the node, used for schema migrations

# components.schemas.InsightsThresholdBounds.properties.lower.description
Alert fires when the value drops below this number.

# components.schemas.InsightsThresholdBounds.properties.upper.description
Alert fires when the value exceeds this number.

# components.schemas.InstallSourceEnum.description
* `posthog` - posthog
* `posthog-code` - posthog-code

# components.schemas.IntegrationEntry.description
One row in `inventory.integrations`. Sensitive config is intentionally excluded.

# components.schemas.IntegrationEntry.properties.kind.description
Integration kind (e.g. `slack`, `github`, `linear`).

# components.schemas.IntegrationEntry.properties.created_at.description
ISO-8601 timestamp the integration was connected.

# components.schemas.IntegrationFilter.properties.integrationSourceIds.description
Selected integration source IDs to filter by (e.g., table IDs or source map IDs)

# components.schemas.IntegrationKindEnum.description
* `anthropic` - Anthropic
* `apns` - Apple Push
* `azure-blob` - Azure Blob
* `bing-ads` - Bing Ads
* `clickup` - Clickup
* `customerio-app` - Customerio App
* `customerio-track` - Customerio Track
* `customerio-webhook` - Customerio Webhook
* `databricks` - Databricks
* `email` - Email
* `firebase` - Firebase
* `github` - Github
* `gitlab` - Gitlab
* `google-ads` - Google Ads
* `google-cloud-service-account` - Google Cloud Service Account
* `google-cloud-storage` - Google Cloud Storage
* `google-pubsub` - Google Pubsub
* `google-search-console` - Google Search Console
* `google-sheets` - Google Sheets
* `hubspot` - Hubspot
* `intercom` - Intercom
* `jira` - Jira
* `linear` - Linear
* `linkedin-ads` - Linkedin Ads
* `meta-ads` - Meta Ads
* `pinterest-ads` - Pinterest Ads
* `postgresql` - Postgresql
* `reddit-ads` - Reddit Ads
* `salesforce` - Salesforce
* `slack` - Slack
* `slack-posthog-code` - Slack Posthog Code
* `snapchat` - Snapchat
* `stripe` - Stripe
* `tiktok-ads` - Tiktok Ads
* `twilio` - Twilio
* `vercel` - Vercel

# components.schemas.IntervalEnum.description
* `hour` - hour
* `day` - day
* `week` - week
* `every 5 minutes` - every 5 minutes
* `every 15 minutes` - every 15 minutes

# components.schemas.IntervalItem.properties.value.description
An interval selected out of available intervals in source query

# components.schemas.InterviewInviteResult.properties.interviewee_identifier.description
The original identifier (email or distinct ID) from the topic targeting.

# components.schemas.InterviewInviteResult.properties.email.description
Email used for delivery. Null when the identifier was not an email (e.g., a distinct ID).

# components.schemas.InterviewInviteResult.properties.interview_url.description
The personalized public interview URL embedded in the email body.

# components.schemas.InterviewInviteResult.properties.sent.description
True if an email was queued for delivery. False when the recipient was skipped — see `reason`.

# components.schemas.InterviewInviteResult.properties.reason.description
Why the email was skipped (e.g., `not_an_email`, `already_sent`). Empty when sent=true.

# components.schemas.InterviewLink.properties.interviewee_identifier.description
The original identifier (email or distinct ID) from the topic targeting.

# components.schemas.InterviewLink.properties.user_name.description
Best-effort display name derived from the identifier, used to greet the interviewee.

# components.schemas.InterviewLink.properties.interview_url.description
Public, unauthenticated URL the interviewee opens to start the call. Backed by a SharingConfiguration access token.

# components.schemas.InterviewLink.properties.agent_context.description
The merged topic + per-interviewee context the voice agent will see during the call.

# components.schemas.IntervieweeContext.properties.interviewee_identifier.description
Identifier for the interviewee — typically an email address or PostHog distinct ID. Must match a value in the parent topic's interviewee_emails or interviewee_distinct_ids.

# components.schemas.IntervieweeContext.properties.agent_context.description
Extra context the voice agent should know about this specific interviewee — e.g. 'uses the replay product but has never used summarization'.

# components.schemas.IntervieweeIdentifierRequest.properties.identifier.description
Email address or PostHog distinct ID for the interviewee. Email-shaped values (including the `Display Name <email@host>` form) are routed to `interviewee_emails`; everything else lands in `interviewee_distinct_ids`.

# components.schemas.InvestigationInconclusiveActionEnum.description
* `notify` - Notify
* `suppress` - Suppress

# components.schemas.InvestigationStatusEnum.description
* `pending` - pending
* `running` - running
* `done` - done
* `failed` - failed
* `skipped` - skipped

# components.schemas.InvestigationVerdictEnum.description
* `true_positive` - true_positive
* `false_positive` - false_positive
* `inconclusive` - inconclusive

# components.schemas.IsolationForestDetectorConfig.properties.n_estimators.description
Number of trees in the forest (default: 100)

# components.schemas.IsolationForestDetectorConfig.properties.threshold.description
Anomaly probability threshold (default: 0.9)

# components.schemas.IsolationForestDetectorConfig.properties.window.description
Rolling window size — how many historical data points to train on (default: based on calculation interval)

# components.schemas.KNNDetectorConfig.properties.method.description
Distance method: 'largest', 'mean', 'median' (default: 'largest')

# components.schemas.KNNDetectorConfig.properties.n_neighbors.description
Number of neighbors to consider (default: 5)

# components.schemas.KNNDetectorConfig.properties.threshold.description
Anomaly probability threshold (default: 0.9)

# components.schemas.KNNDetectorConfig.properties.window.description
Rolling window size — how many historical data points to train on (default: based on calculation interval)

# components.schemas.KnowledgeSource.properties.document_count.description
Number of documents belonging to this source.

# components.schemas.KnowledgeSource.properties.chunk_count.description
Number of chunks belonging to this source.

# components.schemas.KnowledgeSource.properties.next_refresh_at.description
When the background coordinator will next auto-refresh this source. Null for manual sources or sources never refreshed.

# components.schemas.KnowledgeSource.properties.has_unsafe_documents.description
True when at least one document in this source was flagged unsafe by the content classifier and is therefore excluded from agent search.

# components.schemas.KnowledgeSourceSourceTypeEnum.description
* `text` - Text
* `url` - URL
* `file` - File

# components.schemas.KnowledgeSourceStatusEnum.description
* `pending` - Pending
* `processing` - Processing
* `ready` - Ready
* `error` - Error

# components.schemas.LLMModelInfo.properties.posthog_available.description
Whether this model is available on PostHog's trial credits without bringing a provider key.

# components.schemas.LLMModelsListResponse.properties.models.description
Models supported for the requested provider.

# components.schemas.LLMPrompt.properties.name.description
Unique prompt name using letters, numbers, hyphens, and underscores only.

# components.schemas.LLMPromptDuplicate.properties.new_name.description
Name for the duplicated prompt. Must be unique and use only letters, numbers, hyphens, and underscores.

# components.schemas.LLMPromptEditOperation.properties.old.description
Text to find in the current prompt. Must match exactly once.

# components.schemas.LLMPromptList.properties.name.description
Unique prompt name using letters, numbers, hyphens, and underscores only.

# components.schemas.LLMPromptOutlineEntry.properties.text.description
Heading text with markdown link syntax preserved.

# components.schemas.LLMPromptPublic.properties.prompt.description
Full prompt content. Omitted when 'content=preview' or 'content=none'.

# components.schemas.LLMPromptPublic.properties.prompt_preview.description
First 160 characters of the prompt. Only present when 'content=preview'.

# components.schemas.LLMPromptPublic.properties.outline.description
Flat list of markdown headings parsed from the prompt. Useful as a lightweight table of contents.

# components.schemas.LLMProviderEnum.description
* `openai` - Openai
* `anthropic` - Anthropic
* `gemini` - Gemini
* `openrouter` - Openrouter
* `fireworks` - Fireworks
* `azure_openai` - Azure OpenAI
* `together_ai` - Together AI

# components.schemas.LLMProviderKey.properties.api_version_display.description
Azure API version (read-only, for display)

# components.schemas.LLMProviderKeyStateEnum.description
* `unknown` - Unknown
* `ok` - Ok
* `invalid` - Invalid
* `error` - Error

# components.schemas.LLMSkill.properties.name.description
Unique skill name. Lowercase letters, numbers, and hyphens only. Max 64 characters.

# components.schemas.LLMSkill.properties.description.description
What this skill does and when to use it. Max 4096 characters.

# components.schemas.LLMSkill.properties.body.description
The SKILL.md instruction content (markdown).

# components.schemas.LLMSkill.properties.license.description
License name or reference to a bundled license file.

# components.schemas.LLMSkill.properties.compatibility.description
Environment requirements (intended product, system packages, network access, etc.).

# components.schemas.LLMSkill.properties.allowed_tools.description
List of pre-approved tools the skill may use.

# components.schemas.LLMSkill.properties.files.description
Bundled files manifest. Each entry is path + content_type only; fetch content via /llm_skills/name/{name}/files/{path}/.

# components.schemas.LLMSkill.properties.outline.description
Flat list of markdown headings parsed from the skill body. Useful as a lightweight table of contents.

# components.schemas.LLMSkillCreate.description
Create serializer — accepts bundled files as write-only input on POST.

# components.schemas.LLMSkillCreate.properties.name.description
Unique skill name. Lowercase letters, numbers, and hyphens only. Max 64 characters.

# components.schemas.LLMSkillCreate.properties.description.description
What this skill does and when to use it. Max 4096 characters.

# components.schemas.LLMSkillCreate.properties.body.description
The SKILL.md instruction content (markdown).

# components.schemas.LLMSkillCreate.properties.license.description
License name or reference to a bundled license file.

# components.schemas.LLMSkillCreate.properties.compatibility.description
Environment requirements (intended product, system packages, network access, etc.).

# components.schemas.LLMSkillCreate.properties.allowed_tools.description
List of pre-approved tools the skill may use.

# components.schemas.LLMSkillCreate.properties.files.description
Bundled files to include with the initial version (scripts, references, assets).

# components.schemas.LLMSkillCreate.properties.outline.description
Flat list of markdown headings parsed from the skill body. Useful as a lightweight table of contents.

# components.schemas.LLMSkillDuplicate.properties.new_name.description
Name for the duplicated skill. Must be unique.

# components.schemas.LLMSkillEditOperation.properties.old.description
Text to find in the target content. Must match exactly once.

# components.schemas.LLMSkillFileCreate.properties.path.description
File path relative to skill root, e.g. 'scripts/setup.sh' or 'references/guide.md'.

# components.schemas.LLMSkillFileCreate.properties.base_version.description
Latest version you are editing from. If provided, the request fails with 409 when another write has landed in the meantime.

# components.schemas.LLMSkillFileEdit.properties.path.description
Path of the bundled file to edit. Must match an existing file on the current skill version.

# components.schemas.LLMSkillFileEdit.properties.edits.description
Sequential find/replace operations to apply to this file's content.

# components.schemas.LLMSkillFileInput.properties.path.description
File path relative to skill root, e.g. 'scripts/setup.sh' or 'references/guide.md'.

# components.schemas.LLMSkillFileRename.properties.new_path.description
New file path. Must not already exist in the skill.

# components.schemas.LLMSkillFileRename.properties.base_version.description
Latest version you are editing from. If provided, the request fails with 409 when another write has landed in the meantime.

# components.schemas.LLMSkillList.description
List serializer that omits body and file manifest — progressive disclosure (Level 1).

# components.schemas.LLMSkillList.properties.name.description
Unique skill name. Lowercase letters, numbers, and hyphens only. Max 64 characters.

# components.schemas.LLMSkillList.properties.description.description
What this skill does and when to use it. Max 4096 characters.

# components.schemas.LLMSkillList.properties.license.description
License name or reference to a bundled license file.

# components.schemas.LLMSkillList.properties.compatibility.description
Environment requirements (intended product, system packages, network access, etc.).

# components.schemas.LLMSkillList.properties.allowed_tools.description
List of pre-approved tools the skill may use.

# components.schemas.LLMSkillList.properties.outline.description
Flat list of markdown headings parsed from the skill body. Useful as a lightweight table of contents.

# components.schemas.LLMTaggerConfig.properties.prompt.description
Prompt instructing the LLM how to tag generations

# components.schemas.LLMTaggerConfig.properties.max_tags.description
Maximum number of tags to apply (null = no limit)

# components.schemas.LOFDetectorConfig.properties.n_neighbors.description
Number of neighbors for LOF (default: 20)

# components.schemas.LOFDetectorConfig.properties.threshold.description
Anomaly probability threshold (default: 0.9)

# components.schemas.LOFDetectorConfig.properties.window.description
Rolling window size — how many historical data points to train on (default: based on calculation interval)

# components.schemas.LastActiveEnum.description
* `today` - today
* `this_week` - this_week
* `inactive` - inactive
* `never` - never

# components.schemas.LastRefreshStatusEnum.description
* `success` - Success
* `not_modified` - Not modified
* `error` - Error

# components.schemas.LatestTestInterview.properties.transcript.description
Full transcript of the test call, if Vapi delivered one. May be empty.

# components.schemas.LatestTestInterview.properties.summary.description
AI-generated summary of the test call, if Vapi delivered one. May be empty.

# components.schemas.LayoutEnum.description
* `preserve` - preserve
* `two_column` - two_column
* `full_width` - full_width

# components.schemas.LegalDocumentDTO.description
Output serializer — what the API returns for every row.

# components.schemas.LifecycleDataWarehouseNode.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.LifecycleDataWarehouseNode.properties.properties.description
Properties configurable in the interface

# components.schemas.LifecycleDataWarehouseNode.properties.version.description
version of the node, used for schema migrations

# components.schemas.LifecycleQuery.properties.customAggregationTarget.description
For data warehouse based lifecycle insights when the aggregation target can't be mapped to persons or groups.

# components.schemas.LifecycleQuery.properties.dataColorTheme.description
Colors used in the insight's visualization

# components.schemas.LifecycleQuery.properties.filterTestAccounts.description
Exclude internal and test users by applying the respective filters

# components.schemas.LifecycleQuery.properties.interval.description
Granularity of the response. Can be one of `hour`, `day`, `week` or `month`

# components.schemas.LifecycleQuery.properties.lifecycleFilter.description
Properties specific to the lifecycle insight

# components.schemas.LifecycleQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.LifecycleQuery.properties.tags.description
Tags that will be added to the Query log comment

# components.schemas.LifecycleQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.LifecycleQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.LifecycleQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.LifecycleQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.LifecycleQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.LifecycleQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.LifecycleQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.ListOutput.properties.id.description
ID of the file download batch export run.

# components.schemas.ListOutput.properties.status.description
Current status of the file download batch export run.

* `Cancelled` - Cancelled
* `Completed` - Completed
* `ContinuedAsNew` - Continued As New
* `Failed` - Failed
* `FailedRetryable` - Failed Retryable
* `FailedBilling` - Failed Billing
* `Terminated` - Terminated
* `TimedOut` - Timedout
* `Running` - Running
* `Starting` - Starting

# components.schemas.LocalEvaluationResponse.properties.cohorts.description
Cohort definitions keyed by cohort ID. Each value is a property group structure with 'type' (OR/AND) and 'values' (array of property groups or property filters).

# components.schemas.LogAttributeResult.properties.matchedOn.description
Whether this row matched the search by attribute key or by attribute value.

# components.schemas.LogAttributeResult.properties.matchedValue.description
Sample value that matched the search — only set when matchedOn is 'value'.

# components.schemas.LogAttributesQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.LogAttributesQuery.properties.searchValues.description
When true, the search query also matches attribute values (not just keys).

# components.schemas.LogAttributesQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.LogAttributesQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.LogAttributesQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.LogAttributesQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.LogAttributesQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.LogAttributesQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.LogAttributesQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.LogValuesQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.LogValuesQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.LogValuesQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.LogValuesQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.LogValuesQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.LogValuesQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.LogValuesQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.LogValuesQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.LogsAlertConfiguration.properties.name.description
Human-readable name for this alert. Defaults to 'Untitled alert' on create when omitted.

# components.schemas.LogsAlertConfiguration.properties.enabled.description
Whether the alert is actively being evaluated. Disabling resets the state to not_firing.

# components.schemas.LogsAlertConfiguration.properties.filters.description
Filter criteria — subset of LogsViewerFilters. Must contain at least one of: severityLevels (list of severity strings), serviceNames (list of service name strings), or filterGroup (property filter group object). May be empty on draft alerts (enabled=false).

# components.schemas.LogsAlertConfiguration.properties.threshold_count.description
Number of matching log entries that constitutes a threshold breach within the evaluation window. Defaults to 100. Use 0 with the 'above' operator to fire on any matching log.

# components.schemas.LogsAlertConfiguration.properties.threshold_operator.description
Whether the alert fires when the count is above or below the threshold.

* `above` - Above
* `below` - Below

# components.schemas.LogsAlertConfiguration.properties.window_minutes.description
Time window in minutes over which log entries are counted. Allowed values: 5, 10, 15, 30, 60.

# components.schemas.LogsAlertConfiguration.properties.check_interval_minutes.description
How often the alert is evaluated, in minutes. Server-managed.

# components.schemas.LogsAlertConfiguration.properties.state.description
Current alert state: not_firing, firing, pending_resolve, errored, or snoozed. Server-managed.

* `not_firing` - Not firing
* `firing` - Firing
* `pending_resolve` - Pending resolve
* `errored` - Errored
* `snoozed` - Snoozed
* `broken` - Broken

# components.schemas.LogsAlertConfiguration.properties.evaluation_periods.description
Total number of check periods in the sliding evaluation window for firing (M in N-of-M).

# components.schemas.LogsAlertConfiguration.properties.datapoints_to_alarm.description
How many periods within the evaluation window must breach the threshold to fire (N in N-of-M).

# components.schemas.LogsAlertConfiguration.properties.cooldown_minutes.description
Minimum minutes between repeated notifications after the alert fires. 0 means no cooldown.

# components.schemas.LogsAlertConfiguration.properties.snooze_until.description
ISO 8601 timestamp until which the alert is snoozed. Set to null to unsnooze.

# components.schemas.LogsAlertConfiguration.properties.next_check_at.description
When the next evaluation is scheduled. Server-managed.

# components.schemas.LogsAlertConfiguration.properties.last_notified_at.description
When the last notification was sent. Server-managed.

# components.schemas.LogsAlertConfiguration.properties.last_checked_at.description
When the alert was last evaluated. Server-managed.

# components.schemas.LogsAlertConfiguration.properties.consecutive_failures.description
Number of consecutive evaluation failures. Resets on success. Server-managed.

# components.schemas.LogsAlertConfiguration.properties.last_error_message.description
Error message from the most recent errored check, or null if the alert's most recent check was successful. Sourced from LogsAlertEvent without denormalization so retention-aware cleanup rules stay the only source of truth.

# components.schemas.LogsAlertConfiguration.properties.state_timeline.description
Continuous state intervals over the last 24h, ordered oldest-first. Each interval covers a span during which (state, enabled) was constant. Derived from LogsAlertEvent rows walked in chronological order; consecutive identical intervals are collapsed. Drives the 'Last 24h' status bar on the alert list.

# components.schemas.LogsAlertConfiguration.properties.destination_types.description
Notification destination types configured for this alert — e.g. 'slack', 'webhook'. Empty list means no notifications will fire. One or more destinations should be added after creating an alert.

# components.schemas.LogsAlertConfiguration.properties.first_enabled_at.description
When the alert was first enabled. Null means the alert is still in draft state.

# components.schemas.LogsAlertConfigurationStateEnum.description
* `not_firing` - Not firing
* `firing` - Firing
* `pending_resolve` - Pending resolve
* `errored` - Errored
* `snoozed` - Snoozed
* `broken` - Broken

# components.schemas.LogsAlertCreateDestination.properties.type.description
Destination type — slack or webhook.

* `slack` - slack
* `webhook` - webhook

# components.schemas.LogsAlertCreateDestination.properties.slack_workspace_id.description
Integration ID for the Slack workspace. Required when type=slack.

# components.schemas.LogsAlertCreateDestination.properties.slack_channel_id.description
Slack channel ID. Required when type=slack.

# components.schemas.LogsAlertCreateDestination.properties.slack_channel_name.description
Human-readable channel name for display.

# components.schemas.LogsAlertCreateDestination.properties.webhook_url.description
HTTPS endpoint to POST to. Required when type=webhook.

# components.schemas.LogsAlertDeleteDestination.properties.hog_function_ids.description
HogFunction IDs to delete as one atomic destination group.

# components.schemas.LogsAlertEventKindEnum.description
* `check` - Check
* `reset` - Reset
* `enable` - Enable
* `disable` - Disable
* `snooze` - Snooze
* `unsnooze` - Unsnooze
* `threshold_change` - Threshold change
* `broken_config` - Broken config

# components.schemas.LogsAlertSimulateBucket.properties.threshold_breached.description
Whether the count crossed the threshold in this bucket.

# components.schemas.LogsAlertSimulateBucket.properties.state.description
Alert state after evaluating this bucket.

# components.schemas.LogsAlertSimulateBucket.properties.notification.description
Notification action: none, fire, or resolve.

# components.schemas.LogsAlertSimulateBucket.properties.reason.description
Human-readable explanation of the state transition.

# components.schemas.LogsAlertSimulateRequest.properties.filters.description
Filter criteria — same format as LogsAlertConfiguration.filters.

# components.schemas.LogsAlertSimulateRequest.properties.threshold_operator.description
Whether the alert fires when the count is above or below the threshold.

* `above` - Above
* `below` - Below

# components.schemas.LogsAlertSimulateRequest.properties.window_minutes.description
Window size in minutes — determines bucket interval.

# components.schemas.LogsAlertSimulateRequest.properties.check_interval_minutes.description
How often the alert is evaluated, in minutes.

# components.schemas.LogsAlertSimulateRequest.properties.evaluation_periods.description
Total check periods in the N-of-M evaluation window (M).

# components.schemas.LogsAlertSimulateRequest.properties.datapoints_to_alarm.description
How many periods must breach to fire (N in N-of-M).

# components.schemas.LogsAlertSimulateRequest.properties.cooldown_minutes.description
Minutes to wait after firing before sending another notification.

# components.schemas.LogsAlertSimulateRequest.properties.date_from.description
Relative date string for how far back to simulate (e.g. '-24h', '-7d', '-30d').

# components.schemas.LogsAlertSimulateResponse.properties.buckets.description
Time-bucketed counts with full state machine evaluation.

# components.schemas.LogsAlertSimulateResponse.properties.fire_count.description
Number of times the alert would have sent a fire notification.

# components.schemas.LogsAlertSimulateResponse.properties.resolve_count.description
Number of times the alert would have sent a resolve notification.

# components.schemas.LogsAlertSimulateResponse.properties.total_buckets.description
Total number of buckets in the simulation window.

# components.schemas.LogsAlertStateInterval.properties.state.description
Alert state during this interval.

* `not_firing` - Not firing
* `firing` - Firing
* `pending_resolve` - Pending resolve
* `errored` - Errored
* `snoozed` - Snoozed
* `broken` - Broken

# components.schemas.LogsAlertStateInterval.properties.enabled.description
Whether the alert was enabled during this interval. Disabled alerts keep their state but are inactive.

# components.schemas.LogsQuery.properties.after.description
Cursor for fetching the next page of results

# components.schemas.LogsQuery.properties.excludeAttributes.description
Omit the per-log `attributes` and `resource_attributes` maps from results to keep payloads compact

# components.schemas.LogsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.LogsQuery.properties.sparklineBreakdownBy.description
Field to break down sparkline data by (used only by sparkline endpoint)

# components.schemas.LogsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.LogsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.LogsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.LogsQueryResponse.properties.nextCursor.description
Cursor for fetching the next page of results

# components.schemas.LogsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.LogsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.LogsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.LogsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.LogsSamplingRule.properties.id.description
Unique identifier for this sampling rule.

# components.schemas.LogsSamplingRule.properties.enabled.description
When false, the rule is ignored by ingestion and listing UIs that show active rules only.

# components.schemas.LogsSamplingRule.properties.priority.description
Lower numbers are evaluated first; the first matching rule wins. Omit to append after existing rules.

# components.schemas.LogsSamplingRule.properties.rule_type.description
Rule kind: severity_sampling, path_drop, or rate_limit (caps matching log volume at ingestion).

* `severity_sampling` - Severity-based reduction
* `path_drop` - Path exclusion
* `rate_limit` - Rate limit

# components.schemas.LogsSamplingRule.properties.scope_service.description
Optional legacy service-name scope; new rules use `config.filter_group` for matching instead.

# components.schemas.LogsSamplingRule.properties.scope_path_pattern.description
Optional regex matched against a path-like log attribute when present.

# components.schemas.LogsSamplingRule.properties.config.description
Type-specific JSON. For path_drop: object with optional `filter_group` (PropertyGroupFilter shape — AND/OR tree of property predicates evaluated per record) and/or legacy `patterns` (list of regex strings) + `match_attribute_key` (string). When both are present a record is dropped if EITHER matches. Filter group example: `{"type":"AND","values":[{"type":"AND","values":[{"key":"service.name","operator":"exact","value":"api"}]}]}`. For severity_sampling: object with `actions` per severity level and optional `always_keep`. For rate_limit: object with EITHER `logs_per_second` (integer 1–1000000, optional `burst_logs` integer ≥ logs_per_second, max 10000000) OR `kb_per_second` (integer 1–1000000 = 1 GB/s, optional `burst_kb` integer ≥ kb_per_second, max 10000000) — not both. Plus optional `filter_group` to narrow which logs the cap applies to. KB-mode charges each log its own uncompressed byte size, matching how billing measures ingested bytes.

# components.schemas.LogsSamplingRule.properties.version.description
Incremented on each update for worker cache coherency.

# components.schemas.LogsSamplingRuleReorder.properties.ordered_ids.description
Rule IDs in the desired evaluation order (first element is highest priority / lowest order index).

# components.schemas.LogsSamplingRuleSimulateResponse.properties.estimated_reduction_pct.description
Rough percent of log volume this rule would drop (0–100). Stub until ClickHouse-backed estimate ships.

# components.schemas.LogsSamplingRuleSimulateResponse.properties.notes.description
Human-readable caveats for the estimate.

# components.schemas.LogsView.properties.filters.description
Filter criteria — subset of LogsViewerFilters. May contain severityLevels, serviceNames, searchTerm, filterGroup, dateRange, and other keys.

# components.schemas.MADDetectorConfig.properties.threshold.description
Anomaly probability threshold [0-1]. Points above this probability are flagged (default: 0.9)

# components.schemas.MADDetectorConfig.properties.window.description
Rolling window size for calculating median/MAD (default: 30)

# components.schemas.MCPServerInstallation.properties.icon_key.description
Lowercase key from the linked template for brand icons. Empty if custom install (no template).

# components.schemas.MCPServerInstallation.properties.tool_count.description
Number of live (non-removed) tools exposed by this installation.

# components.schemas.MCPServerInstallationToolApprovalStateEnum.description
* `approved` - Approved
* `needs_approval` - Needs approval
* `do_not_use` - Do not use

# components.schemas.MarkToleratedInput.properties.snapshot_id.description
UUID of the changed snapshot to mark as a known tolerated alternate. Future runs that produce the same alternate hash for this identifier will not be flagged as changes.

# components.schemas.MarketingAnalyticsAggregatedQuery.properties.aggregation_group_type_index.description
Groups aggregation - not used in Web Analytics but required for type compatibility

# components.schemas.MarketingAnalyticsAggregatedQuery.properties.dataColorTheme.description
Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility

# components.schemas.MarketingAnalyticsAggregatedQuery.properties.draftConversionGoal.description
Draft conversion goal that can be set in the UI without saving

# components.schemas.MarketingAnalyticsAggregatedQuery.properties.drillDownLevel.description
Drill-down hierarchy level: channel, source, or campaign (default)

# components.schemas.MarketingAnalyticsAggregatedQuery.properties.interval.description
Interval for date range calculation (affects date_to rounding for hour vs day ranges)

# components.schemas.MarketingAnalyticsAggregatedQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.MarketingAnalyticsAggregatedQuery.properties.select.description
Return a limited set of data. Will use default columns if empty.

# components.schemas.MarketingAnalyticsAggregatedQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.MarketingAnalyticsAggregatedQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.MarketingAnalyticsAggregatedQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.MarketingAnalyticsAggregatedQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.MarketingAnalyticsAggregatedQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.MarketingAnalyticsAggregatedQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.MarketingAnalyticsAggregatedQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.MarketingAnalyticsTableQuery.properties.aggregation_group_type_index.description
Groups aggregation - not used in Web Analytics but required for type compatibility

# components.schemas.MarketingAnalyticsTableQuery.properties.dataColorTheme.description
Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility

# components.schemas.MarketingAnalyticsTableQuery.properties.draftConversionGoal.description
Draft conversion goal that can be set in the UI without saving

# components.schemas.MarketingAnalyticsTableQuery.properties.drillDownLevel.description
Drill-down hierarchy level: channel, source, or campaign (default)

# components.schemas.MarketingAnalyticsTableQuery.properties.interval.description
Interval for date range calculation (affects date_to rounding for hour vs day ranges)

# components.schemas.MarketingAnalyticsTableQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.MarketingAnalyticsTableQuery.properties.offset.description
Number of rows to skip before returning rows

# components.schemas.MarketingAnalyticsTableQuery.properties.orderBy.description
Columns to order by - similar to EventsQuery format

# components.schemas.MarketingAnalyticsTableQuery.properties.select.description
Return a limited set of data. Will use default columns if empty.

# components.schemas.MarketingAnalyticsTableQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.MarketingAnalyticsTableQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.MarketingAnalyticsTableQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.MarketingAnalyticsTableQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.MarketingAnalyticsTableQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.MarketingAnalyticsTableQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.MarketingAnalyticsTableQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.MaterializationPreviewRequest.properties.bucket_overrides.description
Per-column bucket function overrides, e.g. {"timestamp": "hour"}

# components.schemas.MeetingPlatformEnum.description
* `zoom` - Zoom
* `teams` - Microsoft Teams
* `meet` - Google Meet
* `desktop_audio` - Desktop audio
* `slack` - Slack huddle

# components.schemas.Message.description
Serializer for appending a message to an existing conversation without triggering AI processing.

# components.schemas.MessageMinimal.description
Serializer for appending a message to an existing conversation without triggering AI processing.

# components.schemas.MethodEnum.description
* `user_message` - user_message
* `cancel` - cancel
* `close` - close
* `permission_response` - permission_response
* `set_config_option` - set_config_option

# components.schemas.MinimalFeatureFlag.properties.evaluation_runtime.description
Specifies where this feature flag should be evaluated

* `server` - Server
* `client` - Client
* `all` - All

# components.schemas.MinimalFeatureFlag.properties.bucketing_identifier.description
Identifier used for bucketing users into rollout and variants

* `distinct_id` - User ID (default)
* `device_id` - Device ID

# components.schemas.MinimalPerson.properties.name.description
Display name derived from person properties (email, name, or username).

# components.schemas.MinimalPerson.properties.properties.description
Key-value map of person properties set via $set and $set_once operations.

# components.schemas.MinimalPerson.properties.created_at.description
When this person was first seen (ISO 8601).

# components.schemas.MinimalPerson.properties.uuid.description
Unique identifier (UUID) for this person.

# components.schemas.MinimalPerson.properties.last_seen_at.description
Timestamp of the last event from this person, or null.

# components.schemas.ModelConfiguration.description
Nested serializer for model configuration.

# components.schemas.ModelEnum.description
* `events` - Events
* `persons` - Persons
* `sessions` - Sessions

# components.schemas.MonitorStats.properties.yes_total.description
Succeeded observations whose verdict was `yes`.

# components.schemas.MonitorStats.properties.no_total.description
Succeeded observations whose verdict was `no`.

# components.schemas.MonitorStats.properties.inconclusive_total.description
Succeeded observations whose verdict was `inconclusive`.

# components.schemas.MoveTileRequest.properties.tile.description
Tile to move, identified by its dashboard tile ID.

# components.schemas.NetworkAccessLevelEnum.description
* `trusted` - Trusted
* `full` - Full
* `custom` - Custom

# components.schemas.NonIntegratedConversionsTableQuery.properties.aggregation_group_type_index.description
Groups aggregation - not used in Web Analytics but required for type compatibility

# components.schemas.NonIntegratedConversionsTableQuery.properties.dataColorTheme.description
Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility

# components.schemas.NonIntegratedConversionsTableQuery.properties.draftConversionGoal.description
Draft conversion goal that can be set in the UI without saving

# components.schemas.NonIntegratedConversionsTableQuery.properties.interval.description
Interval for date range calculation (affects date_to rounding for hour vs day ranges)

# components.schemas.NonIntegratedConversionsTableQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.NonIntegratedConversionsTableQuery.properties.offset.description
Number of rows to skip before returning rows

# components.schemas.NonIntegratedConversionsTableQuery.properties.select.description
Return a limited set of data. Will use default columns if empty.

# components.schemas.NonIntegratedConversionsTableQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.NonIntegratedConversionsTableQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.NonIntegratedConversionsTableQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.NonIntegratedConversionsTableQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.NonIntegratedConversionsTableQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.NonIntegratedConversionsTableQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.NonIntegratedConversionsTableQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Notebook.properties.short_id.description
Short alphanumeric identifier used in URLs and API lookups.

# components.schemas.Notebook.properties.content.description
Notebook content as a ProseMirror JSON document structure.

# components.schemas.Notebook.properties.text_content.description
Plain text representation of the notebook content for search.

# components.schemas.Notebook.properties.version.description
Version number for optimistic concurrency control. Must match the current version when updating content.

# components.schemas.Notebook.properties.deleted.description
Whether the notebook has been soft-deleted.

# components.schemas.Notebook.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.Notebook.properties.parent_resource.description
Parent resource this notebook is attached to, or `null`. Returns `{type: 'account', id: <uuid>}` for account-linked notebooks; used by the frontend to route breadcrumbs back to the resource's list.

# components.schemas.NotebookCollabSave.properties.client_id.description
Unique identifier for the client session.

# components.schemas.NotebookCollabSave.properties.version.description
The collab version the client's steps are based on.

# components.schemas.NotebookCollabSave.properties.steps.description
List of ProseMirror step JSON objects to apply.

# components.schemas.NotebookCollabSave.properties.content.description
The resulting ProseMirror document after applying the steps locally.

# components.schemas.NotebookCollabSave.properties.cursor_head.description
ProseMirror cursor head position after applying steps.

# components.schemas.NotebookMinimal.properties.short_id.description
Short alphanumeric identifier used in URLs and API lookups.

# components.schemas.NotebookMinimal.properties.deleted.description
Whether the notebook has been soft-deleted.

# components.schemas.NotebookMinimal.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.NumericMetric.properties.previous.description
Value for the prior period, if available.

# components.schemas.NumericMetric.properties.change.description
Period-over-period change, null when not meaningful.

# components.schemas.NumericPropertyFilter.description
Matches numeric values with comparison operators.

# components.schemas.NumericPropertyFilter.properties.key.description
Key of the property you're filtering on. For example `email` or `$current_url`.

# components.schemas.NumericPropertyFilter.properties.type.description
Property type (event, person, session, etc.).

* `event` - event
* `event_metadata` - event_metadata
* `feature` - feature
* `person` - person
* `cohort` - cohort
* `element` - element
* `static-cohort` - static-cohort
* `dynamic-cohort` - dynamic-cohort
* `precalculated-cohort` - precalculated-cohort
* `group` - group
* `recording` - recording
* `log_entry` - log_entry
* `behavioral` - behavioral
* `session` - session
* `hogql` - hogql
* `data_warehouse` - data_warehouse
* `data_warehouse_person_property` - data_warehouse_person_property
* `error_tracking_issue` - error_tracking_issue
* `log` - log
* `log_attribute` - log_attribute
* `log_resource_attribute` - log_resource_attribute
* `span` - span
* `span_attribute` - span_attribute
* `span_resource_attribute` - span_resource_attribute
* `revenue_analytics` - revenue_analytics
* `flag` - flag
* `workflow_variable` - workflow_variable

# components.schemas.NumericPropertyFilter.properties.operator.description
Numeric comparison operator.

* `exact` - exact
* `is_not` - is_not
* `gt` - gt
* `lt` - lt
* `gte` - gte
* `lte` - lte

# components.schemas.NumericPropertyFilterOperatorEnum.description
* `exact` - exact
* `is_not` - is_not
* `gt` - gt
* `lt` - lt
* `gte` - gte
* `lte` - lte

# components.schemas.NumericScoreDefinitionConfig.properties.step.description
Optional increment step for numeric input, for example 1 or 0.5.

# components.schemas.OCSVMDetectorConfig.properties.nu.description
Upper bound on training errors fraction (default: 0.1)

# components.schemas.OCSVMDetectorConfig.properties.threshold.description
Anomaly probability threshold (default: 0.9)

# components.schemas.OCSVMDetectorConfig.properties.window.description
Rolling window size — how many historical data points to train on (default: based on calculation interval)

# components.schemas.ObjectMediaPreview.properties.media_type.description
Return 'uploaded' or 'exported' based on which media is set

# components.schemas.ObservationStats.properties.status_counts.description
Counts of observations by terminal status.

# components.schemas.ObservationStats.properties.available_tags.description
All distinct tags (fixed + freeform) emitted by succeeded observations in the filtered set.

# components.schemas.ObservationStats.properties.monitor.description
Monitor-type aggregates; null when the scanner is not a monitor.

# components.schemas.ObservationStats.properties.classifier.description
Classifier-type aggregates; null when the scanner is not a classifier.

# components.schemas.ObservationStats.properties.scorer.description
Scorer-type aggregates; null when the scanner is not a scorer.

# components.schemas.ObservationStatusCounts.properties.in_flight.description
Observations not yet in a terminal status.

# components.schemas.ObservationStatusCounts.properties.success_rate.description
Percentage of (succeeded + failed) observations that succeeded; ineligible rows are excluded. Null when no observations have completed.

# components.schemas.ObservationStatusEnum.description
* `pending` - Pending
* `running` - Running
* `succeeded` - Succeeded
* `failed` - Failed
* `ineligible` - Ineligible

# components.schemas.ObservationTriggerEnum.description
* `schedule` - Schedule
* `on_demand` - On demand

# components.schemas.ObserveRequest.properties.session_id.description
ID of the session recording to apply the scanner to.

# components.schemas.ObserveResponse.properties.workflow_id.description
Temporal workflow id for this scanner application. Look up the resulting ReplayObservation via GET /vision/scanners/{id}/observations/?session_id=<session_id>.

# components.schemas.OfflineExperimentItemsRequest.properties.date_from.description
Lower bound on `timestamp` (ISO-8601). Omit to leave the lower bound open.

# components.schemas.OfflineExperimentItemsRequest.properties.date_to.description
Upper bound on `timestamp` (ISO-8601). Omit to leave the upper bound open.

# components.schemas.OnErrorEnum.description
* `continue` - continue
* `abort` - abort
* `complete` - complete
* `branch` - branch

# components.schemas.OnboardingSkipRequest.description
Request body for POST /api/users/{id}/onboarding/skip/.

Source of truth for OpenAPI / generated TS / zod / MCP — bind this serializer at
runtime so the contract clients believe is enforced (length cap, choice validation,
no extra fields) is actually enforced server-side.

# components.schemas.OnboardingSkipRequest.properties.reason.description
Why the user is leaving onboarding. 'later' keeps them able to return; 'other' is a catch-all. 'delegated' is rejected here — use the delegate endpoint so the delegation invite is created atomically.

* `later` - Later
* `other` - Other

# components.schemas.OnboardingSkipRequest.properties.step_at_skip.description
Onboarding step key the user was on when skipping, for analytics only.

# components.schemas.OnboardingSkippedReasonEnum.description
* `delegated` - Delegated to teammate
* `later` - Skipped for later
* `other` - Other

# components.schemas.OrderByEnum.description
* `latest` - latest
* `earliest` - earliest

# components.schemas.Organization.properties.is_member_join_email_enabled.description
Legacy field; member-join emails are controlled per user in account notification settings.

# components.schemas.Organization.properties.members_can_create_projects.description
When True, organization members (below admin) are allowed to create new projects. Admins and owners can always create projects.

# components.schemas.Organization.properties.is_ai_training_opted_in.description
When True, this organization allows its data to be used to train PostHog AI models.

# components.schemas.Organization.properties.is_ai_training_locked.description
When True, the AI training opt-out setting cannot be modified through the UI or API.

# components.schemas.Organization.properties.is_ai_training_cta_shown.description
When True, in-app callouts inviting members to enable AI training are shown.

# components.schemas.Organization.properties.default_experiment_stats_method.description
Default statistical method for new experiments in this organization.

* `bayesian` - Bayesian
* `frequentist` - Frequentist

# components.schemas.Organization.properties.default_anonymize_ips.description
Default setting for 'Discard client IP data' for new projects in this organization.

# components.schemas.Organization.properties.default_role_id.description
ID of the role to automatically assign to new members joining the organization

# components.schemas.Organization.properties.is_active.description
Set this to 'No' to temporarily disable an organization.

# components.schemas.Organization.properties.is_not_active_reason.description
(optional) reason for why the organization has been de-activated. This will be displayed to users on the web app.

# components.schemas.Organization.properties.is_pending_deletion.description
Set to True when org deletion has been initiated. Blocks all UI access until the async task completes.

# components.schemas.OrganizationBasic.description
Serializer for `Organization` model with minimal attributes to speeed up loading and transfer times.
Also used for nested serializers.

# components.schemas.OrganizationBasic.properties.is_active.description
Set this to 'No' to temporarily disable an organization.

# components.schemas.OrganizationBasic.properties.is_not_active_reason.description
(optional) reason for why the organization has been de-activated. This will be displayed to users on the web app.

# components.schemas.OrganizationBasic.properties.is_pending_deletion.description
Set to True when org deletion has been initiated. Blocks all UI access until the async task completes.

# components.schemas.OrganizationDomain.properties.is_verified.description
Determines whether a domain is verified or not.

# components.schemas.OrganizationDomain.properties.has_saml.description
Returns whether SAML is configured for the instance. Does not validate the user has the required license (that check is performed in other places).

# components.schemas.OrganizationDomain.properties.has_scim.description
Returns whether SCIM is configured and enabled for this domain.

# components.schemas.OrganizationInvite.properties.is_expired.description
Check if invite is older than INVITE_DAYS_VALIDITY days.

# components.schemas.OrganizationInvite.properties.private_project_access.description
List of team IDs and corresponding access levels to private projects.

# components.schemas.OrganizationInviteDelegate.properties.target_email.description
Email of the teammate who should complete setup on the inviter's behalf. Receives a PostHog-branded delegation invite granting admin-level membership on accept.

# components.schemas.OrganizationInviteDelegate.properties.message.description
Optional personal message included in the delegation email (up to 1000 characters).

# components.schemas.OrganizationInviteDelegate.properties.step_at_delegation.description
Onboarding step key the delegator was on when delegating, for analytics only.

# components.schemas.OrganizationMembershipLevelEnum.description
* `1` - member
* `8` - administrator
* `15` - owner

# components.schemas.OrganizationOAuthApplication.properties.is_verified.description
True if this application has been verified by PostHog

# components.schemas.OriginEnum.description
* `data_warehouse` - Data Warehouse
* `endpoint` - Endpoint
* `managed_viewset` - Managed Viewset

# components.schemas.OriginProductEnum.description
* `error_tracking` - Error Tracking
* `eval_clusters` - Eval Clusters
* `user_created` - User Created
* `automation` - Automation
* `slack` - Slack
* `support_queue` - Support Queue
* `session_summaries` - Session Summaries
* `signal_report` - Signal Report
* `signals_scout` - Signals Scout

# components.schemas.Outcome.description
Initial goal and session outcome coming from LLM.

# components.schemas.OutdatedTrafficAlert.properties.version.description
Outdated version handling significant traffic.

# components.schemas.OutdatedTrafficAlert.properties.threshold_percent.description
Traffic-percentage threshold that triggered the alert (10% for most SDKs, 20% for web).

# components.schemas.OverallHealthEnum.description
* `healthy` - healthy
* `needs_attention` - needs_attention

# components.schemas.PCADetectorConfig.properties.threshold.description
Anomaly probability threshold (default: 0.9)

# components.schemas.PCADetectorConfig.properties.window.description
Rolling window size — how many historical data points to train on (default: based on calculation interval)

# components.schemas.PatchedAccount.description
A Customer Analytics account — a logical grouping used to assign customer-success ownership.

# components.schemas.PatchedAccount.properties.external_id.description
Identifier for the account in an external system (e.g. CRM ID). Optional.

# components.schemas.PatchedAccount.properties.properties.description
Typed account properties: assignment fields (csm, account_executive, account_owner) and external system identifiers (stripe_customer_id, hubspot_deal_id, billing_id, sfdc_id, zendesk_id, slack_channel_id, usage_dashboard_link). Defaults to an empty object. Unknown keys are rejected.

# components.schemas.PatchedAccount.properties.tags.description
Tag names attached to the account. Pass a list to replace existing tags.

# components.schemas.PatchedAccount.properties.notebooks.description
Short IDs of the internal notebooks linked to this account, used to persist investigations, call notes, and other free-form context. Empty list if no notebooks have been created for the account.

# components.schemas.PatchedAction.description
Serializer mixin that handles tags for objects.

# components.schemas.PatchedAction.properties.name.description
Name of the action (must be unique within the project).

# components.schemas.PatchedAction.properties.description.description
Human-readable description of what this action represents.

# components.schemas.PatchedAction.properties.post_to_slack.description
Whether to post a notification to Slack when this action is triggered.

# components.schemas.PatchedAction.properties.slack_message_format.description
Custom Slack message format. Supports templates with event properties.

# components.schemas.PatchedAction.properties.steps.description
Action steps defining trigger conditions. Each step matches events by name, properties, URL, or element attributes. Multiple steps are OR-ed together.

# components.schemas.PatchedAction.properties.pinned_at.description
ISO 8601 timestamp when the action was pinned, or null if not pinned. Set any value to pin, null to unpin.

# components.schemas.PatchedAction.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.PatchedAddPersonsToStaticCohortRequest.properties.person_ids.description
List of person UUIDs to add to the cohort

# components.schemas.PatchedAlert.properties.insight.description
Insight ID monitored by this alert. Note: Response returns full InsightBasicSerializer object.

# components.schemas.PatchedAlert.properties.subscribed_users.description
User IDs to subscribe to this alert. Note: Response returns full UserBasicSerializer object.

# components.schemas.PatchedAlert.properties.threshold.description
Threshold configuration with bounds and type for evaluating the alert.

# components.schemas.PatchedAlert.properties.condition.description
Alert condition type. Determines how the value is evaluated: absolute_value, relative_increase, or relative_decrease.

# components.schemas.PatchedAlert.properties.state.description
Current alert state: Firing, Not firing, Errored, or Snoozed.

# components.schemas.PatchedAlert.properties.enabled.description
Whether the alert is actively being evaluated.

# components.schemas.PatchedAlert.properties.checks.description
Alert check results. By default returns the last 5. Use checks_date_from and checks_date_to (e.g. '-24h', '-7d') to get checks within a time window, checks_limit to cap how many are returned (default 5, max 500), and checks_offset to skip the newest N checks for pagination (0-based). Newest checks first. Only populated on retrieve.

# components.schemas.PatchedAlert.properties.checks_total.description
Total alert checks matching the retrieve filters (date window). Only set on alert retrieve; omitted otherwise.

# components.schemas.PatchedAlert.properties.config.description
Trends-specific alert configuration. Includes series_index (which series to monitor) and check_ongoing_interval (whether to check the current incomplete interval).

# components.schemas.PatchedAlert.properties.calculation_interval.description
How often the alert is checked: every 15 minutes (Boost+), hourly, daily, weekly, or monthly.

* `every_15_minutes` - every_15_minutes
* `hourly` - hourly
* `daily` - daily
* `weekly` - weekly
* `monthly` - monthly

# components.schemas.PatchedAlert.properties.snoozed_until.description
Snooze the alert until this time. Pass a relative date string (e.g. '2h', '1d') or null to unsnooze.

# components.schemas.PatchedAlert.properties.skip_weekend.description
Skip alert evaluation on weekends (Saturday and Sunday, local to project timezone).

# components.schemas.PatchedAlert.properties.schedule_restriction.description
Blocked local time windows (HH:MM in the project timezone). Interval is half-open [start, end): start inclusive, end exclusive. Use blocked_windows array of {start, end}. Null disables.

# components.schemas.PatchedAlert.properties.last_value.description
The last calculated value from the most recent alert check.

# components.schemas.PatchedAlert.properties.investigation_agent_enabled.description
When enabled, an investigation agent runs on the state transition to firing and writes findings to a Notebook linked from the alert check. Only effective for detector-based (anomaly) alerts.

# components.schemas.PatchedAlert.properties.investigation_gates_notifications.description
When enabled (and investigation_agent_enabled is on), notification dispatch is held until the investigation agent produces a verdict. Notifications are suppressed when the verdict is false_positive (and optionally when inconclusive). A safety-net task force-fires after a few minutes if the investigation stalls.

# components.schemas.PatchedAlert.properties.investigation_inconclusive_action.description
How to handle an 'inconclusive' verdict when notifications are gated. 'notify' is the safe default — an agent that can't be sure is itself useful signal.

* `notify` - Notify
* `suppress` - Suppress

# components.schemas.PatchedAnnotation.properties.content.description
Annotation text shown on charts to describe the change, release, or incident.

# components.schemas.PatchedAnnotation.properties.date_marker.description
When this annotation happened (ISO 8601 timestamp). Used to position it on charts.

# components.schemas.PatchedAnnotation.properties.creation_type.description
Who created this annotation. Use `USR` for user-created notes and `GIT` for bot/deployment notes.

* `USR` - user
* `GIT` - GitHub

# components.schemas.PatchedAnnotation.properties.deleted.description
Soft-delete flag. Set to true to hide the annotation, or false to restore it.

# components.schemas.PatchedAnnotation.properties.scope.description
Annotation visibility scope: `project`, `organization`, `dashboard`, or `dashboard_item`. `recording` is deprecated and rejected.

* `dashboard_item` - insight
* `dashboard` - dashboard
* `project` - project
* `organization` - organization
* `recording` - recording

# components.schemas.PatchedAnnotation.properties.emoji.description
Optional emoji shown in place of the default badge when this annotation is surfaced on a chart.

# components.schemas.PatchedApprovalPolicy.properties.expires_after.description
Auto-expire change requests after this duration

# components.schemas.PatchedBatchExportRequest.description
Request body for create/partial_update on BatchExportViewSet.

Mirrors the writeable fields of `BatchExportSerializer` but uses a polymorphic
`destination` schema so integration_id is marked required on the types that need
it. Responses continue to use `BatchExportSerializer`.

# components.schemas.PatchedBatchExportRequest.properties.name.description
Human-readable name for the batch export.

# components.schemas.PatchedBatchExportRequest.properties.model.description
Which data model to export (events, persons, sessions).

* `events` - Events
* `persons` - Persons
* `sessions` - Sessions

# components.schemas.PatchedBatchExportRequest.properties.destination.description
Destination configuration. Required integration_id is enforced per destination type.

# components.schemas.PatchedBatchExportRequest.properties.interval.description
How often the batch export should run.

* `hour` - hour
* `day` - day
* `week` - week
* `every 5 minutes` - every 5 minutes
* `every 15 minutes` - every 15 minutes

# components.schemas.PatchedBatchExportRequest.properties.hogql_query.description
Optional HogQL SELECT defining a custom model schema. Only recommended in advanced use cases.

# components.schemas.PatchedBatchExportRequest.properties.timezone.description
IANA timezone name (e.g. 'America/New_York', 'Europe/London', 'UTC') controlling daily and weekly interval boundaries.

# components.schemas.PatchedBatchExportRequest.properties.offset_day.description
Day-of-week offset for weekly intervals (0=Sunday, 6=Saturday).

# components.schemas.PatchedBatchExportRequest.properties.offset_hour.description
Hour-of-day offset (0-23) for daily and weekly intervals.

# components.schemas.PatchedCohort.properties.cohort_type.description
Type of cohort based on filter complexity

* `static` - static
* `person_property` - person_property
* `behavioral` - behavioral
* `realtime` - realtime
* `analytical` - analytical

# components.schemas.PatchedComment.properties.is_task.description
Whether this comment is an actionable task that can be marked complete. Tasks render with a checkbox in the UI and can be filtered as a separate kind. Cannot be set on replies (source_comment) or emoji reactions. Immutable after creation.

# components.schemas.PatchedComment.properties.completed_by.description
The user who marked this task complete. Null for open tasks and non-task comments.

# components.schemas.PatchedComment.properties.completed_at.description
ISO timestamp when the task was marked complete. Only meaningful when is_task is true. Read-only — toggled via the /complete and /reopen actions, not via PATCH.

# components.schemas.PatchedConversation.properties.is_internal.description
Whether this conversation was created during an impersonated session (e.g., by support agents). Internal conversations are hidden from customers.

# components.schemas.PatchedConversation.properties.slack_workspace_domain.description
Slack workspace subdomain (e.g. 'posthog' for posthog.slack.com)

# components.schemas.PatchedConversation.properties.pending_approvals.description
Return pending approval cards as structured data.

Combines metadata from conversation.approval_decisions with payload from checkpoint
interrupts (single source of truth for payload data).

# components.schemas.PatchedDashboard.description
Serializer mixin that handles tags for objects.

# components.schemas.PatchedDashboard.properties.breakdown_colors.description
Custom color mapping for breakdown values.

# components.schemas.PatchedDashboard.properties.data_color_theme_id.description
ID of the color theme used for chart visualizations.

# components.schemas.PatchedDashboard.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.PatchedDashboard.properties.quick_filter_ids.description
List of quick filter IDs associated with this dashboard

# components.schemas.PatchedDashboard.properties.use_template.description
Template key to create the dashboard from a predefined template.

# components.schemas.PatchedDashboard.properties.use_dashboard.description
ID of an existing dashboard to duplicate.

# components.schemas.PatchedDashboard.properties.delete_insights.description
When deleting, also delete insights that are only on this dashboard.

# components.schemas.PatchedDashboardTemplate.properties.is_featured.description
Manually curated; used to highlight templates in the UI.

# components.schemas.PatchedDataWarehouseSavedQuery.description
Shared methods for DataWarehouseSavedQuery serializers.

This mixin is intended to be used with serializers.ModelSerializer subclasses.

# components.schemas.PatchedDataWarehouseSavedQuery.properties.name.description
Unique name for the view. Used as the table name in HogQL queries and the node name in the data modeling Node.

# components.schemas.PatchedDataWarehouseSavedQuery.properties.query.description
HogQL query definition as a JSON object with a "query" key containing the SQL string and a "kind" key (always "HogQLQuery"). Format the SQL string multi-line with indentation and inline `--` comments for non-obvious logic — the SQL editor renders it verbatim, so avoid minified single-line SQL. Example: {"kind": "HogQLQuery", "query": "SELECT\n    event,\n    count() AS cnt\nFROM events\nGROUP BY event\nLIMIT 100"}

# components.schemas.PatchedDataWarehouseSavedQuery.properties.status.description
The status of when this SavedQuery last ran.

* `Cancelled` - Cancelled
* `Modified` - Modified
* `Completed` - Completed
* `Failed` - Failed
* `Running` - Running

# components.schemas.PatchedDataWarehouseSavedQuery.properties.folder_id.description
Optional folder ID used to organize this view in the SQL editor sidebar.

# components.schemas.PatchedDataWarehouseSavedQuery.properties.folder_name.description
Folder name used to organize this view in the SQL editor sidebar.

# components.schemas.PatchedDataWarehouseSavedQuery.properties.edited_history_id.description
Activity log ID from the last known edit. Used for conflict detection.

# components.schemas.PatchedDataWarehouseSavedQuery.properties.soft_update.description
If true, skip column inference and validation. For saving drafts.

# components.schemas.PatchedDataWarehouseSavedQuery.properties.origin.description
Where this SavedQuery is created.

* `data_warehouse` - Data Warehouse
* `endpoint` - Endpoint
* `managed_viewset` - Managed Viewset

# components.schemas.PatchedDataWarehouseSavedQuery.properties.is_test.description
Whether this view is for testing only and will auto-expire.

# components.schemas.PatchedDataWarehouseSavedQuery.properties.expires_at.description
When this test view should be automatically deleted.

# components.schemas.PatchedDataWarehouseSavedQuery.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.PatchedDataWarehouseSavedQueryFolder.description
Mixin for serializers to add user access control fields

# components.schemas.PatchedDataWarehouseSavedQueryFolder.properties.name.description
Display name for the folder used to organize saved queries in the SQL editor sidebar.

# components.schemas.PatchedDataWarehouseSavedQueryFolder.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.PatchedEarlyAccessFeature.properties.description.description
A longer description of what this early access feature does, shown to users in the opt-in UI.

# components.schemas.PatchedEarlyAccessFeature.properties.stage.description
Lifecycle stage. Valid values: draft, concept, alpha, beta, general-availability, archived. Moving to an active stage (alpha/beta/general-availability) enables the feature flag for opted-in users.

* `draft` - draft
* `concept` - concept
* `alpha` - alpha
* `beta` - beta
* `general-availability` - general availability
* `archived` - archived

# components.schemas.PatchedEarlyAccessFeature.properties.documentation_url.description
URL to external documentation for this feature. Shown to users in the opt-in UI.

# components.schemas.PatchedEarlyAccessFeature.properties.payload.description
Feature flag payload for this early access feature

# components.schemas.PatchedEndpointRequest.description
Schema for creating/updating endpoints. OpenAPI docs only — validation uses Pydantic.

# components.schemas.PatchedEndpointRequest.properties.name.description
Unique URL-safe name. Must start with a letter, only letters/numbers/hyphens/underscores, max 128 chars.

# components.schemas.PatchedEndpointRequest.properties.query.description
HogQL or insight query this endpoint executes. Changing this auto-creates a new version.

# components.schemas.PatchedEndpointRequest.properties.description.description
Human-readable description of what this endpoint returns.

# components.schemas.PatchedEndpointRequest.properties.data_freshness_seconds.description
How fresh the data should be, in seconds. Must be one of: 900 (15 min), 1800 (30 min), 3600 (1 h), 21600 (6 h), 43200 (12 h), 86400 (24 h, default), 604800 (7 d). Controls cache TTL and materialization sync frequency.

# components.schemas.PatchedEndpointRequest.properties.is_active.description
Whether this endpoint is available for execution via the API.

# components.schemas.PatchedEndpointRequest.properties.is_materialized.description
Whether query results are materialized to S3.

# components.schemas.PatchedEndpointRequest.properties.derived_from_insight.description
Short ID of the insight this endpoint was derived from.

# components.schemas.PatchedEndpointRequest.properties.version.description
Target a specific version for updates (defaults to current version).

# components.schemas.PatchedEndpointRequest.properties.bucket_overrides.description
Per-column bucket overrides for range variable materialization. Keys are column names, values are bucket keys.

# components.schemas.PatchedEndpointRequest.properties.deleted.description
Set to true to soft-delete this endpoint.

# components.schemas.PatchedEndpointRequest.properties.tags.description
List of tag names to associate with this endpoint. Replaces any existing tags.

# components.schemas.PatchedEnterpriseEventDefinition.description
Serializer mixin that handles tags for objects.

# components.schemas.PatchedEnterpriseEventDefinition.properties.primary_property.description
Name of a single property on this event that PostHog UIs should display alongside the event (for example `$pathname` on `$pageview`). When set, surfaces like the session replay inspector show the property's value next to the event name without the user having to open the event.

# components.schemas.PatchedEnterprisePropertyDefinition.description
Serializer mixin that handles tags for objects.

# components.schemas.PatchedErrorTrackingAssignmentRuleUpdateRequest.properties.filters.description
Property-group filters that define when this rule matches incoming error events.

# components.schemas.PatchedErrorTrackingAssignmentRuleUpdateRequest.properties.assignee.description
User or role to assign matching issues to.

# components.schemas.PatchedErrorTrackingGroupingRuleUpdateRequest.properties.filters.description
Property-group filters that define which exceptions should be grouped into the same issue. Omit to preserve the existing filters.

# components.schemas.PatchedErrorTrackingSettings.properties.project_rate_limit_value.description
Maximum number of exception events ingested per bucket for the entire project. Null removes the limit.

# components.schemas.PatchedErrorTrackingSettings.properties.project_rate_limit_bucket_size_minutes.description
Bucket window over which the project-wide rate limit applies, in minutes.

# components.schemas.PatchedErrorTrackingSettings.properties.per_issue_rate_limit_value.description
Maximum number of exception events ingested per bucket for each individual issue. Null removes the limit.

# components.schemas.PatchedErrorTrackingSettings.properties.per_issue_rate_limit_bucket_size_minutes.description
Bucket window over which the per-issue rate limit applies, in minutes.

# components.schemas.PatchedErrorTrackingSpikeDetectionConfig.properties.snooze_duration_minutes.description
Time to wait before alerting again for the same issue after a spike is detected.

# components.schemas.PatchedErrorTrackingSpikeDetectionConfig.properties.multiplier.description
The factor by which the current exception count must exceed the baseline to be considered a spike.

# components.schemas.PatchedErrorTrackingSpikeDetectionConfig.properties.threshold.description
The minimum number of exceptions required in a 5-minute window before a spike can be detected.

# components.schemas.PatchedErrorTrackingSuppressionRuleUpdateRequest.properties.filters.description
Property-group filters that define which incoming error events should be suppressed. Provide an empty `values` array to convert the rule into a match-all suppression. Omit to preserve the existing filters.

# components.schemas.PatchedErrorTrackingSuppressionRuleUpdateRequest.properties.sampling_rate.description
Probability that a matching event is dropped. `1.0` drops every match; `0.0` drops none; `0.5` drops half. Higher values suppress more. Omit to preserve the existing rate.

# components.schemas.PatchedEvaluation.properties.description.description
Optional description of what this evaluation checks.

# components.schemas.PatchedEvaluation.properties.enabled.description
Whether the evaluation runs automatically on new $ai_generation events.

# components.schemas.PatchedEvaluation.properties.evaluation_type.description
'llm_judge' uses an LLM to score outputs against a prompt; 'hog' runs deterministic Hog code.

* `llm_judge` - LLM as a judge
* `hog` - Hog

# components.schemas.PatchedEvaluation.properties.evaluation_config.oneOf[].properties.prompt.description
Evaluation criteria for the LLM judge. Describe what makes a good vs bad response.

# components.schemas.PatchedEvaluation.properties.evaluation_config.oneOf[].properties.source.description
Hog source code. Must return true (pass), false (fail), or null for N/A.

# components.schemas.PatchedEvaluation.properties.evaluation_config.description
Configuration dict. For 'llm_judge': {prompt}. For 'hog': {source}.

# components.schemas.PatchedEvaluation.properties.output_type.description
Output format. Currently only 'boolean' is supported.

* `boolean` - Boolean (Pass/Fail)

# components.schemas.PatchedEvaluation.properties.output_config.properties.allows_na.description
Whether the evaluation can return N/A for non-applicable generations.

# components.schemas.PatchedEvaluation.properties.output_config.description
Output config. For 'boolean' output_type: {allows_na} to permit N/A results.

# components.schemas.PatchedEvaluation.properties.conditions.description
Trigger conditions that filter which events are evaluated. OR between condition sets, AND within each. Each set is {id, rollout_percentage, properties[]} — `rollout_percentage` (0-100, defaults to 100) is the sampling field the dispatcher reads.

# components.schemas.PatchedEvaluation.properties.deleted.description
Set to true to soft-delete the evaluation.

# components.schemas.PatchedEvaluationReport.properties.evaluation.description
UUID of the evaluation this report config belongs to.

# components.schemas.PatchedEvaluationReport.properties.frequency.description
How report generation is triggered. 'every_n' fires once N new evaluation results have accumulated (subject to cooldown_minutes and daily_run_cap). 'scheduled' fires on the cadence defined by rrule + starts_at + timezone_name.

* `scheduled` - Scheduled
* `every_n` - Every N

# components.schemas.PatchedEvaluationReport.properties.rrule.description
RFC 5545 recurrence rule string (e.g. 'FREQ=WEEKLY;BYDAY=MO'). Must not contain DTSTART — the anchor is set via starts_at. Required when frequency is 'scheduled'; ignored otherwise.

# components.schemas.PatchedEvaluationReport.properties.starts_at.description
Anchor datetime for the rrule (ISO 8601, UTC — must end in 'Z'). Local-time interpretation is controlled by timezone_name. Required when frequency is 'scheduled'; ignored otherwise.

# components.schemas.PatchedEvaluationReport.properties.timezone_name.description
IANA timezone name used to expand the rrule in local time so e.g. '9am' stays at 9am across DST transitions (e.g. 'America/New_York'). Defaults to 'UTC'.

# components.schemas.PatchedEvaluationReport.properties.delivery_targets.description
List of delivery targets. Each entry is either {type: 'email', value: 'user@example.com'} or {type: 'slack', integration_id: <int>, channel: '<channel>'}. Slack integration_id must belong to this team.

# components.schemas.PatchedEvaluationReport.properties.max_sample_size.description
Maximum number of evaluation runs included in each report. Defaults to 200.

# components.schemas.PatchedEvaluationReport.properties.enabled.description
Whether report delivery is active. Disabled configs do not fire.

# components.schemas.PatchedEvaluationReport.properties.deleted.description
Set to true to soft-delete this report config.

# components.schemas.PatchedEvaluationReport.properties.report_prompt_guidance.description
Optional custom instructions appended to the AI report prompt to steer focus, scope, or section choices without modifying the base prompt.

# components.schemas.PatchedEvaluationReport.properties.trigger_threshold.description
Number of new evaluation results that triggers a report (every_n mode only). Min 10, max 10000. Defaults to 100. Required when frequency is 'every_n'.

# components.schemas.PatchedEvaluationReport.properties.cooldown_minutes.description
Minimum minutes between count-triggered reports to prevent spam (every_n mode only). Min 60, max 1440 (24 hours). Defaults to 60.

# components.schemas.PatchedEvaluationReport.properties.daily_run_cap.description
Maximum count-triggered report runs per calendar day (UTC). Min 1, max 24 (one per cooldown window). Defaults to 10.

# components.schemas.PatchedExperiment.description
Mixin for serializers to add user access control fields

# components.schemas.PatchedExperiment.properties.description.description
Description of the experiment hypothesis and expected outcomes.

# components.schemas.PatchedExperiment.properties.feature_flag_key.description
Unique key for the experiment's feature flag. Letters, numbers, hyphens, and underscores only. Search existing flags with the feature-flags-get-all tool first — reuse an existing flag when possible.

# components.schemas.PatchedExperiment.properties.holdout_id.description
ID of a holdout group to exclude from the experiment.

# components.schemas.PatchedExperiment.properties.parameters.description
Experiment parameters JSON. Supported keys include `feature_flag_variants`, `rollout_percentage`, `minimum_detectable_effect`, `recommended_running_time`, `recommended_sample_size`, `custom_exposure_filter`, and `excluded_variants` (list of variant keys to drop from statistical analysis; the baseline variant and holdout pseudo-variants cannot be excluded).

# components.schemas.PatchedExperiment.properties.saved_metrics_ids.description
IDs of shared saved metrics to attach to this experiment. Each item has 'id' (saved metric ID) and 'metadata' with 'type' (primary or secondary).

# components.schemas.PatchedExperiment.properties.type.description
Experiment type: web for frontend UI changes, product for backend/API changes.

* `web` - web
* `product` - product

# components.schemas.PatchedExperiment.properties.exposure_criteria.description
Exposure configuration including filter test accounts and custom exposure events.

# components.schemas.PatchedExperiment.properties.metrics.description
Primary experiment metrics. Each metric must have kind='ExperimentMetric' and a metric_type: 'mean' (set source to an EventsNode with an event name), 'funnel' (set series to an array of EventsNode steps), 'ratio' (set numerator and denominator EventsNode entries), or 'retention' (set start_event and completion_event). Use the event-definitions-list tool to find available events in the project.

# components.schemas.PatchedExperiment.properties.metrics_secondary.description
Secondary metrics for additional measurements. Same format as primary metrics.

# components.schemas.PatchedExperiment.properties.allow_unknown_events.description
Suppresses the validation that rejects metrics referencing events not yet ingested by this project. REQUIRES explicit user confirmation before being set to true — never flip this silently to retry a failed call. The default validation catches typo'd event names and missing instrumentation. Set this to true only when the user has confirmed the event is intentional (e.g. they are about to instrument it).

# components.schemas.PatchedExperiment.properties.conclusion.description
Experiment conclusion: won, lost, inconclusive, stopped_early, or invalid.

* `won` - won
* `lost` - lost
* `inconclusive` - inconclusive
* `stopped_early` - stopped_early
* `invalid` - invalid

# components.schemas.PatchedExperiment.properties.conclusion_comment.description
Comment about the experiment conclusion.

# components.schemas.PatchedExperiment.properties.update_feature_flag_params.description
When true, sync feature flag configuration from parameters to the linked feature flag. Draft experiments always sync regardless of update_feature_flag_params, so only required for non-drafts.

# components.schemas.PatchedExperiment.properties.status.description
Experiment lifecycle state: 'draft' (not yet launched), 'running' (launched with active feature flag), 'paused' (running with feature flag deactivated — virtual state derived from feature_flag.active, not stored), 'stopped' (ended).

# components.schemas.PatchedExperiment.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.PatchedExperimentSavedMetric.description
Mixin for serializers to add user access control fields

# components.schemas.PatchedExperimentSavedMetric.properties.name.description
Name of the shared metric. Must be unique within the project (case-insensitive).

# components.schemas.PatchedExperimentSavedMetric.properties.description.description
Short description of what the metric measures.

# components.schemas.PatchedExperimentSavedMetric.properties.query.description
ExperimentMetric JSON. Must have kind='ExperimentMetric' and a metric_type: 'mean' (set source to an EventsNode with an event name), 'funnel' (set series to an array of EventsNode steps), 'ratio' (set numerator and denominator EventsNode entries), or 'retention' (set start_event and completion_event). Legacy kinds (ExperimentTrendsQuery, ExperimentFunnelsQuery) are rejected for new shared metrics.

# components.schemas.PatchedExperimentSavedMetric.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.PatchedExternalDataSchema.properties.latest_error.description
The latest error that occurred when syncing this schema.

# components.schemas.PatchedExternalDataSchema.properties.sync_type.description
Sync strategy: incremental, full_refresh, append, or cdc.

* `full_refresh` - full_refresh
* `incremental` - incremental
* `append` - append
* `webhook` - webhook
* `cdc` - cdc

# components.schemas.PatchedExternalDataSchema.properties.incremental_field.description
Column name used to track sync progress.

# components.schemas.PatchedExternalDataSchema.properties.incremental_field_type.description
Data type of the incremental field.

* `integer` - integer
* `numeric` - numeric
* `datetime` - datetime
* `date` - date
* `timestamp` - timestamp
* `objectid` - objectid

# components.schemas.PatchedExternalDataSchema.properties.sync_time_of_day.description
UTC time of day to run the sync (HH:MM:SS).

# components.schemas.PatchedExternalDataSchema.properties.primary_key_columns.description
Column names for primary key deduplication.

# components.schemas.PatchedExternalDataSchema.properties.cdc_table_mode.description
For CDC syncs: consolidated, cdc_only, or both.

* `consolidated` - consolidated
* `cdc_only` - cdc_only
* `both` - both

# components.schemas.PatchedExternalDataSchema.properties.enabled_columns.description
Names of source columns to sync. `null` (default) syncs all columns. Primary-key columns and the active incremental field are always retained, even if not listed here.

# components.schemas.PatchedExternalDataSchema.properties.available_columns.description
Source-side column metadata (name, data type, nullable) discovered for this schema. Empty until the source has been refreshed via `refresh_schemas`.

# components.schemas.PatchedExternalDataSchema.properties.source.description
Lightweight parent-source summary (id, source_type, column-selection support, the requesting user's access level). Only populated on the single-schema retrieve endpoint — `null` elsewhere — so read-only views can render without fetching the full source and all its schemas.

# components.schemas.PatchedExternalDataSourceBulkUpdateSchemas.properties.schemas.description
Schema updates to apply in a single batch.

# components.schemas.PatchedExternalDataSourceSerializers.description
Mixin for serializers to add user access control fields

# components.schemas.PatchedExternalDataSourceSerializers.properties.created_via.description
How this source was created. Defaults to `api` on create when omitted. `web` for the in-app UI, `api` for direct API callers, `mcp` for agent/MCP tool calls. Ignored on update.

* `web` - web
* `api` - api
* `mcp` - mcp

# components.schemas.PatchedExternalDataSourceSerializers.properties.engine.description
Backend engine detected for the direct connection.

* `duckdb` - duckdb
* `postgres` - postgres

# components.schemas.PatchedExternalDataSourceSerializers.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.PatchedExternalDataSourceSerializers.properties.supports_column_selection.description
Whether this source supports per-column sync selection via `enabled_columns`.

# components.schemas.PatchedFeatureFlagPartialUpdateRequestSchema.properties.name.description
Feature flag description (stored in the `name` field for backwards compatibility).

# components.schemas.PatchedFeatureFlagPartialUpdateRequestSchema.properties.tags.description
Organizational tags for this feature flag.

# components.schemas.PatchedFeatureFlagPartialUpdateRequestSchema.properties.evaluation_contexts.description
Evaluation contexts that control where this flag evaluates at runtime.

# components.schemas.PatchedFileSystemShortcut.properties.path.description
Display path of the shortcut in the sidebar.

# components.schemas.PatchedFileSystemShortcut.properties.type.description
Type of the linked item (e.g. 'folder', 'insight'), or blank.

# components.schemas.PatchedFileSystemShortcut.properties.ref.description
Reference to the linked item, scoped to its type. Null for href-only shortcuts.

# components.schemas.PatchedFileSystemShortcut.properties.href.description
Destination URL the shortcut opens. Null when the shortcut points at an item by ref.

# components.schemas.PatchedFileSystemShortcut.properties.order.description
Display order within the user's shortcut list, ascending.

# components.schemas.PatchedGroupUsageMetric.properties.name.description
Name of the usage metric. Must be unique per group type within the project.

# components.schemas.PatchedGroupUsageMetric.properties.format.description
How the metric value is formatted in the UI. One of `numeric` or `currency`.

* `numeric` - numeric
* `currency` - currency

# components.schemas.PatchedGroupUsageMetric.properties.interval.description
Rolling time window in days used to compute the metric. Defaults to 7.

# components.schemas.PatchedGroupUsageMetric.properties.display.description
Visual representation in the UI. One of `number` or `sparkline`.

* `number` - number
* `sparkline` - sparkline

# components.schemas.PatchedGroupUsageMetric.properties.filters.description
Filter definition for the metric. Two shapes are accepted, discriminated by an optional `source` key.

**Events** (default, when `source` is missing or `"events"`): HogFunction filter shape — `events: [...]`, optional `actions: [...]`, `properties: [...]`, `filter_test_accounts: bool`.

**Data warehouse** (`source: "data_warehouse"`): `table_name` (synced DW table), `timestamp_field` (timestamp column or HogQL expression), `key_field` (column whose value matches the entity key). Currently DW metrics only render on group profiles — person profiles are not yet supported.

# components.schemas.PatchedGroupUsageMetric.properties.math.description
Aggregation function. `count` counts matching events; `sum` sums the value of `math_property` on matching events.

* `count` - count
* `sum` - sum

# components.schemas.PatchedGroupUsageMetric.properties.math_property.description
Required when `math` is `sum`; must be empty when `math` is `count`. For events metrics this is an event property name. For data warehouse metrics this is the column name (or HogQL expression) to sum on the DW table.

# components.schemas.PatchedHogFlow.properties.status.description
draft (no execution), active (live), archived (disabled).

* `draft` - Draft
* `active` - Active
* `archived` - Archived

# components.schemas.PatchedHogFlow.properties.trigger_masking.description
Optional dedup: {hash: <HogQL template>, ttl: <seconds, 60-94608000>, threshold?: <int>}. Server compiles bytecode from hash. Omit to disable.

# components.schemas.PatchedHogFlow.properties.conversion.description
Conversion goal: {filters: [<cond>, ...], window_minutes}. <cond>: {key, value, operator, type: event|person|group}. Empty filters = any event in window. Required for exit_on_conversion / exit_on_trigger_not_matched_or_conversion. bytecode compiled server-side.

# components.schemas.PatchedHogFlow.properties.exit_condition.description
exit_only_at_end: only at exit node (default). exit_on_conversion: also on conversion (needs 'conversion'; silent no-op otherwise). exit_on_trigger_not_matched: also when trigger filter stops matching. exit_on_trigger_not_matched_or_conversion: both (needs 'conversion').

* `exit_on_conversion` - Conversion
* `exit_on_trigger_not_matched` - Trigger Not Matched
* `exit_on_trigger_not_matched_or_conversion` - Trigger Not Matched Or Conversion
* `exit_only_at_end` - Only At End

# components.schemas.PatchedHogFlow.properties.edges.description
Graph edges: [{from, to, type: 'continue'|'branch', index?}]. 'continue' = fall-through (sequential, or no-match path of conditional_branch). 'branch' requires 'index': matches config.conditions[index] on conditional_branch / wait_until_condition. Every non-exit action needs a reachable next action ('No next action found' otherwise).

# components.schemas.PatchedHogFlow.properties.actions.description
Ordered action nodes. Exactly one type='trigger' required. Typically one type='exit' too.

# components.schemas.PatchedHogFlow.properties.variables.description
Workflow vars (key, type, default). Total <5KB.

# components.schemas.PatchedHogFlow.properties.schedules.description
Recurring schedules attached to this workflow (read-only here; manage via the schedules sub-resource). A batch/schedule workflow only fires when it's active AND has an active schedule. Empty for non-scheduled workflows.

# components.schemas.PatchedHogFlowSchedule.properties.rrule.description
iCalendar RRULE string (e.g. 'FREQ=DAILY;INTERVAL=1'). Must produce occurrences at most once per hour.

# components.schemas.PatchedHogFlowSchedule.properties.starts_at.description
ISO 8601 datetime the schedule starts from.

# components.schemas.PatchedHogFlowSchedule.properties.timezone.description
IANA timezone for interpreting the RRULE (default 'UTC').

# components.schemas.PatchedHogFlowSchedule.properties.variables.description
Variable value overrides merged with the workflow defaults on each run.

# components.schemas.PatchedHogFlowSchedule.properties.status.description
active, paused, or completed (set once the RRULE's COUNT/UNTIL is exhausted).

* `active` - Active
* `paused` - Paused
* `completed` - Completed

# components.schemas.PatchedHogFlowSchedule.properties.next_run_at.description
Next scheduled fire time, computed by the scheduler.

# components.schemas.PatchedHogFunction.properties.type.description
Function type: destination, site_destination, internal_destination, source_webhook, warehouse_source_webhook, site_app, or transformation.

* `destination` - Destination
* `site_destination` - Site Destination
* `internal_destination` - Internal Destination
* `source_webhook` - Source Webhook
* `warehouse_source_webhook` - Warehouse Source Webhook
* `site_app` - Site App
* `transformation` - Transformation

# components.schemas.PatchedHogFunction.properties.description.description
Human-readable description of what this function does.

# components.schemas.PatchedHogFunction.properties.enabled.description
Whether the function is active and processing events.

# components.schemas.PatchedHogFunction.properties.deleted.description
Soft-delete flag. Set to true to archive the function.

# components.schemas.PatchedHogFunction.properties.hog.description
Source code. Hog language for most types; TypeScript for site_destination and site_app.

# components.schemas.PatchedHogFunction.properties.inputs_schema.description
Schema defining the configurable input parameters for this function.

# components.schemas.PatchedHogFunction.properties.inputs.description
Values for each input defined in inputs_schema.

# components.schemas.PatchedHogFunction.properties.filters.description
Event filters that control which events trigger this function.

# components.schemas.PatchedHogFunction.properties.masking.description
PII masking configuration with TTL, threshold, and hash expression.

# components.schemas.PatchedHogFunction.properties.mappings.description
Event-to-destination field mappings. Only for destination and site_destination types.

# components.schemas.PatchedHogFunction.properties.icon_url.description
URL for the function's icon displayed in the UI.

# components.schemas.PatchedHogFunction.properties.template_id.description
ID of the template to create this function from.

# components.schemas.PatchedHogFunction.properties.execution_order.description
Execution priority for transformations. Lower values run first.

# components.schemas.PatchedHogFunctionRearrange.properties.orders.description
Map of hog function UUIDs to their new execution_order values.

# components.schemas.PatchedInsight.description
Simplified serializer to speed response times when loading large amounts of objects.

# components.schemas.PatchedInsight.properties.dashboards.description
        DEPRECATED. Will be removed in a future release. Use dashboard_tiles instead.
        A dashboard ID for each of the dashboards that this insight is displayed on.
        

# components.schemas.PatchedInsight.properties.dashboard_tiles.description
    A dashboard tile ID and dashboard_id for each of the dashboards that this insight is displayed on.
    

# components.schemas.PatchedInsight.properties.last_refresh.description
    The datetime this insight's results were generated.
    If added to one or more dashboards the insight can be refreshed separately on each.
    Returns the appropriate last_refresh datetime for the context the insight is viewed in
    (see from_dashboard query parameter).
    

# components.schemas.PatchedInsight.properties.cache_target_age.description
The target age of the cached results for this insight.

# components.schemas.PatchedInsight.properties.next_allowed_client_refresh.description
    The earliest possible datetime at which we'll allow the cached results for this insight to be refreshed
    by querying the database.
    

# components.schemas.PatchedInsight.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.PatchedInsight.properties.timezone.description
The timezone this chart is displayed in.

# components.schemas.PatchedInsight.properties.search_match_type.description
How this row matched the `search` term: `exact` (the term is a case-insensitive substring of the name, derived_name, description, or a tag name) or `similar` (a fuzzy trigram match only). Results are ordered exact-first. Null when the list is not filtered by `search`.

# components.schemas.PatchedInsightVariable.properties.name.description
Human-readable name for the SQL variable.

# components.schemas.PatchedInsightVariable.properties.type.description
Variable type. Controls how the value is rendered and substituted in HogQL.

* `String` - String
* `Number` - Number
* `Boolean` - Boolean
* `List` - List
* `Date` - Date

# components.schemas.PatchedInsightVariable.properties.default_value.description
Default value used when a query references this variable.

# components.schemas.PatchedInsightVariable.properties.created_by.description
ID of the user who created the SQL variable.

# components.schemas.PatchedInsightVariable.properties.created_at.description
Timestamp when the SQL variable was created.

# components.schemas.PatchedInsightVariable.properties.code_name.description
Generated code-safe name used in HogQL as {variables.code_name}. Derived from name.

# components.schemas.PatchedInsightVariable.properties.values.description
Allowed values for List variables. Null for other variable types.

# components.schemas.PatchedIntervieweeContext.properties.interviewee_identifier.description
Identifier for the interviewee — typically an email address or PostHog distinct ID. Must match a value in the parent topic's interviewee_emails or interviewee_distinct_ids.

# components.schemas.PatchedIntervieweeContext.properties.agent_context.description
Extra context the voice agent should know about this specific interviewee — e.g. 'uses the replay product but has never used summarization'.

# components.schemas.PatchedJsSnippetVersion.properties.js_snippet_version.description
Version pin: null for latest, "1.358.0" for exact, "1" for major, "1.358" for minor

# components.schemas.PatchedLLMPromptPublish.properties.prompt.description
Full prompt payload to publish as a new version. Mutually exclusive with edits.

# components.schemas.PatchedLLMPromptPublish.properties.edits.description
List of find/replace operations to apply to the current prompt version. Each edit's 'old' text must match exactly once. Edits are applied sequentially. Mutually exclusive with prompt.

# components.schemas.PatchedLLMPromptPublish.properties.base_version.description
Latest version you are editing from. Used for optimistic concurrency checks.

# components.schemas.PatchedLLMProviderKey.properties.api_version_display.description
Azure API version (read-only, for display)

# components.schemas.PatchedLLMSkillPublish.properties.body.description
Full skill body (SKILL.md instruction content) to publish as a new version. Mutually exclusive with edits.

# components.schemas.PatchedLLMSkillPublish.properties.edits.description
List of find/replace operations to apply to the current skill body. Each edit's 'old' text must match exactly once. Edits are applied sequentially. Mutually exclusive with body.

# components.schemas.PatchedLLMSkillPublish.properties.description.description
Updated description for the new version.

# components.schemas.PatchedLLMSkillPublish.properties.allowed_tools.description
List of pre-approved tools the skill may use.

# components.schemas.PatchedLLMSkillPublish.properties.files.description
Bundled files to include with this version. Replaces all files from the previous version. Mutually exclusive with file_edits.

# components.schemas.PatchedLLMSkillPublish.properties.file_edits.description
Per-file find/replace updates. Each entry targets one existing file by path and applies sequential edits to its content. Non-targeted files carry forward unchanged. Cannot add, remove, or rename files — use 'files' for that. Mutually exclusive with files.

# components.schemas.PatchedLLMSkillPublish.properties.base_version.description
Latest version you are editing from. Used for optimistic concurrency checks.

# components.schemas.PatchedLogsAlertConfiguration.properties.name.description
Human-readable name for this alert. Defaults to 'Untitled alert' on create when omitted.

# components.schemas.PatchedLogsAlertConfiguration.properties.enabled.description
Whether the alert is actively being evaluated. Disabling resets the state to not_firing.

# components.schemas.PatchedLogsAlertConfiguration.properties.filters.description
Filter criteria — subset of LogsViewerFilters. Must contain at least one of: severityLevels (list of severity strings), serviceNames (list of service name strings), or filterGroup (property filter group object). May be empty on draft alerts (enabled=false).

# components.schemas.PatchedLogsAlertConfiguration.properties.threshold_count.description
Number of matching log entries that constitutes a threshold breach within the evaluation window. Defaults to 100. Use 0 with the 'above' operator to fire on any matching log.

# components.schemas.PatchedLogsAlertConfiguration.properties.threshold_operator.description
Whether the alert fires when the count is above or below the threshold.

* `above` - Above
* `below` - Below

# components.schemas.PatchedLogsAlertConfiguration.properties.window_minutes.description
Time window in minutes over which log entries are counted. Allowed values: 5, 10, 15, 30, 60.

# components.schemas.PatchedLogsAlertConfiguration.properties.check_interval_minutes.description
How often the alert is evaluated, in minutes. Server-managed.

# components.schemas.PatchedLogsAlertConfiguration.properties.state.description
Current alert state: not_firing, firing, pending_resolve, errored, or snoozed. Server-managed.

* `not_firing` - Not firing
* `firing` - Firing
* `pending_resolve` - Pending resolve
* `errored` - Errored
* `snoozed` - Snoozed
* `broken` - Broken

# components.schemas.PatchedLogsAlertConfiguration.properties.evaluation_periods.description
Total number of check periods in the sliding evaluation window for firing (M in N-of-M).

# components.schemas.PatchedLogsAlertConfiguration.properties.datapoints_to_alarm.description
How many periods within the evaluation window must breach the threshold to fire (N in N-of-M).

# components.schemas.PatchedLogsAlertConfiguration.properties.cooldown_minutes.description
Minimum minutes between repeated notifications after the alert fires. 0 means no cooldown.

# components.schemas.PatchedLogsAlertConfiguration.properties.snooze_until.description
ISO 8601 timestamp until which the alert is snoozed. Set to null to unsnooze.

# components.schemas.PatchedLogsAlertConfiguration.properties.next_check_at.description
When the next evaluation is scheduled. Server-managed.

# components.schemas.PatchedLogsAlertConfiguration.properties.last_notified_at.description
When the last notification was sent. Server-managed.

# components.schemas.PatchedLogsAlertConfiguration.properties.last_checked_at.description
When the alert was last evaluated. Server-managed.

# components.schemas.PatchedLogsAlertConfiguration.properties.consecutive_failures.description
Number of consecutive evaluation failures. Resets on success. Server-managed.

# components.schemas.PatchedLogsAlertConfiguration.properties.last_error_message.description
Error message from the most recent errored check, or null if the alert's most recent check was successful. Sourced from LogsAlertEvent without denormalization so retention-aware cleanup rules stay the only source of truth.

# components.schemas.PatchedLogsAlertConfiguration.properties.state_timeline.description
Continuous state intervals over the last 24h, ordered oldest-first. Each interval covers a span during which (state, enabled) was constant. Derived from LogsAlertEvent rows walked in chronological order; consecutive identical intervals are collapsed. Drives the 'Last 24h' status bar on the alert list.

# components.schemas.PatchedLogsAlertConfiguration.properties.destination_types.description
Notification destination types configured for this alert — e.g. 'slack', 'webhook'. Empty list means no notifications will fire. One or more destinations should be added after creating an alert.

# components.schemas.PatchedLogsAlertConfiguration.properties.first_enabled_at.description
When the alert was first enabled. Null means the alert is still in draft state.

# components.schemas.PatchedLogsSamplingRule.properties.id.description
Unique identifier for this sampling rule.

# components.schemas.PatchedLogsSamplingRule.properties.enabled.description
When false, the rule is ignored by ingestion and listing UIs that show active rules only.

# components.schemas.PatchedLogsSamplingRule.properties.priority.description
Lower numbers are evaluated first; the first matching rule wins. Omit to append after existing rules.

# components.schemas.PatchedLogsSamplingRule.properties.rule_type.description
Rule kind: severity_sampling, path_drop, or rate_limit (caps matching log volume at ingestion).

* `severity_sampling` - Severity-based reduction
* `path_drop` - Path exclusion
* `rate_limit` - Rate limit

# components.schemas.PatchedLogsSamplingRule.properties.scope_service.description
Optional legacy service-name scope; new rules use `config.filter_group` for matching instead.

# components.schemas.PatchedLogsSamplingRule.properties.scope_path_pattern.description
Optional regex matched against a path-like log attribute when present.

# components.schemas.PatchedLogsSamplingRule.properties.config.description
Type-specific JSON. For path_drop: object with optional `filter_group` (PropertyGroupFilter shape — AND/OR tree of property predicates evaluated per record) and/or legacy `patterns` (list of regex strings) + `match_attribute_key` (string). When both are present a record is dropped if EITHER matches. Filter group example: `{"type":"AND","values":[{"type":"AND","values":[{"key":"service.name","operator":"exact","value":"api"}]}]}`. For severity_sampling: object with `actions` per severity level and optional `always_keep`. For rate_limit: object with EITHER `logs_per_second` (integer 1–1000000, optional `burst_logs` integer ≥ logs_per_second, max 10000000) OR `kb_per_second` (integer 1–1000000 = 1 GB/s, optional `burst_kb` integer ≥ kb_per_second, max 10000000) — not both. Plus optional `filter_group` to narrow which logs the cap applies to. KB-mode charges each log its own uncompressed byte size, matching how billing measures ingested bytes.

# components.schemas.PatchedLogsSamplingRule.properties.version.description
Incremented on each update for worker cache coherency.

# components.schemas.PatchedLogsView.properties.filters.description
Filter criteria — subset of LogsViewerFilters. May contain severityLevels, serviceNames, searchTerm, filterGroup, dateRange, and other keys.

# components.schemas.PatchedMoveTileRequest.properties.tile.description
Tile to move, identified by its dashboard tile ID.

# components.schemas.PatchedNotebook.properties.short_id.description
Short alphanumeric identifier used in URLs and API lookups.

# components.schemas.PatchedNotebook.properties.content.description
Notebook content as a ProseMirror JSON document structure.

# components.schemas.PatchedNotebook.properties.text_content.description
Plain text representation of the notebook content for search.

# components.schemas.PatchedNotebook.properties.version.description
Version number for optimistic concurrency control. Must match the current version when updating content.

# components.schemas.PatchedNotebook.properties.deleted.description
Whether the notebook has been soft-deleted.

# components.schemas.PatchedNotebook.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.PatchedNotebook.properties.parent_resource.description
Parent resource this notebook is attached to, or `null`. Returns `{type: 'account', id: <uuid>}` for account-linked notebooks; used by the frontend to route breadcrumbs back to the resource's list.

# components.schemas.PatchedObjectMediaPreview.properties.media_type.description
Return 'uploaded' or 'exported' based on which media is set

# components.schemas.PatchedOrganization.properties.is_member_join_email_enabled.description
Legacy field; member-join emails are controlled per user in account notification settings.

# components.schemas.PatchedOrganization.properties.members_can_create_projects.description
When True, organization members (below admin) are allowed to create new projects. Admins and owners can always create projects.

# components.schemas.PatchedOrganization.properties.is_ai_training_opted_in.description
When True, this organization allows its data to be used to train PostHog AI models.

# components.schemas.PatchedOrganization.properties.is_ai_training_locked.description
When True, the AI training opt-out setting cannot be modified through the UI or API.

# components.schemas.PatchedOrganization.properties.is_ai_training_cta_shown.description
When True, in-app callouts inviting members to enable AI training are shown.

# components.schemas.PatchedOrganization.properties.default_experiment_stats_method.description
Default statistical method for new experiments in this organization.

* `bayesian` - Bayesian
* `frequentist` - Frequentist

# components.schemas.PatchedOrganization.properties.default_anonymize_ips.description
Default setting for 'Discard client IP data' for new projects in this organization.

# components.schemas.PatchedOrganization.properties.default_role_id.description
ID of the role to automatically assign to new members joining the organization

# components.schemas.PatchedOrganization.properties.is_active.description
Set this to 'No' to temporarily disable an organization.

# components.schemas.PatchedOrganization.properties.is_not_active_reason.description
(optional) reason for why the organization has been de-activated. This will be displayed to users on the web app.

# components.schemas.PatchedOrganization.properties.is_pending_deletion.description
Set to True when org deletion has been initiated. Blocks all UI access until the async task completes.

# components.schemas.PatchedOrganizationDomain.properties.is_verified.description
Determines whether a domain is verified or not.

# components.schemas.PatchedOrganizationDomain.properties.has_saml.description
Returns whether SAML is configured for the instance. Does not validate the user has the required license (that check is performed in other places).

# components.schemas.PatchedOrganizationDomain.properties.has_scim.description
Returns whether SCIM is configured and enabled for this domain.

# components.schemas.PatchedPersistedFolder.properties.type.description
Which persisted folder this is for the user (home, pinned, custom_products).

* `home` - Home
* `pinned` - Pinned
* `custom_products` - Custom Products

# components.schemas.PatchedPersistedFolder.properties.protocol.description
Protocol prefix of the folder location, e.g. 'products://'.

# components.schemas.PatchedPersistedFolder.properties.path.description
Path within the protocol that the folder resolves to.

# components.schemas.PatchedPersonRecord.properties.name.description
Display name derived from person properties (email, name, or username).

# components.schemas.PatchedPersonRecord.properties.properties.description
Key-value map of person properties set via $set and $set_once operations.

# components.schemas.PatchedPersonRecord.properties.created_at.description
When this person was first seen (ISO 8601).

# components.schemas.PatchedPersonRecord.properties.uuid.description
Unique identifier (UUID) for this person.

# components.schemas.PatchedPersonRecord.properties.last_seen_at.description
Timestamp of the last event from this person, or null.

# components.schemas.PatchedPinnedSceneTabs.properties.tabs.description
Ordered list of pinned navigation tabs shown in the sidebar for the authenticated user within the current team. Send the full list to replace the existing pins; omit to leave them unchanged.

# components.schemas.PatchedPinnedSceneTabs.properties.homepage.description
Tab descriptor for the user's chosen home page — the destination opened when they click the PostHog logo or hit `/`. Set to a tab descriptor to pick a homepage, send `null` or `{}` to clear it and fall back to the project default.

# components.schemas.PatchedProductTourSerializerCreateUpdateOnly.description
Serializer for creating and updating ProductTour.

# components.schemas.PatchedProductTourSerializerCreateUpdateOnly.properties.creation_context.description
Where the tour was created/updated from

* `app` - app
* `toolbar` - toolbar

# components.schemas.PatchedProjectBackwardCompat.description
Mixin for serializers to add user access control fields

# components.schemas.PatchedProjectBackwardCompat.properties.product_description.description
Short description of what the project is about. This is helpful to give our AI agents context about your project.

# components.schemas.PatchedProjectBackwardCompat.properties.anonymize_ips.description
When true, PostHog drops the IP address from every ingested event.

# components.schemas.PatchedProjectBackwardCompat.properties.test_account_filters.description
Filter groups that identify internal/test traffic to be excluded from insights.

# components.schemas.PatchedProjectBackwardCompat.properties.test_account_filters_default_checked.description
When true, new insights default to excluding internal/test users.

# components.schemas.PatchedProjectBackwardCompat.properties.path_cleaning_filters.description
Regex rewrite rules that collapse dynamic path segments (e.g. user IDs) before displaying URLs in paths.

# components.schemas.PatchedProjectBackwardCompat.properties.timezone.description
IANA timezone used for date-based filters and reporting (e.g. `America/Los_Angeles`).

* `Africa/Abidjan` - Africa/Abidjan
* `Africa/Accra` - Africa/Accra
* `Africa/Addis_Ababa` - Africa/Addis_Ababa
* `Africa/Algiers` - Africa/Algiers
* `Africa/Asmara` - Africa/Asmara
* `Africa/Asmera` - Africa/Asmera
* `Africa/Bamako` - Africa/Bamako
* `Africa/Bangui` - Africa/Bangui
* `Africa/Banjul` - Africa/Banjul
* `Africa/Bissau` - Africa/Bissau
* `Africa/Blantyre` - Africa/Blantyre
* `Africa/Brazzaville` - Africa/Brazzaville
* `Africa/Bujumbura` - Africa/Bujumbura
* `Africa/Cairo` - Africa/Cairo
* `Africa/Casablanca` - Africa/Casablanca
* `Africa/Ceuta` - Africa/Ceuta
* `Africa/Conakry` - Africa/Conakry
* `Africa/Dakar` - Africa/Dakar
* `Africa/Dar_es_Salaam` - Africa/Dar_es_Salaam
* `Africa/Djibouti` - Africa/Djibouti
* `Africa/Douala` - Africa/Douala
* `Africa/El_Aaiun` - Africa/El_Aaiun
* `Africa/Freetown` - Africa/Freetown
* `Africa/Gaborone` - Africa/Gaborone
* `Africa/Harare` - Africa/Harare
* `Africa/Johannesburg` - Africa/Johannesburg
* `Africa/Juba` - Africa/Juba
* `Africa/Kampala` - Africa/Kampala
* `Africa/Khartoum` - Africa/Khartoum
* `Africa/Kigali` - Africa/Kigali
* `Africa/Kinshasa` - Africa/Kinshasa
* `Africa/Lagos` - Africa/Lagos
* `Africa/Libreville` - Africa/Libreville
* `Africa/Lome` - Africa/Lome
* `Africa/Luanda` - Africa/Luanda
* `Africa/Lubumbashi` - Africa/Lubumbashi
* `Africa/Lusaka` - Africa/Lusaka
* `Africa/Malabo` - Africa/Malabo
* `Africa/Maputo` - Africa/Maputo
* `Africa/Maseru` - Africa/Maseru
* `Africa/Mbabane` - Africa/Mbabane
* `Africa/Mogadishu` - Africa/Mogadishu
* `Africa/Monrovia` - Africa/Monrovia
* `Africa/Nairobi` - Africa/Nairobi
* `Africa/Ndjamena` - Africa/Ndjamena
* `Africa/Niamey` - Africa/Niamey
* `Africa/Nouakchott` - Africa/Nouakchott
* `Africa/Ouagadougou` - Africa/Ouagadougou
* `Africa/Porto-Novo` - Africa/Porto-Novo
* `Africa/Sao_Tome` - Africa/Sao_Tome
* `Africa/Timbuktu` - Africa/Timbuktu
* `Africa/Tripoli` - Africa/Tripoli
* `Africa/Tunis` - Africa/Tunis
* `Africa/Windhoek` - Africa/Windhoek
* `America/Adak` - America/Adak
* `America/Anchorage` - America/Anchorage
* `America/Anguilla` - America/Anguilla
* `America/Antigua` - America/Antigua
* `America/Araguaina` - America/Araguaina
* `America/Argentina/Buenos_Aires` - America/Argentina/Buenos_Aires
* `America/Argentina/Catamarca` - America/Argentina/Catamarca
* `America/Argentina/ComodRivadavia` - America/Argentina/ComodRivadavia
* `America/Argentina/Cordoba` - America/Argentina/Cordoba
* `America/Argentina/Jujuy` - America/Argentina/Jujuy
* `America/Argentina/La_Rioja` - America/Argentina/La_Rioja
* `America/Argentina/Mendoza` - America/Argentina/Mendoza
* `America/Argentina/Rio_Gallegos` - America/Argentina/Rio_Gallegos
* `America/Argentina/Salta` - America/Argentina/Salta
* `America/Argentina/San_Juan` - America/Argentina/San_Juan
* `America/Argentina/San_Luis` - America/Argentina/San_Luis
* `America/Argentina/Tucuman` - America/Argentina/Tucuman
* `America/Argentina/Ushuaia` - America/Argentina/Ushuaia
* `America/Aruba` - America/Aruba
* `America/Asuncion` - America/Asuncion
* `America/Atikokan` - America/Atikokan
* `America/Atka` - America/Atka
* `America/Bahia` - America/Bahia
* `America/Bahia_Banderas` - America/Bahia_Banderas
* `America/Barbados` - America/Barbados
* `America/Belem` - America/Belem
* `America/Belize` - America/Belize
* `America/Blanc-Sablon` - America/Blanc-Sablon
* `America/Boa_Vista` - America/Boa_Vista
* `America/Bogota` - America/Bogota
* `America/Boise` - America/Boise
* `America/Buenos_Aires` - America/Buenos_Aires
* `America/Cambridge_Bay` - America/Cambridge_Bay
* `America/Campo_Grande` - America/Campo_Grande
* `America/Cancun` - America/Cancun
* `America/Caracas` - America/Caracas
* `America/Catamarca` - America/Catamarca
* `America/Cayenne` - America/Cayenne
* `America/Cayman` - America/Cayman
* `America/Chicago` - America/Chicago
* `America/Chihuahua` - America/Chihuahua
* `America/Ciudad_Juarez` - America/Ciudad_Juarez
* `America/Coral_Harbour` - America/Coral_Harbour
* `America/Cordoba` - America/Cordoba
* `America/Costa_Rica` - America/Costa_Rica
* `America/Creston` - America/Creston
* `America/Cuiaba` - America/Cuiaba
* `America/Curacao` - America/Curacao
* `America/Danmarkshavn` - America/Danmarkshavn
* `America/Dawson` - America/Dawson
* `America/Dawson_Creek` - America/Dawson_Creek
* `America/Denver` - America/Denver
* `America/Detroit` - America/Detroit
* `America/Dominica` - America/Dominica
* `America/Edmonton` - America/Edmonton
* `America/Eirunepe` - America/Eirunepe
* `America/El_Salvador` - America/El_Salvador
* `America/Ensenada` - America/Ensenada
* `America/Fort_Nelson` - America/Fort_Nelson
* `America/Fort_Wayne` - America/Fort_Wayne
* `America/Fortaleza` - America/Fortaleza
* `America/Glace_Bay` - America/Glace_Bay
* `America/Godthab` - America/Godthab
* `America/Goose_Bay` - America/Goose_Bay
* `America/Grand_Turk` - America/Grand_Turk
* `America/Grenada` - America/Grenada
* `America/Guadeloupe` - America/Guadeloupe
* `America/Guatemala` - America/Guatemala
* `America/Guayaquil` - America/Guayaquil
* `America/Guyana` - America/Guyana
* `America/Halifax` - America/Halifax
* `America/Havana` - America/Havana
* `America/Hermosillo` - America/Hermosillo
* `America/Indiana/Indianapolis` - America/Indiana/Indianapolis
* `America/Indiana/Knox` - America/Indiana/Knox
* `America/Indiana/Marengo` - America/Indiana/Marengo
* `America/Indiana/Petersburg` - America/Indiana/Petersburg
* `America/Indiana/Tell_City` - America/Indiana/Tell_City
* `America/Indiana/Vevay` - America/Indiana/Vevay
* `America/Indiana/Vincennes` - America/Indiana/Vincennes
* `America/Indiana/Winamac` - America/Indiana/Winamac
* `America/Indianapolis` - America/Indianapolis
* `America/Inuvik` - America/Inuvik
* `America/Iqaluit` - America/Iqaluit
* `America/Jamaica` - America/Jamaica
* `America/Jujuy` - America/Jujuy
* `America/Juneau` - America/Juneau
* `America/Kentucky/Louisville` - America/Kentucky/Louisville
* `America/Kentucky/Monticello` - America/Kentucky/Monticello
* `America/Knox_IN` - America/Knox_IN
* `America/Kralendijk` - America/Kralendijk
* `America/La_Paz` - America/La_Paz
* `America/Lima` - America/Lima
* `America/Los_Angeles` - America/Los_Angeles
* `America/Louisville` - America/Louisville
* `America/Lower_Princes` - America/Lower_Princes
* `America/Maceio` - America/Maceio
* `America/Managua` - America/Managua
* `America/Manaus` - America/Manaus
* `America/Marigot` - America/Marigot
* `America/Martinique` - America/Martinique
* `America/Matamoros` - America/Matamoros
* `America/Mazatlan` - America/Mazatlan
* `America/Mendoza` - America/Mendoza
* `America/Menominee` - America/Menominee
* `America/Merida` - America/Merida
* `America/Metlakatla` - America/Metlakatla
* `America/Mexico_City` - America/Mexico_City
* `America/Miquelon` - America/Miquelon
* `America/Moncton` - America/Moncton
* `America/Monterrey` - America/Monterrey
* `America/Montevideo` - America/Montevideo
* `America/Montreal` - America/Montreal
* `America/Montserrat` - America/Montserrat
* `America/Nassau` - America/Nassau
* `America/New_York` - America/New_York
* `America/Nipigon` - America/Nipigon
* `America/Nome` - America/Nome
* `America/Noronha` - America/Noronha
* `America/North_Dakota/Beulah` - America/North_Dakota/Beulah
* `America/North_Dakota/Center` - America/North_Dakota/Center
* `America/North_Dakota/New_Salem` - America/North_Dakota/New_Salem
* `America/Nuuk` - America/Nuuk
* `America/Ojinaga` - America/Ojinaga
* `America/Panama` - America/Panama
* `America/Pangnirtung` - America/Pangnirtung
* `America/Paramaribo` - America/Paramaribo
* `America/Phoenix` - America/Phoenix
* `America/Port-au-Prince` - America/Port-au-Prince
* `America/Port_of_Spain` - America/Port_of_Spain
* `America/Porto_Acre` - America/Porto_Acre
* `America/Porto_Velho` - America/Porto_Velho
* `America/Puerto_Rico` - America/Puerto_Rico
* `America/Punta_Arenas` - America/Punta_Arenas
* `America/Rainy_River` - America/Rainy_River
* `America/Rankin_Inlet` - America/Rankin_Inlet
* `America/Recife` - America/Recife
* `America/Regina` - America/Regina
* `America/Resolute` - America/Resolute
* `America/Rio_Branco` - America/Rio_Branco
* `America/Rosario` - America/Rosario
* `America/Santa_Isabel` - America/Santa_Isabel
* `America/Santarem` - America/Santarem
* `America/Santiago` - America/Santiago
* `America/Santo_Domingo` - America/Santo_Domingo
* `America/Sao_Paulo` - America/Sao_Paulo
* `America/Scoresbysund` - America/Scoresbysund
* `America/Shiprock` - America/Shiprock
* `America/Sitka` - America/Sitka
* `America/St_Barthelemy` - America/St_Barthelemy
* `America/St_Johns` - America/St_Johns
* `America/St_Kitts` - America/St_Kitts
* `America/St_Lucia` - America/St_Lucia
* `America/St_Thomas` - America/St_Thomas
* `America/St_Vincent` - America/St_Vincent
* `America/Swift_Current` - America/Swift_Current
* `America/Tegucigalpa` - America/Tegucigalpa
* `America/Thule` - America/Thule
* `America/Thunder_Bay` - America/Thunder_Bay
* `America/Tijuana` - America/Tijuana
* `America/Toronto` - America/Toronto
* `America/Tortola` - America/Tortola
* `America/Vancouver` - America/Vancouver
* `America/Virgin` - America/Virgin
* `America/Whitehorse` - America/Whitehorse
* `America/Winnipeg` - America/Winnipeg
* `America/Yakutat` - America/Yakutat
* `America/Yellowknife` - America/Yellowknife
* `Antarctica/Casey` - Antarctica/Casey
* `Antarctica/Davis` - Antarctica/Davis
* `Antarctica/DumontDUrville` - Antarctica/DumontDUrville
* `Antarctica/Macquarie` - Antarctica/Macquarie
* `Antarctica/Mawson` - Antarctica/Mawson
* `Antarctica/McMurdo` - Antarctica/McMurdo
* `Antarctica/Palmer` - Antarctica/Palmer
* `Antarctica/Rothera` - Antarctica/Rothera
* `Antarctica/South_Pole` - Antarctica/South_Pole
* `Antarctica/Syowa` - Antarctica/Syowa
* `Antarctica/Troll` - Antarctica/Troll
* `Antarctica/Vostok` - Antarctica/Vostok
* `Arctic/Longyearbyen` - Arctic/Longyearbyen
* `Asia/Aden` - Asia/Aden
* `Asia/Almaty` - Asia/Almaty
* `Asia/Amman` - Asia/Amman
* `Asia/Anadyr` - Asia/Anadyr
* `Asia/Aqtau` - Asia/Aqtau
* `Asia/Aqtobe` - Asia/Aqtobe
* `Asia/Ashgabat` - Asia/Ashgabat
* `Asia/Ashkhabad` - Asia/Ashkhabad
* `Asia/Atyrau` - Asia/Atyrau
* `Asia/Baghdad` - Asia/Baghdad
* `Asia/Bahrain` - Asia/Bahrain
* `Asia/Baku` - Asia/Baku
* `Asia/Bangkok` - Asia/Bangkok
* `Asia/Barnaul` - Asia/Barnaul
* `Asia/Beirut` - Asia/Beirut
* `Asia/Bishkek` - Asia/Bishkek
* `Asia/Brunei` - Asia/Brunei
* `Asia/Calcutta` - Asia/Calcutta
* `Asia/Chita` - Asia/Chita
* `Asia/Choibalsan` - Asia/Choibalsan
* `Asia/Chongqing` - Asia/Chongqing
* `Asia/Chungking` - Asia/Chungking
* `Asia/Colombo` - Asia/Colombo
* `Asia/Dacca` - Asia/Dacca
* `Asia/Damascus` - Asia/Damascus
* `Asia/Dhaka` - Asia/Dhaka
* `Asia/Dili` - Asia/Dili
* `Asia/Dubai` - Asia/Dubai
* `Asia/Dushanbe` - Asia/Dushanbe
* `Asia/Famagusta` - Asia/Famagusta
* `Asia/Gaza` - Asia/Gaza
* `Asia/Harbin` - Asia/Harbin
* `Asia/Hebron` - Asia/Hebron
* `Asia/Ho_Chi_Minh` - Asia/Ho_Chi_Minh
* `Asia/Hong_Kong` - Asia/Hong_Kong
* `Asia/Hovd` - Asia/Hovd
* `Asia/Irkutsk` - Asia/Irkutsk
* `Asia/Istanbul` - Asia/Istanbul
* `Asia/Jakarta` - Asia/Jakarta
* `Asia/Jayapura` - Asia/Jayapura
* `Asia/Jerusalem` - Asia/Jerusalem
* `Asia/Kabul` - Asia/Kabul
* `Asia/Kamchatka` - Asia/Kamchatka
* `Asia/Karachi` - Asia/Karachi
* `Asia/Kashgar` - Asia/Kashgar
* `Asia/Kathmandu` - Asia/Kathmandu
* `Asia/Katmandu` - Asia/Katmandu
* `Asia/Khandyga` - Asia/Khandyga
* `Asia/Kolkata` - Asia/Kolkata
* `Asia/Krasnoyarsk` - Asia/Krasnoyarsk
* `Asia/Kuala_Lumpur` - Asia/Kuala_Lumpur
* `Asia/Kuching` - Asia/Kuching
* `Asia/Kuwait` - Asia/Kuwait
* `Asia/Macao` - Asia/Macao
* `Asia/Macau` - Asia/Macau
* `Asia/Magadan` - Asia/Magadan
* `Asia/Makassar` - Asia/Makassar
* `Asia/Manila` - Asia/Manila
* `Asia/Muscat` - Asia/Muscat
* `Asia/Nicosia` - Asia/Nicosia
* `Asia/Novokuznetsk` - Asia/Novokuznetsk
* `Asia/Novosibirsk` - Asia/Novosibirsk
* `Asia/Omsk` - Asia/Omsk
* `Asia/Oral` - Asia/Oral
* `Asia/Phnom_Penh` - Asia/Phnom_Penh
* `Asia/Pontianak` - Asia/Pontianak
* `Asia/Pyongyang` - Asia/Pyongyang
* `Asia/Qatar` - Asia/Qatar
* `Asia/Qostanay` - Asia/Qostanay
* `Asia/Qyzylorda` - Asia/Qyzylorda
* `Asia/Rangoon` - Asia/Rangoon
* `Asia/Riyadh` - Asia/Riyadh
* `Asia/Saigon` - Asia/Saigon
* `Asia/Sakhalin` - Asia/Sakhalin
* `Asia/Samarkand` - Asia/Samarkand
* `Asia/Seoul` - Asia/Seoul
* `Asia/Shanghai` - Asia/Shanghai
* `Asia/Singapore` - Asia/Singapore
* `Asia/Srednekolymsk` - Asia/Srednekolymsk
* `Asia/Taipei` - Asia/Taipei
* `Asia/Tashkent` - Asia/Tashkent
* `Asia/Tbilisi` - Asia/Tbilisi
* `Asia/Tehran` - Asia/Tehran
* `Asia/Tel_Aviv` - Asia/Tel_Aviv
* `Asia/Thimbu` - Asia/Thimbu
* `Asia/Thimphu` - Asia/Thimphu
* `Asia/Tokyo` - Asia/Tokyo
* `Asia/Tomsk` - Asia/Tomsk
* `Asia/Ujung_Pandang` - Asia/Ujung_Pandang
* `Asia/Ulaanbaatar` - Asia/Ulaanbaatar
* `Asia/Ulan_Bator` - Asia/Ulan_Bator
* `Asia/Urumqi` - Asia/Urumqi
* `Asia/Ust-Nera` - Asia/Ust-Nera
* `Asia/Vientiane` - Asia/Vientiane
* `Asia/Vladivostok` - Asia/Vladivostok
* `Asia/Yakutsk` - Asia/Yakutsk
* `Asia/Yangon` - Asia/Yangon
* `Asia/Yekaterinburg` - Asia/Yekaterinburg
* `Asia/Yerevan` - Asia/Yerevan
* `Atlantic/Azores` - Atlantic/Azores
* `Atlantic/Bermuda` - Atlantic/Bermuda
* `Atlantic/Canary` - Atlantic/Canary
* `Atlantic/Cape_Verde` - Atlantic/Cape_Verde
* `Atlantic/Faeroe` - Atlantic/Faeroe
* `Atlantic/Faroe` - Atlantic/Faroe
* `Atlantic/Jan_Mayen` - Atlantic/Jan_Mayen
* `Atlantic/Madeira` - Atlantic/Madeira
* `Atlantic/Reykjavik` - Atlantic/Reykjavik
* `Atlantic/South_Georgia` - Atlantic/South_Georgia
* `Atlantic/St_Helena` - Atlantic/St_Helena
* `Atlantic/Stanley` - Atlantic/Stanley
* `Australia/ACT` - Australia/ACT
* `Australia/Adelaide` - Australia/Adelaide
* `Australia/Brisbane` - Australia/Brisbane
* `Australia/Broken_Hill` - Australia/Broken_Hill
* `Australia/Canberra` - Australia/Canberra
* `Australia/Currie` - Australia/Currie
* `Australia/Darwin` - Australia/Darwin
* `Australia/Eucla` - Australia/Eucla
* `Australia/Hobart` - Australia/Hobart
* `Australia/LHI` - Australia/LHI
* `Australia/Lindeman` - Australia/Lindeman
* `Australia/Lord_Howe` - Australia/Lord_Howe
* `Australia/Melbourne` - Australia/Melbourne
* `Australia/NSW` - Australia/NSW
* `Australia/North` - Australia/North
* `Australia/Perth` - Australia/Perth
* `Australia/Queensland` - Australia/Queensland
* `Australia/South` - Australia/South
* `Australia/Sydney` - Australia/Sydney
* `Australia/Tasmania` - Australia/Tasmania
* `Australia/Victoria` - Australia/Victoria
* `Australia/West` - Australia/West
* `Australia/Yancowinna` - Australia/Yancowinna
* `Brazil/Acre` - Brazil/Acre
* `Brazil/DeNoronha` - Brazil/DeNoronha
* `Brazil/East` - Brazil/East
* `Brazil/West` - Brazil/West
* `CET` - CET
* `CST6CDT` - CST6CDT
* `Canada/Atlantic` - Canada/Atlantic
* `Canada/Central` - Canada/Central
* `Canada/Eastern` - Canada/Eastern
* `Canada/Mountain` - Canada/Mountain
* `Canada/Newfoundland` - Canada/Newfoundland
* `Canada/Pacific` - Canada/Pacific
* `Canada/Saskatchewan` - Canada/Saskatchewan
* `Canada/Yukon` - Canada/Yukon
* `Chile/Continental` - Chile/Continental
* `Chile/EasterIsland` - Chile/EasterIsland
* `Cuba` - Cuba
* `EET` - EET
* `EST` - EST
* `EST5EDT` - EST5EDT
* `Egypt` - Egypt
* `Eire` - Eire
* `Etc/GMT` - Etc/GMT
* `Etc/GMT+0` - Etc/GMT+0
* `Etc/GMT+1` - Etc/GMT+1
* `Etc/GMT+10` - Etc/GMT+10
* `Etc/GMT+11` - Etc/GMT+11
* `Etc/GMT+12` - Etc/GMT+12
* `Etc/GMT+2` - Etc/GMT+2
* `Etc/GMT+3` - Etc/GMT+3
* `Etc/GMT+4` - Etc/GMT+4
* `Etc/GMT+5` - Etc/GMT+5
* `Etc/GMT+6` - Etc/GMT+6
* `Etc/GMT+7` - Etc/GMT+7
* `Etc/GMT+8` - Etc/GMT+8
* `Etc/GMT+9` - Etc/GMT+9
* `Etc/GMT-0` - Etc/GMT-0
* `Etc/GMT-1` - Etc/GMT-1
* `Etc/GMT-10` - Etc/GMT-10
* `Etc/GMT-11` - Etc/GMT-11
* `Etc/GMT-12` - Etc/GMT-12
* `Etc/GMT-13` - Etc/GMT-13
* `Etc/GMT-14` - Etc/GMT-14
* `Etc/GMT-2` - Etc/GMT-2
* `Etc/GMT-3` - Etc/GMT-3
* `Etc/GMT-4` - Etc/GMT-4
* `Etc/GMT-5` - Etc/GMT-5
* `Etc/GMT-6` - Etc/GMT-6
* `Etc/GMT-7` - Etc/GMT-7
* `Etc/GMT-8` - Etc/GMT-8
* `Etc/GMT-9` - Etc/GMT-9
* `Etc/GMT0` - Etc/GMT0
* `Etc/Greenwich` - Etc/Greenwich
* `Etc/UCT` - Etc/UCT
* `Etc/UTC` - Etc/UTC
* `Etc/Universal` - Etc/Universal
* `Etc/Zulu` - Etc/Zulu
* `Europe/Amsterdam` - Europe/Amsterdam
* `Europe/Andorra` - Europe/Andorra
* `Europe/Astrakhan` - Europe/Astrakhan
* `Europe/Athens` - Europe/Athens
* `Europe/Belfast` - Europe/Belfast
* `Europe/Belgrade` - Europe/Belgrade
* `Europe/Berlin` - Europe/Berlin
* `Europe/Bratislava` - Europe/Bratislava
* `Europe/Brussels` - Europe/Brussels
* `Europe/Bucharest` - Europe/Bucharest
* `Europe/Budapest` - Europe/Budapest
* `Europe/Busingen` - Europe/Busingen
* `Europe/Chisinau` - Europe/Chisinau
* `Europe/Copenhagen` - Europe/Copenhagen
* `Europe/Dublin` - Europe/Dublin
* `Europe/Gibraltar` - Europe/Gibraltar
* `Europe/Guernsey` - Europe/Guernsey
* `Europe/Helsinki` - Europe/Helsinki
* `Europe/Isle_of_Man` - Europe/Isle_of_Man
* `Europe/Istanbul` - Europe/Istanbul
* `Europe/Jersey` - Europe/Jersey
* `Europe/Kaliningrad` - Europe/Kaliningrad
* `Europe/Kiev` - Europe/Kiev
* `Europe/Kirov` - Europe/Kirov
* `Europe/Kyiv` - Europe/Kyiv
* `Europe/Lisbon` - Europe/Lisbon
* `Europe/Ljubljana` - Europe/Ljubljana
* `Europe/London` - Europe/London
* `Europe/Luxembourg` - Europe/Luxembourg
* `Europe/Madrid` - Europe/Madrid
* `Europe/Malta` - Europe/Malta
* `Europe/Mariehamn` - Europe/Mariehamn
* `Europe/Minsk` - Europe/Minsk
* `Europe/Monaco` - Europe/Monaco
* `Europe/Moscow` - Europe/Moscow
* `Europe/Nicosia` - Europe/Nicosia
* `Europe/Oslo` - Europe/Oslo
* `Europe/Paris` - Europe/Paris
* `Europe/Podgorica` - Europe/Podgorica
* `Europe/Prague` - Europe/Prague
* `Europe/Riga` - Europe/Riga
* `Europe/Rome` - Europe/Rome
* `Europe/Samara` - Europe/Samara
* `Europe/San_Marino` - Europe/San_Marino
* `Europe/Sarajevo` - Europe/Sarajevo
* `Europe/Saratov` - Europe/Saratov
* `Europe/Simferopol` - Europe/Simferopol
* `Europe/Skopje` - Europe/Skopje
* `Europe/Sofia` - Europe/Sofia
* `Europe/Stockholm` - Europe/Stockholm
* `Europe/Tallinn` - Europe/Tallinn
* `Europe/Tirane` - Europe/Tirane
* `Europe/Tiraspol` - Europe/Tiraspol
* `Europe/Ulyanovsk` - Europe/Ulyanovsk
* `Europe/Uzhgorod` - Europe/Uzhgorod
* `Europe/Vaduz` - Europe/Vaduz
* `Europe/Vatican` - Europe/Vatican
* `Europe/Vienna` - Europe/Vienna
* `Europe/Vilnius` - Europe/Vilnius
* `Europe/Volgograd` - Europe/Volgograd
* `Europe/Warsaw` - Europe/Warsaw
* `Europe/Zagreb` - Europe/Zagreb
* `Europe/Zaporozhye` - Europe/Zaporozhye
* `Europe/Zurich` - Europe/Zurich
* `GB` - GB
* `GB-Eire` - GB-Eire
* `GMT` - GMT
* `GMT+0` - GMT+0
* `GMT-0` - GMT-0
* `GMT0` - GMT0
* `Greenwich` - Greenwich
* `HST` - HST
* `Hongkong` - Hongkong
* `Iceland` - Iceland
* `Indian/Antananarivo` - Indian/Antananarivo
* `Indian/Chagos` - Indian/Chagos
* `Indian/Christmas` - Indian/Christmas
* `Indian/Cocos` - Indian/Cocos
* `Indian/Comoro` - Indian/Comoro
* `Indian/Kerguelen` - Indian/Kerguelen
* `Indian/Mahe` - Indian/Mahe
* `Indian/Maldives` - Indian/Maldives
* `Indian/Mauritius` - Indian/Mauritius
* `Indian/Mayotte` - Indian/Mayotte
* `Indian/Reunion` - Indian/Reunion
* `Iran` - Iran
* `Israel` - Israel
* `Jamaica` - Jamaica
* `Japan` - Japan
* `Kwajalein` - Kwajalein
* `Libya` - Libya
* `MET` - MET
* `MST` - MST
* `MST7MDT` - MST7MDT
* `Mexico/BajaNorte` - Mexico/BajaNorte
* `Mexico/BajaSur` - Mexico/BajaSur
* `Mexico/General` - Mexico/General
* `NZ` - NZ
* `NZ-CHAT` - NZ-CHAT
* `Navajo` - Navajo
* `PRC` - PRC
* `PST8PDT` - PST8PDT
* `Pacific/Apia` - Pacific/Apia
* `Pacific/Auckland` - Pacific/Auckland
* `Pacific/Bougainville` - Pacific/Bougainville
* `Pacific/Chatham` - Pacific/Chatham
* `Pacific/Chuuk` - Pacific/Chuuk
* `Pacific/Easter` - Pacific/Easter
* `Pacific/Efate` - Pacific/Efate
* `Pacific/Enderbury` - Pacific/Enderbury
* `Pacific/Fakaofo` - Pacific/Fakaofo
* `Pacific/Fiji` - Pacific/Fiji
* `Pacific/Funafuti` - Pacific/Funafuti
* `Pacific/Galapagos` - Pacific/Galapagos
* `Pacific/Gambier` - Pacific/Gambier
* `Pacific/Guadalcanal` - Pacific/Guadalcanal
* `Pacific/Guam` - Pacific/Guam
* `Pacific/Honolulu` - Pacific/Honolulu
* `Pacific/Johnston` - Pacific/Johnston
* `Pacific/Kanton` - Pacific/Kanton
* `Pacific/Kiritimati` - Pacific/Kiritimati
* `Pacific/Kosrae` - Pacific/Kosrae
* `Pacific/Kwajalein` - Pacific/Kwajalein
* `Pacific/Majuro` - Pacific/Majuro
* `Pacific/Marquesas` - Pacific/Marquesas
* `Pacific/Midway` - Pacific/Midway
* `Pacific/Nauru` - Pacific/Nauru
* `Pacific/Niue` - Pacific/Niue
* `Pacific/Norfolk` - Pacific/Norfolk
* `Pacific/Noumea` - Pacific/Noumea
* `Pacific/Pago_Pago` - Pacific/Pago_Pago
* `Pacific/Palau` - Pacific/Palau
* `Pacific/Pitcairn` - Pacific/Pitcairn
* `Pacific/Pohnpei` - Pacific/Pohnpei
* `Pacific/Ponape` - Pacific/Ponape
* `Pacific/Port_Moresby` - Pacific/Port_Moresby
* `Pacific/Rarotonga` - Pacific/Rarotonga
* `Pacific/Saipan` - Pacific/Saipan
* `Pacific/Samoa` - Pacific/Samoa
* `Pacific/Tahiti` - Pacific/Tahiti
* `Pacific/Tarawa` - Pacific/Tarawa
* `Pacific/Tongatapu` - Pacific/Tongatapu
* `Pacific/Truk` - Pacific/Truk
* `Pacific/Wake` - Pacific/Wake
* `Pacific/Wallis` - Pacific/Wallis
* `Pacific/Yap` - Pacific/Yap
* `Poland` - Poland
* `Portugal` - Portugal
* `ROC` - ROC
* `ROK` - ROK
* `Singapore` - Singapore
* `Turkey` - Turkey
* `UCT` - UCT
* `US/Alaska` - US/Alaska
* `US/Aleutian` - US/Aleutian
* `US/Arizona` - US/Arizona
* `US/Central` - US/Central
* `US/East-Indiana` - US/East-Indiana
* `US/Eastern` - US/Eastern
* `US/Hawaii` - US/Hawaii
* `US/Indiana-Starke` - US/Indiana-Starke
* `US/Michigan` - US/Michigan
* `US/Mountain` - US/Mountain
* `US/Pacific` - US/Pacific
* `US/Samoa` - US/Samoa
* `UTC` - UTC
* `Universal` - Universal
* `W-SU` - W-SU
* `WET` - WET
* `Zulu` - Zulu

# components.schemas.PatchedProjectBackwardCompat.properties.data_attributes.description
Element attributes that posthog-js should capture as action identifiers (e.g. `['data-attr']`).

# components.schemas.PatchedProjectBackwardCompat.properties.person_display_name_properties.description
Ordered list of person properties used to render a human-friendly display name in the UI.

# components.schemas.PatchedProjectBackwardCompat.properties.autocapture_opt_out.description
Disables posthog-js autocapture (clicks, page views) when true.

# components.schemas.PatchedProjectBackwardCompat.properties.autocapture_exceptions_opt_in.description
Enables automatic capture of JavaScript exceptions via the SDK.

# components.schemas.PatchedProjectBackwardCompat.properties.autocapture_web_vitals_opt_in.description
Enables automatic capture of Core Web Vitals performance metrics.

# components.schemas.PatchedProjectBackwardCompat.properties.capture_console_log_opt_in.description
Enables capturing browser console logs alongside session replays.

# components.schemas.PatchedProjectBackwardCompat.properties.capture_performance_opt_in.description
Enables capturing performance timing and network requests.

# components.schemas.PatchedProjectBackwardCompat.properties.session_recording_opt_in.description
Enables session replay recording for this project.

# components.schemas.PatchedProjectBackwardCompat.properties.session_recording_sample_rate.description
Fraction of sessions to record, as a decimal string between `0.00` and `1.00` (e.g. `0.1` = 10%).

# components.schemas.PatchedProjectBackwardCompat.properties.session_recording_minimum_duration_milliseconds.description
Skip saving sessions shorter than this many milliseconds.

# components.schemas.PatchedProjectBackwardCompat.properties.session_recording_trigger_groups.description
V2 trigger groups configuration for session recording. If present, takes precedence over legacy trigger fields.

# components.schemas.PatchedProjectBackwardCompat.properties.session_recording_retention_period.description
How long to retain new session recordings. One of `30d`, `90d`, `1y`, or `5y` (availability depends on plan).

* `30d` - 30 Days
* `90d` - 90 Days
* `1y` - 1 Year
* `5y` - 5 Years

# components.schemas.PatchedProjectBackwardCompat.properties.week_start_day.description
First day of the week for date range filters. 0 = Sunday, 1 = Monday.

* `0` - Sunday
* `1` - Monday

# components.schemas.PatchedProjectBackwardCompat.properties.primary_dashboard.description
ID of the dashboard shown as the project's default landing dashboard.

# components.schemas.PatchedProjectBackwardCompat.properties.recording_domains.description
Origins permitted to record session replays and heatmaps. Empty list allows all origins.

# components.schemas.PatchedProjectBackwardCompat.properties.surveys_opt_in.description
Enables displaying surveys via posthog-js on allowed origins.

# components.schemas.PatchedProjectBackwardCompat.properties.heatmaps_opt_in.description
Enables heatmap recording on pages that host posthog-js.

# components.schemas.PatchedProjectBackwardCompat.properties.flags_persistence_default.description
Default value for the `persist` option on newly created feature flags.

# components.schemas.PatchedProjectBackwardCompat.properties.business_model.description
Whether this project serves B2B or B2C customers. Used to optimize default UI layouts.

* `b2b` - B2B
* `b2c` - B2C
* `other` - Other

# components.schemas.PatchedProjectBackwardCompat.properties.conversations_enabled.description
Enables the customer conversations / live chat product for this project.

# components.schemas.PatchedReplayScanner.properties.name.description
Human-readable scanner name. Unique within the team.

# components.schemas.PatchedReplayScanner.properties.description.description
Free-form description shown in the scanner management UI.

# components.schemas.PatchedReplayScanner.properties.scanner_type.description
What the scanner does: monitor, classifier, scorer, or summarizer.

* `monitor` - Monitor
* `classifier` - Classifier
* `scorer` - Scorer
* `summarizer` - Summarizer

# components.schemas.PatchedReplayScanner.properties.scanner_config.description
Type-specific configuration. All scanner types require `prompt`; monitors add optional `allow_inconclusive`, classifiers add `tags`, scorers add `scale`, summarizers add optional `length`.

# components.schemas.PatchedReplayScanner.properties.query.description
Persisted `RecordingsQuery` shape used to pick candidate sessions. `date_from`/`date_to` are stripped on save — the schedule controls time, not the user.

# components.schemas.PatchedReplayScanner.properties.sampling_rate.description
0..1 random downsample applied after the query matches. Defaults to 1.0 (no downsampling).

# components.schemas.PatchedReplayScanner.properties.provider.description
LLM provider. v1 is Google-only.

* `google` - Google

# components.schemas.PatchedReplayScanner.properties.model.description
Concrete model to use for this scanner.

* `gemini-3-flash-preview` - Gemini 3 Flash
* `gemini-3.1-flash-lite-preview` - Gemini 3 Flash Lite

# components.schemas.PatchedReplayScanner.properties.enabled.description
When false, the reconciler removes the scanner's Temporal schedule. On-demand triggers still work.

# components.schemas.PatchedReplayScanner.properties.emits_signals.description
When true, the prompt is augmented with the Signal side mission and the scanner emits PostHog Signals.

# components.schemas.PatchedReplayScanner.properties.scanner_version.description
Increments on every config-changing save. Observations snapshot this value.

# components.schemas.PatchedReplayScanner.properties.last_swept_at.description
Watermark for the scanner's last scheduled fire. Mirrors Temporal schedule state for recovery.

# components.schemas.PatchedReviewQueueItemUpdate.properties.queue_id.description
Review queue ID that should own this pending trace.

# components.schemas.PatchedSandboxEnvironment.properties.allowed_domains.description
List of allowed domains for custom network access

# components.schemas.PatchedSandboxEnvironment.properties.include_default_domains.description
Whether to include default trusted domains (GitHub, npm, PyPI)

# components.schemas.PatchedSandboxEnvironment.properties.repositories.description
List of repositories this environment applies to (format: org/repo)

# components.schemas.PatchedSandboxEnvironment.properties.environment_variables.description
Encrypted environment variables (write-only, never returned in responses)

# components.schemas.PatchedSandboxEnvironment.properties.has_environment_variables.description
Whether this environment has any environment variables set

# components.schemas.PatchedSandboxEnvironment.properties.private.description
If true, only the creator can see this environment. Otherwise visible to whole team.

# components.schemas.PatchedSandboxEnvironment.properties.internal.description
If true, this environment is for internal use (e.g. signals pipeline) and should not be exposed to end users.

# components.schemas.PatchedSandboxEnvironment.properties.effective_domains.description
Computed domain allowlist based on network_access_level and allowed_domains

# components.schemas.PatchedSavedHeatmapRequest.properties.name.description
Human-readable label for the saved heatmap.

# components.schemas.PatchedSavedHeatmapRequest.properties.url.description
Exact page URL to render and overlay heatmap data on. Wildcards are not allowed.

# components.schemas.PatchedSavedHeatmapRequest.properties.data_url.description
URL whose heatmap data is overlaid on the screenshot. Defaults to 'url' when omitted.

# components.schemas.PatchedSavedHeatmapRequest.properties.widths.description
Viewport widths (px, 100-3000) to render the heatmap screenshot at — one render per width. Defaults to [320, 375, 425, 768, 1024, 1440, 1920] when omitted. At most 16 widths.

# components.schemas.PatchedSavedHeatmapRequest.properties.type.description
Render mode: 'screenshot' (renders the page headlessly, default), 'iframe', or 'recording'. Only 'screenshot' generates image bytes.

* `screenshot` - Screenshot
* `iframe` - Iframe
* `recording` - Recording

# components.schemas.PatchedSavedHeatmapRequest.properties.deleted.description
Set true to soft-delete the saved heatmap.

# components.schemas.PatchedSessionGroupSummary.properties.session_ids.description
List of session replay IDs included in this group summary

# components.schemas.PatchedSessionGroupSummary.properties.extra_summary_context.description
Additional context passed to the summary (ExtraSummaryContext schema)

# components.schemas.PatchedSessionRecording.properties.external_references.description
Load external references (linked issues) for this recording

# components.schemas.PatchedSessionRecordingPlaylist.properties.description.description
Optional description of the playlist's purpose or contents.

# components.schemas.PatchedSessionRecordingPlaylist.properties.pinned.description
Whether this playlist is pinned to the top of the list.

# components.schemas.PatchedSessionRecordingPlaylist.properties.deleted.description
Set to true to soft-delete the playlist.

# components.schemas.PatchedSessionRecordingPlaylist.properties.filters.description
JSON object with recording filter criteria. Only used when type is 'filters'. Defines which recordings match this saved filter view. When updating a filters-type playlist, you must include the existing filters alongside any other changes — omitting filters will be treated as removing them.

# components.schemas.PatchedSessionRecordingPlaylist.properties.type.description
Playlist type: 'collection' for manually curated recordings, 'filters' for saved filter views. Required on create, cannot be changed after.

* `collection` - Collection
* `filters` - Filters

# components.schemas.PatchedSessionRecordingPlaylist.properties.is_synthetic.description
Return whether this is a synthetic playlist

# components.schemas.PatchedSessionSummariesConfig.properties.product_context.description
Free-form description of the team's product, used to tailor AI-generated single-session replay summaries. Injected into the system prompt of every summary generated for this team via the replay page.

# components.schemas.PatchedSessionSummariesConfig.properties.custom_tags.description
Team-defined tags layered on top of the fixed taxonomy, as a {name: description} map. Names must be lowercase snake_case (max 60 chars), descriptions max 200 chars, max 15 entries.

# components.schemas.PatchedSignalScoutConfig.description
Per-(team, skill) scout config: schedule, enablement, and emit posture.

One row per `signals-scout-*` skill on the team. The coordinator auto-creates a row
when it discovers a scout skill; this serializer lets agents tune the row.

# components.schemas.PatchedSignalScoutConfig.properties.skill_name.description
The `signals-scout-*` skill this config controls. Set at creation, not editable.

# components.schemas.PatchedSignalScoutConfig.properties.enabled.description
Whether this scout runs on its schedule. Disabled scouts are skipped by the coordinator.

# components.schemas.PatchedSignalScoutConfig.properties.emit.description
Whether the scout writes findings to the inbox. False = dry-run: it runs and logs but emits nothing.

# components.schemas.PatchedSignalScoutConfig.properties.run_interval_minutes.description
Minutes between runs (10–43200). The scout runs once this interval has elapsed since its last run.

# components.schemas.PatchedSignalScoutConfig.properties.last_run_at.description
When the coordinator last dispatched this scout. Null if it has never run.

# components.schemas.PatchedSubscription.properties.dashboard.description
Dashboard ID to subscribe to (mutually exclusive with insight on create).

# components.schemas.PatchedSubscription.properties.insight.description
Insight ID to subscribe to (mutually exclusive with dashboard on create).

# components.schemas.PatchedSubscription.properties.dashboard_export_insights.description
List of insight IDs from the dashboard to include. Required for dashboard subscriptions, max 6.

# components.schemas.PatchedSubscription.properties.target_type.description
Delivery channel: email, slack, or webhook.

* `email` - Email
* `slack` - Slack
* `webhook` - Webhook

# components.schemas.PatchedSubscription.properties.target_value.description
Recipient(s): comma-separated email addresses for email, Slack channel name/ID for slack, or full URL for webhook.

# components.schemas.PatchedSubscription.properties.frequency.description
How often to deliver: daily, weekly, monthly, or yearly.

* `daily` - Daily
* `weekly` - Weekly
* `monthly` - Monthly
* `yearly` - Yearly

# components.schemas.PatchedSubscription.properties.interval.description
Interval multiplier (e.g. 2 with weekly frequency means every 2 weeks). Required on create; must be 1 or greater.

# components.schemas.PatchedSubscription.properties.byweekday.items.description
* `monday` - Monday
* `tuesday` - Tuesday
* `wednesday` - Wednesday
* `thursday` - Thursday
* `friday` - Friday
* `saturday` - Saturday
* `sunday` - Sunday

# components.schemas.PatchedSubscription.properties.byweekday.description
Days of week for weekly subscriptions: monday, tuesday, wednesday, thursday, friday, saturday, sunday.

# components.schemas.PatchedSubscription.properties.bysetpos.description
Position within byweekday set for monthly frequency (e.g. 1 for first, -1 for last).

# components.schemas.PatchedSubscription.properties.count.description
Total number of deliveries before the subscription stops. Null for unlimited.

# components.schemas.PatchedSubscription.properties.start_date.description
When to start delivering (ISO 8601 datetime).

# components.schemas.PatchedSubscription.properties.until_date.description
When to stop delivering (ISO 8601 datetime). Null for indefinite.

# components.schemas.PatchedSubscription.properties.deleted.description
Set to true to soft-delete. Subscriptions cannot be hard-deleted.

# components.schemas.PatchedSubscription.properties.enabled.description
Whether the subscription is active. Set to false to pause delivery without deleting. Auto-set to false when the delivery integration becomes invalid.

# components.schemas.PatchedSubscription.properties.title.description
Human-readable name for this subscription.

# components.schemas.PatchedSubscription.properties.summary.description
Human-readable schedule summary, e.g. 'sent daily'.

# components.schemas.PatchedSubscription.properties.integration_id.description
ID of a connected Slack integration. Required when target_type is slack.

# components.schemas.PatchedSubscription.properties.invite_message.description
Optional message included in the invitation email when adding new recipients.

# components.schemas.PatchedSurveySerializerCreateUpdateOnlySchema.properties.type.description
Survey type.

* `popover` - popover
* `widget` - widget
* `external_survey` - external survey
* `api` - api

# components.schemas.PatchedSurveySerializerCreateUpdateOnlySchema.properties.schedule.description
Survey scheduling behavior: 'once' = show once per user (default), 'recurring' = repeat based on iteration_count and iteration_frequency_days settings, 'always' = show every time conditions are met (mainly for widget surveys)

* `once` - once
* `recurring` - recurring
* `always` - always

# components.schemas.PatchedSurveySerializerCreateUpdateOnlySchema.properties.targeting_flag_id.description
An existing targeting flag to use for this survey.

# components.schemas.PatchedSurveySerializerCreateUpdateOnlySchema.properties.targeting_flag_filters.description
Target specific users based on their properties. Example: {groups: [{properties: [{key: 'email', value: ['@company.com'], operator: 'icontains'}], rollout_percentage: 100}]}

# components.schemas.PatchedSurveySerializerCreateUpdateOnlySchema.properties.remove_targeting_flag.description
Set to true to completely remove all targeting filters from the survey, making it visible to all users (subject to other display conditions like URL matching).

# components.schemas.PatchedSurveySerializerCreateUpdateOnlySchema.properties.questions.description
        The `array` of questions included in the survey. Each question must conform to one of the defined question types: Basic, Link, Rating, or Multiple Choice.

        Basic (open-ended question)
        - `id`: The question ID
        - `type`: `open`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `branching`: Branching logic for the question. See branching types below for details.

        Link (a question with a link)
        - `id`: The question ID
        - `type`: `link`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `link`: The URL associated with the question.
        - `branching`: Branching logic for the question. See branching types below for details.

        Rating (a question with a rating scale)
        - `id`: The question ID
        - `type`: `rating`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `display`: Display style of the rating (`number` or `emoji`).
        - `scale`: The scale of the rating (`number`).
        - `lowerBoundLabel`: Label for the lower bound of the scale.
        - `upperBoundLabel`: Label for the upper bound of the scale.
        - `isNpsQuestion`: Whether the question is an NPS rating.
        - `branching`: Branching logic for the question. See branching types below for details.

        Multiple choice
        - `id`: The question ID
        - `type`: `single_choice` or `multiple_choice`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `choices`: An array of choices for the question.
        - `shuffleOptions`: Whether to shuffle the order of the choices (`boolean`).
        - `hasOpenChoice`: Whether the question allows an open-ended response (`boolean`).
        - `branching`: Branching logic for the question. See branching types below for details.

        Branching logic can be one of the following types:

        Next question: Proceeds to the next question
        ```json
        {
            "type": "next_question"
        }
        ```

        End: Ends the survey, optionally displaying a confirmation message.
        ```json
        {
            "type": "end"
        }
        ```

        Response-based: Branches based on the response values. Available for the `rating` and `single_choice` question types.
        ```json
        {
            "type": "response_based",
            "responseValues": {
                "responseKey": "value"
            }
        }
        ```

        Specific question: Proceeds to a specific question by index.
        ```json
        {
            "type": "specific_question",
            "index": 2
        }
        ```

        Translations: Each question can include inline translations.
        - `translations`: Object mapping language codes to translated fields.
        - Language codes: Canonical BCP-47-ish strings (e.g., "es", "es-MX", "zh-CN"). Aliases like "english" or "default" are rejected. The survey's `base_language` (default "en") declares the language of the untranslated text and cannot also appear as a translation key.
        - Translatable fields: `question`, `description`, `buttonText`, `choices`, `lowerBoundLabel`, `upperBoundLabel`, `link`

        Example with translations:
        ```json
        {
            "id": "uuid",
            "type": "rating",
            "question": "How satisfied are you?",
            "lowerBoundLabel": "Not satisfied",
            "upperBoundLabel": "Very satisfied",
            "translations": {
                "es": {
                    "question": "¿Qué tan satisfecho estás?",
                    "lowerBoundLabel": "No satisfecho",
                    "upperBoundLabel": "Muy satisfecho"
                },
                "fr": {
                    "question": "Dans quelle mesure êtes-vous satisfait?"
                }
            }
        }
        ```
        

# components.schemas.PatchedSurveySerializerCreateUpdateOnlySchema.properties.conditions.description
Display and targeting conditions for the survey.

# components.schemas.PatchedSurveySerializerCreateUpdateOnlySchema.properties.start_date.description
Setting this will launch the survey immediately. Don't add a start_date unless explicitly requested to do so.

# components.schemas.PatchedSurveySerializerCreateUpdateOnlySchema.properties.end_date.description
When the survey stopped being shown to users. Setting this will complete the survey.

# components.schemas.PatchedSurveySerializerCreateUpdateOnlySchema.properties.responses_limit.description
The maximum number of responses before automatically stopping the survey.

# components.schemas.PatchedSurveySerializerCreateUpdateOnlySchema.properties.iteration_count.description
For a recurring schedule, this field specifies the number of times the survey should be shown to the user. Use 1 for 'once every X days', higher numbers for multiple repetitions. Works together with iteration_frequency_days to determine the overall survey schedule.

# components.schemas.PatchedSurveySerializerCreateUpdateOnlySchema.properties.iteration_frequency_days.description
For a recurring schedule, this field specifies the interval in days between each survey instance shown to the user, used alongside iteration_count for precise scheduling.

# components.schemas.PatchedSurveySerializerCreateUpdateOnlySchema.properties.enable_partial_responses.description
When at least one question is answered, the response is stored (true). The response is stored when all questions are answered (false).

# components.schemas.PatchedSurveySerializerCreateUpdateOnlySchema.properties.base_language.description
BCP-47 language code (e.g. 'en', 'es', 'es-MX') describing the language of the survey's untranslated text. Defaults to 'en'. Cannot also appear as a key in `translations`.

# components.schemas.PatchedTable.description
Mixin for serializers to add user access control fields

# components.schemas.PatchedTable.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.PatchedTaggerUpdate.properties.tagger_config.description
Tagger configuration. For tagger_type 'llm': {prompt, tags, min_tags?, max_tags?}. For tagger_type 'hog': {source, tags?}.

# components.schemas.PatchedTaggerUpdate.properties.conditions.description
Conditions that scope when the tagger runs

# components.schemas.PatchedTask.properties.title.description
Short human-readable title. Auto-generated from `description` when omitted.

# components.schemas.PatchedTask.properties.description.description
Free-form description of the work to be done. Used as the prompt passed to the agent.

# components.schemas.PatchedTask.properties.origin_product.description
PostHog product or surface that created this task (e.g. error_tracking, slack, user_created).

* `error_tracking` - Error Tracking
* `eval_clusters` - Eval Clusters
* `user_created` - User Created
* `automation` - Automation
* `slack` - Slack
* `support_queue` - Support Queue
* `session_summaries` - Session Summaries
* `signal_report` - Signal Report
* `signals_scout` - Signals Scout

# components.schemas.PatchedTask.properties.repository.description
Target GitHub repository in `organization/repo` format (e.g. `posthog/posthog-js`).

# components.schemas.PatchedTask.properties.github_user_integration.description
User-scoped GitHub integration to use for user-authored cloud runs.

# components.schemas.PatchedTask.properties.json_schema.description
JSON schema for the task. This is used to validate the output of the task.

# components.schemas.PatchedTask.properties.internal.description
If true, this task is for internal use and should not be exposed to end users.

# components.schemas.PatchedTask.properties.archived.description
If true, the task is hidden from default list responses. Used by PostHog Code clients to share archive state across desktop and mobile.

# components.schemas.PatchedTask.properties.ci_prompt.description
Custom prompt for CI fixes. If blank, a default prompt will be used.

# components.schemas.PatchedTaskRunSetOutputRequest.properties.output.description
Output data from the run. Validated against the task's json_schema if one is set.

# components.schemas.PatchedTaskRunUpdate.properties.status.description
Current execution status

* `not_started` - not_started
* `queued` - queued
* `in_progress` - in_progress
* `completed` - completed
* `failed` - failed
* `cancelled` - cancelled

# components.schemas.PatchedTaskRunUpdate.properties.branch.description
Git branch name to associate with the task

# components.schemas.PatchedTaskRunUpdate.properties.stage.description
Current stage of the run (e.g. research, plan, build)

# components.schemas.PatchedTaskRunUpdate.properties.state_remove_keys.description
State keys to remove atomically before applying any state updates.

# components.schemas.PatchedTaskRunUpdate.properties.environment.description
Transition a cloud run to local. Use the resume_in_cloud action to move a run into cloud.

* `local` - local

# components.schemas.PatchedTeam.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.PatchedTeam.properties.test_account_filters.description
Filters used to identify internal/test users. Each entry is a property filter.

            Supported entry types and the exact shape each accepts:

            # Person property — match (or exclude) by a person property
            {"key": "email", "type": "person", "value": "@example.com", "operator": "icontains"}

            # Event property — match by an event property
            {"key": "$host", "type": "event", "value": "localhost", "operator": "icontains"}

            # Cohort membership — match (or exclude) members of a cohort.
            # Use operator "in" for inclusion and "not_in" for exclusion. Do NOT use a
            # `negation` field here — `negation` is specific to cohort *definitions*
            # (the inner sub-filters that build a cohort) and is rejected by the
            # property-filter schema.
            {"key": "id", "type": "cohort", "value": 8814, "operator": "not_in"}

            Common operators: "exact", "is_not", "icontains", "not_icontains", "regex",
            "not_regex", "gt", "lt", "gte", "lte", "is_set", "is_not_set", "in", "not_in".

# components.schemas.PatchedTeam.properties.session_recording_trigger_groups.description
V2 trigger groups configuration for session recording. If present, takes precedence over legacy trigger fields.

# components.schemas.PatchedTeam.properties.default_evaluation_contexts_enabled.description
Whether to automatically apply default evaluation contexts to new feature flags

# components.schemas.PatchedTeam.properties.require_evaluation_contexts.description
Whether to require at least one evaluation context tag when creating new feature flags

# components.schemas.PatchedTeam.properties.business_model.description
Whether this project serves B2B or B2C customers, used to optimize the UI layout.

* `b2b` - B2B
* `b2c` - B2C
* `other` - Other

# components.schemas.PatchedTicket.description
Serializer mixin that handles tags for objects.

# components.schemas.PatchedTicket.properties.status.description
Ticket status: new, open, pending, on_hold, or resolved

* `new` - New
* `open` - Open
* `pending` - Pending
* `on_hold` - On hold
* `resolved` - Resolved

# components.schemas.PatchedTicket.properties.priority.description
Ticket priority: low, medium, or high. Null if unset.

* `low` - Low
* `medium` - Medium
* `high` - High

# components.schemas.PatchedTicket.properties.anonymous_traits.description
Customer-provided traits such as name and email

# components.schemas.PatchedTicket.properties.sla_due_at.description
SLA deadline set via workflows. Null means no SLA.

# components.schemas.PatchedTraceReviewUpdate.properties.trace_id.description
Trace ID for the review. Only one active review can exist per trace and team.

# components.schemas.PatchedTraceReviewUpdate.properties.comment.description
Optional comment or reasoning for the review.

# components.schemas.PatchedTraceReviewUpdate.properties.scores.description
Full desired score set for this review. Omit scorers you want to leave blank.

# components.schemas.PatchedTraceReviewUpdate.properties.queue_id.description
Optional review queue ID for queue-context saves. When provided, the matching pending queue item is cleared after the review is saved. If omitted, any pending queue item for the same trace is cleared.

# components.schemas.PatchedUpdateTextSource.description
PATCH payload for text sources. Both fields optional, at least one
required. `text` triggers a re-chunk; `name` alone does not.

# components.schemas.PatchedUpdateTextSource.properties.text.description
Replacement text. Omit to keep the existing content.

# components.schemas.PatchedUser.properties.pending_email.title
Pending email address awaiting verification

# components.schemas.PatchedUser.properties.notification_settings.description
Map of notification preferences. Keys include `plugin_disabled`, `all_weekly_report_disabled`, `project_weekly_digest_disabled`, `error_tracking_weekly_digest_project_enabled`, `web_analytics_weekly_digest_project_enabled`, `organization_member_join_email_disabled`, `data_pipeline_error_threshold` (number between 0.0 and 1.0), and other per-topic switches. Values are either booleans, or (for per-project/per-resource keys) a map of IDs to booleans. Only the keys you send are updated — other preferences stay as-is.

# components.schemas.PatchedUser.properties.anonymize_data.description
Whether PostHog should anonymize events captured for this user when identified.

# components.schemas.PatchedUser.properties.is_staff.description
Designates whether the user can log into this admin site.

# components.schemas.PatchedUser.properties.current_password.description
The user's current password. Required when changing `password` if the user already has a usable password set.

# components.schemas.PatchedUser.properties.passkeys_enabled_for_2fa.description
Whether passkeys are enabled for 2FA authentication. Users can disable this to use only TOTP for 2FA while keeping passkeys for login.

# components.schemas.PatchedUser.properties.hide_mcp_hints.description
When true, the user has opted out of in-app hints promoting the PostHog MCP integration after taking actions.

# components.schemas.PatchedUser.properties.onboarding_delegated_to_organization_id.description
Organization ID of the pending delegation invite, if any. Used by the frontend to scope the 'waiting for teammate' UI to the org where delegation was initiated.

# components.schemas.PatchedUser.properties.active_realtime_notification_types.description
Real-time notification types that currently have a live dispatch site. Drives the in-app notifications settings UI. Read-only.

# components.schemas.PatchedUser.properties.requires_credential_review.description
True if the user has at least one Personal API Key and has not yet acknowledged their existing credentials. Used to gate a one-shot review screen on first post-provisioning login. Becomes False once the user POSTs to `/api/users/@me/credentials_review_complete/`. Read-only.

# components.schemas.PatchedUserInterview.properties.classifications.description
Searchable classifications on the response. `abandoned` is auto-derived from the transcript when the interview is recorded; `off-topic` is set manually. Sending `classifications` on an update replaces the whole list — pass the full desired set, not a delta.

# components.schemas.PatchedUserInterviewTopic.properties.interviewee_emails.description
Email addresses of people to interview. May be combined with interviewee_distinct_ids.

# components.schemas.PatchedUserInterviewTopic.properties.interviewee_distinct_ids.description
PostHog distinct IDs of people to interview. May be combined with interviewee_emails.

# components.schemas.PatchedUserInterviewTopic.properties.topic.description
The product, feature, or idea you want to ask interviewees about.

# components.schemas.PatchedUserInterviewTopic.properties.agent_context.description
Optional additional system prompt for the voice agent — extra background, tone, or constraints.

# components.schemas.PatchedUserInterviewTopic.properties.questions.description
Ordered list of questions the voice agent should work through during the interview.

# components.schemas.PatchedUserInterviewTopic.properties.invite_subject.description
Subject line for the invitation email. Plain text only — URLs, angle brackets, and control characters are rejected. Leave blank to use the default subject. Personalization is handled by the email template, so do not include placeholders.

# components.schemas.PatchedUserInterviewTopic.properties.invite_message.description
Intro message shown in the invitation email body, above the interview link. Plain prose only — URLs, angle brackets, and control characters are rejected (line breaks are allowed). Leave blank to use the default copy.

# components.schemas.PatchedWebExperimentsAPI.description
Serializer for the exposed /api/web_experiments endpoint, to be used in posthog-js and for headless APIs.

# components.schemas.PatchedWebExperimentsAPI.properties.variants.description
Variants for the web experiment. Example:

        {
            "control": {
                "transforms": [
                    {
                        "text": "Here comes Superman!",
                        "html": "",
                        "selector": "#page > #body > .header h1"
                    }
                ],
                "conditions": "None",
                "rollout_percentage": 50
            },
        }

# components.schemas.PathsQuery.properties.dataColorTheme.description
Colors used in the insight's visualization

# components.schemas.PathsQuery.properties.filterTestAccounts.description
Exclude internal and test users by applying the respective filters

# components.schemas.PathsQuery.properties.funnelPathsFilter.description
Used for displaying paths in relation to funnel steps.

# components.schemas.PathsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.PathsQuery.properties.pathsFilter.description
Properties specific to the paths insight

# components.schemas.PathsQuery.properties.tags.description
Tags that will be added to the Query log comment

# components.schemas.PathsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.PathsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.PathsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.PathsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.PathsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.PathsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.PathsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.PauseResponse.properties.paused_until.description
The timestamp the pipeline is paused until.

# components.schemas.PauseStateResponse.properties.paused_until.description
The timestamp the pipeline is paused until, or null if not paused/not running.

# components.schemas.PauseUntilRequest.properties.timestamp.description
Pause the grouping pipeline until this timestamp (ISO 8601).

# components.schemas.PendingInvite.description
Shape of each item in UserSerializer.pending_invites.

# components.schemas.PersistedFolder.properties.type.description
Which persisted folder this is for the user (home, pinned, custom_products).

* `home` - Home
* `pinned` - Pinned
* `custom_products` - Custom Products

# components.schemas.PersistedFolder.properties.protocol.description
Protocol prefix of the folder location, e.g. 'products://'.

# components.schemas.PersistedFolder.properties.path.description
Path within the protocol that the folder resolves to.

# components.schemas.PersistedFolderTypeEnum.description
* `home` - Home
* `pinned` - Pinned
* `custom_products` - Custom Products

# components.schemas.PersonBulkDeleteRequest.properties.ids.description
A list of PostHog person UUIDs to delete (max 1000).

# components.schemas.PersonBulkDeleteRequest.properties.distinct_ids.description
A list of distinct IDs whose associated persons will be deleted (max 1000).

# components.schemas.PersonBulkDeleteRequest.properties.delete_events.description
If true, queue deletion of all events associated with these persons.

# components.schemas.PersonBulkDeleteRequest.properties.delete_recordings.description
If true, queue deletion of all recordings associated with these persons.

# components.schemas.PersonBulkDeleteRequest.properties.keep_person.description
If true, keep the person records but delete their events and recordings.

# components.schemas.PersonBulkDeleteResponse.properties.persons_found.description
Number of persons matched by the provided IDs or distinct IDs.

# components.schemas.PersonBulkDeleteResponse.properties.persons_deleted.description
Number of person records deleted from the database. 0 if keep_person was true.

# components.schemas.PersonBulkDeleteResponse.properties.events_queued_for_deletion.description
Whether event deletion was requested for the matched persons. If a deletion was already queued for a person, it will not be duplicated.

# components.schemas.PersonBulkDeleteResponse.properties.recordings_queued_for_deletion.description
Whether recording deletion was requested for the matched persons. If a deletion was already queued for a person, it will not be duplicated.

# components.schemas.PersonBulkDeleteResponse.properties.deletion_errors.description
Persons that could not be deleted. Each entry contains 'person_uuid'. Contact support if this persists.

# components.schemas.PersonDeletePropertyRequest.properties.$unset.description
The property key to remove from this person.

# components.schemas.PersonPropertiesAtTimeMetadata.description
Serializer for the point-in-time query metadata.

# components.schemas.PersonPropertiesAtTimeMetadata.properties.queried_timestamp.description
The timestamp that was queried in ISO format

# components.schemas.PersonPropertiesAtTimeMetadata.properties.include_set_once.description
Whether $set_once operations were included

# components.schemas.PersonPropertiesAtTimeMetadata.properties.distinct_id_used.description
The distinct_id parameter used in the request

# components.schemas.PersonPropertiesAtTimeMetadata.properties.person_id_used.description
The person_id parameter used in the request

# components.schemas.PersonPropertiesAtTimeMetadata.properties.query_mode.description
Whether the query used 'distinct_id' or 'person_id' mode

# components.schemas.PersonPropertiesAtTimeMetadata.properties.distinct_ids_queried.description
All distinct_ids that were queried for this person

# components.schemas.PersonPropertiesAtTimeMetadata.properties.distinct_ids_count.description
Number of distinct_ids associated with this person

# components.schemas.PersonPropertiesAtTimeResponse.description
Serializer for the point-in-time person properties response.

# components.schemas.PersonPropertiesAtTimeResponse.properties.distinct_ids.description
All distinct IDs associated with this person

# components.schemas.PersonPropertiesAtTimeResponse.properties.properties.description
Person properties as they existed at the specified time

# components.schemas.PersonRecord.properties.name.description
Display name derived from person properties (email, name, or username).

# components.schemas.PersonRecord.properties.properties.description
Key-value map of person properties set via $set and $set_once operations.

# components.schemas.PersonRecord.properties.created_at.description
When this person was first seen (ISO 8601).

# components.schemas.PersonRecord.properties.uuid.description
Unique identifier (UUID) for this person.

# components.schemas.PersonRecord.properties.last_seen_at.description
Timestamp of the last event from this person, or null.

# components.schemas.PersonUpdatePropertyRequest.properties.value.description
The property value. Can be a string, number, boolean, or object.

# components.schemas.PersonalSpendAnalysisResponse.description
Structured personal LLM spend analysis for the requesting user.

# components.schemas.PersonalSpendAnalysisResponse.properties.summary.description
High-level totals for the lookback window.

# components.schemas.PersonalSpendAnalysisResponse.properties.by_product.description
Spend grouped by the `ai_product` property — always across all products, never filtered.

# components.schemas.PersonalSpendAnalysisResponse.properties.by_tool.description
Spend grouped by tool. Scoped to `product` when set.

# components.schemas.PersonalSpendAnalysisResponse.properties.by_model.description
Spend grouped by `$ai_model`. Scoped to `product` when set.

# components.schemas.PersonalSpendAnalysisResponse.properties.top_traces.description
Deprecated — always returns `{items: [], truncated: false}`. Trace IDs are opaque strings that aren't actionable in the UI. Kept in the response shape so existing consumers don't crash; remove your rendering of this field and we'll drop it from the response entirely in a follow-up.

# components.schemas.PersonsNode.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.PersonsNode.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.PersonsNode.properties.properties.description
Properties configurable in the interface

# components.schemas.PersonsNode.properties.version.description
version of the node, used for schema migrations

# components.schemas.PinnedSceneTab.properties.id.description
Stable identifier for the tab. Generated client-side; safe to omit on create.

# components.schemas.PinnedSceneTab.properties.pathname.description
URL pathname the tab points at — for example `/project/123/dashboard/45` or `/project/123/insights`. Combined with `search` and `hash` to reconstruct the destination.

# components.schemas.PinnedSceneTab.properties.search.description
Query string portion of the URL, including the leading `?`. Empty string when there is no query.

# components.schemas.PinnedSceneTab.properties.hash.description
Fragment portion of the URL, including the leading `#`. Empty string when there is no fragment.

# components.schemas.PinnedSceneTab.properties.title.description
Default tab title derived from the destination scene. Used when `customTitle` is not set.

# components.schemas.PinnedSceneTab.properties.customTitle.description
Optional user-provided title that overrides `title` in the navigation UI.

# components.schemas.PinnedSceneTab.properties.iconType.description
Icon key shown next to the tab in the sidebar — for example `dashboard`, `insight`, `blank`.

# components.schemas.PinnedSceneTab.properties.sceneId.description
Scene identifier resolved from the pathname when known — used by the frontend for icon/title hints.

# components.schemas.PinnedSceneTab.properties.sceneKey.description
Scene key (logic key) for the destination, paired with `sceneParams` for deeper routing context.

# components.schemas.PinnedSceneTab.properties.sceneParams.description
Free-form scene parameters captured at pin time, used by the frontend to rehydrate the destination.

# components.schemas.PinnedSceneTab.properties.pinned.description
Whether this entry is pinned. Always coerced to true on save — pass true or omit.

# components.schemas.PinnedSceneTabs.properties.tabs.description
Ordered list of pinned navigation tabs shown in the sidebar for the authenticated user within the current team. Send the full list to replace the existing pins; omit to leave them unchanged.

# components.schemas.PinnedSceneTabs.properties.homepage.description
Tab descriptor for the user's chosen home page — the destination opened when they click the PostHog logo or hit `/`. Set to a tab descriptor to pick a homepage, send `null` or `{}` to clear it and fall back to the project default.

# components.schemas.PluginLogEntrySourceEnum.description
* `SYSTEM` - SYSTEM
* `PLUGIN` - PLUGIN
* `CONSOLE` - CONSOLE

# components.schemas.PluginLogEntryTypeEnum.description
* `DEBUG` - DEBUG
* `LOG` - LOG
* `INFO` - INFO
* `WARN` - WARN
* `ERROR` - ERROR

# components.schemas.PreprocessingConfig.properties.diffs_n.description
Order of differencing. 0 = raw values, 1 = first-order diffs (default: 0)

# components.schemas.PreprocessingConfig.properties.lags_n.description
Number of lag features. 0 = none, >0 = include n lagged values (default: 0)

# components.schemas.PreprocessingConfig.properties.smooth_n.description
Moving average window size. 0 = no smoothing, >1 = smooth over n points (default: 0)

# components.schemas.PrimaryPropertiesResponse.properties.primary_properties.description
Mapping from event name to the team-configured primary property for that event. Names without a configured primary property are omitted; callers should fall back to the core taxonomy defaults for those.

# components.schemas.PriorityEnum.description
* `low` - Low
* `medium` - Medium
* `high` - High

# components.schemas.ProductIntentEntry.properties.product_type.description
Product key the team signaled intent to use.

# components.schemas.ProductIntentEntry.properties.activated_at.description
ISO-8601 timestamp the team activated the product, or null if intent only.

# components.schemas.ProductIntentEntry.properties.created_at.description
ISO-8601 timestamp the intent was first recorded.

# components.schemas.ProductTour.properties.targeting_flag_filters.description
Return the targeting flag filters, excluding the base exclusion properties.

# components.schemas.ProductTourSerializerCreateUpdateOnly.description
Serializer for creating and updating ProductTour.

# components.schemas.ProductTourSerializerCreateUpdateOnly.properties.creation_context.description
Where the tour was created/updated from

* `app` - app
* `toolbar` - toolbar

# components.schemas.ProjectBackwardCompat.description
Mixin for serializers to add user access control fields

# components.schemas.ProjectBackwardCompat.properties.product_description.description
Short description of what the project is about. This is helpful to give our AI agents context about your project.

# components.schemas.ProjectBackwardCompat.properties.anonymize_ips.description
When true, PostHog drops the IP address from every ingested event.

# components.schemas.ProjectBackwardCompat.properties.test_account_filters.description
Filter groups that identify internal/test traffic to be excluded from insights.

# components.schemas.ProjectBackwardCompat.properties.test_account_filters_default_checked.description
When true, new insights default to excluding internal/test users.

# components.schemas.ProjectBackwardCompat.properties.path_cleaning_filters.description
Regex rewrite rules that collapse dynamic path segments (e.g. user IDs) before displaying URLs in paths.

# components.schemas.ProjectBackwardCompat.properties.timezone.description
IANA timezone used for date-based filters and reporting (e.g. `America/Los_Angeles`).

* `Africa/Abidjan` - Africa/Abidjan
* `Africa/Accra` - Africa/Accra
* `Africa/Addis_Ababa` - Africa/Addis_Ababa
* `Africa/Algiers` - Africa/Algiers
* `Africa/Asmara` - Africa/Asmara
* `Africa/Asmera` - Africa/Asmera
* `Africa/Bamako` - Africa/Bamako
* `Africa/Bangui` - Africa/Bangui
* `Africa/Banjul` - Africa/Banjul
* `Africa/Bissau` - Africa/Bissau
* `Africa/Blantyre` - Africa/Blantyre
* `Africa/Brazzaville` - Africa/Brazzaville
* `Africa/Bujumbura` - Africa/Bujumbura
* `Africa/Cairo` - Africa/Cairo
* `Africa/Casablanca` - Africa/Casablanca
* `Africa/Ceuta` - Africa/Ceuta
* `Africa/Conakry` - Africa/Conakry
* `Africa/Dakar` - Africa/Dakar
* `Africa/Dar_es_Salaam` - Africa/Dar_es_Salaam
* `Africa/Djibouti` - Africa/Djibouti
* `Africa/Douala` - Africa/Douala
* `Africa/El_Aaiun` - Africa/El_Aaiun
* `Africa/Freetown` - Africa/Freetown
* `Africa/Gaborone` - Africa/Gaborone
* `Africa/Harare` - Africa/Harare
* `Africa/Johannesburg` - Africa/Johannesburg
* `Africa/Juba` - Africa/Juba
* `Africa/Kampala` - Africa/Kampala
* `Africa/Khartoum` - Africa/Khartoum
* `Africa/Kigali` - Africa/Kigali
* `Africa/Kinshasa` - Africa/Kinshasa
* `Africa/Lagos` - Africa/Lagos
* `Africa/Libreville` - Africa/Libreville
* `Africa/Lome` - Africa/Lome
* `Africa/Luanda` - Africa/Luanda
* `Africa/Lubumbashi` - Africa/Lubumbashi
* `Africa/Lusaka` - Africa/Lusaka
* `Africa/Malabo` - Africa/Malabo
* `Africa/Maputo` - Africa/Maputo
* `Africa/Maseru` - Africa/Maseru
* `Africa/Mbabane` - Africa/Mbabane
* `Africa/Mogadishu` - Africa/Mogadishu
* `Africa/Monrovia` - Africa/Monrovia
* `Africa/Nairobi` - Africa/Nairobi
* `Africa/Ndjamena` - Africa/Ndjamena
* `Africa/Niamey` - Africa/Niamey
* `Africa/Nouakchott` - Africa/Nouakchott
* `Africa/Ouagadougou` - Africa/Ouagadougou
* `Africa/Porto-Novo` - Africa/Porto-Novo
* `Africa/Sao_Tome` - Africa/Sao_Tome
* `Africa/Timbuktu` - Africa/Timbuktu
* `Africa/Tripoli` - Africa/Tripoli
* `Africa/Tunis` - Africa/Tunis
* `Africa/Windhoek` - Africa/Windhoek
* `America/Adak` - America/Adak
* `America/Anchorage` - America/Anchorage
* `America/Anguilla` - America/Anguilla
* `America/Antigua` - America/Antigua
* `America/Araguaina` - America/Araguaina
* `America/Argentina/Buenos_Aires` - America/Argentina/Buenos_Aires
* `America/Argentina/Catamarca` - America/Argentina/Catamarca
* `America/Argentina/ComodRivadavia` - America/Argentina/ComodRivadavia
* `America/Argentina/Cordoba` - America/Argentina/Cordoba
* `America/Argentina/Jujuy` - America/Argentina/Jujuy
* `America/Argentina/La_Rioja` - America/Argentina/La_Rioja
* `America/Argentina/Mendoza` - America/Argentina/Mendoza
* `America/Argentina/Rio_Gallegos` - America/Argentina/Rio_Gallegos
* `America/Argentina/Salta` - America/Argentina/Salta
* `America/Argentina/San_Juan` - America/Argentina/San_Juan
* `America/Argentina/San_Luis` - America/Argentina/San_Luis
* `America/Argentina/Tucuman` - America/Argentina/Tucuman
* `America/Argentina/Ushuaia` - America/Argentina/Ushuaia
* `America/Aruba` - America/Aruba
* `America/Asuncion` - America/Asuncion
* `America/Atikokan` - America/Atikokan
* `America/Atka` - America/Atka
* `America/Bahia` - America/Bahia
* `America/Bahia_Banderas` - America/Bahia_Banderas
* `America/Barbados` - America/Barbados
* `America/Belem` - America/Belem
* `America/Belize` - America/Belize
* `America/Blanc-Sablon` - America/Blanc-Sablon
* `America/Boa_Vista` - America/Boa_Vista
* `America/Bogota` - America/Bogota
* `America/Boise` - America/Boise
* `America/Buenos_Aires` - America/Buenos_Aires
* `America/Cambridge_Bay` - America/Cambridge_Bay
* `America/Campo_Grande` - America/Campo_Grande
* `America/Cancun` - America/Cancun
* `America/Caracas` - America/Caracas
* `America/Catamarca` - America/Catamarca
* `America/Cayenne` - America/Cayenne
* `America/Cayman` - America/Cayman
* `America/Chicago` - America/Chicago
* `America/Chihuahua` - America/Chihuahua
* `America/Ciudad_Juarez` - America/Ciudad_Juarez
* `America/Coral_Harbour` - America/Coral_Harbour
* `America/Cordoba` - America/Cordoba
* `America/Costa_Rica` - America/Costa_Rica
* `America/Creston` - America/Creston
* `America/Cuiaba` - America/Cuiaba
* `America/Curacao` - America/Curacao
* `America/Danmarkshavn` - America/Danmarkshavn
* `America/Dawson` - America/Dawson
* `America/Dawson_Creek` - America/Dawson_Creek
* `America/Denver` - America/Denver
* `America/Detroit` - America/Detroit
* `America/Dominica` - America/Dominica
* `America/Edmonton` - America/Edmonton
* `America/Eirunepe` - America/Eirunepe
* `America/El_Salvador` - America/El_Salvador
* `America/Ensenada` - America/Ensenada
* `America/Fort_Nelson` - America/Fort_Nelson
* `America/Fort_Wayne` - America/Fort_Wayne
* `America/Fortaleza` - America/Fortaleza
* `America/Glace_Bay` - America/Glace_Bay
* `America/Godthab` - America/Godthab
* `America/Goose_Bay` - America/Goose_Bay
* `America/Grand_Turk` - America/Grand_Turk
* `America/Grenada` - America/Grenada
* `America/Guadeloupe` - America/Guadeloupe
* `America/Guatemala` - America/Guatemala
* `America/Guayaquil` - America/Guayaquil
* `America/Guyana` - America/Guyana
* `America/Halifax` - America/Halifax
* `America/Havana` - America/Havana
* `America/Hermosillo` - America/Hermosillo
* `America/Indiana/Indianapolis` - America/Indiana/Indianapolis
* `America/Indiana/Knox` - America/Indiana/Knox
* `America/Indiana/Marengo` - America/Indiana/Marengo
* `America/Indiana/Petersburg` - America/Indiana/Petersburg
* `America/Indiana/Tell_City` - America/Indiana/Tell_City
* `America/Indiana/Vevay` - America/Indiana/Vevay
* `America/Indiana/Vincennes` - America/Indiana/Vincennes
* `America/Indiana/Winamac` - America/Indiana/Winamac
* `America/Indianapolis` - America/Indianapolis
* `America/Inuvik` - America/Inuvik
* `America/Iqaluit` - America/Iqaluit
* `America/Jamaica` - America/Jamaica
* `America/Jujuy` - America/Jujuy
* `America/Juneau` - America/Juneau
* `America/Kentucky/Louisville` - America/Kentucky/Louisville
* `America/Kentucky/Monticello` - America/Kentucky/Monticello
* `America/Knox_IN` - America/Knox_IN
* `America/Kralendijk` - America/Kralendijk
* `America/La_Paz` - America/La_Paz
* `America/Lima` - America/Lima
* `America/Los_Angeles` - America/Los_Angeles
* `America/Louisville` - America/Louisville
* `America/Lower_Princes` - America/Lower_Princes
* `America/Maceio` - America/Maceio
* `America/Managua` - America/Managua
* `America/Manaus` - America/Manaus
* `America/Marigot` - America/Marigot
* `America/Martinique` - America/Martinique
* `America/Matamoros` - America/Matamoros
* `America/Mazatlan` - America/Mazatlan
* `America/Mendoza` - America/Mendoza
* `America/Menominee` - America/Menominee
* `America/Merida` - America/Merida
* `America/Metlakatla` - America/Metlakatla
* `America/Mexico_City` - America/Mexico_City
* `America/Miquelon` - America/Miquelon
* `America/Moncton` - America/Moncton
* `America/Monterrey` - America/Monterrey
* `America/Montevideo` - America/Montevideo
* `America/Montreal` - America/Montreal
* `America/Montserrat` - America/Montserrat
* `America/Nassau` - America/Nassau
* `America/New_York` - America/New_York
* `America/Nipigon` - America/Nipigon
* `America/Nome` - America/Nome
* `America/Noronha` - America/Noronha
* `America/North_Dakota/Beulah` - America/North_Dakota/Beulah
* `America/North_Dakota/Center` - America/North_Dakota/Center
* `America/North_Dakota/New_Salem` - America/North_Dakota/New_Salem
* `America/Nuuk` - America/Nuuk
* `America/Ojinaga` - America/Ojinaga
* `America/Panama` - America/Panama
* `America/Pangnirtung` - America/Pangnirtung
* `America/Paramaribo` - America/Paramaribo
* `America/Phoenix` - America/Phoenix
* `America/Port-au-Prince` - America/Port-au-Prince
* `America/Port_of_Spain` - America/Port_of_Spain
* `America/Porto_Acre` - America/Porto_Acre
* `America/Porto_Velho` - America/Porto_Velho
* `America/Puerto_Rico` - America/Puerto_Rico
* `America/Punta_Arenas` - America/Punta_Arenas
* `America/Rainy_River` - America/Rainy_River
* `America/Rankin_Inlet` - America/Rankin_Inlet
* `America/Recife` - America/Recife
* `America/Regina` - America/Regina
* `America/Resolute` - America/Resolute
* `America/Rio_Branco` - America/Rio_Branco
* `America/Rosario` - America/Rosario
* `America/Santa_Isabel` - America/Santa_Isabel
* `America/Santarem` - America/Santarem
* `America/Santiago` - America/Santiago
* `America/Santo_Domingo` - America/Santo_Domingo
* `America/Sao_Paulo` - America/Sao_Paulo
* `America/Scoresbysund` - America/Scoresbysund
* `America/Shiprock` - America/Shiprock
* `America/Sitka` - America/Sitka
* `America/St_Barthelemy` - America/St_Barthelemy
* `America/St_Johns` - America/St_Johns
* `America/St_Kitts` - America/St_Kitts
* `America/St_Lucia` - America/St_Lucia
* `America/St_Thomas` - America/St_Thomas
* `America/St_Vincent` - America/St_Vincent
* `America/Swift_Current` - America/Swift_Current
* `America/Tegucigalpa` - America/Tegucigalpa
* `America/Thule` - America/Thule
* `America/Thunder_Bay` - America/Thunder_Bay
* `America/Tijuana` - America/Tijuana
* `America/Toronto` - America/Toronto
* `America/Tortola` - America/Tortola
* `America/Vancouver` - America/Vancouver
* `America/Virgin` - America/Virgin
* `America/Whitehorse` - America/Whitehorse
* `America/Winnipeg` - America/Winnipeg
* `America/Yakutat` - America/Yakutat
* `America/Yellowknife` - America/Yellowknife
* `Antarctica/Casey` - Antarctica/Casey
* `Antarctica/Davis` - Antarctica/Davis
* `Antarctica/DumontDUrville` - Antarctica/DumontDUrville
* `Antarctica/Macquarie` - Antarctica/Macquarie
* `Antarctica/Mawson` - Antarctica/Mawson
* `Antarctica/McMurdo` - Antarctica/McMurdo
* `Antarctica/Palmer` - Antarctica/Palmer
* `Antarctica/Rothera` - Antarctica/Rothera
* `Antarctica/South_Pole` - Antarctica/South_Pole
* `Antarctica/Syowa` - Antarctica/Syowa
* `Antarctica/Troll` - Antarctica/Troll
* `Antarctica/Vostok` - Antarctica/Vostok
* `Arctic/Longyearbyen` - Arctic/Longyearbyen
* `Asia/Aden` - Asia/Aden
* `Asia/Almaty` - Asia/Almaty
* `Asia/Amman` - Asia/Amman
* `Asia/Anadyr` - Asia/Anadyr
* `Asia/Aqtau` - Asia/Aqtau
* `Asia/Aqtobe` - Asia/Aqtobe
* `Asia/Ashgabat` - Asia/Ashgabat
* `Asia/Ashkhabad` - Asia/Ashkhabad
* `Asia/Atyrau` - Asia/Atyrau
* `Asia/Baghdad` - Asia/Baghdad
* `Asia/Bahrain` - Asia/Bahrain
* `Asia/Baku` - Asia/Baku
* `Asia/Bangkok` - Asia/Bangkok
* `Asia/Barnaul` - Asia/Barnaul
* `Asia/Beirut` - Asia/Beirut
* `Asia/Bishkek` - Asia/Bishkek
* `Asia/Brunei` - Asia/Brunei
* `Asia/Calcutta` - Asia/Calcutta
* `Asia/Chita` - Asia/Chita
* `Asia/Choibalsan` - Asia/Choibalsan
* `Asia/Chongqing` - Asia/Chongqing
* `Asia/Chungking` - Asia/Chungking
* `Asia/Colombo` - Asia/Colombo
* `Asia/Dacca` - Asia/Dacca
* `Asia/Damascus` - Asia/Damascus
* `Asia/Dhaka` - Asia/Dhaka
* `Asia/Dili` - Asia/Dili
* `Asia/Dubai` - Asia/Dubai
* `Asia/Dushanbe` - Asia/Dushanbe
* `Asia/Famagusta` - Asia/Famagusta
* `Asia/Gaza` - Asia/Gaza
* `Asia/Harbin` - Asia/Harbin
* `Asia/Hebron` - Asia/Hebron
* `Asia/Ho_Chi_Minh` - Asia/Ho_Chi_Minh
* `Asia/Hong_Kong` - Asia/Hong_Kong
* `Asia/Hovd` - Asia/Hovd
* `Asia/Irkutsk` - Asia/Irkutsk
* `Asia/Istanbul` - Asia/Istanbul
* `Asia/Jakarta` - Asia/Jakarta
* `Asia/Jayapura` - Asia/Jayapura
* `Asia/Jerusalem` - Asia/Jerusalem
* `Asia/Kabul` - Asia/Kabul
* `Asia/Kamchatka` - Asia/Kamchatka
* `Asia/Karachi` - Asia/Karachi
* `Asia/Kashgar` - Asia/Kashgar
* `Asia/Kathmandu` - Asia/Kathmandu
* `Asia/Katmandu` - Asia/Katmandu
* `Asia/Khandyga` - Asia/Khandyga
* `Asia/Kolkata` - Asia/Kolkata
* `Asia/Krasnoyarsk` - Asia/Krasnoyarsk
* `Asia/Kuala_Lumpur` - Asia/Kuala_Lumpur
* `Asia/Kuching` - Asia/Kuching
* `Asia/Kuwait` - Asia/Kuwait
* `Asia/Macao` - Asia/Macao
* `Asia/Macau` - Asia/Macau
* `Asia/Magadan` - Asia/Magadan
* `Asia/Makassar` - Asia/Makassar
* `Asia/Manila` - Asia/Manila
* `Asia/Muscat` - Asia/Muscat
* `Asia/Nicosia` - Asia/Nicosia
* `Asia/Novokuznetsk` - Asia/Novokuznetsk
* `Asia/Novosibirsk` - Asia/Novosibirsk
* `Asia/Omsk` - Asia/Omsk
* `Asia/Oral` - Asia/Oral
* `Asia/Phnom_Penh` - Asia/Phnom_Penh
* `Asia/Pontianak` - Asia/Pontianak
* `Asia/Pyongyang` - Asia/Pyongyang
* `Asia/Qatar` - Asia/Qatar
* `Asia/Qostanay` - Asia/Qostanay
* `Asia/Qyzylorda` - Asia/Qyzylorda
* `Asia/Rangoon` - Asia/Rangoon
* `Asia/Riyadh` - Asia/Riyadh
* `Asia/Saigon` - Asia/Saigon
* `Asia/Sakhalin` - Asia/Sakhalin
* `Asia/Samarkand` - Asia/Samarkand
* `Asia/Seoul` - Asia/Seoul
* `Asia/Shanghai` - Asia/Shanghai
* `Asia/Singapore` - Asia/Singapore
* `Asia/Srednekolymsk` - Asia/Srednekolymsk
* `Asia/Taipei` - Asia/Taipei
* `Asia/Tashkent` - Asia/Tashkent
* `Asia/Tbilisi` - Asia/Tbilisi
* `Asia/Tehran` - Asia/Tehran
* `Asia/Tel_Aviv` - Asia/Tel_Aviv
* `Asia/Thimbu` - Asia/Thimbu
* `Asia/Thimphu` - Asia/Thimphu
* `Asia/Tokyo` - Asia/Tokyo
* `Asia/Tomsk` - Asia/Tomsk
* `Asia/Ujung_Pandang` - Asia/Ujung_Pandang
* `Asia/Ulaanbaatar` - Asia/Ulaanbaatar
* `Asia/Ulan_Bator` - Asia/Ulan_Bator
* `Asia/Urumqi` - Asia/Urumqi
* `Asia/Ust-Nera` - Asia/Ust-Nera
* `Asia/Vientiane` - Asia/Vientiane
* `Asia/Vladivostok` - Asia/Vladivostok
* `Asia/Yakutsk` - Asia/Yakutsk
* `Asia/Yangon` - Asia/Yangon
* `Asia/Yekaterinburg` - Asia/Yekaterinburg
* `Asia/Yerevan` - Asia/Yerevan
* `Atlantic/Azores` - Atlantic/Azores
* `Atlantic/Bermuda` - Atlantic/Bermuda
* `Atlantic/Canary` - Atlantic/Canary
* `Atlantic/Cape_Verde` - Atlantic/Cape_Verde
* `Atlantic/Faeroe` - Atlantic/Faeroe
* `Atlantic/Faroe` - Atlantic/Faroe
* `Atlantic/Jan_Mayen` - Atlantic/Jan_Mayen
* `Atlantic/Madeira` - Atlantic/Madeira
* `Atlantic/Reykjavik` - Atlantic/Reykjavik
* `Atlantic/South_Georgia` - Atlantic/South_Georgia
* `Atlantic/St_Helena` - Atlantic/St_Helena
* `Atlantic/Stanley` - Atlantic/Stanley
* `Australia/ACT` - Australia/ACT
* `Australia/Adelaide` - Australia/Adelaide
* `Australia/Brisbane` - Australia/Brisbane
* `Australia/Broken_Hill` - Australia/Broken_Hill
* `Australia/Canberra` - Australia/Canberra
* `Australia/Currie` - Australia/Currie
* `Australia/Darwin` - Australia/Darwin
* `Australia/Eucla` - Australia/Eucla
* `Australia/Hobart` - Australia/Hobart
* `Australia/LHI` - Australia/LHI
* `Australia/Lindeman` - Australia/Lindeman
* `Australia/Lord_Howe` - Australia/Lord_Howe
* `Australia/Melbourne` - Australia/Melbourne
* `Australia/NSW` - Australia/NSW
* `Australia/North` - Australia/North
* `Australia/Perth` - Australia/Perth
* `Australia/Queensland` - Australia/Queensland
* `Australia/South` - Australia/South
* `Australia/Sydney` - Australia/Sydney
* `Australia/Tasmania` - Australia/Tasmania
* `Australia/Victoria` - Australia/Victoria
* `Australia/West` - Australia/West
* `Australia/Yancowinna` - Australia/Yancowinna
* `Brazil/Acre` - Brazil/Acre
* `Brazil/DeNoronha` - Brazil/DeNoronha
* `Brazil/East` - Brazil/East
* `Brazil/West` - Brazil/West
* `CET` - CET
* `CST6CDT` - CST6CDT
* `Canada/Atlantic` - Canada/Atlantic
* `Canada/Central` - Canada/Central
* `Canada/Eastern` - Canada/Eastern
* `Canada/Mountain` - Canada/Mountain
* `Canada/Newfoundland` - Canada/Newfoundland
* `Canada/Pacific` - Canada/Pacific
* `Canada/Saskatchewan` - Canada/Saskatchewan
* `Canada/Yukon` - Canada/Yukon
* `Chile/Continental` - Chile/Continental
* `Chile/EasterIsland` - Chile/EasterIsland
* `Cuba` - Cuba
* `EET` - EET
* `EST` - EST
* `EST5EDT` - EST5EDT
* `Egypt` - Egypt
* `Eire` - Eire
* `Etc/GMT` - Etc/GMT
* `Etc/GMT+0` - Etc/GMT+0
* `Etc/GMT+1` - Etc/GMT+1
* `Etc/GMT+10` - Etc/GMT+10
* `Etc/GMT+11` - Etc/GMT+11
* `Etc/GMT+12` - Etc/GMT+12
* `Etc/GMT+2` - Etc/GMT+2
* `Etc/GMT+3` - Etc/GMT+3
* `Etc/GMT+4` - Etc/GMT+4
* `Etc/GMT+5` - Etc/GMT+5
* `Etc/GMT+6` - Etc/GMT+6
* `Etc/GMT+7` - Etc/GMT+7
* `Etc/GMT+8` - Etc/GMT+8
* `Etc/GMT+9` - Etc/GMT+9
* `Etc/GMT-0` - Etc/GMT-0
* `Etc/GMT-1` - Etc/GMT-1
* `Etc/GMT-10` - Etc/GMT-10
* `Etc/GMT-11` - Etc/GMT-11
* `Etc/GMT-12` - Etc/GMT-12
* `Etc/GMT-13` - Etc/GMT-13
* `Etc/GMT-14` - Etc/GMT-14
* `Etc/GMT-2` - Etc/GMT-2
* `Etc/GMT-3` - Etc/GMT-3
* `Etc/GMT-4` - Etc/GMT-4
* `Etc/GMT-5` - Etc/GMT-5
* `Etc/GMT-6` - Etc/GMT-6
* `Etc/GMT-7` - Etc/GMT-7
* `Etc/GMT-8` - Etc/GMT-8
* `Etc/GMT-9` - Etc/GMT-9
* `Etc/GMT0` - Etc/GMT0
* `Etc/Greenwich` - Etc/Greenwich
* `Etc/UCT` - Etc/UCT
* `Etc/UTC` - Etc/UTC
* `Etc/Universal` - Etc/Universal
* `Etc/Zulu` - Etc/Zulu
* `Europe/Amsterdam` - Europe/Amsterdam
* `Europe/Andorra` - Europe/Andorra
* `Europe/Astrakhan` - Europe/Astrakhan
* `Europe/Athens` - Europe/Athens
* `Europe/Belfast` - Europe/Belfast
* `Europe/Belgrade` - Europe/Belgrade
* `Europe/Berlin` - Europe/Berlin
* `Europe/Bratislava` - Europe/Bratislava
* `Europe/Brussels` - Europe/Brussels
* `Europe/Bucharest` - Europe/Bucharest
* `Europe/Budapest` - Europe/Budapest
* `Europe/Busingen` - Europe/Busingen
* `Europe/Chisinau` - Europe/Chisinau
* `Europe/Copenhagen` - Europe/Copenhagen
* `Europe/Dublin` - Europe/Dublin
* `Europe/Gibraltar` - Europe/Gibraltar
* `Europe/Guernsey` - Europe/Guernsey
* `Europe/Helsinki` - Europe/Helsinki
* `Europe/Isle_of_Man` - Europe/Isle_of_Man
* `Europe/Istanbul` - Europe/Istanbul
* `Europe/Jersey` - Europe/Jersey
* `Europe/Kaliningrad` - Europe/Kaliningrad
* `Europe/Kiev` - Europe/Kiev
* `Europe/Kirov` - Europe/Kirov
* `Europe/Kyiv` - Europe/Kyiv
* `Europe/Lisbon` - Europe/Lisbon
* `Europe/Ljubljana` - Europe/Ljubljana
* `Europe/London` - Europe/London
* `Europe/Luxembourg` - Europe/Luxembourg
* `Europe/Madrid` - Europe/Madrid
* `Europe/Malta` - Europe/Malta
* `Europe/Mariehamn` - Europe/Mariehamn
* `Europe/Minsk` - Europe/Minsk
* `Europe/Monaco` - Europe/Monaco
* `Europe/Moscow` - Europe/Moscow
* `Europe/Nicosia` - Europe/Nicosia
* `Europe/Oslo` - Europe/Oslo
* `Europe/Paris` - Europe/Paris
* `Europe/Podgorica` - Europe/Podgorica
* `Europe/Prague` - Europe/Prague
* `Europe/Riga` - Europe/Riga
* `Europe/Rome` - Europe/Rome
* `Europe/Samara` - Europe/Samara
* `Europe/San_Marino` - Europe/San_Marino
* `Europe/Sarajevo` - Europe/Sarajevo
* `Europe/Saratov` - Europe/Saratov
* `Europe/Simferopol` - Europe/Simferopol
* `Europe/Skopje` - Europe/Skopje
* `Europe/Sofia` - Europe/Sofia
* `Europe/Stockholm` - Europe/Stockholm
* `Europe/Tallinn` - Europe/Tallinn
* `Europe/Tirane` - Europe/Tirane
* `Europe/Tiraspol` - Europe/Tiraspol
* `Europe/Ulyanovsk` - Europe/Ulyanovsk
* `Europe/Uzhgorod` - Europe/Uzhgorod
* `Europe/Vaduz` - Europe/Vaduz
* `Europe/Vatican` - Europe/Vatican
* `Europe/Vienna` - Europe/Vienna
* `Europe/Vilnius` - Europe/Vilnius
* `Europe/Volgograd` - Europe/Volgograd
* `Europe/Warsaw` - Europe/Warsaw
* `Europe/Zagreb` - Europe/Zagreb
* `Europe/Zaporozhye` - Europe/Zaporozhye
* `Europe/Zurich` - Europe/Zurich
* `GB` - GB
* `GB-Eire` - GB-Eire
* `GMT` - GMT
* `GMT+0` - GMT+0
* `GMT-0` - GMT-0
* `GMT0` - GMT0
* `Greenwich` - Greenwich
* `HST` - HST
* `Hongkong` - Hongkong
* `Iceland` - Iceland
* `Indian/Antananarivo` - Indian/Antananarivo
* `Indian/Chagos` - Indian/Chagos
* `Indian/Christmas` - Indian/Christmas
* `Indian/Cocos` - Indian/Cocos
* `Indian/Comoro` - Indian/Comoro
* `Indian/Kerguelen` - Indian/Kerguelen
* `Indian/Mahe` - Indian/Mahe
* `Indian/Maldives` - Indian/Maldives
* `Indian/Mauritius` - Indian/Mauritius
* `Indian/Mayotte` - Indian/Mayotte
* `Indian/Reunion` - Indian/Reunion
* `Iran` - Iran
* `Israel` - Israel
* `Jamaica` - Jamaica
* `Japan` - Japan
* `Kwajalein` - Kwajalein
* `Libya` - Libya
* `MET` - MET
* `MST` - MST
* `MST7MDT` - MST7MDT
* `Mexico/BajaNorte` - Mexico/BajaNorte
* `Mexico/BajaSur` - Mexico/BajaSur
* `Mexico/General` - Mexico/General
* `NZ` - NZ
* `NZ-CHAT` - NZ-CHAT
* `Navajo` - Navajo
* `PRC` - PRC
* `PST8PDT` - PST8PDT
* `Pacific/Apia` - Pacific/Apia
* `Pacific/Auckland` - Pacific/Auckland
* `Pacific/Bougainville` - Pacific/Bougainville
* `Pacific/Chatham` - Pacific/Chatham
* `Pacific/Chuuk` - Pacific/Chuuk
* `Pacific/Easter` - Pacific/Easter
* `Pacific/Efate` - Pacific/Efate
* `Pacific/Enderbury` - Pacific/Enderbury
* `Pacific/Fakaofo` - Pacific/Fakaofo
* `Pacific/Fiji` - Pacific/Fiji
* `Pacific/Funafuti` - Pacific/Funafuti
* `Pacific/Galapagos` - Pacific/Galapagos
* `Pacific/Gambier` - Pacific/Gambier
* `Pacific/Guadalcanal` - Pacific/Guadalcanal
* `Pacific/Guam` - Pacific/Guam
* `Pacific/Honolulu` - Pacific/Honolulu
* `Pacific/Johnston` - Pacific/Johnston
* `Pacific/Kanton` - Pacific/Kanton
* `Pacific/Kiritimati` - Pacific/Kiritimati
* `Pacific/Kosrae` - Pacific/Kosrae
* `Pacific/Kwajalein` - Pacific/Kwajalein
* `Pacific/Majuro` - Pacific/Majuro
* `Pacific/Marquesas` - Pacific/Marquesas
* `Pacific/Midway` - Pacific/Midway
* `Pacific/Nauru` - Pacific/Nauru
* `Pacific/Niue` - Pacific/Niue
* `Pacific/Norfolk` - Pacific/Norfolk
* `Pacific/Noumea` - Pacific/Noumea
* `Pacific/Pago_Pago` - Pacific/Pago_Pago
* `Pacific/Palau` - Pacific/Palau
* `Pacific/Pitcairn` - Pacific/Pitcairn
* `Pacific/Pohnpei` - Pacific/Pohnpei
* `Pacific/Ponape` - Pacific/Ponape
* `Pacific/Port_Moresby` - Pacific/Port_Moresby
* `Pacific/Rarotonga` - Pacific/Rarotonga
* `Pacific/Saipan` - Pacific/Saipan
* `Pacific/Samoa` - Pacific/Samoa
* `Pacific/Tahiti` - Pacific/Tahiti
* `Pacific/Tarawa` - Pacific/Tarawa
* `Pacific/Tongatapu` - Pacific/Tongatapu
* `Pacific/Truk` - Pacific/Truk
* `Pacific/Wake` - Pacific/Wake
* `Pacific/Wallis` - Pacific/Wallis
* `Pacific/Yap` - Pacific/Yap
* `Poland` - Poland
* `Portugal` - Portugal
* `ROC` - ROC
* `ROK` - ROK
* `Singapore` - Singapore
* `Turkey` - Turkey
* `UCT` - UCT
* `US/Alaska` - US/Alaska
* `US/Aleutian` - US/Aleutian
* `US/Arizona` - US/Arizona
* `US/Central` - US/Central
* `US/East-Indiana` - US/East-Indiana
* `US/Eastern` - US/Eastern
* `US/Hawaii` - US/Hawaii
* `US/Indiana-Starke` - US/Indiana-Starke
* `US/Michigan` - US/Michigan
* `US/Mountain` - US/Mountain
* `US/Pacific` - US/Pacific
* `US/Samoa` - US/Samoa
* `UTC` - UTC
* `Universal` - Universal
* `W-SU` - W-SU
* `WET` - WET
* `Zulu` - Zulu

# components.schemas.ProjectBackwardCompat.properties.data_attributes.description
Element attributes that posthog-js should capture as action identifiers (e.g. `['data-attr']`).

# components.schemas.ProjectBackwardCompat.properties.person_display_name_properties.description
Ordered list of person properties used to render a human-friendly display name in the UI.

# components.schemas.ProjectBackwardCompat.properties.autocapture_opt_out.description
Disables posthog-js autocapture (clicks, page views) when true.

# components.schemas.ProjectBackwardCompat.properties.autocapture_exceptions_opt_in.description
Enables automatic capture of JavaScript exceptions via the SDK.

# components.schemas.ProjectBackwardCompat.properties.autocapture_web_vitals_opt_in.description
Enables automatic capture of Core Web Vitals performance metrics.

# components.schemas.ProjectBackwardCompat.properties.capture_console_log_opt_in.description
Enables capturing browser console logs alongside session replays.

# components.schemas.ProjectBackwardCompat.properties.capture_performance_opt_in.description
Enables capturing performance timing and network requests.

# components.schemas.ProjectBackwardCompat.properties.session_recording_opt_in.description
Enables session replay recording for this project.

# components.schemas.ProjectBackwardCompat.properties.session_recording_sample_rate.description
Fraction of sessions to record, as a decimal string between `0.00` and `1.00` (e.g. `0.1` = 10%).

# components.schemas.ProjectBackwardCompat.properties.session_recording_minimum_duration_milliseconds.description
Skip saving sessions shorter than this many milliseconds.

# components.schemas.ProjectBackwardCompat.properties.session_recording_trigger_groups.description
V2 trigger groups configuration for session recording. If present, takes precedence over legacy trigger fields.

# components.schemas.ProjectBackwardCompat.properties.session_recording_retention_period.description
How long to retain new session recordings. One of `30d`, `90d`, `1y`, or `5y` (availability depends on plan).

* `30d` - 30 Days
* `90d` - 90 Days
* `1y` - 1 Year
* `5y` - 5 Years

# components.schemas.ProjectBackwardCompat.properties.week_start_day.description
First day of the week for date range filters. 0 = Sunday, 1 = Monday.

* `0` - Sunday
* `1` - Monday

# components.schemas.ProjectBackwardCompat.properties.primary_dashboard.description
ID of the dashboard shown as the project's default landing dashboard.

# components.schemas.ProjectBackwardCompat.properties.recording_domains.description
Origins permitted to record session replays and heatmaps. Empty list allows all origins.

# components.schemas.ProjectBackwardCompat.properties.surveys_opt_in.description
Enables displaying surveys via posthog-js on allowed origins.

# components.schemas.ProjectBackwardCompat.properties.heatmaps_opt_in.description
Enables heatmap recording on pages that host posthog-js.

# components.schemas.ProjectBackwardCompat.properties.flags_persistence_default.description
Default value for the `persist` option on newly created feature flags.

# components.schemas.ProjectBackwardCompat.properties.business_model.description
Whether this project serves B2B or B2C customers. Used to optimize default UI layouts.

* `b2b` - B2B
* `b2c` - B2C
* `other` - Other

# components.schemas.ProjectBackwardCompat.properties.conversations_enabled.description
Enables the customer conversations / live chat product for this project.

# components.schemas.ProjectBackwardCompatBasic.description
Like `ProjectBasicSerializer`, but also works as a drop-in replacement for `TeamBasicSerializer` by way of
passthrough fields. This allows the meaning of `Team` to change from "project" to "environment" without breaking
backward compatibility of the REST API.
Do not use this in greenfield endpoints!

# components.schemas.ProjectContext.description
`inventory.project_context` — free-form orientation about the project's product.

# components.schemas.ProjectContext.properties.product_description.description
Human-set product description on the project (max 1000 chars). When present, the most direct "what does this team's product do" answer. `null` when unset.

# components.schemas.ProjectContext.properties.app_urls.description
Registered app URLs for this team (toolbar / replay). The team's actual product surface; complements `$pageview.$host` discovery via `read-data-schema`.

# components.schemas.ProjectProfile.description
Wire shape for the project profile returned by `signals-scout-harness-project-profile-list`.

Read this once at the start of a run (after `skill-get`) to orient on the team. Cache
is per-team with a soft TTL (`PROFILE_TTL`); the response always reflects either the
latest cached profile or a freshly-built one if the cache was stale or the caller passed
`force_refresh=true`.

# components.schemas.ProjectProfile.properties.computed_at.description
ISO-8601 timestamp the profile was built.

# components.schemas.ProjectProfile.properties.expires_at.description
ISO-8601 timestamp after which the profile is considered stale.

# components.schemas.ProjectProfile.properties.source_version.description
Schema version of the inventory builder. Bumps invalidate older cached rows.

# components.schemas.ProjectProfile.properties.payload.description
Structured profile content. v1 has `inventory` only.

# components.schemas.ProjectProfileInventory.description
The deterministic inventory layer of a project profile.

Read this to orient on the team's product mix, integrations, warehouse sources, signal
coverage, and existing inbox surface in one tool call. Distinct from `SignalScratchpad`:
profile is ground truth from authoritative tables; memory is agent inference.

# components.schemas.ProjectProfileInventory.properties.project_context.description
Free-form orientation: human-set product description + registered app URLs.

# components.schemas.ProjectProfileInventory.properties.products_in_use.description
Product keys this team has completed onboarding for, sorted alphabetically.

# components.schemas.ProjectProfileInventory.properties.product_intents.description
Products the team signaled intent to use; useful for spotting stuck onboardings.

# components.schemas.ProjectProfileInventory.properties.integrations.description
Connected integrations (kind + connection time only — config never surfaced).

# components.schemas.ProjectProfileInventory.properties.signal_source_configs.description
Signal source configs split into enabled / disabled buckets.

# components.schemas.ProjectProfileInventory.properties.existing_inbox_reports.description
Counts of reports already in the inbox, grouped by status.

# components.schemas.ProjectProfileInventory.properties.recent_activity.description
Per-scope counts off the activity log over the recent-activity window — cross-cutting orientation across every entity type (surveys, feature flags, experiments, dashboards, insights, cohorts, notebooks, actions, etc.). Each scope reports `edits` (total log entries), `users` (distinct user count), and `last_edit` (ISO-8601). Use to triage which scope a team has been working in lately before drilling down via the per-entity readers or `activity-log-list`.

# components.schemas.ProjectProfileInventory.properties.recent_dashboards.description
Up to 20 dashboards on this team sorted by `last_accessed_at` desc — what the team is currently looking at, not necessarily the most-trafficked. We don't have per-dashboard view counts in Postgres, only the timestamp of the most recent access.

# components.schemas.ProjectProfileInventory.properties.recent_surveys.description
Surveys orientation: total + active count, plus the 5 most recently updated surveys with id, name, type, status (draft / running / stopped / archived), and updated_at.

# components.schemas.ProjectProfileInventory.properties.recent_feature_flags.description
Feature flag orientation: total + active count, plus the 5 most recently updated non-deleted flags with id, key, name, active, and updated_at.

# components.schemas.ProjectProfileInventory.properties.recent_experiments.description
Experiment orientation: total + running count, plus the 5 most recently updated experiments. The feature_flag_key on each row lets the scout correlate experiments with the `recent_feature_flags` section.

# components.schemas.ProjectProfileInventory.properties.recent_alerts.description
Alert orientation: total + enabled count, plus the 5 most recently created alerts with their state and threshold metadata.

# components.schemas.ProjectProfileInventory.properties.recent_hog_functions.description
Hog function orientation: total + enabled count, plus the 5 most recently updated destinations / transformations the team has wired up via the CDP pipelines.

# components.schemas.ProjectProfileInventory.properties.recent_hog_flows.description
Hog flow orientation: total + non-archived count, plus the 5 most recently updated automation flows.

# components.schemas.ProjectProfileInventory.properties.recent_notebooks.description
Notebook orientation: total + the 5 most recently modified notebooks — useful signal for what the team has been investigating.

# components.schemas.ProjectProfileInventory.properties.recent_cohorts.description
Cohort orientation: total + the 5 most recently created cohorts on the team.

# components.schemas.ProjectProfileInventory.properties.recent_actions.description
Action orientation: total + the 5 most recently updated actions — useful to anchor agent reasoning about what the team treats as a meaningful interaction.

# components.schemas.ProjectProfileInventory.properties.top_events.description
Top ~50 events by count over the last 7 days, with first/last seen timestamps within the window. `null` if the underlying ClickHouse query failed or timed out (distinct from `[]`, which means the team has no captures in the window). Use the gap between `first_seen` and `now` to spot new event types or recent bursts.

# components.schemas.ProjectProfilePayload.description
Top-level `payload` shape on a `SignalProjectProfile` row.

v1 carries `inventory` only. Phase 7 will add `deltas`, `activity_notes`, and
`narrative` slots — they're absent (not null) in v1 responses.

# components.schemas.ProjectProfilePayload.properties.inventory.description
Deterministic snapshot of what's true about the project.

# components.schemas.PromotedProductIntent.properties.product_key.description
The product key the team selected as their primary product during onboarding (e.g. `session_replay`, `web_analytics`, `product_analytics`), or `null` if no primary onboarding product intent has been captured for this team.

# components.schemas.Property.properties.type.description
 You can use a simplified version:
```json
{
    "properties": [
        {
            "key": "email",
            "value": "x@y.com",
            "operator": "exact",
            "type": "event"
        }
    ]
}
```

Or you can create more complicated queries with AND and OR:
```json
{
    "properties": {
        "type": "AND",
        "values": [
            {
                "type": "OR",
                "values": [
                    {"key": "email", ...},
                    {"key": "email", ...}
                ]
            },
            {
                "type": "AND",
                "values": [
                    {"key": "email", ...},
                    {"key": "email", ...}
                ]
            }
        ]
    ]
}
```


* `AND` - AND
* `OR` - OR

# components.schemas.PropertyAccessControlRule.description
Serializes a single access control rule DTO.

# components.schemas.PropertyAccessControlRule.properties.access_level.description
The access level for this rule.

* `read_write` - read_write
* `read` - read
* `none` - none

# components.schemas.PropertyAccessControlRule.properties.organization_member.description
The organization member UUID this rule applies to, if any.

# components.schemas.PropertyAccessControlRule.properties.role.description
The role UUID this rule applies to, if any.

# components.schemas.PropertyAccessControlState.description
Serializes the aggregate state for a property definition.

Preserves the existing API shape: ``access_controls`` is the list
of rules, plus the available levels and the computed default.

# components.schemas.PropertyAccessControlState.properties.access_controls.description
List of all access control rules for this property definition.

# components.schemas.PropertyAccessControlState.properties.available_access_levels.description
Available access levels that can be assigned.

# components.schemas.PropertyAccessControlState.properties.default_access_level.description
The default access level when no rules match.

# components.schemas.PropertyAccessControlUpdate.description
Request body for upserting a rule (create or update).

# components.schemas.PropertyAccessControlUpdate.properties.property_definition_id.description
The property definition ID this rule applies to.

# components.schemas.PropertyAccessControlUpdate.properties.access_level.description
The access level to set for this rule.

* `read_write` - read_write
* `read` - read
* `none` - none

# components.schemas.PropertyAccessControlUpdate.properties.organization_member.description
The organization member UUID to set an override for.

# components.schemas.PropertyDefinitionTypeEnum.description
* `DateTime` - DateTime
* `String` - String
* `Numeric` - Numeric
* `Boolean` - Boolean
* `Duration` - Duration

# components.schemas.PropertyFilterTypeEnum.description
* `event` - event
* `event_metadata` - event_metadata
* `feature` - feature
* `person` - person
* `cohort` - cohort
* `element` - element
* `static-cohort` - static-cohort
* `dynamic-cohort` - dynamic-cohort
* `precalculated-cohort` - precalculated-cohort
* `group` - group
* `recording` - recording
* `log_entry` - log_entry
* `behavioral` - behavioral
* `session` - session
* `hogql` - hogql
* `data_warehouse` - data_warehouse
* `data_warehouse_person_property` - data_warehouse_person_property
* `error_tracking_issue` - error_tracking_issue
* `log` - log
* `log_attribute` - log_attribute
* `log_resource_attribute` - log_resource_attribute
* `span` - span
* `span_attribute` - span_attribute
* `span_resource_attribute` - span_resource_attribute
* `revenue_analytics` - revenue_analytics
* `flag` - flag
* `workflow_variable` - workflow_variable

# components.schemas.PropertyGroupTypeEnum.description
* `cohort` - cohort
* `person` - person
* `group` - group

# components.schemas.PropertyItem.properties.key.description
Key of the property you're filtering on. For example `email` or `$current_url`

# components.schemas.PropertyItem.properties.value.description
Value of your filter. For example `test@example.com` or `https://example.com/test/`. Can be an array for an OR query, like `["test@example.com","ok@example.com"]`

# components.schemas.PropertyItemOperatorEnum.description
* `exact` - exact
* `is_not` - is_not
* `icontains` - icontains
* `not_icontains` - not_icontains
* `regex` - regex
* `not_regex` - not_regex
* `gt` - gt
* `lt` - lt
* `gte` - gte
* `lte` - lte
* `is_set` - is_set
* `is_not_set` - is_not_set
* `is_date_exact` - is_date_exact
* `is_date_after` - is_date_after
* `is_date_before` - is_date_before
* `in` - in
* `not_in` - not_in

# components.schemas.PropertyValuesQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.PropertyValuesQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.PropertyValuesQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.PropertyValuesQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.PropertyValuesQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.PropertyValuesQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.PropertyValuesQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.PropertyValuesQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.ProxyRecord.properties.domain.description
The custom domain to proxy through, e.g. 'e.example.com'. Must be a valid subdomain you control.

# components.schemas.ProxyRecord.properties.target_cname.description
The CNAME target to add as a DNS record for your domain. Point your domain's CNAME to this value.

# components.schemas.ProxyRecord.properties.status.description
Current provisioning status. Values: waiting (DNS verification pending), issuing (SSL certificate being issued), valid (proxy is live and working), warning (proxy has issues but is operational), erroring (proxy setup failed), deleting (removal in progress), timed_out (DNS verification timed out).

* `waiting` - Waiting
* `issuing` - Issuing
* `valid` - Valid
* `warning` - Warning
* `erroring` - Erroring
* `deleting` - Deleting
* `timed_out` - Timed Out

# components.schemas.ProxyRecord.properties.message.description
Human-readable status message with details about errors or warnings, if any.

# components.schemas.ProxyRecord.properties.updated_at.description
When this proxy record was last updated.

# components.schemas.ProxyRecord.properties.created_by.description
ID of the user who created this proxy record.

# components.schemas.ProxyRecordListResponse.properties.max_proxy_records.description
Maximum number of proxy records allowed for this organization's current plan.

# components.schemas.ProxyRecordStatusEnum.description
* `waiting` - Waiting
* `issuing` - Issuing
* `valid` - Valid
* `warning` - Warning
* `erroring` - Erroring
* `deleting` - Deleting
* `timed_out` - Timed Out

# components.schemas.PushTokenPlatformEnum.description
* `ios` - iOS
* `android` - Android
* `web` - Web

# components.schemas.QuarantineInput.properties.source_run_id.description
Optional pointer to the run whose failing snapshot prompted this quarantine — used to surface a 'view the failing run' link later.

# components.schemas.QuarantinedIdentifierEntry.properties.source_run.description
Run whose failing snapshot prompted this quarantine. Null when quarantine was created without run context.

# components.schemas.QueryLogTags.properties.name.description
Name of the query, preferably unique. For example web_analytics_vitals

# components.schemas.QueryLogTags.properties.productKey.description
Product responsible for this query. Use string, there's no need to churn the Schema when we add a new product *

# components.schemas.QueryLogTags.properties.scene.description
Scene where this query is shown in the UI. Use string, there's no need to churn the Schema when we add a new Scene *

# components.schemas.QueryRequest.properties.client_query_id.description
Client provided query ID. Can be used to retrieve the status or cancel the query.

# components.schemas.QueryRequest.properties.limit_context.description
Limit context for the query. Only 'posthog_ai' is allowed as a client-provided value.

# components.schemas.QueryRequest.properties.name.description
Name given to a query. It's used to identify the query in the UI. Up to 128 characters for a name.

# components.schemas.QueryRequest.properties.query.description
Submit a JSON string representing a query for PostHog data analysis, for example a HogQL query.

Example payload:

```

{"query": {"kind": "HogQLQuery", "query": "select * from events limit 100"}}

```

For more details on HogQL queries, see the [PostHog HogQL documentation](/docs/hogql#api-access).

# components.schemas.QueryRequest.properties.refresh.description
Whether results should be calculated sync or async, and how much to rely on the cache:
- `'blocking'` - calculate synchronously (returning only when the query is done), UNLESS there are very fresh results in the cache
- `'async'` - kick off background calculation (returning immediately with a query status), UNLESS there are very fresh results in the cache
- `'lazy_async'` - kick off background calculation, UNLESS there are somewhat fresh results in the cache
- `'force_blocking'` - calculate synchronously, even if fresh results are already cached
- `'force_async'` - kick off background calculation, even if fresh results are already cached
- `'force_cache'` - return cached data or a cache miss; always completes immediately as it never calculates Background calculation can be tracked using the `query_status` response field.

# components.schemas.QueryResponseAlternative1.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative1.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative1.properties.nextCursor.description
Cursor for fetching the next page of results

# components.schemas.QueryResponseAlternative1.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative1.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative1.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative1.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative10.properties.incomplete_list.description
Whether or not the suggestions returned are complete

# components.schemas.QueryResponseAlternative10.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative11.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative11.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative11.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative11.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative11.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative11.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative14.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative14.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative14.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative14.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative14.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative14.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative15.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative15.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative15.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative15.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative15.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative15.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative16.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative16.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative16.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative16.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative16.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative16.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative17.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative17.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative17.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative17.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative17.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative17.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative18.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.QueryResponseAlternative19.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.QueryResponseAlternative2.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative2.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative2.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative2.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative2.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative2.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative20.properties.breakdown_results.description
Results grouped by breakdown value. When present, baseline and variant_results contain aggregated data.

# components.schemas.QueryResponseAlternative20.properties.is_precomputed.description
Whether exposures were served from the precomputation system

# components.schemas.QueryResponseAlternative20.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.QueryResponseAlternative21.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.QueryResponseAlternative22.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative22.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative22.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative22.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative22.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative22.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative23.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative23.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative23.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative23.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative23.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative23.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative24.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative24.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative24.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative24.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative24.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative24.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative25.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative25.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative25.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative25.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative25.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative25.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative26.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative26.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative26.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative26.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative26.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative26.properties.usedLazyPrecompute.description
Whether the response was served from the lazy precompute path.

# components.schemas.QueryResponseAlternative26.properties.usedPreAggregatedTables.description
Whether the response was served from a precomputed table.

# components.schemas.QueryResponseAlternative26.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative27.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative27.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative27.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative27.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative27.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative27.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative28.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative28.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative28.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative28.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative28.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative28.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative3.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative3.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative3.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative3.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative3.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative3.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative30.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative30.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative30.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative30.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative30.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative30.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative31.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative31.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative31.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative31.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative31.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative31.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative32.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative32.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative32.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative32.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative32.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative32.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative33.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative33.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative33.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative33.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative33.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative33.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative34.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative34.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative34.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative34.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative34.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative34.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative35.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative35.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative35.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative35.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative35.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative35.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative36.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative36.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative36.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative36.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative36.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative36.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative37.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative37.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative37.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative37.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative37.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative37.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative38.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative38.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative38.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative38.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative38.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative38.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative39.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative39.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative39.properties.nextCursor.description
Cursor for fetching the next page of results

# components.schemas.QueryResponseAlternative39.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative39.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative39.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative39.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative4.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative4.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative4.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative4.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative4.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative4.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative40.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative40.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative40.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative40.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative40.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative40.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative41.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative41.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative41.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative41.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative41.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative41.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative42.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative42.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative42.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative42.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative42.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative42.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data.

# components.schemas.QueryResponseAlternative43.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative43.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative43.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative43.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative43.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative43.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative44.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative44.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative44.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative44.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative44.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative44.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative45.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative45.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative45.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative45.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative45.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative45.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative46.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative46.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative46.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative46.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative46.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative46.properties.usedLazyPrecompute.description
Whether the response was served from the lazy precompute path.

# components.schemas.QueryResponseAlternative46.properties.usedPreAggregatedTables.description
Whether the response was served from a precomputed table.

# components.schemas.QueryResponseAlternative46.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative47.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative47.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative47.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative47.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative47.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative47.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative48.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative48.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative48.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative48.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative48.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative48.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative49.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative49.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative49.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative49.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative49.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative49.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative5.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.QueryResponseAlternative50.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative50.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative50.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative50.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative50.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative50.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative51.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative51.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative51.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative51.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative51.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative51.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative52.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative52.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative52.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative52.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative52.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative52.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative53.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative53.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative53.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative53.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative53.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative53.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative54.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative54.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative54.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative54.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative54.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative54.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative55.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative55.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative55.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative55.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative55.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative55.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative57.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative57.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative57.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative57.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative57.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative57.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative58.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative58.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative58.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative58.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative58.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative58.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative59.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative59.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative59.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative59.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative59.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative59.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative6.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative6.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative6.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative6.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative6.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative6.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative60.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative60.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative60.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative60.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative60.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative60.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative62.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.QueryResponseAlternative63.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.QueryResponseAlternative64.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative64.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative64.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative64.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative64.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative64.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative65.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative65.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative65.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative65.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative65.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative65.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative66.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative66.properties.metricsResults.description
When `metrics` is set on the query, the aggregated values in the same order.

# components.schemas.QueryResponseAlternative66.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative66.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative66.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative66.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative66.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative67.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative67.properties.hasMore.description
Wether more breakdown values are available.

# components.schemas.QueryResponseAlternative67.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative67.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative67.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative67.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative67.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative68.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative68.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative68.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative68.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative68.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative68.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative69.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative69.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative69.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative69.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative69.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative69.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative70.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative70.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative70.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative70.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative70.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative70.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative71.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative71.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative71.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative71.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative71.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative71.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative73.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative73.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative73.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative73.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative73.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative73.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative75.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative75.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative75.properties.next_cursor.description
Cursor for the next page. Contains the ordering value and session_id from the last record.

# components.schemas.QueryResponseAlternative75.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative75.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative75.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative75.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative76.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative76.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative76.properties.nextCursor.description
Cursor for fetching the next page of results

# components.schemas.QueryResponseAlternative76.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative76.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative76.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative76.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative77.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative77.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative77.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative77.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative77.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative77.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative78.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative78.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative78.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative78.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative78.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative78.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative79.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative79.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative79.properties.nextCursor.description
Cursor for fetching the next page of results

# components.schemas.QueryResponseAlternative79.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative79.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative79.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative79.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative8.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative8.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative8.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative8.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative8.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative8.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data.

# components.schemas.QueryResponseAlternative80.properties.compare.description
Result rows for the comparison period when `compareFilter.compare` is true.

# components.schemas.QueryResponseAlternative80.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative80.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative80.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative80.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative80.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative80.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative81.properties.compare.description
Result rows for the comparison period when `compareFilter.compare` is true.

# components.schemas.QueryResponseAlternative81.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative81.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative81.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative81.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative81.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative81.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative82.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.QueryResponseAlternative83.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative83.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative83.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative83.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative83.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative83.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative84.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative84.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative84.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative84.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative84.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative84.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative85.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative85.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative85.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative85.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative85.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative85.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative86.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative86.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative86.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative86.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative86.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative86.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative88.properties.newerTraceId.description
ID of the newer trace (chronologically after current)

# components.schemas.QueryResponseAlternative88.properties.olderTraceId.description
ID of the older trace (chronologically before current)

# components.schemas.QueryResponseAlternative88.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative88.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.QueryResponseAlternative89.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative89.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative89.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative89.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative89.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative89.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative90.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative90.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative90.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative90.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative90.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative90.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative91.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative91.properties.metricsResults.description
When `metrics` is set on the query, the aggregated values in the same order.

# components.schemas.QueryResponseAlternative91.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative91.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative91.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative91.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative91.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative92.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative92.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative92.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative92.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative92.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative92.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative93.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative93.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative93.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative93.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative93.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative93.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative94.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative94.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative94.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative94.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative94.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative94.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryResponseAlternative95.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.QueryResponseAlternative95.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.QueryResponseAlternative95.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.QueryResponseAlternative95.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.QueryResponseAlternative95.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.QueryResponseAlternative95.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.QueryStatus.properties.complete.description
Whether the query is still running. Will be true if the query is complete, even if it errored. Either result or error will be set.

# components.schemas.QueryStatus.properties.end_time.description
When did the query execution task finish (whether successfully or not).

# components.schemas.QueryStatus.properties.error.description
If the query failed, this will be set to true. More information can be found in the error_message field.

# components.schemas.QueryStatus.properties.pickup_time.description
When was the query execution task picked up by a worker.

# components.schemas.QueryTiming.properties.t.description
Time in seconds. Shortened to 't' to save on data.

# components.schemas.QuotaLimitsResponse.properties.limited.description
Per-resource limit state keyed by `QuotaResource` value. Currently only `ai_credits` is reported; additional resources may be added.

# components.schemas.QuotaResourceLimit.properties.limited.description
True when the team is currently over its quota for this resource and limits are in effect.

# components.schemas.ReasoningEffortEnum.description
* `low` - low
* `medium` - medium
* `high` - high
* `xhigh` - xhigh
* `max` - max

# components.schemas.RecentActions.description
`inventory.recent_actions` — total + the 5 most recently modified.

# components.schemas.RecentActivity.description
`inventory.recent_activity` — per-scope counts off the activity log.

# components.schemas.RecentActivity.properties.window_days.description
Lookback window in days the per-scope counts cover.

# components.schemas.RecentActivity.properties.by_scope.description
Per-scope activity rows, busiest scope first. Triage which entity type the team has worked in lately.

# components.schemas.RecentAlertEntry.properties.state.description
Alert state (e.g. `not_firing`, `firing`).

# components.schemas.RecentAlertEntry.properties.calculation_interval.description
How often the alert is evaluated (e.g. `daily`, `hourly`); null if unset.

# components.schemas.RecentAlertEntry.properties.insight_id.description
ID of the insight the alert watches; null if none.

# components.schemas.RecentAlerts.description
`inventory.recent_alerts` — total + currently-enabled count, plus the 5 most recently created.

# components.schemas.RecentCohortEntry.properties.is_static.description
True for a one-shot snapshot cohort; false for a dynamic-filter cohort.

# components.schemas.RecentCohortEntry.properties.count.description
Membership size when last calculated; null if never calculated.

# components.schemas.RecentCohorts.description
`inventory.recent_cohorts` — total + the 5 most recently created.

# components.schemas.RecentDashboardEntry.properties.id.description
Dashboard ID — pass to `dashboard-get` to pull the full payload.

# components.schemas.RecentDashboardEntry.properties.name.description
Dashboard name (may be blank if unnamed).

# components.schemas.RecentDashboardEntry.properties.last_accessed_at.description
ISO-8601 timestamp of the most recent view in the PostHog UI.

# components.schemas.RecentDashboardEntry.properties.last_refresh.description
ISO-8601 timestamp of the most recent data refresh. Distinct from access — a dashboard can be refreshed without anyone viewing it.

# components.schemas.RecentDashboardEntry.properties.created_at.description
ISO-8601 timestamp the dashboard was created.

# components.schemas.RecentExperimentEntry.properties.status.description
Derived status: `draft`, `running`, `stopped`, or `archived`.

# components.schemas.RecentExperimentEntry.properties.feature_flag_key.description
Key of the experiment's feature flag — cross-ref into `recent_feature_flags`. Null if unlinked.

# components.schemas.RecentExperiments.description
`inventory.recent_experiments` — total + currently-running count, plus the 5 most recently modified.

# components.schemas.RecentExperiments.properties.running_count.description
Experiments currently running (started, not ended, not archived).

# components.schemas.RecentExperiments.properties.recent.description
The 5 most recently updated experiments.

# components.schemas.RecentFeatureFlagEntry.properties.key.description
Flag key used in code (`posthog.isFeatureEnabled('<key>')`).

# components.schemas.RecentFeatureFlagEntry.properties.name.description
Human-set description; falls back to the key when blank.

# components.schemas.RecentFeatureFlagEntry.properties.active.description
Whether the flag is currently evaluating (a user could be hitting it).

# components.schemas.RecentFeatureFlags.description
`inventory.recent_feature_flags` — total + active count, plus the 5 most recently modified.

# components.schemas.RecentFeatureFlags.properties.total_count.description
Total non-deleted feature flags on the team.

# components.schemas.RecentFeatureFlags.properties.recent.description
The 5 most recently updated non-deleted flags.

# components.schemas.RecentHogFlowEntry.properties.status.description
Flow lifecycle state (e.g. `draft`, `active`, `archived`).

# components.schemas.RecentHogFlows.description
`inventory.recent_hog_flows` — total + non-archived count, plus the 5 most recently modified.

# components.schemas.RecentHogFunctionEntry.properties.type.description
Function type: `destination`, `transformation`, `site_app`, etc. Null if unset.

# components.schemas.RecentHogFunctionEntry.properties.kind.description
Function kind sub-classifier; null if unset.

# components.schemas.RecentHogFunctionEntry.properties.enabled.description
Whether the function is currently enabled.

# components.schemas.RecentHogFunctions.description
`inventory.recent_hog_functions` — total + enabled count, plus the 5 most recently modified.

# components.schemas.RecentHogFunctions.properties.total_count.description
Total non-deleted hog functions on the team.

# components.schemas.RecentHogFunctions.properties.recent.description
The 5 most recently updated hog functions.

# components.schemas.RecentNotebookEntry.properties.short_id.description
Notebook short ID — pass to the notebooks API to open it.

# components.schemas.RecentNotebookEntry.properties.title.description
Notebook title (may be blank if untitled).

# components.schemas.RecentNotebooks.description
`inventory.recent_notebooks` — total + the 5 most recently modified.

# components.schemas.RecentNotebooks.properties.total_count.description
Total non-deleted notebooks on the team.

# components.schemas.RecentSurveyEntry.properties.id.description
Survey UUID — pass to `survey-get` for full question shape.

# components.schemas.RecentSurveyEntry.properties.type.description
Survey mode: `popover`, `widget`, `external_survey`, or `api`.

# components.schemas.RecentSurveyEntry.properties.status.description
Derived status: `draft`, `running`, `stopped`, or `archived`.

# components.schemas.RecentSurveys.description
`inventory.recent_surveys` — total + active count, plus the 5 most recently modified.

# components.schemas.RecentSurveys.properties.active_count.description
Surveys that are live (not archived, started, and not yet ended).

# components.schemas.RecordingsQuery.properties.after.description
Cursor for pagination. Contains the ordering value and session_id from the last record of the previous page.

# components.schemas.RecordingsQuery.properties.hide_viewed_recordings.description
Exclude recordings already viewed by the current user ('current-user'), by any team member ('any-user'), or none (default). Applied server-side so pagination and the result cursor operate on the filtered set.

# components.schemas.RecordingsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RecordingsQuery.properties.order_direction.description
Replay originally had all ordering as descending by specifying the field name, this runs counter to Django behavior where the field name specifies ascending sorting (e.g. the_field_name) and -the_field_name would indicate descending order to avoid invalidating or migrating all existing filters we keep DESC as the default or allow specification of an explicit order direction here

# components.schemas.RecordingsQuery.properties.session_recording_id.description
If provided, this recording will be fetched and prepended to the results, even if it doesn't match the filters

# components.schemas.RecordingsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.RecordingsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.RecordingsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RecordingsQueryResponse.properties.next_cursor.description
Cursor for the next page. Contains the ordering value and session_id from the last record.

# components.schemas.RecordingsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.RecordingsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.RecordingsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.RecordingsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.RefreshIntervalEnum.description
* `manual` - Manual only
* `1h` - Every hour
* `6h` - Every 6 hours
* `24h` - Every day
* `7d` - Every week

# components.schemas.RememberRequest.properties.key.description
Agent-chosen semantic key. Re-using a key updates the existing entry in place.

# components.schemas.RememberRequest.properties.content.description
Prose to write. Read verbatim into future prompts.

# components.schemas.RememberRequest.properties.run_id.description
Run that authored this memory; persisted as `created_by_run_id` for lineage. Must reference a run on this same project — cross-project run UUIDs are rejected.

# components.schemas.ReorderTilesRequest.properties.tile_order.description
Array of tile IDs in the desired display order (top to bottom, left to right).

# components.schemas.ReorderTilesRequest.properties.layout.description
How to size tiles when reordering. 'preserve' (default) keeps each tile's existing width and height and only repacks positions in the new order. 'two_column' forces a 6-wide × 5-tall grid (two tiles per row). 'full_width' forces each tile to span the full 12-column row at height 5.

* `preserve` - preserve
* `two_column` - two_column
* `full_width` - full_width

# components.schemas.ReplayObservation.properties.scanner_id.description
The scanner that produced this observation.

# components.schemas.ReplayObservation.properties.session_id.description
Session recording id this scanner was applied to.

# components.schemas.ReplayObservation.properties.status.description
Observation status (pending, running, succeeded, failed, ineligible).

* `pending` - Pending
* `running` - Running
* `succeeded` - Succeeded
* `failed` - Failed
* `ineligible` - Ineligible

# components.schemas.ReplayObservation.properties.error_reason.description
Populated on terminal non-success statuses; formatted as `kind:human-readable message`. For `ineligible`, kind is one of no_recording / too_short / too_inactive / too_long / no_events. For `failed`, kind is one of provider_transient / provider_rejected / rasterization_failed / validation_failed / internal_error.

# components.schemas.ReplayObservation.properties.workflow_id.description
Temporal workflow id for progress queries and debugging. Empty until the workflow starts.

# components.schemas.ReplayObservation.properties.scanner_snapshot.description
Frozen view of the scanner at run time; scanner edits do not retroactively mutate this observation.

# components.schemas.ReplayObservation.properties.scanner_result.description
Result data persisted on success; null until the observation succeeds.

# components.schemas.ReplayObservation.properties.triggered_by.description
Whether this observation came from the schedule or an on-demand request.

* `schedule` - Schedule
* `on_demand` - On demand

# components.schemas.ReplayObservation.properties.triggered_by_user.description
User who triggered an on-demand observation; null for scheduled observations.

# components.schemas.ReplayScanner.properties.name.description
Human-readable scanner name. Unique within the team.

# components.schemas.ReplayScanner.properties.description.description
Free-form description shown in the scanner management UI.

# components.schemas.ReplayScanner.properties.scanner_type.description
What the scanner does: monitor, classifier, scorer, or summarizer.

* `monitor` - Monitor
* `classifier` - Classifier
* `scorer` - Scorer
* `summarizer` - Summarizer

# components.schemas.ReplayScanner.properties.scanner_config.description
Type-specific configuration. All scanner types require `prompt`; monitors add optional `allow_inconclusive`, classifiers add `tags`, scorers add `scale`, summarizers add optional `length`.

# components.schemas.ReplayScanner.properties.query.description
Persisted `RecordingsQuery` shape used to pick candidate sessions. `date_from`/`date_to` are stripped on save — the schedule controls time, not the user.

# components.schemas.ReplayScanner.properties.sampling_rate.description
0..1 random downsample applied after the query matches. Defaults to 1.0 (no downsampling).

# components.schemas.ReplayScanner.properties.provider.description
LLM provider. v1 is Google-only.

* `google` - Google

# components.schemas.ReplayScanner.properties.model.description
Concrete model to use for this scanner.

* `gemini-3-flash-preview` - Gemini 3 Flash
* `gemini-3.1-flash-lite-preview` - Gemini 3 Flash Lite

# components.schemas.ReplayScanner.properties.enabled.description
When false, the reconciler removes the scanner's Temporal schedule. On-demand triggers still work.

# components.schemas.ReplayScanner.properties.emits_signals.description
When true, the prompt is augmented with the Signal side mission and the scanner emits PostHog Signals.

# components.schemas.ReplayScanner.properties.scanner_version.description
Increments on every config-changing save. Observations snapshot this value.

# components.schemas.ReplayScanner.properties.last_swept_at.description
Watermark for the scanner's last scheduled fire. Mirrors Temporal schedule state for recovery.

# components.schemas.RepositoryReadinessResponse.properties.excluded.description
Whether the repository is excluded from readiness checks

# components.schemas.RepositoryReadinessResponse.properties.generatedAt.description
ISO timestamp when the response was generated

# components.schemas.Response.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response.properties.nextCursor.description
Cursor for fetching the next page of results

# components.schemas.Response.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response1.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response1.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response1.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response1.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response1.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response1.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response10.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response10.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response10.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response10.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response10.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response10.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response11.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response11.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response11.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response11.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response11.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response11.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response12.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response12.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response12.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response12.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response12.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response12.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response13.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response13.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response13.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response13.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response13.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response13.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response14.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response14.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response14.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response14.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response14.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response14.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response15.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response15.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response15.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response15.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response15.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response15.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response16.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response16.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response16.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response16.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response16.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response16.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response18.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response18.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response18.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response18.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response18.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response18.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response19.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response19.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response19.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response19.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response19.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response19.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response2.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response2.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response2.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response2.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response2.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response2.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response20.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response20.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response20.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response20.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response20.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response20.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response21.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response21.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response21.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response21.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response21.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response21.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response22.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response22.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response22.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response22.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response22.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response22.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response23.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.Response24.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.Response25.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response25.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response25.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response25.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response25.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response25.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response26.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response26.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response26.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response26.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response26.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response26.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response27.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response27.properties.metricsResults.description
When `metrics` is set on the query, the aggregated values in the same order.

# components.schemas.Response27.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response27.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response27.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response27.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response27.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response3.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response3.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response3.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response3.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response3.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response3.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data.

# components.schemas.Response4.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response4.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response4.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response4.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response4.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response4.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response5.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response5.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response5.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response5.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response5.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response5.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response6.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response6.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response6.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response6.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response6.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response6.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response7.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response7.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response7.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response7.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response7.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response7.properties.usedLazyPrecompute.description
Whether the response was served from the lazy precompute path.

# components.schemas.Response7.properties.usedPreAggregatedTables.description
Whether the response was served from a precomputed table.

# components.schemas.Response7.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response8.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response8.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response8.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response8.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response8.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response8.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.Response9.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.Response9.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.Response9.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.Response9.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.Response9.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.Response9.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.ResponseSamplingIntervalTypeEnum.description
* `day` - day
* `week` - week
* `month` - month

# components.schemas.RestrictionLevelEnum.description
* `21` - Everyone in the project can edit
* `37` - Only those invited to this dashboard can edit

# components.schemas.RetentionEntity.properties.aggregation_target_field.description
Data warehouse field used as the actor identifier

# components.schemas.RetentionFilter.properties.aggregationProperty.description
The property to aggregate when aggregationType is sum or avg

# components.schemas.RetentionFilter.properties.aggregationPropertyType.description
The type of property to aggregate on (event, person or data_warehouse). Defaults to event.

# components.schemas.RetentionFilter.properties.aggregationType.description
The aggregation type to use for retention

# components.schemas.RetentionFilter.properties.cohortLabelStartIndex.description
Starting index used when labeling cohort columns (e.g. 0 for D0/D1/D2, 1 for D1/D2/D3). Display-only — does not affect retention calculations.

# components.schemas.RetentionFilter.properties.customAggregationTarget.description
For data warehouse based retention insights when the aggregation target can't be mapped to persons or groups.

# components.schemas.RetentionFilter.properties.display.description
controls the display of the retention graph

# components.schemas.RetentionFilter.properties.retentionCustomBrackets.description
Custom brackets for retention calculations

# components.schemas.RetentionFilter.properties.retentionReference.description
Whether retention is with regard to initial cohort size, or that of the previous period.

# components.schemas.RetentionFilter.properties.selectedInterval.description
The selected interval to display across all cohorts (null = show all intervals for each cohort)

# components.schemas.RetentionFilter.properties.timeWindowMode.description
The time window mode to use for retention calculations

# components.schemas.RetentionQuery.properties.dataColorTheme.description
Colors used in the insight's visualization

# components.schemas.RetentionQuery.properties.filterTestAccounts.description
Exclude internal and test users by applying the respective filters

# components.schemas.RetentionQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RetentionQuery.properties.retentionFilter.description
Properties specific to the retention insight

# components.schemas.RetentionQuery.properties.tags.description
Tags that will be added to the Query log comment

# components.schemas.RetentionQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.RetentionQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.RetentionQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RetentionQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.RetentionQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.RetentionQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.RetentionQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.RetentionResult.properties.breakdown_value.description
Optional breakdown value for retention cohorts

# components.schemas.RetrieveBasicOutput.description
Typed output for view set `retrieve` with any of the statuses without extra output.

# components.schemas.RetrieveBasicOutputStatusEnum.description
* `Starting` - Starting
* `Running` - Running
* `Cancelled` - Cancelled

# components.schemas.RetrieveCompletedOutput.description
Typed output for view set `retrieve` with completed status.

# components.schemas.RetrieveFailedOutput.description
Typed output for view set `retrieve` with any of the failed statuses.

# components.schemas.RetrieveFailedOutputStatusEnum.description
* `Failed` - Failed
* `FailedRetryable` - FailedRetryable
* `FailedBilling` - FailedBilling
* `Terminated` - Terminated
* `TimedOut` - TimedOut

# components.schemas.RevenueAnalyticsGrossRevenueQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RevenueAnalyticsGrossRevenueQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.RevenueAnalyticsGrossRevenueQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.RevenueAnalyticsGrossRevenueQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RevenueAnalyticsGrossRevenueQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.RevenueAnalyticsGrossRevenueQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.RevenueAnalyticsGrossRevenueQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.RevenueAnalyticsGrossRevenueQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.RevenueAnalyticsMRRQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RevenueAnalyticsMRRQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.RevenueAnalyticsMRRQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.RevenueAnalyticsMRRQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RevenueAnalyticsMRRQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.RevenueAnalyticsMRRQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.RevenueAnalyticsMRRQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.RevenueAnalyticsMRRQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.RevenueAnalyticsMetricsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RevenueAnalyticsMetricsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.RevenueAnalyticsMetricsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.RevenueAnalyticsMetricsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RevenueAnalyticsMetricsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.RevenueAnalyticsMetricsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.RevenueAnalyticsMetricsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.RevenueAnalyticsMetricsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.RevenueAnalyticsOverviewQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RevenueAnalyticsOverviewQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.RevenueAnalyticsOverviewQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.RevenueAnalyticsOverviewQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RevenueAnalyticsOverviewQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.RevenueAnalyticsOverviewQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.RevenueAnalyticsOverviewQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.RevenueAnalyticsOverviewQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.RevenueAnalyticsTopCustomersQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RevenueAnalyticsTopCustomersQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.RevenueAnalyticsTopCustomersQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.RevenueAnalyticsTopCustomersQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RevenueAnalyticsTopCustomersQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.RevenueAnalyticsTopCustomersQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.RevenueAnalyticsTopCustomersQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.RevenueAnalyticsTopCustomersQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.RevenueExampleDataWarehouseTablesQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RevenueExampleDataWarehouseTablesQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.RevenueExampleDataWarehouseTablesQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.RevenueExampleDataWarehouseTablesQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RevenueExampleDataWarehouseTablesQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.RevenueExampleDataWarehouseTablesQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.RevenueExampleDataWarehouseTablesQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.RevenueExampleDataWarehouseTablesQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.RevenueExampleEventsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RevenueExampleEventsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.RevenueExampleEventsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.RevenueExampleEventsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.RevenueExampleEventsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.RevenueExampleEventsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.RevenueExampleEventsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.RevenueExampleEventsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.ReviewQueue.properties.pending_item_count.description
Number of pending traces currently assigned to this queue.

# components.schemas.ReviewQueueItem.properties.queue_id.description
Review queue ID that currently owns this pending trace.

# components.schemas.ReviewQueueItem.properties.queue_name.description
Human-readable name of the queue that currently owns this pending trace.

# components.schemas.ReviewQueueItemCreate.properties.queue_id.description
Review queue ID that should own this pending trace.

# components.schemas.ReviewQueueItemCreate.properties.trace_id.description
Trace ID to add to the selected review queue.

# components.schemas.RoleAtOrganizationEnum.description
* `engineering` - Engineering
* `data` - Data
* `product` - Product Management
* `founder` - Founder
* `leadership` - Leadership
* `marketing` - Marketing
* `sales` - Sales / Success
* `other` - Other

# components.schemas.RoleExternalReference.properties.provider.description
Integration kind (e.g., github, linear, jira, slack).

# components.schemas.RoleExternalReference.properties.role.description
PostHog role UUID this external role maps to.

# components.schemas.RoleLookupResponse.properties.reference.description
Matching reference, or null if none exists.

# components.schemas.RolloutStateEnum.description
* `fully_rolled_out` - fully_rolled_out
* `not_rolled_out` - not_rolled_out
* `partial` - partial

# components.schemas.RuleTypeEnum.description
* `severity_sampling` - Severity-based reduction
* `path_drop` - Path exclusion
* `rate_limit` - Rate limit

# components.schemas.RunInsightsResponse.properties.results.description
Results for each insight tile on the dashboard.

# components.schemas.RunPhaseEnum.description
* `idle` - IDLE
* `running` - RUNNING
* `completed` - COMPLETED
* `error` - ERROR

# components.schemas.RunSourceEnum.description
* `manual` - manual
* `signal_report` - signal_report

# components.schemas.S3PresignedPost.properties.fields.description
Form fields that must be submitted verbatim with the file upload

# components.schemas.SandboxEnvironment.properties.allowed_domains.description
List of allowed domains for custom network access

# components.schemas.SandboxEnvironment.properties.include_default_domains.description
Whether to include default trusted domains (GitHub, npm, PyPI)

# components.schemas.SandboxEnvironment.properties.repositories.description
List of repositories this environment applies to (format: org/repo)

# components.schemas.SandboxEnvironment.properties.environment_variables.description
Encrypted environment variables (write-only, never returned in responses)

# components.schemas.SandboxEnvironment.properties.has_environment_variables.description
Whether this environment has any environment variables set

# components.schemas.SandboxEnvironment.properties.private.description
If true, only the creator can see this environment. Otherwise visible to whole team.

# components.schemas.SandboxEnvironment.properties.internal.description
If true, this environment is for internal use (e.g. signals pipeline) and should not be exposed to end users.

# components.schemas.SandboxEnvironment.properties.effective_domains.description
Computed domain allowlist based on network_access_level and allowed_domains

# components.schemas.SandboxEnvironmentList.properties.allowed_domains.description
List of allowed domains for custom network access

# components.schemas.SandboxEnvironmentList.properties.repositories.description
List of repositories this environment applies to (format: org/repo)

# components.schemas.SandboxEnvironmentList.properties.private.description
If true, only the creator can see this environment. Otherwise visible to whole team.

# components.schemas.SandboxEnvironmentList.properties.internal.description
If true, this environment is for internal use (e.g. signals pipeline) and should not be exposed to end users.

# components.schemas.SavedHeatmapListResponse.properties.count.description
Total number of saved heatmaps matching the filters.

# components.schemas.SavedHeatmapRequest.properties.name.description
Human-readable label for the saved heatmap.

# components.schemas.SavedHeatmapRequest.properties.url.description
Exact page URL to render and overlay heatmap data on. Wildcards are not allowed.

# components.schemas.SavedHeatmapRequest.properties.data_url.description
URL whose heatmap data is overlaid on the screenshot. Defaults to 'url' when omitted.

# components.schemas.SavedHeatmapRequest.properties.widths.description
Viewport widths (px, 100-3000) to render the heatmap screenshot at — one render per width. Defaults to [320, 375, 425, 768, 1024, 1440, 1920] when omitted. At most 16 widths.

# components.schemas.SavedHeatmapRequest.properties.type.description
Render mode: 'screenshot' (renders the page headlessly, default), 'iframe', or 'recording'. Only 'screenshot' generates image bytes.

* `screenshot` - Screenshot
* `iframe` - Iframe
* `recording` - Recording

# components.schemas.SavedHeatmapRequest.properties.deleted.description
Set true to soft-delete the saved heatmap.

# components.schemas.SavedInsightNode.properties.allowSorting.description
Can the user click on column headers to sort the table? (default: true)

# components.schemas.SavedInsightNode.properties.context.description
Context for the table, used by components like ColumnConfigurator

# components.schemas.SavedInsightNode.properties.contextKey.description
Context key for universal column configuration (e.g., "survey:123")

# components.schemas.SavedInsightNode.properties.defaultColumns.description
Default columns to use when resetting column configuration

# components.schemas.SavedInsightNode.properties.embedded.description
Query is embedded inside another bordered component

# components.schemas.SavedInsightNode.properties.expandable.description
Can expand row to show raw event data (default: true)

# components.schemas.SavedInsightNode.properties.full.description
Show with most visual options enabled. Used in insight scene.

# components.schemas.SavedInsightNode.properties.propertiesViaUrl.description
Link properties via the URL (default: false)

# components.schemas.SavedInsightNode.properties.showAbsoluteTime.description
Render date-time columns (timestamp, created_at, last_seen, last_seen_at, session_start, session_end) as absolute date+time instead of relative ("X ago"). The toggle is exposed in the column header menu only on EventsQuery / ActorsQuery sources.

# components.schemas.SavedInsightNode.properties.showActions.description
Show the kebab menu at the end of the row

# components.schemas.SavedInsightNode.properties.showColumnConfigurator.description
Show a button to configure the table's columns if possible

# components.schemas.SavedInsightNode.properties.showCount.description
Show count of total and filtered results

# components.schemas.SavedInsightNode.properties.showEventFilter.description
Include an event filter above the table (EventsNode only)

# components.schemas.SavedInsightNode.properties.showEventsFilter.description
Include an events filter above the table to filter by multiple events (EventsQuery only)

# components.schemas.SavedInsightNode.properties.showHogQLEditor.description
Include a HogQL query editor above HogQL tables

# components.schemas.SavedInsightNode.properties.showOpenEditorButton.description
Show a button to open the current query as a new insight. (default: true)

# components.schemas.SavedInsightNode.properties.showPersistentColumnConfigurator.description
Show a button to configure and persist the table's default columns if possible

# components.schemas.SavedInsightNode.properties.showPropertyFilter.description
Include a property filter above the table

# components.schemas.SavedInsightNode.properties.showRecordingColumn.description
Show a recording column for events with session recordings

# components.schemas.SavedInsightNode.properties.showSavedFilters.description
Show saved filters feature for this table (requires uniqueKey)

# components.schemas.SavedInsightNode.properties.showSearch.description
Include a free text search field (PersonsNode only)

# components.schemas.SavedInsightNode.properties.showSourceQueryOptions.description
Show actors query options and back to source

# components.schemas.SavedInsightNode.properties.showTableViews.description
Show table views feature for this table (requires uniqueKey)

# components.schemas.SavedInsightNode.properties.version.description
version of the node, used for schema migrations

# components.schemas.SavedQueryStatusEnum.description
* `Cancelled` - Cancelled
* `Modified` - Modified
* `Completed` - Completed
* `Failed` - Failed
* `Running` - Running

# components.schemas.ScanEvidence.properties.foundPosthogInit.description
Whether posthog.init() was found in scanned files

# components.schemas.ScanEvidence.properties.foundPosthogCapture.description
Whether posthog.capture() was found in scanned files

# components.schemas.ScanEvidence.properties.foundErrorSignal.description
Whether error tracking signals were found in scanned files

# components.schemas.ScannerCreatorsResponse.description
Distinct creators across all scanners on the team — feeds the `Created by` filter dropdown.

# components.schemas.ScannerCreatorsResponse.properties.creators.description
Users who created at least one scanner on this team. Returned regardless of pagination state so the dropdown stays stable across pages.

# components.schemas.ScannerModelEnum.description
* `gemini-3-flash-preview` - Gemini 3 Flash
* `gemini-3.1-flash-lite-preview` - Gemini 3 Flash Lite

# components.schemas.ScannerResult.properties.model_output.description
Validated scanner output. Shape depends on `scanner_snapshot.scanner_type`; always carries `confidence` and `scanner_type`.

# components.schemas.ScannerResult.properties.signals_count.description
Number of PostHog Signals emitted from this observation.

# components.schemas.ScannerSnapshot.properties.scanner_type.description
Scanner type (monitor, classifier, scorer, summarizer) at run time.

* `monitor` - Monitor
* `classifier` - Classifier
* `scorer` - Scorer
* `summarizer` - Summarizer

# components.schemas.ScannerSnapshot.properties.scanner_version.description
The `ReplayScanner.scanner_version` value at the moment the workflow ran.

# components.schemas.ScannerSnapshot.properties.model.description
Concrete model that ran the observation.

* `gemini-3-flash-preview` - Gemini 3 Flash
* `gemini-3.1-flash-lite-preview` - Gemini 3 Flash Lite

# components.schemas.ScannerSnapshot.properties.provider.description
Concrete provider that ran the observation.

* `google` - Google

# components.schemas.ScannerSnapshot.properties.emits_signals.description
Whether the observation was run with Signal emission enabled.

# components.schemas.ScannerSnapshot.properties.scanner_config.description
Scanner-type-specific configuration at run time (prompt, tags, scale, etc.).

# components.schemas.ScannerStatsByType.description
One `ScannerTypeStats` per scanner type — explicit fields give callers a typed shape, not `Record<string, …>`.

# components.schemas.ScannerStatsResponse.description
Team-wide scanner counts independent of any list-filter state.

# components.schemas.ScannerStatsResponse.properties.by_type.description
Per-scanner-type breakdown (monitor / classifier / scorer / summarizer).

# components.schemas.ScannerTypeEnum.description
* `monitor` - Monitor
* `classifier` - Classifier
* `scorer` - Scorer
* `summarizer` - Summarizer

# components.schemas.ScannerTypeStats.description
Per-scanner-type count of enabled vs total scanners.

# components.schemas.ScannerTypeStats.properties.enabled.description
Number of enabled scanners of this type.

# components.schemas.ScannerTypeStats.properties.total.description
Number of scanners of this type (enabled + disabled).

# components.schemas.ScheduleEnum.description
* `once` - once
* `recurring` - recurring
* `always` - always

# components.schemas.SchemaPropertyGroupPropertyPropertyTypeEnum.description
* `DateTime` - DateTime
* `String` - String
* `Numeric` - Numeric
* `Boolean` - Boolean
* `Object` - Object

# components.schemas.ScopeActivityEntry.properties.scope.description
Activity-log scope (entity type), e.g. `FeatureFlag`, `Dashboard`, `Survey`.

# components.schemas.ScopeActivityEntry.properties.edits.description
Total activity-log entries for this scope in the window (write velocity).

# components.schemas.ScopeActivityEntry.properties.users.description
Distinct users who edited this scope in the window.

# components.schemas.ScopeActivityEntry.properties.last_edit.description
ISO-8601 timestamp of the most recent edit in the window.

# components.schemas.ScoreDefinition.properties.current_version.description
Current immutable configuration version number.

# components.schemas.ScoreDefinition.properties.current_version_id.description
UUID of the current version row. Matches `system.score_definitions.current_version_id` in HogQL.

# components.schemas.ScoreDefinitionCreate.properties.kind.description
Scorer kind. This cannot be changed after creation.

* `categorical` - categorical
* `numeric` - numeric
* `boolean` - boolean

# components.schemas.ScoreDefinitionCreate.properties.archived.description
New scorers are always created as active.

# components.schemas.ScoreDefinitionNewVersion.properties.base_version.description
Version number the caller observed before requesting this bump. If provided and it does not match the scorer's current version, the request fails with 409. Omit to skip the optimistic-concurrency check.

# components.schemas.ScorerHistogram.properties.labels.description
Bucket labels (one per histogram bar) spanning the scanner's configured scale.

# components.schemas.ScorerHistogram.properties.counts.description
Observation count per bucket; same length as `labels`.

# components.schemas.ScorerStats.properties.summary.description
Score quantile summary; null when no observations have been scored.

# components.schemas.ScorerStats.properties.histogram.description
Score histogram; null when no observations have been scored.

# components.schemas.ScorerSummary.properties.count.description
Number of scored observations summarized.

# components.schemas.ScratchpadEntry.description
`SignalScratchpad` projection used by `search-memory` and `remember`.

# components.schemas.ScratchpadEntry.properties.key.description
Agent-chosen semantic key, unique per team.

# components.schemas.ScratchpadEntry.properties.created_by_run_id.description
Run that wrote this entry, or null if human-authored.

# components.schemas.SdkAssessment.properties.readable_name.description
Human-readable SDK name matching the SDK Doctor UI (e.g. 'Python', 'Node.js', 'Web', 'iOS').

# components.schemas.SdkAssessment.properties.latest_version.description
Most recent published version of this SDK.

# components.schemas.SdkAssessment.properties.needs_updating.description
True if this SDK needs attention (is_outdated OR is_old).

# components.schemas.SdkAssessment.properties.is_outdated.description
True if the primary in-use version is flagged as outdated.

# components.schemas.SdkAssessment.properties.is_old.description
True if the primary in-use version is flagged as old by age alone.

# components.schemas.SdkAssessment.properties.severity.description
UI severity badge — 'none' when healthy, 'warning' when outdated, 'danger' when the majority of team SDKs are outdated.

* `none` - none
* `warning` - warning
* `danger` - danger

# components.schemas.SdkAssessment.properties.reason.description
Per-SDK programmatic summary (used for ranking/filtering). For user-facing copy, prefer releases[].status_reason (badge tooltip) and banners (top-level alert text) — those match the UI exactly.

# components.schemas.SdkAssessment.properties.banners.description
Top-level alert sentences matching the SDK Doctor UI's 'Time for an update!' banner — one per outdated version with significant traffic. Quote verbatim when surfacing the headline to users.

# components.schemas.SdkAssessment.properties.releases.description
Per-version assessment for all versions seen in the last 7 days.

# components.schemas.SdkAssessment.properties.outdated_traffic_alerts.description
Outdated versions that handle a significant share of traffic (above the threshold). Not populated for mobile SDKs.

# components.schemas.SdkAssessmentSeverityEnum.description
* `none` - none
* `warning` - warning
* `danger` - danger

# components.schemas.SdkHealthReport.properties.overall_health.description
'healthy' when no SDKs need updating, 'needs_attention' otherwise.

* `healthy` - healthy
* `needs_attention` - needs_attention

# components.schemas.SdkHealthReport.properties.health.description
UI-level status — 'success' when healthy, 'warning' when some SDKs are outdated, 'danger' when the majority are outdated.

* `success` - success
* `warning` - warning
* `danger` - danger

# components.schemas.SdkHealthReport.properties.team_sdk_count.description
Number of distinct PostHog SDKs the project is actively using.

# components.schemas.SdkReleaseAssessment.properties.version.description
In-use SDK version string, e.g. '1.298.0'.

# components.schemas.SdkReleaseAssessment.properties.count.description
Number of events captured with this version in the last 7 days.

# components.schemas.SdkReleaseAssessment.properties.max_timestamp.description
Timestamp of the most recent event seen for this version (ISO 8601).

# components.schemas.SdkReleaseAssessment.properties.release_date.description
When this version was published on GitHub (ISO 8601), or null if unknown.

# components.schemas.SdkReleaseAssessment.properties.days_since_release.description
Days since this version was released, or null if unknown.

# components.schemas.SdkReleaseAssessment.properties.released_ago.description
Human-readable relative release age matching the UI (e.g. '5 months ago'). Null when release_date is unknown.

# components.schemas.SdkReleaseAssessment.properties.is_outdated.description
True when this version is flagged as outdated by smart-semver rules.

# components.schemas.SdkReleaseAssessment.properties.is_old.description
True when this version is flagged as old by age alone (separate from semver rules).

# components.schemas.SdkReleaseAssessment.properties.is_current_or_newer.description
True when this version equals or exceeds the latest known published version.

# components.schemas.SdkReleaseAssessment.properties.status_reason.description
Per-version badge tooltip text matching the SDK Doctor UI exactly. Quote verbatim when reporting to users. Varies by state: 'Released X ago. Upgrade recommended.' for outdated versions, 'You have the latest available.' for current versions, or 'Released X ago. Upgrading is a good idea, but it's not urgent yet.' for recent-but-behind versions.

# components.schemas.SdkReleaseAssessment.properties.sql_query.description
SQL SELECT statement for drilling into events for this SDK version over the last 7 days. Suitable to pass to the execute-sql tool or to display as a copy-paste snippet.

# components.schemas.SdkReleaseAssessment.properties.activity_page_url.description
Relative URL path (starting with /project/{id}/) for the Activity > Explore page pre-filtered to events captured with this lib and lib_version over the last 7 days. Combine with the user's PostHog host (e.g. us.posthog.com) for a clickable link.

# components.schemas.SelectionModeEnum.description
* `single` - single
* `multiple` - multiple

# components.schemas.SendInvitesRequest.properties.subject.description
Override the email subject line for this send. Plain text only — URLs, angle brackets, and control characters are rejected. Falls back to the topic's saved subject, then a default.

# components.schemas.SendInvitesRequest.properties.reply_to.description
Email address replies should go to. Defaults to the topic creator's email if blank.

# components.schemas.SendInvitesRequest.properties.send_async.description
If true (default), queue delivery via Celery. If false, send synchronously and surface errors immediately.

# components.schemas.SentimentGenerationsRequest.description
Filter shape mirrors the previous frontend `api.query({filters: ...})` payload.

`filters` accepts the same `HogQLFilters` schema that the legacy frontend HogQL
path used (dateRange, filterTestAccounts, properties), so the migration is
behaviour-preserving for callers that pass a request unchanged.

# components.schemas.SentimentRequest.properties.analysis_level.description
Whether the IDs are 'trace' IDs or 'generation' IDs.

* `trace` - trace
* `generation` - generation

# components.schemas.SentimentRequest.properties.date_from.description
Start of date range for the lookup (e.g. '-7d' or '2026-01-01'). Defaults to -30d.

# components.schemas.SentimentRequest.properties.date_to.description
End of date range for the lookup. Defaults to now.

# components.schemas.SentimentRequestAnalysisLevelEnum.description
* `trace` - trace
* `generation` - generation

# components.schemas.SessionAttributionExplorerQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.SessionAttributionExplorerQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.SessionAttributionExplorerQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.SessionAttributionExplorerQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.SessionAttributionExplorerQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.SessionAttributionExplorerQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.SessionAttributionExplorerQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.SessionAttributionExplorerQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.SessionGroupSummary.properties.session_ids.description
List of session replay IDs included in this group summary

# components.schemas.SessionGroupSummary.properties.extra_summary_context.description
Additional context passed to the summary (ExtraSummaryContext schema)

# components.schemas.SessionRecording.properties.external_references.description
Load external references (linked issues) for this recording

# components.schemas.SessionRecordingPlaylist.properties.description.description
Optional description of the playlist's purpose or contents.

# components.schemas.SessionRecordingPlaylist.properties.pinned.description
Whether this playlist is pinned to the top of the list.

# components.schemas.SessionRecordingPlaylist.properties.deleted.description
Set to true to soft-delete the playlist.

# components.schemas.SessionRecordingPlaylist.properties.filters.description
JSON object with recording filter criteria. Only used when type is 'filters'. Defines which recordings match this saved filter view. When updating a filters-type playlist, you must include the existing filters alongside any other changes — omitting filters will be treated as removing them.

# components.schemas.SessionRecordingPlaylist.properties.type.description
Playlist type: 'collection' for manually curated recordings, 'filters' for saved filter views. Required on create, cannot be changed after.

* `collection` - Collection
* `filters` - Filters

# components.schemas.SessionRecordingPlaylist.properties.is_synthetic.description
Return whether this is a synthetic playlist

# components.schemas.SessionRecordingPlaylistTypeEnum.description
* `collection` - Collection
* `filters` - Filters

# components.schemas.SessionRecordingType.properties.activity_score.description
calculated on the backend so that we can sort by it, definition may change over time

# components.schemas.SessionRecordingType.properties.expiry_time.description
When the recording expires, in ISO format.

# components.schemas.SessionRecordingType.properties.external_references.description
External references to third party issues.

# components.schemas.SessionRecordingType.properties.mouse_activity_count.description
count of all mouse activity in the recording, not just clicks

# components.schemas.SessionRecordingType.properties.ongoing.description
whether we have received data for this recording in the last 5 minutes (assumes the recording was loaded from ClickHouse)
*

# components.schemas.SessionRecordingType.properties.recording_ttl.description
Number of whole days left until the recording expires.

# components.schemas.SessionRecordingType.properties.start_time.description
When the recording starts in ISO format.

# components.schemas.SessionRecordingType.properties.viewed.description
Whether this recording has been viewed by you already.

# components.schemas.SessionRecordingType.properties.viewers.description
user ids of other users who have viewed this recording

# components.schemas.SessionReplayListWidgetAddRequestOpenApi.properties.name.description
Optional custom display name for the widget tile.

# components.schemas.SessionReplayListWidgetAddRequestOpenApi.properties.description.description
Optional markdown description shown when show_description is enabled.

# components.schemas.SessionReplayListWidgetAddRequestOpenApi.properties.layouts.description
Optional react-grid-layout positions keyed by breakpoint (sm, xs).

# components.schemas.SessionReplayListWidgetAddRequestOpenApi.properties.show_description.description
Whether to show the description on the dashboard tile.

# components.schemas.SessionReplayListWidgetAddRequestOpenApi.properties.config.description
Configuration for the session replay list widget.

# components.schemas.SessionReplayListWidgetConfig.properties.orderBy.description
Recording ranking column.

* `activity_score` - activity_score
* `click_count` - click_count
* `console_error_count` - console_error_count
* `duration` - duration
* `recording_duration` - recording_duration
* `start_time` - start_time

# components.schemas.SessionReplayListWidgetConfig.properties.orderDirection.description
Sort direction for orderBy.

* `ASC` - ASC
* `DESC` - DESC

# components.schemas.SessionReplayListWidgetConfig.properties.filterTestAccounts.description
When omitted, follows the project default for filtering test accounts.

# components.schemas.SessionReplayListWidgetConfigOrderByEnum.description
* `activity_score` - activity_score
* `click_count` - click_count
* `console_error_count` - console_error_count
* `duration` - duration
* `recording_duration` - recording_duration
* `start_time` - start_time

# components.schemas.SessionSummaries.properties.session_ids.description
List of session IDs to summarize (max 300)

# components.schemas.SessionSummaries.properties.focus_area.description
Optional focus area for the summarization

# components.schemas.SessionSummariesConfig.properties.product_context.description
Free-form description of the team's product, used to tailor AI-generated single-session replay summaries. Injected into the system prompt of every summary generated for this team via the replay page.

# components.schemas.SessionSummariesConfig.properties.custom_tags.description
Team-defined tags layered on top of the fixed taxonomy, as a {name: description} map. Names must be lowercase snake_case (max 60 chars), descriptions max 200 chars, max 15 entries.

# components.schemas.SessionsQuery.properties.actionId.description
Filter sessions by action - sessions that contain events matching this action

# components.schemas.SessionsQuery.properties.after.description
Only fetch sessions that started after this timestamp

# components.schemas.SessionsQuery.properties.before.description
Only fetch sessions that started before this timestamp

# components.schemas.SessionsQuery.properties.event.description
Filter sessions by event name - sessions that contain this event

# components.schemas.SessionsQuery.properties.eventProperties.description
Event property filters - filters sessions that contain events matching these properties

# components.schemas.SessionsQuery.properties.fixedProperties.description
Fixed properties in the query, can't be edited in the interface (e.g. scoping down by person)

# components.schemas.SessionsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.SessionsQuery.properties.offset.description
Number of rows to skip before returning rows

# components.schemas.SessionsQuery.properties.properties.description
Properties configurable in the interface

# components.schemas.SessionsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.SessionsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.SessionsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.SessionsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.SessionsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.SessionsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.SessionsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.SessionsTimelineQuery.properties.after.description
Only fetch sessions that started after this timestamp (default: '-24h')

# components.schemas.SessionsTimelineQuery.properties.before.description
Only fetch sessions that started before this timestamp (default: '+5s')

# components.schemas.SessionsTimelineQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.SessionsTimelineQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.SessionsTimelineQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.SessionsTimelineQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.SessionsTimelineQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.SessionsTimelineQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.SessionsTimelineQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.SessionsTimelineQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.SeverityLevelsEnum.description
* `trace` - trace
* `debug` - debug
* `info` - info
* `warn` - warn
* `error` - error
* `fatal` - fatal

# components.schemas.ShipVariant.properties.conclusion.description
The conclusion of the experiment.

* `won` - won
* `lost` - lost
* `inconclusive` - inconclusive
* `stopped_early` - stopped_early
* `invalid` - invalid

# components.schemas.ShipVariant.properties.conclusion_comment.description
Optional comment about the experiment conclusion.

# components.schemas.ShipVariant.properties.release_to_everyone.description
If true, prepend a release condition to the feature flag that rolls the variant out to 100% of users, overriding any existing release conditions on the flag. If false (default), only update the variant distribution — existing release conditions are preserved and the variant is served only to users who already match them.

# components.schemas.ShortcutPositionEnum.description
* `above` - Above
* `below` - Below
* `hidden` - Hidden

# components.schemas.SignalReport.properties.priority.description
P0–P4 from the latest priority judgment artefact (when present).

# components.schemas.SignalReport.properties.actionability.description
Actionability choice from the latest actionability judgment artefact (when present).

# components.schemas.SignalReport.properties.already_addressed.description
Whether the issue appears already fixed, from the actionability judgment artefact.

# components.schemas.SignalReport.properties.source_products.description
Distinct source products contributing signals to this report (from ClickHouse).

# components.schemas.SignalReport.properties.implementation_pr_url.description
PR URL from the latest implementation task run, if available.

# components.schemas.SignalReportStateRequest.properties.state.description
Target state for the report. Use 'suppressed' to dismiss the report from the inbox, or 'potential' to snooze/reopen it for later review.

* `suppressed` - suppressed
* `potential` - potential

# components.schemas.SignalReportStateRequest.properties.dismissal_reason.description
Optional short reason code for the dismissal (e.g. 'not_a_bug', 'wont_fix', 'duplicate'). The set of reason codes is owned by the caller and is not validated server-side.

# components.schemas.SignalReportStateRequest.properties.dismissal_note.description
Optional free-form note explaining the dismissal. Capped at 4000 characters.

# components.schemas.SignalReportStateRequest.properties.snooze_for.description
Optional, only honored when state is 'potential'. Number of additional signals the report must accumulate before it is re-promoted into the pipeline — effectively snoozing it until then. Omit to let the report re-enter the pipeline on the next matching signal.

# components.schemas.SignalReportStateRequestStateEnum.description
* `suppressed` - suppressed
* `potential` - potential

# components.schemas.SignalReportStatusEnum.description
* `potential` - Potential
* `candidate` - Candidate
* `in_progress` - In Progress
* `pending_input` - Pending Input
* `ready` - Ready
* `resolved` - Resolved
* `failed` - Failed
* `deleted` - Deleted
* `suppressed` - Suppressed

# components.schemas.SignalScoutConfig.description
Per-(team, skill) scout config: schedule, enablement, and emit posture.

One row per `signals-scout-*` skill on the team. The coordinator auto-creates a row
when it discovers a scout skill; this serializer lets agents tune the row.

# components.schemas.SignalScoutConfig.properties.skill_name.description
The `signals-scout-*` skill this config controls. Set at creation, not editable.

# components.schemas.SignalScoutConfig.properties.enabled.description
Whether this scout runs on its schedule. Disabled scouts are skipped by the coordinator.

# components.schemas.SignalScoutConfig.properties.emit.description
Whether the scout writes findings to the inbox. False = dry-run: it runs and logs but emits nothing.

# components.schemas.SignalScoutConfig.properties.run_interval_minutes.description
Minutes between runs (10–43200). The scout runs once this interval has elapsed since its last run.

# components.schemas.SignalScoutConfig.properties.last_run_at.description
When the coordinator last dispatched this scout. Null if it has never run.

# components.schemas.SignalScoutRunDetail.description
Full `SignalScoutRun` projection used by `get-run`. Same shape as the summary
today; kept distinct so future detail-only extensions (linked Signal rows,
LLMA token-cost join) can land here without bloating the list response.

# components.schemas.SignalScoutRunDetail.properties.skill_name.description
Canonical skill name the run executed (e.g. `signals-scout-general`).

# components.schemas.SignalScoutRunDetail.properties.status.description
Status from the linked TaskRun: not_started | queued | in_progress | completed | failed | cancelled.

# components.schemas.SignalScoutRunDetail.properties.started_at.description
ISO-8601 timestamp the TaskRun was created.

# components.schemas.SignalScoutRunDetail.properties.completed_at.description
ISO-8601 timestamp the TaskRun completed; null while still running.

# components.schemas.SignalScoutRunDetail.properties.task_id.description
UUID of the Tasks `Task` the scout span ran inside.

# components.schemas.SignalScoutRunDetail.properties.task_run_id.description
UUID of the Tasks `TaskRun`. Pairs with `task_id` to deep-link.

# components.schemas.SignalScoutRunDetail.properties.task_url.description
Relative deep-link to the Tasks UI for this run, e.g. `/project/{team_id}/tasks/{task_id}?runId={task_run_id}`.

# components.schemas.SignalScoutRunDetail.properties.summary.description
One-paragraph close-out the scout wrote at end-of-run. Empty string for runs that errored before close-out. The dedupe key for non-emitting runs.

# components.schemas.SignalScoutRunSummary.description
Lightweight projection of a `SignalScoutRun` row used by `search-recent-runs`.

Status and timestamps flow from the linked `tasks.TaskRun`.

# components.schemas.SignalScoutRunSummary.properties.skill_name.description
Canonical skill name the run executed (e.g. `signals-scout-general`).

# components.schemas.SignalScoutRunSummary.properties.status.description
Status from the linked TaskRun: not_started | queued | in_progress | completed | failed | cancelled.

# components.schemas.SignalScoutRunSummary.properties.started_at.description
ISO-8601 timestamp the TaskRun was created.

# components.schemas.SignalScoutRunSummary.properties.completed_at.description
ISO-8601 timestamp the TaskRun completed; null while still running.

# components.schemas.SignalScoutRunSummary.properties.task_id.description
UUID of the Tasks `Task` the scout span ran inside.

# components.schemas.SignalScoutRunSummary.properties.task_run_id.description
UUID of the Tasks `TaskRun`. Pairs with `task_id` to deep-link.

# components.schemas.SignalScoutRunSummary.properties.task_url.description
Relative deep-link to the Tasks UI for this run, e.g. `/project/{team_id}/tasks/{task_id}?runId={task_run_id}`.

# components.schemas.SignalScoutRunSummary.properties.summary.description
One-paragraph close-out the scout wrote at end-of-run. Empty string for runs that errored before close-out. The dedupe key for non-emitting runs.

# components.schemas.SignalSourceConfigEntry.description
One row in either bucket of `inventory.signal_source_configs`.

# components.schemas.SignalSourceConfigSourceTypeEnum.description
* `session_analysis_cluster` - Session analysis cluster
* `evaluation` - Evaluation
* `issue` - Issue
* `ticket` - Ticket
* `issue_created` - Issue created
* `issue_reopened` - Issue reopened
* `issue_spiking` - Issue spiking
* `cross_source_issue` - Cross source issue
* `alert_state_change` - Alert state change

# components.schemas.SignalSourceConfigsBuckets.properties.enabled.description
Source configs the team has explicitly enabled.

# components.schemas.SignalSourceConfigsBuckets.properties.disabled.description
Source configs the team has explicitly disabled (different from never wired up).

# components.schemas.SignalUserAutonomyConfig.properties.slack_notification_integration_id.description
ID of the Slack Integration to deliver inbox-item notifications through, or null when notifications are disabled.

# components.schemas.SignalUserAutonomyConfig.properties.slack_notification_channel.description
Slack channel target in the same `channel_id|#channel-name` shape PostHog uses elsewhere (only the channel id is required). Null disables Slack notifications.

# components.schemas.SignalUserAutonomyConfig.properties.slack_notification_min_priority.description
Minimum report priority that triggers a Slack notification. P0 is highest. Null means notify on every priority (and reports without a priority judgment).

* `P0` - P0
* `P1` - P1
* `P2` - P2
* `P3` - P3
* `P4` - P4

# components.schemas.SingleSessionSummary.description
Full session summary, including the generated `summary` JSON content.

# components.schemas.SingleSessionSummary.properties.summary.description
Full LLM-generated summary JSON. Contains `segments` (chronological journey segments), `key_actions` (per-segment events with `abandonment` / `confusion` / `exception` flags — the structured source of session-level problems), `segment_outcomes`, and `session_outcome`. Video-based runs additionally include a `sentiment` block.

# components.schemas.SingleSessionSummary.properties.exception_event_ids.description
Event IDs (capped at 100) where exceptions occurred during the session — extracted from the summary for searchability.

# components.schemas.SingleSessionSummary.properties.extra_summary_context.description
Optional context passed to the summary at generation time (e.g. `focus_area`).

# components.schemas.SingleSessionSummary.properties.run_metadata.description
`SessionSummaryRunMeta` — model used, whether video-based visual confirmation was applied, and visual-confirmation event-to-asset mappings.

# components.schemas.SingleSessionSummaryMinimal.description
Lightweight projection for list endpoints — omits the full `summary` JSON (~50 KB per row).

# components.schemas.SingleSessionSummaryMinimal.properties.session_outcome.description
Headline outcome from the summary: `{success: bool, description: string}` or null if the summary did not record one. Useful for quickly classifying a session as success/failure.

# components.schemas.SingleSessionSummaryMinimal.properties.exception_count.description
Number of exception event IDs surfaced by this summary (capped at 100).

# components.schemas.SingleSessionSummaryMinimal.properties.has_exceptions.description
True if the summary surfaced any exception events.

# components.schemas.SingleSessionSummaryMinimal.properties.model_used.description
LLM model identifier that generated this summary, if recorded in run metadata.

# components.schemas.SingleSessionSummaryMinimal.properties.visual_confirmation.description
True if the summary was produced with video-based visual confirmation (the rasterized-recording path).

# components.schemas.SingleSessionSummaryMinimal.properties.extra_summary_context.description
Optional context passed to the summary at generation time (e.g. `focus_area`).

# components.schemas.SlackChannel.properties.id.description
Slack channel ID (e.g. C0123ABC) — pass to cdp-functions inputs.channel.

# components.schemas.SlackChannel.properties.name.description
Slack channel name without the leading '#'.

# components.schemas.SlackChannel.properties.is_member.description
True if the PostHog Slack app is a member of the channel and can post to it.

# components.schemas.SlackChannel.properties.is_ext_shared.description
True if the channel is shared with another Slack workspace.

# components.schemas.SlackChannel.properties.is_private_without_access.description
True if the channel is private and the PostHog Slack app cannot access it.

# components.schemas.SlackChannelsResponse.properties.channels.description
Slack channels visible to the PostHog Slack app.

# components.schemas.SlackChannelsResponse.properties.lastRefreshedAt.description
ISO 8601 timestamp of the last full Slack API refresh (only set on full lists, not single-channel lookups).

# components.schemas.SlackChannelsResponse.properties.has_more.description
Whether more channels match the current search beyond this page.

# components.schemas.SlackThreadContextRepoResearch.description
The internal sandbox run the discovery agent used to pick this run's repo.

Only present when the originating mention was ambiguous (multiple candidate
repos, no explicit mention) — that's the only path that spins up a research
sandbox. Null otherwise.

# components.schemas.SlackThreadContextRepoResearch.properties.task_id.description
UUID of the internal repo-research Task.

# components.schemas.SlackThreadContextRepoResearch.properties.run_id.description
UUID of the internal repo-research TaskRun.

# components.schemas.SlackThreadContextRepoResearch.properties.status.description
Research run status, or null if the run row could not be loaded.

# components.schemas.SlackThreadContextRepoResearch.properties.task_processing_workflow_id.description
Temporal workflow id for the research sandbox run (`task-processing-<task_id>-<run_id>`).

# components.schemas.SlackThreadContextRepoResearch.properties.task_processing_workflow_url.description
Full Temporal Web UI URL for the research workflow; null when `TEMPORAL_UI_HOST` is unset.

# components.schemas.SlackThreadContextRepoResearch.properties.sandbox_url.description
Live sandbox tunnel URL for the research run, when one was attached.

# components.schemas.SlackThreadContextRepoResearch.properties.task_view_url.description
Absolute URL to the research task detail page (carries `?ph_debug=true`).

# components.schemas.SlackThreadContextRepoResearch.properties.log_url.description
Presigned S3 URL for the research run's JSONL log transcript (valid ~1 hour).

# components.schemas.SlackThreadContextResponse.description
Top-level response for the slack-thread debug endpoint.

# components.schemas.SlackThreadContextResponse.properties.thread.description
Slack-side identifiers and the mapping metadata.

# components.schemas.SlackThreadContextResponse.properties.task.description
Linked PostHog Task. Null when no mapping was found for the thread.

# components.schemas.SlackThreadContextResponse.properties.runs.description
All runs on the task, oldest first. Empty when no mapping was found.

# components.schemas.SlackThreadContextRun.description
One TaskRun and its associated Temporal workflow handles.

# components.schemas.SlackThreadContextRun.properties.completed_at.description
When the run reached a terminal state, or null while still running.

# components.schemas.SlackThreadContextRun.properties.sandbox_url.description
Live sandbox tunnel URL, when one was attached.

# components.schemas.SlackThreadContextRun.properties.pr_url.description
PR URL produced by the run, when one was opened.

# components.schemas.SlackThreadContextRun.properties.error_message.description
Error captured on terminal failure, or null on success.

# components.schemas.SlackThreadContextRun.properties.task_processing_workflow_url.description
Full Temporal Web UI URL for the task-processing workflow; null when `TEMPORAL_UI_HOST` is unset.

# components.schemas.SlackThreadContextRun.properties.mention_workflow_id.description
Temporal workflow id of the Slack mention that dispatched this run (`posthog-code-mention-<workspace>:<event_id_or_channel:ts>`). Null for runs created before this field was persisted.

# components.schemas.SlackThreadContextRun.properties.mention_workflow_url.description
Full Temporal Web UI URL for the mention dispatch workflow; null when unavailable.

# components.schemas.SlackThreadContextRun.properties.task_view_url.description
Absolute URL to the task detail page focused on this run.

# components.schemas.SlackThreadContextRun.properties.log_url.description
Presigned S3 URL for the run's full JSONL log transcript (valid ~1 hour).

# components.schemas.SlackThreadContextRun.properties.repo_research.description
The discovery-agent sandbox that picked this run's repo, when the mention was ambiguous.

# components.schemas.SlackThreadContextTask.description
The PostHog Task linked to the Slack thread.

# components.schemas.SlackThreadContextTask.properties.title.description
Task title (typically the first ~255 chars of the Slack ask).

# components.schemas.SlackThreadContextTask.properties.repository.description
Resolved repository in `org/repo` form, or null if the run started without a repo.

# components.schemas.SlackThreadContextTask.properties.created_at.description
When the task was created (server-side timestamp).

# components.schemas.SlackThreadContextTask.properties.url.description
Absolute URL to the task detail page in the PostHog app.

# components.schemas.SlackThreadContextThread.description
Slack-side identifiers and the mapping metadata for a thread → task lookup.

# components.schemas.SlackThreadContextThread.properties.channel.description
Slack channel id parsed from the URL (e.g. C0ACRAMJUAG).

# components.schemas.SlackThreadContextThread.properties.slack_workspace_id.description
Slack workspace id (e.g. T…). Null when no mapping exists yet.

# components.schemas.SlackThreadContextThread.properties.mentioning_slack_user_id.description
The Slack user who triggered the task. Null when no mapping exists yet.

# components.schemas.SourceProductEnum.description
* `session_replay` - Session replay
* `llm_analytics` - LLM analytics
* `github` - GitHub
* `linear` - Linear
* `zendesk` - Zendesk
* `conversations` - Conversations
* `error_tracking` - Error tracking
* `pganalyze` - pganalyze
* `signals_scout` - Signals scout
* `logs` - Logs

# components.schemas.SpanTreeNode.properties.avg_start_offset_nano.description
Average nanoseconds from the parent span's start to this span's start. Zero for root spans. Used to order children left-to-right by typical start time in the flame graph.

# components.schemas.SparklineBreakdownByEnum.description
* `severity` - severity
* `service` - service

# components.schemas.StageEnum.description
* `draft` - draft
* `concept` - concept
* `alpha` - alpha
* `beta` - beta
* `general-availability` - general availability
* `archived` - archived

# components.schemas.StaticFilters.properties.clients.description
API clients that have generated activity (from x-posthog-client header).

# components.schemas.StatusReasonEnum.description
* `trial_limit_reached` - Trial evaluation limit reached
* `model_not_allowed` - Model not available on the trial plan
* `provider_key_deleted` - Provider API key was deleted

# components.schemas.StickinessActorsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.StickinessActorsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.StickinessFilter.properties.resultCustomizationBy.description
Whether result datasets are associated by their values or by their order.

# components.schemas.StickinessFilter.properties.resultCustomizations.description
Customizations for the appearance of result datasets.

# components.schemas.StickinessQuery.properties.dataColorTheme.description
Colors used in the insight's visualization

# components.schemas.StickinessQuery.properties.filterTestAccounts.description
Exclude internal and test users by applying the respective filters

# components.schemas.StickinessQuery.properties.interval.description
Granularity of the response. Can be one of `hour`, `day`, `week` or `month`

# components.schemas.StickinessQuery.properties.intervalCount.description
How many intervals comprise a period. Only used for cohorts, otherwise default 1.

# components.schemas.StickinessQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.StickinessQuery.properties.stickinessFilter.description
Properties specific to the stickiness insight

# components.schemas.StickinessQuery.properties.tags.description
Tags that will be added to the Query log comment

# components.schemas.StickinessQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.StickinessQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.StickinessQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.StickinessQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.StickinessQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.StickinessQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.StickinessQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.StringMatchOperatorEnum.description
* `exact` - exact
* `is_not` - is_not
* `icontains` - icontains
* `not_icontains` - not_icontains
* `regex` - regex
* `not_regex` - not_regex

# components.schemas.StringPropertyFilter.description
Matches string values with text-oriented operators.

# components.schemas.StringPropertyFilter.properties.key.description
Key of the property you're filtering on. For example `email` or `$current_url`.

# components.schemas.StringPropertyFilter.properties.type.description
Property type (event, person, session, etc.).

* `event` - event
* `event_metadata` - event_metadata
* `feature` - feature
* `person` - person
* `cohort` - cohort
* `element` - element
* `static-cohort` - static-cohort
* `dynamic-cohort` - dynamic-cohort
* `precalculated-cohort` - precalculated-cohort
* `group` - group
* `recording` - recording
* `log_entry` - log_entry
* `behavioral` - behavioral
* `session` - session
* `hogql` - hogql
* `data_warehouse` - data_warehouse
* `data_warehouse_person_property` - data_warehouse_person_property
* `error_tracking_issue` - error_tracking_issue
* `log` - log
* `log_attribute` - log_attribute
* `log_resource_attribute` - log_resource_attribute
* `span` - span
* `span_attribute` - span_attribute
* `span_resource_attribute` - span_resource_attribute
* `revenue_analytics` - revenue_analytics
* `flag` - flag
* `workflow_variable` - workflow_variable

# components.schemas.StringPropertyFilter.properties.operator.description
String comparison operator.

* `exact` - exact
* `is_not` - is_not
* `icontains` - icontains
* `not_icontains` - not_icontains
* `regex` - regex
* `not_regex` - not_regex

# components.schemas.StructuredSummary.properties.title.description
Concise title (no longer than 10 words) summarizing the trace/event

# components.schemas.StructuredSummary.properties.flow_diagram.description
Mermaid flowchart code showing the main flow

# components.schemas.StructuredSummary.properties.interesting_notes.description
Interesting notes (0-2 for minimal, more for detailed)

# components.schemas.StyleEnum.description
* `primary` - Primary
* `secondary` - Secondary

# components.schemas.Subscription.properties.dashboard.description
Dashboard ID to subscribe to (mutually exclusive with insight on create).

# components.schemas.Subscription.properties.insight.description
Insight ID to subscribe to (mutually exclusive with dashboard on create).

# components.schemas.Subscription.properties.dashboard_export_insights.description
List of insight IDs from the dashboard to include. Required for dashboard subscriptions, max 6.

# components.schemas.Subscription.properties.target_type.description
Delivery channel: email, slack, or webhook.

* `email` - Email
* `slack` - Slack
* `webhook` - Webhook

# components.schemas.Subscription.properties.target_value.description
Recipient(s): comma-separated email addresses for email, Slack channel name/ID for slack, or full URL for webhook.

# components.schemas.Subscription.properties.frequency.description
How often to deliver: daily, weekly, monthly, or yearly.

* `daily` - Daily
* `weekly` - Weekly
* `monthly` - Monthly
* `yearly` - Yearly

# components.schemas.Subscription.properties.interval.description
Interval multiplier (e.g. 2 with weekly frequency means every 2 weeks). Required on create; must be 1 or greater.

# components.schemas.Subscription.properties.byweekday.items.description
* `monday` - Monday
* `tuesday` - Tuesday
* `wednesday` - Wednesday
* `thursday` - Thursday
* `friday` - Friday
* `saturday` - Saturday
* `sunday` - Sunday

# components.schemas.Subscription.properties.byweekday.description
Days of week for weekly subscriptions: monday, tuesday, wednesday, thursday, friday, saturday, sunday.

# components.schemas.Subscription.properties.bysetpos.description
Position within byweekday set for monthly frequency (e.g. 1 for first, -1 for last).

# components.schemas.Subscription.properties.count.description
Total number of deliveries before the subscription stops. Null for unlimited.

# components.schemas.Subscription.properties.start_date.description
When to start delivering (ISO 8601 datetime).

# components.schemas.Subscription.properties.until_date.description
When to stop delivering (ISO 8601 datetime). Null for indefinite.

# components.schemas.Subscription.properties.deleted.description
Set to true to soft-delete. Subscriptions cannot be hard-deleted.

# components.schemas.Subscription.properties.enabled.description
Whether the subscription is active. Set to false to pause delivery without deleting. Auto-set to false when the delivery integration becomes invalid.

# components.schemas.Subscription.properties.title.description
Human-readable name for this subscription.

# components.schemas.Subscription.properties.summary.description
Human-readable schedule summary, e.g. 'sent daily'.

# components.schemas.Subscription.properties.integration_id.description
ID of a connected Slack integration. Required when target_type is slack.

# components.schemas.Subscription.properties.invite_message.description
Optional message included in the invitation email when adding new recipients.

# components.schemas.SubscriptionDelivery.properties.temporal_workflow_id.description
Temporal workflow id for this delivery run.

# components.schemas.SubscriptionDelivery.properties.idempotency_key.description
Dedupes activity retries for the same logical run.

# components.schemas.SubscriptionDelivery.properties.trigger_type.description
Why the run started (e.g. scheduled, manual, target_change).

# components.schemas.SubscriptionDelivery.properties.target_type.description
Channel snapshot at send time (email, slack, webhook).

# components.schemas.SubscriptionDelivery.properties.target_value.description
Destination snapshot at send time (emails, channel id, URL).

# components.schemas.SubscriptionDelivery.properties.exported_asset_ids.description
ExportedAsset ids generated for this send.

# components.schemas.SubscriptionDelivery.properties.content_snapshot.description
Snapshot at send time: dashboard metadata, total_insight_count, and per-exported-insight entries (id, short_id, name, query_hash, cache_key, query_results, optional query_error).

# components.schemas.SubscriptionDelivery.properties.recipient_results.description
Per-destination outcomes; items use status success, failed, or partial.

# components.schemas.SubscriptionDelivery.properties.status.description
Overall run status: starting, completed, failed, or skipped.

* `starting` - Starting
* `completed` - Completed
* `failed` - Failed
* `skipped` - Skipped

# components.schemas.SubscriptionDelivery.properties.error.description
Top-level failure payload when status is failed, if any.

# components.schemas.SubscriptionDelivery.properties.change_summary.description
AI-generated summary included in this delivery, when one was produced.

# components.schemas.SubscriptionDeliveryStatusEnum.description
* `starting` - Starting
* `completed` - Completed
* `failed` - Failed
* `skipped` - Skipped

# components.schemas.SubscriptionFrequencyEnum.description
* `daily` - Daily
* `weekly` - Weekly
* `monthly` - Monthly
* `yearly` - Yearly

# components.schemas.SuggestedQuestionsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.SuggestedQuestionsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.SuggestedQuestionsQueryResponse.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.SummarizeRequest.properties.summarize_type.description
Type of entity to summarize. Inferred automatically when using trace_id or generation_id.

* `trace` - trace
* `event` - event

# components.schemas.SummarizeRequest.properties.mode.description
Summary detail level: 'minimal' for 3-5 points, 'detailed' for 5-10 points

* `minimal` - minimal
* `detailed` - detailed

# components.schemas.SummarizeRequest.properties.data.description
Data to summarize. For traces: {trace, hierarchy}. For events: {event}. Not required when using trace_id or generation_id.

# components.schemas.SummarizeRequest.properties.force_refresh.description
Force regenerate summary, bypassing cache

# components.schemas.SummarizeRequest.properties.model.description
LLM model to use (defaults based on provider)

# components.schemas.SummarizeRequest.properties.trace_id.description
Trace ID to summarize. The backend fetches the trace data automatically. Requires date_from for efficient lookup.

# components.schemas.SummarizeRequest.properties.generation_id.description
Generation event UUID to summarize. The backend fetches the event data automatically. Requires date_from for efficient lookup.

# components.schemas.SummarizeRequest.properties.date_from.description
Start of date range for ID-based lookup (e.g. '-7d' or '2026-01-01'). Defaults to -30d.

# components.schemas.SummarizeRequest.properties.date_to.description
End of date range for ID-based lookup. Defaults to now.

# components.schemas.SummarizeResponse.properties.summary.description
Structured AI-generated summary with flow, bullets, and optional notes

# components.schemas.SummarizeResponse.properties.text_repr.description
Line-numbered text representation that the summary references

# components.schemas.Survey.description
Mixin for serializers to add user access control fields

# components.schemas.Survey.properties.questions.description
        The `array` of questions included in the survey. Each question must conform to one of the defined question types: Basic, Link, Rating, or Multiple Choice.

        Basic (open-ended question)
        - `id`: The question ID
        - `type`: `open`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `branching`: Branching logic for the question. See branching types below for details.

        Link (a question with a link)
        - `id`: The question ID
        - `type`: `link`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `link`: The URL associated with the question.
        - `branching`: Branching logic for the question. See branching types below for details.

        Rating (a question with a rating scale)
        - `id`: The question ID
        - `type`: `rating`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `display`: Display style of the rating (`number` or `emoji`).
        - `scale`: The scale of the rating (`number`).
        - `lowerBoundLabel`: Label for the lower bound of the scale.
        - `upperBoundLabel`: Label for the upper bound of the scale.
        - `isNpsQuestion`: Whether the question is an NPS rating.
        - `branching`: Branching logic for the question. See branching types below for details.

        Multiple choice
        - `id`: The question ID
        - `type`: `single_choice` or `multiple_choice`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `choices`: An array of choices for the question.
        - `shuffleOptions`: Whether to shuffle the order of the choices (`boolean`).
        - `hasOpenChoice`: Whether the question allows an open-ended response (`boolean`).
        - `branching`: Branching logic for the question. See branching types below for details.

        Branching logic can be one of the following types:

        Next question: Proceeds to the next question
        ```json
        {
            "type": "next_question"
        }
        ```

        End: Ends the survey, optionally displaying a confirmation message.
        ```json
        {
            "type": "end"
        }
        ```

        Response-based: Branches based on the response values. Available for the `rating` and `single_choice` question types.
        ```json
        {
            "type": "response_based",
            "responseValues": {
                "responseKey": "value"
            }
        }
        ```

        Specific question: Proceeds to a specific question by index.
        ```json
        {
            "type": "specific_question",
            "index": 2
        }
        ```

        Translations: Each question can include inline translations.
        - `translations`: Object mapping language codes to translated fields.
        - Language codes: Canonical BCP-47-ish strings (e.g., "es", "es-MX", "zh-CN"). Aliases like "english" or "default" are rejected. The survey's `base_language` (default "en") declares the language of the untranslated text and cannot also appear as a translation key.
        - Translatable fields: `question`, `description`, `buttonText`, `choices`, `lowerBoundLabel`, `upperBoundLabel`, `link`

        Example with translations:
        ```json
        {
            "id": "uuid",
            "type": "rating",
            "question": "How satisfied are you?",
            "lowerBoundLabel": "Not satisfied",
            "upperBoundLabel": "Very satisfied",
            "translations": {
                "es": {
                    "question": "¿Qué tan satisfecho estás?",
                    "lowerBoundLabel": "No satisfecho",
                    "upperBoundLabel": "Muy satisfecho"
                },
                "fr": {
                    "question": "Dans quelle mesure êtes-vous satisfait?"
                }
            }
        }
        ```
        

# components.schemas.Survey.properties.base_language.description
BCP-47 language code (e.g. 'en', 'es', 'es-MX') describing the language of the survey's untranslated text. Defaults to 'en'. Cannot also appear as a key in `translations`.

# components.schemas.Survey.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.SurveyConditionsSchema.properties.seenSurveyWaitPeriodInDays.description
Don't show this survey to users who saw any survey in the last x days.

# components.schemas.SurveyConditionsSchema.properties.urlMatchType.description
URL/device matching types: 'regex' (matches regex pattern), 'not_regex' (does not match regex pattern), 'exact' (exact string match), 'is_not' (not exact match), 'icontains' (case-insensitive contains), 'not_icontains' (case-insensitive does not contain).

* `regex` - regex
* `not_regex` - not_regex
* `exact` - exact
* `is_not` - is_not
* `icontains` - icontains
* `not_icontains` - not_icontains

# components.schemas.SurveyConditionsSchema.properties.deviceTypes.description
Device types that should match for this survey to be shown.

# components.schemas.SurveyConditionsSchema.properties.deviceTypesMatchType.description
URL/device matching types: 'regex' (matches regex pattern), 'not_regex' (does not match regex pattern), 'exact' (exact string match), 'is_not' (not exact match), 'icontains' (case-insensitive contains), 'not_icontains' (case-insensitive does not contain).

* `regex` - regex
* `not_regex` - not_regex
* `exact` - exact
* `is_not` - is_not
* `icontains` - icontains
* `not_icontains` - not_icontains

# components.schemas.SurveyConditionsSchema.properties.linkedFlagVariant.description
The variant of the feature flag linked to this survey.

# components.schemas.SurveyEventsConditionSchema.properties.repeatedActivation.description
Whether to show the survey every time one of the events is triggered (true), or just once (false).

# components.schemas.SurveyEventsConditionSchema.properties.values.description
Array of event names that trigger the survey.

# components.schemas.SurveyGlobalStatsResponse.properties.stats.description
Event counts keyed by event name (survey shown, survey dismissed, survey sent).

# components.schemas.SurveyGlobalStatsResponse.properties.rates.description
Calculated response and dismissal rates.

# components.schemas.SurveyLinkQuestionSchema.properties.descriptionContentType.description
Format for the description field.

* `text` - text
* `html` - html

# components.schemas.SurveyLinkQuestionSchema.properties.optional.description
Whether respondents may skip this question.

# components.schemas.SurveyMultipleChoiceQuestionSchema.properties.descriptionContentType.description
Format for the description field.

* `text` - text
* `html` - html

# components.schemas.SurveyMultipleChoiceQuestionSchema.properties.optional.description
Whether respondents may skip this question.

# components.schemas.SurveyMultipleChoiceQuestionSchema.properties.choices.description
Array of choice options. Multiple selections allowed. No branching logic supported.

# components.schemas.SurveyMultipleChoiceQuestionSchema.properties.shuffleOptions.description
Whether to randomize the order of choices for each respondent.

# components.schemas.SurveyMultipleChoiceQuestionSchema.properties.hasOpenChoice.description
Whether the final option should be an open-text choice (for example, 'Other').

# components.schemas.SurveyNextQuestionBranching.properties.type.description
Continue to the next question in sequence.

* `next_question` - next_question

# components.schemas.SurveyOpenQuestionSchema.properties.descriptionContentType.description
Format for the description field.

* `text` - text
* `html` - html

# components.schemas.SurveyOpenQuestionSchema.properties.optional.description
Whether respondents may skip this question.

# components.schemas.SurveyQuestionLabel.properties.question_text.description
Untranslated question text as configured by the survey author.

# components.schemas.SurveyQuestionLabel.properties.question_index.description
Zero-based index of the question within the survey.

# components.schemas.SurveyQuestionLabel.properties.survey_id.description
UUID of the survey this question belongs to.

# components.schemas.SurveyQuestionLabelsResponse.properties.labels.description
One entry per question that has an ID assigned, across all the team's surveys.

# components.schemas.SurveyRatingQuestionSchema.properties.descriptionContentType.description
Format for the description field.

* `text` - text
* `html` - html

# components.schemas.SurveyRatingQuestionSchema.properties.optional.description
Whether respondents may skip this question.

# components.schemas.SurveyRatingQuestionSchema.properties.display.description
Display format: 'number' shows numeric scale, 'emoji' shows emoji scale.

* `number` - number
* `emoji` - emoji

# components.schemas.SurveyRatingQuestionSchema.properties.lowerBoundLabel.description
Label for the lowest rating (e.g., 'Very Poor')

# components.schemas.SurveyRatingQuestionSchema.properties.upperBoundLabel.description
Label for the highest rating (e.g., 'Excellent')

# components.schemas.SurveyResponseAnswer.properties.question_id.description
UUID of the survey question this answer belongs to.

# components.schemas.SurveyResponseAnswer.properties.question_index.description
Zero-based index of the question within the survey.

# components.schemas.SurveyResponseAnswer.properties.question_text.description
Untranslated question text as configured by the survey author.

# components.schemas.SurveyResponseAnswer.properties.question_type.description
Question type: open, rating, single_choice, multiple_choice, or link. Determines the shape of the answer field.

# components.schemas.SurveyResponseAnswer.properties.answer.description
Resolved answer. String for open/rating/single_choice/link questions, list of strings for multiple_choice questions. Already decoded from the raw $survey_response_<id> property so callers don't need to parse it.

# components.schemas.SurveyResponseBasedBranching.properties.type.description
Branch based on the selected or entered response.

* `response_based` - response_based

# components.schemas.SurveyResponseBasedBranching.properties.responseValues.description
Response-based branching map. Values can be a question index or 'end'.

# components.schemas.SurveyResponseExtra.properties.device_type.description
$device_type at the time the response was sent.

# components.schemas.SurveyResponseExtra.properties.browser.description
$browser at the time the response was sent.

# components.schemas.SurveyResponseExtra.properties.os.description
$os (operating system) at the time the response was sent.

# components.schemas.SurveyResponseExtra.properties.current_url.description
$current_url where the survey was submitted.

# components.schemas.SurveyResponseExtra.properties.iteration.description
Survey iteration number when the response was sent. Only set for recurring surveys.

# components.schemas.SurveyResponseRow.properties.uuid.description
UUID of the underlying `survey sent` event. Use as the response identifier for archive operations.

# components.schemas.SurveyResponseRow.properties.distinct_id.description
distinct_id of the respondent. Cross-pivot to the persons API or session recordings.

# components.schemas.SurveyResponseRow.properties.session_id.description
$session_id of the respondent when available. Use to pull the session recording for this response.

# components.schemas.SurveyResponseRow.properties.submitted_at.description
Event timestamp when the response was sent (ISO 8601, UTC).

# components.schemas.SurveyResponseRow.properties.answers.description
One entry per survey question that received a non-empty answer. Question text is already resolved — callers do not need to look up `$survey_response_<id>` keys.

# components.schemas.SurveyResponseRow.properties.extra.description
Convenience fields extracted from the event properties (device, browser, geoip, iteration).

# components.schemas.SurveyResponsesList.properties.results.description
Survey response rows for the requested page.

# components.schemas.SurveyResponsesList.properties.has_more.description
True if more rows exist beyond the current page — fetch the next page with offset + limit.

# components.schemas.SurveyResponsesList.properties.limit.description
The limit applied to this query (echoed back for pagination).

# components.schemas.SurveyResponsesList.properties.offset.description
The offset applied to this query (echoed back for pagination).

# components.schemas.SurveySerializerCreateUpdateOnly.properties.questions.description
        The `array` of questions included in the survey. Each question must conform to one of the defined question types: Basic, Link, Rating, or Multiple Choice.

        Basic (open-ended question)
        - `id`: The question ID
        - `type`: `open`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `branching`: Branching logic for the question. See branching types below for details.

        Link (a question with a link)
        - `id`: The question ID
        - `type`: `link`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `link`: The URL associated with the question.
        - `branching`: Branching logic for the question. See branching types below for details.

        Rating (a question with a rating scale)
        - `id`: The question ID
        - `type`: `rating`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `display`: Display style of the rating (`number` or `emoji`).
        - `scale`: The scale of the rating (`number`).
        - `lowerBoundLabel`: Label for the lower bound of the scale.
        - `upperBoundLabel`: Label for the upper bound of the scale.
        - `isNpsQuestion`: Whether the question is an NPS rating.
        - `branching`: Branching logic for the question. See branching types below for details.

        Multiple choice
        - `id`: The question ID
        - `type`: `single_choice` or `multiple_choice`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `choices`: An array of choices for the question.
        - `shuffleOptions`: Whether to shuffle the order of the choices (`boolean`).
        - `hasOpenChoice`: Whether the question allows an open-ended response (`boolean`).
        - `branching`: Branching logic for the question. See branching types below for details.

        Branching logic can be one of the following types:

        Next question: Proceeds to the next question
        ```json
        {
            "type": "next_question"
        }
        ```

        End: Ends the survey, optionally displaying a confirmation message.
        ```json
        {
            "type": "end"
        }
        ```

        Response-based: Branches based on the response values. Available for the `rating` and `single_choice` question types.
        ```json
        {
            "type": "response_based",
            "responseValues": {
                "responseKey": "value"
            }
        }
        ```

        Specific question: Proceeds to a specific question by index.
        ```json
        {
            "type": "specific_question",
            "index": 2
        }
        ```

        Translations: Each question can include inline translations.
        - `translations`: Object mapping language codes to translated fields.
        - Language codes: Canonical BCP-47-ish strings (e.g., "es", "es-MX", "zh-CN"). Aliases like "english" or "default" are rejected. The survey's `base_language` (default "en") declares the language of the untranslated text and cannot also appear as a translation key.
        - Translatable fields: `question`, `description`, `buttonText`, `choices`, `lowerBoundLabel`, `upperBoundLabel`, `link`

        Example with translations:
        ```json
        {
            "id": "uuid",
            "type": "rating",
            "question": "How satisfied are you?",
            "lowerBoundLabel": "Not satisfied",
            "upperBoundLabel": "Very satisfied",
            "translations": {
                "es": {
                    "question": "¿Qué tan satisfecho estás?",
                    "lowerBoundLabel": "No satisfecho",
                    "upperBoundLabel": "Muy satisfecho"
                },
                "fr": {
                    "question": "Dans quelle mesure êtes-vous satisfait?"
                }
            }
        }
        ```
        

# components.schemas.SurveySerializerCreateUpdateOnly.properties.base_language.description
BCP-47 language code (e.g. 'en', 'es', 'es-MX') describing the language of the survey's untranslated text. Defaults to 'en'. Cannot also appear as a key in `translations`.

# components.schemas.SurveySerializerCreateUpdateOnlySchema.properties.type.description
Survey type.

* `popover` - popover
* `widget` - widget
* `external_survey` - external survey
* `api` - api

# components.schemas.SurveySerializerCreateUpdateOnlySchema.properties.schedule.description
Survey scheduling behavior: 'once' = show once per user (default), 'recurring' = repeat based on iteration_count and iteration_frequency_days settings, 'always' = show every time conditions are met (mainly for widget surveys)

* `once` - once
* `recurring` - recurring
* `always` - always

# components.schemas.SurveySerializerCreateUpdateOnlySchema.properties.targeting_flag_id.description
An existing targeting flag to use for this survey.

# components.schemas.SurveySerializerCreateUpdateOnlySchema.properties.targeting_flag_filters.description
Target specific users based on their properties. Example: {groups: [{properties: [{key: 'email', value: ['@company.com'], operator: 'icontains'}], rollout_percentage: 100}]}

# components.schemas.SurveySerializerCreateUpdateOnlySchema.properties.remove_targeting_flag.description
Set to true to completely remove all targeting filters from the survey, making it visible to all users (subject to other display conditions like URL matching).

# components.schemas.SurveySerializerCreateUpdateOnlySchema.properties.questions.description
        The `array` of questions included in the survey. Each question must conform to one of the defined question types: Basic, Link, Rating, or Multiple Choice.

        Basic (open-ended question)
        - `id`: The question ID
        - `type`: `open`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `branching`: Branching logic for the question. See branching types below for details.

        Link (a question with a link)
        - `id`: The question ID
        - `type`: `link`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `link`: The URL associated with the question.
        - `branching`: Branching logic for the question. See branching types below for details.

        Rating (a question with a rating scale)
        - `id`: The question ID
        - `type`: `rating`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `display`: Display style of the rating (`number` or `emoji`).
        - `scale`: The scale of the rating (`number`).
        - `lowerBoundLabel`: Label for the lower bound of the scale.
        - `upperBoundLabel`: Label for the upper bound of the scale.
        - `isNpsQuestion`: Whether the question is an NPS rating.
        - `branching`: Branching logic for the question. See branching types below for details.

        Multiple choice
        - `id`: The question ID
        - `type`: `single_choice` or `multiple_choice`
        - `question`: The text of the question.
        - `description`: Optional description of the question.
        - `descriptionContentType`: Content type of the description (`html` or `text`).
        - `optional`: Whether the question is optional (`boolean`).
        - `buttonText`: Text displayed on the submit button.
        - `choices`: An array of choices for the question.
        - `shuffleOptions`: Whether to shuffle the order of the choices (`boolean`).
        - `hasOpenChoice`: Whether the question allows an open-ended response (`boolean`).
        - `branching`: Branching logic for the question. See branching types below for details.

        Branching logic can be one of the following types:

        Next question: Proceeds to the next question
        ```json
        {
            "type": "next_question"
        }
        ```

        End: Ends the survey, optionally displaying a confirmation message.
        ```json
        {
            "type": "end"
        }
        ```

        Response-based: Branches based on the response values. Available for the `rating` and `single_choice` question types.
        ```json
        {
            "type": "response_based",
            "responseValues": {
                "responseKey": "value"
            }
        }
        ```

        Specific question: Proceeds to a specific question by index.
        ```json
        {
            "type": "specific_question",
            "index": 2
        }
        ```

        Translations: Each question can include inline translations.
        - `translations`: Object mapping language codes to translated fields.
        - Language codes: Canonical BCP-47-ish strings (e.g., "es", "es-MX", "zh-CN"). Aliases like "english" or "default" are rejected. The survey's `base_language` (default "en") declares the language of the untranslated text and cannot also appear as a translation key.
        - Translatable fields: `question`, `description`, `buttonText`, `choices`, `lowerBoundLabel`, `upperBoundLabel`, `link`

        Example with translations:
        ```json
        {
            "id": "uuid",
            "type": "rating",
            "question": "How satisfied are you?",
            "lowerBoundLabel": "Not satisfied",
            "upperBoundLabel": "Very satisfied",
            "translations": {
                "es": {
                    "question": "¿Qué tan satisfecho estás?",
                    "lowerBoundLabel": "No satisfecho",
                    "upperBoundLabel": "Muy satisfecho"
                },
                "fr": {
                    "question": "Dans quelle mesure êtes-vous satisfait?"
                }
            }
        }
        ```
        

# components.schemas.SurveySerializerCreateUpdateOnlySchema.properties.conditions.description
Display and targeting conditions for the survey.

# components.schemas.SurveySerializerCreateUpdateOnlySchema.properties.start_date.description
Setting this will launch the survey immediately. Don't add a start_date unless explicitly requested to do so.

# components.schemas.SurveySerializerCreateUpdateOnlySchema.properties.end_date.description
When the survey stopped being shown to users. Setting this will complete the survey.

# components.schemas.SurveySerializerCreateUpdateOnlySchema.properties.responses_limit.description
The maximum number of responses before automatically stopping the survey.

# components.schemas.SurveySerializerCreateUpdateOnlySchema.properties.iteration_count.description
For a recurring schedule, this field specifies the number of times the survey should be shown to the user. Use 1 for 'once every X days', higher numbers for multiple repetitions. Works together with iteration_frequency_days to determine the overall survey schedule.

# components.schemas.SurveySerializerCreateUpdateOnlySchema.properties.iteration_frequency_days.description
For a recurring schedule, this field specifies the interval in days between each survey instance shown to the user, used alongside iteration_count for precise scheduling.

# components.schemas.SurveySerializerCreateUpdateOnlySchema.properties.enable_partial_responses.description
When at least one question is answered, the response is stored (true). The response is stored when all questions are answered (false).

# components.schemas.SurveySerializerCreateUpdateOnlySchema.properties.base_language.description
BCP-47 language code (e.g. 'en', 'es', 'es-MX') describing the language of the survey's untranslated text. Defaults to 'en'. Cannot also appear as a key in `translations`.

# components.schemas.SurveySingleChoiceQuestionSchema.properties.descriptionContentType.description
Format for the description field.

* `text` - text
* `html` - html

# components.schemas.SurveySingleChoiceQuestionSchema.properties.optional.description
Whether respondents may skip this question.

# components.schemas.SurveySingleChoiceQuestionSchema.properties.choices.description
Array of choice options. Choice indices (0, 1, 2, ...) are used for branching logic.

# components.schemas.SurveySingleChoiceQuestionSchema.properties.shuffleOptions.description
Whether to randomize the order of choices for each respondent.

# components.schemas.SurveySingleChoiceQuestionSchema.properties.hasOpenChoice.description
Whether the final option should be an open-text choice (for example, 'Other').

# components.schemas.SurveySpecificQuestionBranching.properties.type.description
Jump to a specific question index.

* `specific_question` - specific_question

# components.schemas.SurveyStatsResponse.properties.start_date.description
When the survey started collecting responses.

# components.schemas.SurveyStatsResponse.properties.end_date.description
When the survey stopped collecting responses.

# components.schemas.SurveyStatsResponse.properties.stats.description
Event counts keyed by event name (survey shown, survey dismissed, survey sent).

# components.schemas.SurveyStatsResponse.properties.rates.description
Calculated response and dismissal rates.

# components.schemas.SurveyStatsResponse.properties.per_question_stats.description
Per-question response counts and distributions. Only present when include_per_question_stats=true was passed. For rating questions includes `average`; for choice/rating questions `distribution` maps answer value to count; for open questions `distribution` is empty (use surveys-responses-list to read free-text).

# components.schemas.SurveySummarizeRequest.properties.force_refresh.description
When true, bypass cached summaries and regenerate. Defaults to false.

# components.schemas.SurveyType.description
* `popover` - popover
* `widget` - widget
* `external_survey` - external survey
* `api` - api

# components.schemas.SyncTypeEnum.description
* `full_refresh` - full_refresh
* `incremental` - incremental
* `append` - append
* `webhook` - webhook
* `cdc` - cdc

# components.schemas.Table.description
Mixin for serializers to add user access control fields

# components.schemas.Table.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.TableFormatEnum.description
* `CSV` - CSV
* `CSVWithNames` - CSVWithNames
* `Parquet` - Parquet
* `JSONEachRow` - JSON
* `Delta` - Delta
* `DeltaS3Wrapper` - DeltaS3Wrapper

# components.schemas.TagCount.properties.count.description
Number of succeeded observations carrying this tag.

# components.schemas.Tagger.properties.tagger_config.description
Tagger configuration. For tagger_type 'llm': {prompt, tags, min_tags?, max_tags?}. For tagger_type 'hog': {source, tags?}.

# components.schemas.Tagger.properties.conditions.description
Conditions that scope when the tagger runs

# components.schemas.TaggerCondition.properties.rollout_percentage.description
Percentage of matching events to apply this condition to

# components.schemas.TaggerCondition.properties.properties.description
Property filters that scope when this condition fires

# components.schemas.TaggerCreate.properties.tagger_config.description
Tagger configuration. For tagger_type 'llm': {prompt, tags, min_tags?, max_tags?}. For tagger_type 'hog': {source, tags?}.

# components.schemas.TaggerCreate.properties.conditions.description
Conditions that scope when the tagger runs

# components.schemas.TaggerModelConfiguration.description
Nested serializer for model configuration.

# components.schemas.TaggerModelConfiguration.properties.provider.description
LLM provider to use for this tagger.

* `openai` - Openai
* `anthropic` - Anthropic
* `gemini` - Gemini
* `openrouter` - Openrouter
* `fireworks` - Fireworks
* `azure_openai` - Azure OpenAI
* `together_ai` - Together AI

# components.schemas.TaggerModelConfiguration.properties.model.description
Provider model identifier to use for this tagger.

# components.schemas.TaggerModelConfiguration.properties.provider_key_id.description
Existing LLM provider key UUID for the current project. Do not invent this value; use a real provider key ID returned by PostHog, or omit/null when no provider key should be pinned.

# components.schemas.TaggerModelConfigurationWrite.properties.provider.description
LLM provider to use for this tagger.

* `openai` - Openai
* `anthropic` - Anthropic
* `gemini` - Gemini
* `openrouter` - Openrouter
* `fireworks` - Fireworks
* `azure_openai` - Azure OpenAI
* `together_ai` - Together AI

# components.schemas.TaggerModelConfigurationWrite.properties.model.description
Provider model identifier to use for this tagger.

# components.schemas.TaggerModelConfigurationWrite.properties.provider_key_id.description
Existing LLM provider key UUID for the current project. Do not invent this value; use a real provider key ID returned by PostHog, or omit/null when no provider key should be pinned.

# components.schemas.TaggerUpdate.properties.tagger_config.description
Tagger configuration. For tagger_type 'llm': {prompt, tags, min_tags?, max_tags?}. For tagger_type 'hog': {source, tags?}.

# components.schemas.TaggerUpdate.properties.conditions.description
Conditions that scope when the tagger runs

# components.schemas.TargetTypeEnum.description
* `email` - Email
* `slack` - Slack
* `webhook` - Webhook

# components.schemas.Task.properties.title.description
Short human-readable title. Auto-generated from `description` when omitted.

# components.schemas.Task.properties.description.description
Free-form description of the work to be done. Used as the prompt passed to the agent.

# components.schemas.Task.properties.origin_product.description
PostHog product or surface that created this task (e.g. error_tracking, slack, user_created).

* `error_tracking` - Error Tracking
* `eval_clusters` - Eval Clusters
* `user_created` - User Created
* `automation` - Automation
* `slack` - Slack
* `support_queue` - Support Queue
* `session_summaries` - Session Summaries
* `signal_report` - Signal Report
* `signals_scout` - Signals Scout

# components.schemas.Task.properties.repository.description
Target GitHub repository in `organization/repo` format (e.g. `posthog/posthog-js`).

# components.schemas.Task.properties.github_user_integration.description
User-scoped GitHub integration to use for user-authored cloud runs.

# components.schemas.Task.properties.json_schema.description
JSON schema for the task. This is used to validate the output of the task.

# components.schemas.Task.properties.internal.description
If true, this task is for internal use and should not be exposed to end users.

# components.schemas.Task.properties.archived.description
If true, the task is hidden from default list responses. Used by PostHog Code clients to share archive state across desktop and mobile.

# components.schemas.Task.properties.ci_prompt.description
Custom prompt for CI fixes. If blank, a default prompt will be used.

# components.schemas.TaskExecutionModeEnum.description
* `interactive` - interactive
* `background` - background

# components.schemas.TaskFileRequest.properties.folder.description
Destination folder path in the project tree (e.g. 'Tasks/Bugs'). Defaults to 'Tasks'.

# components.schemas.TaskFileResponse.properties.id.description
Identifier of the project-tree entry for this task.

# components.schemas.TaskFileResponse.properties.path.description
Full slash-separated path of the filed task in the project tree.

# components.schemas.TaskFileResponse.properties.ref.description
Identifier of the task this entry points to.

# components.schemas.TaskPresenceBeaconRequest.description
Request body for the presence beacon and beacon-leave endpoints.

`device_id` is the UUID of the caller's `UserPushToken` row, which the
client received when it registered for push via `/api/users/@me/push_tokens/`.
The client is expected to use the same identifier on the beacon and leave
calls; if the user has unregistered the underlying push token, the value
won't resolve and the call returns 404 — at which point pushes were
already not going there anyway.

# components.schemas.TaskPresenceBeaconRequest.properties.device_id.description
UUID of the caller's UserPushToken (returned by `/api/users/@me/push_tokens/` on register).

# components.schemas.TaskRepositoriesResponse.properties.repositories.description
Distinct repositories in use by non-deleted, non-internal tasks for the current team.

# components.schemas.TaskRunAppendLogRequest.properties.entries.description
Array of log entry dictionaries to append

# components.schemas.TaskRunArtifactFinalizeUpload.properties.id.description
Stable identifier returned by the prepare upload endpoint

# components.schemas.TaskRunArtifactFinalizeUpload.properties.type.description
Classification for the artifact

* `plan` - plan
* `context` - context
* `reference` - reference
* `output` - output
* `artifact` - artifact
* `tree_snapshot` - tree_snapshot
* `user_attachment` - user_attachment

# components.schemas.TaskRunArtifactFinalizeUpload.properties.source.description
Optional source label for the artifact, such as agent_output or user_attachment

# components.schemas.TaskRunArtifactFinalizeUpload.properties.storage_path.description
S3 object key returned by the prepare step

# components.schemas.TaskRunArtifactFinalizeUpload.properties.content_type.description
Optional MIME type recorded for the artifact

# components.schemas.TaskRunArtifactPrepareUpload.properties.name.description
File name to associate with the artifact

# components.schemas.TaskRunArtifactPrepareUpload.properties.type.description
Classification for the artifact

* `plan` - plan
* `context` - context
* `reference` - reference
* `output` - output
* `artifact` - artifact
* `tree_snapshot` - tree_snapshot
* `user_attachment` - user_attachment

# components.schemas.TaskRunArtifactPrepareUpload.properties.source.description
Optional source label for the artifact, such as agent_output or user_attachment

# components.schemas.TaskRunArtifactPrepareUpload.properties.size.description
Expected upload size in bytes (max 31457280 bytes)

# components.schemas.TaskRunArtifactPrepareUpload.properties.content_type.description
Optional MIME type for the artifact upload

# components.schemas.TaskRunArtifactPrepareUploadResponse.properties.id.description
Stable identifier for the prepared artifact within this run

# components.schemas.TaskRunArtifactPrepareUploadResponse.properties.type.description
Artifact classification (plan, context, etc.)

# components.schemas.TaskRunArtifactPrepareUploadResponse.properties.source.description
Source of the artifact, such as agent_output or user_attachment

# components.schemas.TaskRunArtifactPrepareUploadResponse.properties.presigned_post.description
Presigned S3 POST configuration for uploading the file

# components.schemas.TaskRunArtifactPresignRequest.properties.storage_path.description
S3 storage path returned in the artifact manifest

# components.schemas.TaskRunArtifactPresignResponse.properties.url.description
Presigned URL for downloading the artifact

# components.schemas.TaskRunArtifactResponse.properties.id.description
Stable identifier for the artifact within this run

# components.schemas.TaskRunArtifactResponse.properties.type.description
Artifact classification (plan, context, etc.)

# components.schemas.TaskRunArtifactResponse.properties.source.description
Source of the artifact, such as agent_output or user_attachment

# components.schemas.TaskRunArtifactResponse.properties.uploaded_at.description
Timestamp when the artifact was uploaded

# components.schemas.TaskRunArtifactTypeEnum.description
* `plan` - plan
* `context` - context
* `reference` - reference
* `output` - output
* `artifact` - artifact
* `tree_snapshot` - tree_snapshot
* `user_attachment` - user_attachment

# components.schemas.TaskRunArtifactUpload.properties.name.description
File name to associate with the artifact

# components.schemas.TaskRunArtifactUpload.properties.type.description
Classification for the artifact

* `plan` - plan
* `context` - context
* `reference` - reference
* `output` - output
* `artifact` - artifact
* `tree_snapshot` - tree_snapshot
* `user_attachment` - user_attachment

# components.schemas.TaskRunArtifactUpload.properties.source.description
Optional source label for the artifact, such as agent_output or user_attachment

# components.schemas.TaskRunArtifactUpload.properties.content.description
Artifact contents encoded according to content_encoding

# components.schemas.TaskRunArtifactUpload.properties.content_encoding.description
Encoding used for content. Use base64 for binary files and utf-8 for text payloads.

* `utf-8` - utf-8
* `base64` - base64

# components.schemas.TaskRunArtifactsPrepareUploadResponse.properties.artifacts.description
Prepared uploads for the requested artifacts

# components.schemas.TaskRunBootstrapCreateRequest.description
Request body for creating a task run without starting execution yet.

# components.schemas.TaskRunBootstrapCreateRequest.properties.environment.description
Execution environment for the new run. Use 'cloud' for remote sandbox runs and 'local' for desktop sessions.

* `local` - local
* `cloud` - cloud

# components.schemas.TaskRunBootstrapCreateRequest.properties.mode.description
Execution mode: 'interactive' for user-connected runs, 'background' for autonomous runs

* `interactive` - interactive
* `background` - background

# components.schemas.TaskRunBootstrapCreateRequest.properties.sandbox_environment_id.description
Optional sandbox environment to apply for this cloud run.

# components.schemas.TaskRunBootstrapCreateRequest.properties.pr_authorship_mode.description
Whether pull requests for this run should be authored by the user or the bot.

* `user` - user
* `bot` - bot

# components.schemas.TaskRunBootstrapCreateRequest.properties.run_source.description
High-level source that triggered this run, used to distinguish manual and signal-based cloud runs.

* `manual` - manual
* `signal_report` - signal_report

# components.schemas.TaskRunBootstrapCreateRequest.properties.signal_report_id.description
Optional signal report identifier when this run was started from Inbox.

# components.schemas.TaskRunBootstrapCreateRequest.properties.runtime_adapter.description
Agent runtime adapter to launch for this run. Use 'claude' for the Claude runtime or 'codex' for the Codex runtime.

* `claude` - claude
* `codex` - codex

# components.schemas.TaskRunBootstrapCreateRequest.properties.model.description
LLM model identifier to run in the selected runtime.

# components.schemas.TaskRunBootstrapCreateRequest.properties.reasoning_effort.description
Reasoning effort to request for models that expose an effort control.

* `low` - low
* `medium` - medium
* `high` - high
* `xhigh` - xhigh
* `max` - max

# components.schemas.TaskRunBootstrapCreateRequest.properties.github_user_token.description
Ephemeral GitHub user token from PostHog Code for user-authored cloud pull requests.

# components.schemas.TaskRunBootstrapCreateRequest.properties.initial_permission_mode.description
Initial permission mode for the agent session. Claude runtimes accept PostHog permission presets like 'plan'. Codex runtimes accept native Codex modes like 'auto' and 'read-only'.

* `default` - default
* `acceptEdits` - acceptEdits
* `plan` - plan
* `bypassPermissions` - bypassPermissions
* `auto` - auto
* `read-only` - read-only
* `full-access` - full-access

# components.schemas.TaskRunBootstrapCreateRequestInitialPermissionModeEnum.description
* `default` - default
* `acceptEdits` - acceptEdits
* `plan` - plan
* `bypassPermissions` - bypassPermissions
* `auto` - auto
* `read-only` - read-only
* `full-access` - full-access

# components.schemas.TaskRunCommandRequest.description
JSON-RPC request to send a command to the agent server in the sandbox.

# components.schemas.TaskRunCommandRequest.properties.method.description
Command method to execute on the agent server

* `user_message` - user_message
* `cancel` - cancel
* `close` - close
* `permission_response` - permission_response
* `set_config_option` - set_config_option

# components.schemas.TaskRunCommandRequest.properties.id.description
Optional JSON-RPC request ID (string or number)

# components.schemas.TaskRunCommandResponse.description
Response from the agent server command endpoint.

# components.schemas.TaskRunCommandResponse.properties.id.description
Request ID echoed back (string or number)

# components.schemas.TaskRunDetail.properties.stage.description
Current stage for this run (e.g., 'research', 'plan', 'build')

# components.schemas.TaskRunDetail.properties.environment.description
Execution environment

* `local` - Local
* `cloud` - Cloud

# components.schemas.TaskRunDetail.properties.runtime_adapter.description
Configured runtime adapter for this run, such as 'claude' or 'codex'.

# components.schemas.TaskRunDetail.properties.provider.description
Configured LLM provider for this run, such as 'anthropic' or 'openai'.

# components.schemas.TaskRunDetail.properties.model.description
Configured LLM model identifier for this run.

# components.schemas.TaskRunDetail.properties.reasoning_effort.description
Configured reasoning effort for this run when the selected model supports it.

# components.schemas.TaskRunDetail.properties.log_url.description
Presigned S3 URL for log access (valid for 1 hour).

# components.schemas.TaskRunDetail.properties.output.description
Run output data (e.g., PR URL, commit SHA, etc.)

# components.schemas.TaskRunDetail.properties.state.description
Run state data for resuming or tracking execution state

# components.schemas.TaskRunErrorResponse.properties.missing_artifact_ids.description
Artifact ids that could not be resolved for the run

# components.schemas.TaskRunResumeRequestSchema.properties.mode.description
Execution mode: 'interactive' for user-connected runs, 'background' for autonomous runs

* `interactive` - interactive
* `background` - background

# components.schemas.TaskRunResumeRequestSchema.properties.resume_from_run_id.description
ID of a previous run to resume from. Must belong to the same task.

# components.schemas.TaskRunResumeRequestSchema.properties.pending_user_message.description
Initial or follow-up user message to include in the run prompt.

# components.schemas.TaskRunResumeRequestSchema.properties.sandbox_environment_id.description
Optional sandbox environment to apply for this cloud run.

# components.schemas.TaskRunResumeRequestSchema.properties.pr_authorship_mode.description
Whether pull requests for this run should be authored by the user or the bot.

* `user` - user
* `bot` - bot

# components.schemas.TaskRunResumeRequestSchema.properties.run_source.description
High-level source that triggered this run, used to distinguish manual and signal-based cloud runs.

* `manual` - manual
* `signal_report` - signal_report

# components.schemas.TaskRunResumeRequestSchema.properties.signal_report_id.description
Optional signal report identifier when this run was started from Inbox.

# components.schemas.TaskRunResumeRequestSchema.properties.github_user_token.description
Optional GitHub user token from PostHog Code for user-authored cloud pull requests. Prefer linking GitHub from Settings → Linked accounts so the server can manage tokens; this field remains supported for callers that still manage their own tokens.

# components.schemas.TaskRunStartRequest.properties.pending_user_message.description
Initial or follow-up user message to include in the run prompt.

# components.schemas.TaskRunStartRequest.properties.pending_user_artifact_ids.description
Identifiers for run artifacts that should be attached to the next user message delivered to the sandbox.

# components.schemas.TaskRunStatusEnum.description
* `not_started` - Not Started
* `queued` - Queued
* `in_progress` - In Progress
* `completed` - Completed
* `failed` - Failed
* `cancelled` - Cancelled

# components.schemas.TaskRunUpdateStatusEnum.description
* `not_started` - not_started
* `queued` - queued
* `in_progress` - in_progress
* `completed` - completed
* `failed` - failed
* `cancelled` - cancelled

# components.schemas.TaskStagedArtifactFinalizeUpload.properties.id.description
Stable identifier returned by the staged prepare upload endpoint

# components.schemas.TaskStagedArtifactFinalizeUpload.properties.name.description
File name associated with the staged artifact

# components.schemas.TaskStagedArtifactFinalizeUpload.properties.type.description
Classification for the artifact

* `plan` - plan
* `context` - context
* `reference` - reference
* `output` - output
* `artifact` - artifact
* `tree_snapshot` - tree_snapshot
* `user_attachment` - user_attachment

# components.schemas.TaskStagedArtifactFinalizeUpload.properties.source.description
Optional source label for the artifact, such as agent_output or user_attachment

# components.schemas.TaskStagedArtifactFinalizeUpload.properties.storage_path.description
S3 object key returned by the prepare step

# components.schemas.TaskStagedArtifactFinalizeUpload.properties.content_type.description
Optional MIME type recorded for the artifact

# components.schemas.TaskStagedArtifactPrepareUpload.properties.name.description
File name to associate with the staged artifact

# components.schemas.TaskStagedArtifactPrepareUpload.properties.type.description
Classification for the artifact

* `plan` - plan
* `context` - context
* `reference` - reference
* `output` - output
* `artifact` - artifact
* `tree_snapshot` - tree_snapshot
* `user_attachment` - user_attachment

# components.schemas.TaskStagedArtifactPrepareUpload.properties.source.description
Optional source label for the artifact, such as agent_output or user_attachment

# components.schemas.TaskStagedArtifactPrepareUpload.properties.size.description
Expected upload size in bytes (max 31457280 bytes)

# components.schemas.TaskStagedArtifactPrepareUpload.properties.content_type.description
Optional MIME type for the artifact upload

# components.schemas.TaskStagedArtifactPrepareUploadResponse.properties.id.description
Stable identifier for the prepared staged artifact within this task

# components.schemas.TaskStagedArtifactPrepareUploadResponse.properties.type.description
Artifact classification (plan, context, etc.)

# components.schemas.TaskStagedArtifactPrepareUploadResponse.properties.source.description
Source of the artifact, such as agent_output or user_attachment

# components.schemas.TaskStagedArtifactPrepareUploadResponse.properties.storage_path.description
S3 object key reserved for the staged artifact

# components.schemas.TaskStagedArtifactPrepareUploadResponse.properties.presigned_post.description
Presigned S3 POST configuration for uploading the file

# components.schemas.TaskStagedArtifactsFinalizeUploadRequest.properties.artifacts.description
Array of staged artifacts to finalize after upload

# components.schemas.TaskStagedArtifactsFinalizeUploadResponse.properties.artifacts.description
Finalized staged artifacts available for attachment to a new run

# components.schemas.TaskStagedArtifactsPrepareUploadRequest.properties.artifacts.description
Array of staged artifacts to prepare before creating a run

# components.schemas.TaskStagedArtifactsPrepareUploadResponse.properties.artifacts.description
Prepared staged uploads for the requested artifacts

# components.schemas.TaskSummariesRequest.properties.ids.description
Task IDs to fetch summaries for (max 5000). Response is paginated; follow the `next` cursor to retrieve all results.

# components.schemas.Team.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.Team.properties.test_account_filters.description
Filters used to identify internal/test users. Each entry is a property filter.

            Supported entry types and the exact shape each accepts:

            # Person property — match (or exclude) by a person property
            {"key": "email", "type": "person", "value": "@example.com", "operator": "icontains"}

            # Event property — match by an event property
            {"key": "$host", "type": "event", "value": "localhost", "operator": "icontains"}

            # Cohort membership — match (or exclude) members of a cohort.
            # Use operator "in" for inclusion and "not_in" for exclusion. Do NOT use a
            # `negation` field here — `negation` is specific to cohort *definitions*
            # (the inner sub-filters that build a cohort) and is rejected by the
            # property-filter schema.
            {"key": "id", "type": "cohort", "value": 8814, "operator": "not_in"}

            Common operators: "exact", "is_not", "icontains", "not_icontains", "regex",
            "not_regex", "gt", "lt", "gte", "lte", "is_set", "is_not_set", "in", "not_in".

# components.schemas.Team.properties.session_recording_trigger_groups.description
V2 trigger groups configuration for session recording. If present, takes precedence over legacy trigger fields.

# components.schemas.Team.properties.default_evaluation_contexts_enabled.description
Whether to automatically apply default evaluation contexts to new feature flags

# components.schemas.Team.properties.require_evaluation_contexts.description
Whether to require at least one evaluation context tag when creating new feature flags

# components.schemas.Team.properties.business_model.description
Whether this project serves B2B or B2C customers, used to optimize the UI layout.

* `b2b` - B2B
* `b2c` - B2C
* `other` - Other

# components.schemas.TeamBasic.description
Serializer for `Team` model with minimal attributes to speeed up loading and transfer times.
Also used for nested serializers.

# components.schemas.TeamCustomerAnalyticsConfig.properties.activity_event.description
Event used as the activity signal (DAU/WAU/MAU).

# components.schemas.TeamCustomerAnalyticsConfig.properties.signup_pageview_event.description
Event used to count signup pageviews on dashboards.

# components.schemas.TeamCustomerAnalyticsConfig.properties.signup_event.description
Event used to count signups on dashboards.

# components.schemas.TeamCustomerAnalyticsConfig.properties.subscription_event.description
Event used to count subscriptions on dashboards.

# components.schemas.TeamCustomerAnalyticsConfig.properties.payment_event.description
Event used to count payments on dashboards.

# components.schemas.TeamCustomerAnalyticsConfig.properties.account_group_type_index.description
Index of the group type to treat as an Account in customer analytics. Must reference an existing group type configured for the project.

# components.schemas.TeamTaxonomyQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TeamTaxonomyQuery.properties.offset.description
Number of rows to skip before returning rows

# components.schemas.TeamTaxonomyQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.TeamTaxonomyQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.TeamTaxonomyQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TeamTaxonomyQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.TeamTaxonomyQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.TeamTaxonomyQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.TeamTaxonomyQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.TeamWorkflowsConfig.properties.capture_workflows_engagement_events.description
When enabled, workflows engagement activity (email sends, opens, clicks, bounces, spam reports, unsubscribes) is captured as standard PostHog events ($workflows_email_*) alongside the existing workflow metrics.

# components.schemas.TemplatesEnum.description
* `cost` - cost
* `latency` - latency
* `eval_pass_rate` - eval_pass_rate

# components.schemas.TestHogRequest.properties.source.description
Hog source code to test. Must return a boolean (true = pass, false = fail) or null for N/A.

# components.schemas.TestHogRequest.properties.sample_count.description
Number of recent $ai_generation events to test against (1–10, default 5).

# components.schemas.TestHogRequest.properties.allows_na.description
Whether the evaluation can return N/A for non-applicable generations.

# components.schemas.TestHogRequest.properties.conditions.description
Optional trigger conditions to filter which events are sampled.

# components.schemas.TestHogResponse.properties.message.description
Optional message, e.g. when no recent events were found.

# components.schemas.TestHogResultItem.properties.input_preview.description
First 200 chars of the generation input.

# components.schemas.TestHogResultItem.properties.output_preview.description
First 200 chars of the generation output.

# components.schemas.TestHogResultItem.properties.result.description
True = pass, False = fail, null = N/A or error.

# components.schemas.TestHogResultItem.properties.reasoning.description
Hog evaluation reasoning string, if any.

# components.schemas.TestHogResultItem.properties.error.description
Error message if the Hog code raised an exception.

# components.schemas.TestHogTaggerRequest.properties.source.description
Hog source code to test. Return a tag name string, a list of tag name strings, or null.

# components.schemas.TestHogTaggerRequest.properties.sample_count.description
Number of recent $ai_generation events to test against (1-10, default 5).

# components.schemas.TestHogTaggerRequest.properties.tags.description
Optional tag whitelist. Returned tags outside this list are filtered out.

# components.schemas.TestHogTaggerResponse.properties.message.description
Optional message, for example when no recent AI events were found.

# components.schemas.TestHogTaggerResultItem.properties.event_uuid.description
UUID of the sampled $ai_generation event.

# components.schemas.TestHogTaggerResultItem.properties.input_preview.description
First 200 characters of the generation input.

# components.schemas.TestHogTaggerResultItem.properties.output_preview.description
First 200 characters of the generation output.

# components.schemas.TestHogTaggerTag.properties.name.description
Tag identifier to allow in Hog test results.

# components.schemas.TestInterviewLink.properties.interview_url.description
Public, unauthenticated URL the topic author opens to dogfood the voice interview themselves — does not count against the targeted interviewees.

# components.schemas.TestInterviewLink.properties.latest_test_interview.description
Most recent test interview completed by the topic author, or null if none yet.

# components.schemas.TextReprOptions.properties.max_length.description
Maximum length of generated text (default: 2000000)

# components.schemas.TextReprOptions.properties.truncated.description
Use truncation for long content within events (default: true)

# components.schemas.TextReprOptions.properties.truncate_buffer.description
Characters to show at start/end when truncating (default: 1000)

# components.schemas.TextReprOptions.properties.include_markers.description
Use interactive markers for frontend vs plain text for backend/LLM (default: true)

# components.schemas.TextReprOptions.properties.collapsed.description
Show summary vs full tree hierarchy for traces (default: false)

# components.schemas.TextReprOptions.properties.include_hierarchy.description
Include hierarchy information (for traces)

# components.schemas.TextReprOptions.properties.max_depth.description
Maximum depth for hierarchical rendering

# components.schemas.TextReprOptions.properties.tools_collapse_threshold.description
Number of tools before collapsing the list (default: 5)

# components.schemas.TextReprOptions.properties.include_line_numbers.description
Prefix each line with line number (default: false)

# components.schemas.TextReprRequest.properties.event_type.description
Type of LLM event to stringify

* `$ai_generation` - $ai_generation
* `$ai_span` - $ai_span
* `$ai_embedding` - $ai_embedding
* `$ai_trace` - $ai_trace

# components.schemas.TextReprRequest.properties.data.description
Event data to stringify. For traces, should include 'trace' and 'hierarchy' fields.

# components.schemas.TextReprRequest.properties.options.description
Optional configuration for text generation

# components.schemas.TextReprResponse.properties.text.description
Generated text representation of the event

# components.schemas.ThemeModeEnum.description
* `light` - Light
* `dark` - Dark
* `system` - System

# components.schemas.Threshold.properties.configuration.description
Threshold bounds and type. Includes bounds (lower/upper floats) and type (absolute or percentage).

# components.schemas.ThresholdDetectorConfig.properties.lower_bound.description
Lower bound - values below this are anomalies

# components.schemas.ThresholdDetectorConfig.properties.upper_bound.description
Upper bound - values above this are anomalies

# components.schemas.ThresholdWithAlert.properties.configuration.description
Threshold bounds and type. Includes bounds (lower/upper floats) and type (absolute or percentage).

# components.schemas.Ticket.description
Serializer mixin that handles tags for objects.

# components.schemas.Ticket.properties.status.description
Ticket status: new, open, pending, on_hold, or resolved

* `new` - New
* `open` - Open
* `pending` - Pending
* `on_hold` - On hold
* `resolved` - Resolved

# components.schemas.Ticket.properties.priority.description
Ticket priority: low, medium, or high. Null if unset.

* `low` - Low
* `medium` - Medium
* `high` - High

# components.schemas.Ticket.properties.anonymous_traits.description
Customer-provided traits such as name and email

# components.schemas.Ticket.properties.sla_due_at.description
SLA deadline set via workflows. Null means no SLA.

# components.schemas.TicketAssignment.description
Serializer for ticket assignment (user or role).

# components.schemas.TicketPerson.description
Minimal person serializer for embedding in ticket responses.

# components.schemas.TicketStatusEnum.description
* `new` - New
* `open` - Open
* `pending` - Pending
* `on_hold` - On hold
* `resolved` - Resolved

# components.schemas.TicketView.properties.filters.description
Saved ticket filter criteria. May contain status, priority, channel, sla, assignee, tags, dateFrom, dateTo, and sorting keys.

# components.schemas.TileLayoutBox.properties.x.description
Column position in the dashboard grid (0-indexed).

# components.schemas.TileLayoutBox.properties.y.description
Row position in the dashboard grid (0-indexed).

# components.schemas.TileLayoutBox.properties.w.description
Width in grid columns. The desktop grid is 12 columns wide.

# components.schemas.TileLayouts.properties.sm.description
Layout for the standard (desktop) breakpoint. The grid is 12 columns wide.

# components.schemas.TileLayouts.properties.xs.description
Layout for the small (mobile) breakpoint. The grid is 1 column wide.

# components.schemas.TimeRange.properties.date_from.description
ISO-8601 inclusive lower bound for the finding's window.

# components.schemas.TimeRange.properties.date_to.description
ISO-8601 inclusive upper bound for the finding's window.

# components.schemas.TimelineEntry.properties.sessionId.description
Session ID. None means out-of-session events

# components.schemas.TimezoneEnum.description
* `Africa/Abidjan` - Africa/Abidjan
* `Africa/Accra` - Africa/Accra
* `Africa/Addis_Ababa` - Africa/Addis_Ababa
* `Africa/Algiers` - Africa/Algiers
* `Africa/Asmara` - Africa/Asmara
* `Africa/Asmera` - Africa/Asmera
* `Africa/Bamako` - Africa/Bamako
* `Africa/Bangui` - Africa/Bangui
* `Africa/Banjul` - Africa/Banjul
* `Africa/Bissau` - Africa/Bissau
* `Africa/Blantyre` - Africa/Blantyre
* `Africa/Brazzaville` - Africa/Brazzaville
* `Africa/Bujumbura` - Africa/Bujumbura
* `Africa/Cairo` - Africa/Cairo
* `Africa/Casablanca` - Africa/Casablanca
* `Africa/Ceuta` - Africa/Ceuta
* `Africa/Conakry` - Africa/Conakry
* `Africa/Dakar` - Africa/Dakar
* `Africa/Dar_es_Salaam` - Africa/Dar_es_Salaam
* `Africa/Djibouti` - Africa/Djibouti
* `Africa/Douala` - Africa/Douala
* `Africa/El_Aaiun` - Africa/El_Aaiun
* `Africa/Freetown` - Africa/Freetown
* `Africa/Gaborone` - Africa/Gaborone
* `Africa/Harare` - Africa/Harare
* `Africa/Johannesburg` - Africa/Johannesburg
* `Africa/Juba` - Africa/Juba
* `Africa/Kampala` - Africa/Kampala
* `Africa/Khartoum` - Africa/Khartoum
* `Africa/Kigali` - Africa/Kigali
* `Africa/Kinshasa` - Africa/Kinshasa
* `Africa/Lagos` - Africa/Lagos
* `Africa/Libreville` - Africa/Libreville
* `Africa/Lome` - Africa/Lome
* `Africa/Luanda` - Africa/Luanda
* `Africa/Lubumbashi` - Africa/Lubumbashi
* `Africa/Lusaka` - Africa/Lusaka
* `Africa/Malabo` - Africa/Malabo
* `Africa/Maputo` - Africa/Maputo
* `Africa/Maseru` - Africa/Maseru
* `Africa/Mbabane` - Africa/Mbabane
* `Africa/Mogadishu` - Africa/Mogadishu
* `Africa/Monrovia` - Africa/Monrovia
* `Africa/Nairobi` - Africa/Nairobi
* `Africa/Ndjamena` - Africa/Ndjamena
* `Africa/Niamey` - Africa/Niamey
* `Africa/Nouakchott` - Africa/Nouakchott
* `Africa/Ouagadougou` - Africa/Ouagadougou
* `Africa/Porto-Novo` - Africa/Porto-Novo
* `Africa/Sao_Tome` - Africa/Sao_Tome
* `Africa/Timbuktu` - Africa/Timbuktu
* `Africa/Tripoli` - Africa/Tripoli
* `Africa/Tunis` - Africa/Tunis
* `Africa/Windhoek` - Africa/Windhoek
* `America/Adak` - America/Adak
* `America/Anchorage` - America/Anchorage
* `America/Anguilla` - America/Anguilla
* `America/Antigua` - America/Antigua
* `America/Araguaina` - America/Araguaina
* `America/Argentina/Buenos_Aires` - America/Argentina/Buenos_Aires
* `America/Argentina/Catamarca` - America/Argentina/Catamarca
* `America/Argentina/ComodRivadavia` - America/Argentina/ComodRivadavia
* `America/Argentina/Cordoba` - America/Argentina/Cordoba
* `America/Argentina/Jujuy` - America/Argentina/Jujuy
* `America/Argentina/La_Rioja` - America/Argentina/La_Rioja
* `America/Argentina/Mendoza` - America/Argentina/Mendoza
* `America/Argentina/Rio_Gallegos` - America/Argentina/Rio_Gallegos
* `America/Argentina/Salta` - America/Argentina/Salta
* `America/Argentina/San_Juan` - America/Argentina/San_Juan
* `America/Argentina/San_Luis` - America/Argentina/San_Luis
* `America/Argentina/Tucuman` - America/Argentina/Tucuman
* `America/Argentina/Ushuaia` - America/Argentina/Ushuaia
* `America/Aruba` - America/Aruba
* `America/Asuncion` - America/Asuncion
* `America/Atikokan` - America/Atikokan
* `America/Atka` - America/Atka
* `America/Bahia` - America/Bahia
* `America/Bahia_Banderas` - America/Bahia_Banderas
* `America/Barbados` - America/Barbados
* `America/Belem` - America/Belem
* `America/Belize` - America/Belize
* `America/Blanc-Sablon` - America/Blanc-Sablon
* `America/Boa_Vista` - America/Boa_Vista
* `America/Bogota` - America/Bogota
* `America/Boise` - America/Boise
* `America/Buenos_Aires` - America/Buenos_Aires
* `America/Cambridge_Bay` - America/Cambridge_Bay
* `America/Campo_Grande` - America/Campo_Grande
* `America/Cancun` - America/Cancun
* `America/Caracas` - America/Caracas
* `America/Catamarca` - America/Catamarca
* `America/Cayenne` - America/Cayenne
* `America/Cayman` - America/Cayman
* `America/Chicago` - America/Chicago
* `America/Chihuahua` - America/Chihuahua
* `America/Ciudad_Juarez` - America/Ciudad_Juarez
* `America/Coral_Harbour` - America/Coral_Harbour
* `America/Cordoba` - America/Cordoba
* `America/Costa_Rica` - America/Costa_Rica
* `America/Creston` - America/Creston
* `America/Cuiaba` - America/Cuiaba
* `America/Curacao` - America/Curacao
* `America/Danmarkshavn` - America/Danmarkshavn
* `America/Dawson` - America/Dawson
* `America/Dawson_Creek` - America/Dawson_Creek
* `America/Denver` - America/Denver
* `America/Detroit` - America/Detroit
* `America/Dominica` - America/Dominica
* `America/Edmonton` - America/Edmonton
* `America/Eirunepe` - America/Eirunepe
* `America/El_Salvador` - America/El_Salvador
* `America/Ensenada` - America/Ensenada
* `America/Fort_Nelson` - America/Fort_Nelson
* `America/Fort_Wayne` - America/Fort_Wayne
* `America/Fortaleza` - America/Fortaleza
* `America/Glace_Bay` - America/Glace_Bay
* `America/Godthab` - America/Godthab
* `America/Goose_Bay` - America/Goose_Bay
* `America/Grand_Turk` - America/Grand_Turk
* `America/Grenada` - America/Grenada
* `America/Guadeloupe` - America/Guadeloupe
* `America/Guatemala` - America/Guatemala
* `America/Guayaquil` - America/Guayaquil
* `America/Guyana` - America/Guyana
* `America/Halifax` - America/Halifax
* `America/Havana` - America/Havana
* `America/Hermosillo` - America/Hermosillo
* `America/Indiana/Indianapolis` - America/Indiana/Indianapolis
* `America/Indiana/Knox` - America/Indiana/Knox
* `America/Indiana/Marengo` - America/Indiana/Marengo
* `America/Indiana/Petersburg` - America/Indiana/Petersburg
* `America/Indiana/Tell_City` - America/Indiana/Tell_City
* `America/Indiana/Vevay` - America/Indiana/Vevay
* `America/Indiana/Vincennes` - America/Indiana/Vincennes
* `America/Indiana/Winamac` - America/Indiana/Winamac
* `America/Indianapolis` - America/Indianapolis
* `America/Inuvik` - America/Inuvik
* `America/Iqaluit` - America/Iqaluit
* `America/Jamaica` - America/Jamaica
* `America/Jujuy` - America/Jujuy
* `America/Juneau` - America/Juneau
* `America/Kentucky/Louisville` - America/Kentucky/Louisville
* `America/Kentucky/Monticello` - America/Kentucky/Monticello
* `America/Knox_IN` - America/Knox_IN
* `America/Kralendijk` - America/Kralendijk
* `America/La_Paz` - America/La_Paz
* `America/Lima` - America/Lima
* `America/Los_Angeles` - America/Los_Angeles
* `America/Louisville` - America/Louisville
* `America/Lower_Princes` - America/Lower_Princes
* `America/Maceio` - America/Maceio
* `America/Managua` - America/Managua
* `America/Manaus` - America/Manaus
* `America/Marigot` - America/Marigot
* `America/Martinique` - America/Martinique
* `America/Matamoros` - America/Matamoros
* `America/Mazatlan` - America/Mazatlan
* `America/Mendoza` - America/Mendoza
* `America/Menominee` - America/Menominee
* `America/Merida` - America/Merida
* `America/Metlakatla` - America/Metlakatla
* `America/Mexico_City` - America/Mexico_City
* `America/Miquelon` - America/Miquelon
* `America/Moncton` - America/Moncton
* `America/Monterrey` - America/Monterrey
* `America/Montevideo` - America/Montevideo
* `America/Montreal` - America/Montreal
* `America/Montserrat` - America/Montserrat
* `America/Nassau` - America/Nassau
* `America/New_York` - America/New_York
* `America/Nipigon` - America/Nipigon
* `America/Nome` - America/Nome
* `America/Noronha` - America/Noronha
* `America/North_Dakota/Beulah` - America/North_Dakota/Beulah
* `America/North_Dakota/Center` - America/North_Dakota/Center
* `America/North_Dakota/New_Salem` - America/North_Dakota/New_Salem
* `America/Nuuk` - America/Nuuk
* `America/Ojinaga` - America/Ojinaga
* `America/Panama` - America/Panama
* `America/Pangnirtung` - America/Pangnirtung
* `America/Paramaribo` - America/Paramaribo
* `America/Phoenix` - America/Phoenix
* `America/Port-au-Prince` - America/Port-au-Prince
* `America/Port_of_Spain` - America/Port_of_Spain
* `America/Porto_Acre` - America/Porto_Acre
* `America/Porto_Velho` - America/Porto_Velho
* `America/Puerto_Rico` - America/Puerto_Rico
* `America/Punta_Arenas` - America/Punta_Arenas
* `America/Rainy_River` - America/Rainy_River
* `America/Rankin_Inlet` - America/Rankin_Inlet
* `America/Recife` - America/Recife
* `America/Regina` - America/Regina
* `America/Resolute` - America/Resolute
* `America/Rio_Branco` - America/Rio_Branco
* `America/Rosario` - America/Rosario
* `America/Santa_Isabel` - America/Santa_Isabel
* `America/Santarem` - America/Santarem
* `America/Santiago` - America/Santiago
* `America/Santo_Domingo` - America/Santo_Domingo
* `America/Sao_Paulo` - America/Sao_Paulo
* `America/Scoresbysund` - America/Scoresbysund
* `America/Shiprock` - America/Shiprock
* `America/Sitka` - America/Sitka
* `America/St_Barthelemy` - America/St_Barthelemy
* `America/St_Johns` - America/St_Johns
* `America/St_Kitts` - America/St_Kitts
* `America/St_Lucia` - America/St_Lucia
* `America/St_Thomas` - America/St_Thomas
* `America/St_Vincent` - America/St_Vincent
* `America/Swift_Current` - America/Swift_Current
* `America/Tegucigalpa` - America/Tegucigalpa
* `America/Thule` - America/Thule
* `America/Thunder_Bay` - America/Thunder_Bay
* `America/Tijuana` - America/Tijuana
* `America/Toronto` - America/Toronto
* `America/Tortola` - America/Tortola
* `America/Vancouver` - America/Vancouver
* `America/Virgin` - America/Virgin
* `America/Whitehorse` - America/Whitehorse
* `America/Winnipeg` - America/Winnipeg
* `America/Yakutat` - America/Yakutat
* `America/Yellowknife` - America/Yellowknife
* `Antarctica/Casey` - Antarctica/Casey
* `Antarctica/Davis` - Antarctica/Davis
* `Antarctica/DumontDUrville` - Antarctica/DumontDUrville
* `Antarctica/Macquarie` - Antarctica/Macquarie
* `Antarctica/Mawson` - Antarctica/Mawson
* `Antarctica/McMurdo` - Antarctica/McMurdo
* `Antarctica/Palmer` - Antarctica/Palmer
* `Antarctica/Rothera` - Antarctica/Rothera
* `Antarctica/South_Pole` - Antarctica/South_Pole
* `Antarctica/Syowa` - Antarctica/Syowa
* `Antarctica/Troll` - Antarctica/Troll
* `Antarctica/Vostok` - Antarctica/Vostok
* `Arctic/Longyearbyen` - Arctic/Longyearbyen
* `Asia/Aden` - Asia/Aden
* `Asia/Almaty` - Asia/Almaty
* `Asia/Amman` - Asia/Amman
* `Asia/Anadyr` - Asia/Anadyr
* `Asia/Aqtau` - Asia/Aqtau
* `Asia/Aqtobe` - Asia/Aqtobe
* `Asia/Ashgabat` - Asia/Ashgabat
* `Asia/Ashkhabad` - Asia/Ashkhabad
* `Asia/Atyrau` - Asia/Atyrau
* `Asia/Baghdad` - Asia/Baghdad
* `Asia/Bahrain` - Asia/Bahrain
* `Asia/Baku` - Asia/Baku
* `Asia/Bangkok` - Asia/Bangkok
* `Asia/Barnaul` - Asia/Barnaul
* `Asia/Beirut` - Asia/Beirut
* `Asia/Bishkek` - Asia/Bishkek
* `Asia/Brunei` - Asia/Brunei
* `Asia/Calcutta` - Asia/Calcutta
* `Asia/Chita` - Asia/Chita
* `Asia/Choibalsan` - Asia/Choibalsan
* `Asia/Chongqing` - Asia/Chongqing
* `Asia/Chungking` - Asia/Chungking
* `Asia/Colombo` - Asia/Colombo
* `Asia/Dacca` - Asia/Dacca
* `Asia/Damascus` - Asia/Damascus
* `Asia/Dhaka` - Asia/Dhaka
* `Asia/Dili` - Asia/Dili
* `Asia/Dubai` - Asia/Dubai
* `Asia/Dushanbe` - Asia/Dushanbe
* `Asia/Famagusta` - Asia/Famagusta
* `Asia/Gaza` - Asia/Gaza
* `Asia/Harbin` - Asia/Harbin
* `Asia/Hebron` - Asia/Hebron
* `Asia/Ho_Chi_Minh` - Asia/Ho_Chi_Minh
* `Asia/Hong_Kong` - Asia/Hong_Kong
* `Asia/Hovd` - Asia/Hovd
* `Asia/Irkutsk` - Asia/Irkutsk
* `Asia/Istanbul` - Asia/Istanbul
* `Asia/Jakarta` - Asia/Jakarta
* `Asia/Jayapura` - Asia/Jayapura
* `Asia/Jerusalem` - Asia/Jerusalem
* `Asia/Kabul` - Asia/Kabul
* `Asia/Kamchatka` - Asia/Kamchatka
* `Asia/Karachi` - Asia/Karachi
* `Asia/Kashgar` - Asia/Kashgar
* `Asia/Kathmandu` - Asia/Kathmandu
* `Asia/Katmandu` - Asia/Katmandu
* `Asia/Khandyga` - Asia/Khandyga
* `Asia/Kolkata` - Asia/Kolkata
* `Asia/Krasnoyarsk` - Asia/Krasnoyarsk
* `Asia/Kuala_Lumpur` - Asia/Kuala_Lumpur
* `Asia/Kuching` - Asia/Kuching
* `Asia/Kuwait` - Asia/Kuwait
* `Asia/Macao` - Asia/Macao
* `Asia/Macau` - Asia/Macau
* `Asia/Magadan` - Asia/Magadan
* `Asia/Makassar` - Asia/Makassar
* `Asia/Manila` - Asia/Manila
* `Asia/Muscat` - Asia/Muscat
* `Asia/Nicosia` - Asia/Nicosia
* `Asia/Novokuznetsk` - Asia/Novokuznetsk
* `Asia/Novosibirsk` - Asia/Novosibirsk
* `Asia/Omsk` - Asia/Omsk
* `Asia/Oral` - Asia/Oral
* `Asia/Phnom_Penh` - Asia/Phnom_Penh
* `Asia/Pontianak` - Asia/Pontianak
* `Asia/Pyongyang` - Asia/Pyongyang
* `Asia/Qatar` - Asia/Qatar
* `Asia/Qostanay` - Asia/Qostanay
* `Asia/Qyzylorda` - Asia/Qyzylorda
* `Asia/Rangoon` - Asia/Rangoon
* `Asia/Riyadh` - Asia/Riyadh
* `Asia/Saigon` - Asia/Saigon
* `Asia/Sakhalin` - Asia/Sakhalin
* `Asia/Samarkand` - Asia/Samarkand
* `Asia/Seoul` - Asia/Seoul
* `Asia/Shanghai` - Asia/Shanghai
* `Asia/Singapore` - Asia/Singapore
* `Asia/Srednekolymsk` - Asia/Srednekolymsk
* `Asia/Taipei` - Asia/Taipei
* `Asia/Tashkent` - Asia/Tashkent
* `Asia/Tbilisi` - Asia/Tbilisi
* `Asia/Tehran` - Asia/Tehran
* `Asia/Tel_Aviv` - Asia/Tel_Aviv
* `Asia/Thimbu` - Asia/Thimbu
* `Asia/Thimphu` - Asia/Thimphu
* `Asia/Tokyo` - Asia/Tokyo
* `Asia/Tomsk` - Asia/Tomsk
* `Asia/Ujung_Pandang` - Asia/Ujung_Pandang
* `Asia/Ulaanbaatar` - Asia/Ulaanbaatar
* `Asia/Ulan_Bator` - Asia/Ulan_Bator
* `Asia/Urumqi` - Asia/Urumqi
* `Asia/Ust-Nera` - Asia/Ust-Nera
* `Asia/Vientiane` - Asia/Vientiane
* `Asia/Vladivostok` - Asia/Vladivostok
* `Asia/Yakutsk` - Asia/Yakutsk
* `Asia/Yangon` - Asia/Yangon
* `Asia/Yekaterinburg` - Asia/Yekaterinburg
* `Asia/Yerevan` - Asia/Yerevan
* `Atlantic/Azores` - Atlantic/Azores
* `Atlantic/Bermuda` - Atlantic/Bermuda
* `Atlantic/Canary` - Atlantic/Canary
* `Atlantic/Cape_Verde` - Atlantic/Cape_Verde
* `Atlantic/Faeroe` - Atlantic/Faeroe
* `Atlantic/Faroe` - Atlantic/Faroe
* `Atlantic/Jan_Mayen` - Atlantic/Jan_Mayen
* `Atlantic/Madeira` - Atlantic/Madeira
* `Atlantic/Reykjavik` - Atlantic/Reykjavik
* `Atlantic/South_Georgia` - Atlantic/South_Georgia
* `Atlantic/St_Helena` - Atlantic/St_Helena
* `Atlantic/Stanley` - Atlantic/Stanley
* `Australia/ACT` - Australia/ACT
* `Australia/Adelaide` - Australia/Adelaide
* `Australia/Brisbane` - Australia/Brisbane
* `Australia/Broken_Hill` - Australia/Broken_Hill
* `Australia/Canberra` - Australia/Canberra
* `Australia/Currie` - Australia/Currie
* `Australia/Darwin` - Australia/Darwin
* `Australia/Eucla` - Australia/Eucla
* `Australia/Hobart` - Australia/Hobart
* `Australia/LHI` - Australia/LHI
* `Australia/Lindeman` - Australia/Lindeman
* `Australia/Lord_Howe` - Australia/Lord_Howe
* `Australia/Melbourne` - Australia/Melbourne
* `Australia/NSW` - Australia/NSW
* `Australia/North` - Australia/North
* `Australia/Perth` - Australia/Perth
* `Australia/Queensland` - Australia/Queensland
* `Australia/South` - Australia/South
* `Australia/Sydney` - Australia/Sydney
* `Australia/Tasmania` - Australia/Tasmania
* `Australia/Victoria` - Australia/Victoria
* `Australia/West` - Australia/West
* `Australia/Yancowinna` - Australia/Yancowinna
* `Brazil/Acre` - Brazil/Acre
* `Brazil/DeNoronha` - Brazil/DeNoronha
* `Brazil/East` - Brazil/East
* `Brazil/West` - Brazil/West
* `CET` - CET
* `CST6CDT` - CST6CDT
* `Canada/Atlantic` - Canada/Atlantic
* `Canada/Central` - Canada/Central
* `Canada/Eastern` - Canada/Eastern
* `Canada/Mountain` - Canada/Mountain
* `Canada/Newfoundland` - Canada/Newfoundland
* `Canada/Pacific` - Canada/Pacific
* `Canada/Saskatchewan` - Canada/Saskatchewan
* `Canada/Yukon` - Canada/Yukon
* `Chile/Continental` - Chile/Continental
* `Chile/EasterIsland` - Chile/EasterIsland
* `Cuba` - Cuba
* `EET` - EET
* `EST` - EST
* `EST5EDT` - EST5EDT
* `Egypt` - Egypt
* `Eire` - Eire
* `Etc/GMT` - Etc/GMT
* `Etc/GMT+0` - Etc/GMT+0
* `Etc/GMT+1` - Etc/GMT+1
* `Etc/GMT+10` - Etc/GMT+10
* `Etc/GMT+11` - Etc/GMT+11
* `Etc/GMT+12` - Etc/GMT+12
* `Etc/GMT+2` - Etc/GMT+2
* `Etc/GMT+3` - Etc/GMT+3
* `Etc/GMT+4` - Etc/GMT+4
* `Etc/GMT+5` - Etc/GMT+5
* `Etc/GMT+6` - Etc/GMT+6
* `Etc/GMT+7` - Etc/GMT+7
* `Etc/GMT+8` - Etc/GMT+8
* `Etc/GMT+9` - Etc/GMT+9
* `Etc/GMT-0` - Etc/GMT-0
* `Etc/GMT-1` - Etc/GMT-1
* `Etc/GMT-10` - Etc/GMT-10
* `Etc/GMT-11` - Etc/GMT-11
* `Etc/GMT-12` - Etc/GMT-12
* `Etc/GMT-13` - Etc/GMT-13
* `Etc/GMT-14` - Etc/GMT-14
* `Etc/GMT-2` - Etc/GMT-2
* `Etc/GMT-3` - Etc/GMT-3
* `Etc/GMT-4` - Etc/GMT-4
* `Etc/GMT-5` - Etc/GMT-5
* `Etc/GMT-6` - Etc/GMT-6
* `Etc/GMT-7` - Etc/GMT-7
* `Etc/GMT-8` - Etc/GMT-8
* `Etc/GMT-9` - Etc/GMT-9
* `Etc/GMT0` - Etc/GMT0
* `Etc/Greenwich` - Etc/Greenwich
* `Etc/UCT` - Etc/UCT
* `Etc/UTC` - Etc/UTC
* `Etc/Universal` - Etc/Universal
* `Etc/Zulu` - Etc/Zulu
* `Europe/Amsterdam` - Europe/Amsterdam
* `Europe/Andorra` - Europe/Andorra
* `Europe/Astrakhan` - Europe/Astrakhan
* `Europe/Athens` - Europe/Athens
* `Europe/Belfast` - Europe/Belfast
* `Europe/Belgrade` - Europe/Belgrade
* `Europe/Berlin` - Europe/Berlin
* `Europe/Bratislava` - Europe/Bratislava
* `Europe/Brussels` - Europe/Brussels
* `Europe/Bucharest` - Europe/Bucharest
* `Europe/Budapest` - Europe/Budapest
* `Europe/Busingen` - Europe/Busingen
* `Europe/Chisinau` - Europe/Chisinau
* `Europe/Copenhagen` - Europe/Copenhagen
* `Europe/Dublin` - Europe/Dublin
* `Europe/Gibraltar` - Europe/Gibraltar
* `Europe/Guernsey` - Europe/Guernsey
* `Europe/Helsinki` - Europe/Helsinki
* `Europe/Isle_of_Man` - Europe/Isle_of_Man
* `Europe/Istanbul` - Europe/Istanbul
* `Europe/Jersey` - Europe/Jersey
* `Europe/Kaliningrad` - Europe/Kaliningrad
* `Europe/Kiev` - Europe/Kiev
* `Europe/Kirov` - Europe/Kirov
* `Europe/Kyiv` - Europe/Kyiv
* `Europe/Lisbon` - Europe/Lisbon
* `Europe/Ljubljana` - Europe/Ljubljana
* `Europe/London` - Europe/London
* `Europe/Luxembourg` - Europe/Luxembourg
* `Europe/Madrid` - Europe/Madrid
* `Europe/Malta` - Europe/Malta
* `Europe/Mariehamn` - Europe/Mariehamn
* `Europe/Minsk` - Europe/Minsk
* `Europe/Monaco` - Europe/Monaco
* `Europe/Moscow` - Europe/Moscow
* `Europe/Nicosia` - Europe/Nicosia
* `Europe/Oslo` - Europe/Oslo
* `Europe/Paris` - Europe/Paris
* `Europe/Podgorica` - Europe/Podgorica
* `Europe/Prague` - Europe/Prague
* `Europe/Riga` - Europe/Riga
* `Europe/Rome` - Europe/Rome
* `Europe/Samara` - Europe/Samara
* `Europe/San_Marino` - Europe/San_Marino
* `Europe/Sarajevo` - Europe/Sarajevo
* `Europe/Saratov` - Europe/Saratov
* `Europe/Simferopol` - Europe/Simferopol
* `Europe/Skopje` - Europe/Skopje
* `Europe/Sofia` - Europe/Sofia
* `Europe/Stockholm` - Europe/Stockholm
* `Europe/Tallinn` - Europe/Tallinn
* `Europe/Tirane` - Europe/Tirane
* `Europe/Tiraspol` - Europe/Tiraspol
* `Europe/Ulyanovsk` - Europe/Ulyanovsk
* `Europe/Uzhgorod` - Europe/Uzhgorod
* `Europe/Vaduz` - Europe/Vaduz
* `Europe/Vatican` - Europe/Vatican
* `Europe/Vienna` - Europe/Vienna
* `Europe/Vilnius` - Europe/Vilnius
* `Europe/Volgograd` - Europe/Volgograd
* `Europe/Warsaw` - Europe/Warsaw
* `Europe/Zagreb` - Europe/Zagreb
* `Europe/Zaporozhye` - Europe/Zaporozhye
* `Europe/Zurich` - Europe/Zurich
* `GB` - GB
* `GB-Eire` - GB-Eire
* `GMT` - GMT
* `GMT+0` - GMT+0
* `GMT-0` - GMT-0
* `GMT0` - GMT0
* `Greenwich` - Greenwich
* `HST` - HST
* `Hongkong` - Hongkong
* `Iceland` - Iceland
* `Indian/Antananarivo` - Indian/Antananarivo
* `Indian/Chagos` - Indian/Chagos
* `Indian/Christmas` - Indian/Christmas
* `Indian/Cocos` - Indian/Cocos
* `Indian/Comoro` - Indian/Comoro
* `Indian/Kerguelen` - Indian/Kerguelen
* `Indian/Mahe` - Indian/Mahe
* `Indian/Maldives` - Indian/Maldives
* `Indian/Mauritius` - Indian/Mauritius
* `Indian/Mayotte` - Indian/Mayotte
* `Indian/Reunion` - Indian/Reunion
* `Iran` - Iran
* `Israel` - Israel
* `Jamaica` - Jamaica
* `Japan` - Japan
* `Kwajalein` - Kwajalein
* `Libya` - Libya
* `MET` - MET
* `MST` - MST
* `MST7MDT` - MST7MDT
* `Mexico/BajaNorte` - Mexico/BajaNorte
* `Mexico/BajaSur` - Mexico/BajaSur
* `Mexico/General` - Mexico/General
* `NZ` - NZ
* `NZ-CHAT` - NZ-CHAT
* `Navajo` - Navajo
* `PRC` - PRC
* `PST8PDT` - PST8PDT
* `Pacific/Apia` - Pacific/Apia
* `Pacific/Auckland` - Pacific/Auckland
* `Pacific/Bougainville` - Pacific/Bougainville
* `Pacific/Chatham` - Pacific/Chatham
* `Pacific/Chuuk` - Pacific/Chuuk
* `Pacific/Easter` - Pacific/Easter
* `Pacific/Efate` - Pacific/Efate
* `Pacific/Enderbury` - Pacific/Enderbury
* `Pacific/Fakaofo` - Pacific/Fakaofo
* `Pacific/Fiji` - Pacific/Fiji
* `Pacific/Funafuti` - Pacific/Funafuti
* `Pacific/Galapagos` - Pacific/Galapagos
* `Pacific/Gambier` - Pacific/Gambier
* `Pacific/Guadalcanal` - Pacific/Guadalcanal
* `Pacific/Guam` - Pacific/Guam
* `Pacific/Honolulu` - Pacific/Honolulu
* `Pacific/Johnston` - Pacific/Johnston
* `Pacific/Kanton` - Pacific/Kanton
* `Pacific/Kiritimati` - Pacific/Kiritimati
* `Pacific/Kosrae` - Pacific/Kosrae
* `Pacific/Kwajalein` - Pacific/Kwajalein
* `Pacific/Majuro` - Pacific/Majuro
* `Pacific/Marquesas` - Pacific/Marquesas
* `Pacific/Midway` - Pacific/Midway
* `Pacific/Nauru` - Pacific/Nauru
* `Pacific/Niue` - Pacific/Niue
* `Pacific/Norfolk` - Pacific/Norfolk
* `Pacific/Noumea` - Pacific/Noumea
* `Pacific/Pago_Pago` - Pacific/Pago_Pago
* `Pacific/Palau` - Pacific/Palau
* `Pacific/Pitcairn` - Pacific/Pitcairn
* `Pacific/Pohnpei` - Pacific/Pohnpei
* `Pacific/Ponape` - Pacific/Ponape
* `Pacific/Port_Moresby` - Pacific/Port_Moresby
* `Pacific/Rarotonga` - Pacific/Rarotonga
* `Pacific/Saipan` - Pacific/Saipan
* `Pacific/Samoa` - Pacific/Samoa
* `Pacific/Tahiti` - Pacific/Tahiti
* `Pacific/Tarawa` - Pacific/Tarawa
* `Pacific/Tongatapu` - Pacific/Tongatapu
* `Pacific/Truk` - Pacific/Truk
* `Pacific/Wake` - Pacific/Wake
* `Pacific/Wallis` - Pacific/Wallis
* `Pacific/Yap` - Pacific/Yap
* `Poland` - Poland
* `Portugal` - Portugal
* `ROC` - ROC
* `ROK` - ROK
* `Singapore` - Singapore
* `Turkey` - Turkey
* `UCT` - UCT
* `US/Alaska` - US/Alaska
* `US/Aleutian` - US/Aleutian
* `US/Arizona` - US/Arizona
* `US/Central` - US/Central
* `US/East-Indiana` - US/East-Indiana
* `US/Eastern` - US/Eastern
* `US/Hawaii` - US/Hawaii
* `US/Indiana-Starke` - US/Indiana-Starke
* `US/Michigan` - US/Michigan
* `US/Mountain` - US/Mountain
* `US/Pacific` - US/Pacific
* `US/Samoa` - US/Samoa
* `UTC` - UTC
* `Universal` - Universal
* `W-SU` - W-SU
* `WET` - WET
* `Zulu` - Zulu

# components.schemas.ToolApprovalUpdateApprovalStateEnum.description
* `approved` - approved
* `needs_approval` - needs_approval
* `do_not_use` - do_not_use

# components.schemas.ToolbarModeEnum.description
* `disabled` - disabled
* `toolbar` - toolbar

# components.schemas.TopEventEntry.properties.count.description
Number of occurrences in the lookback window (last 7 days).

# components.schemas.TopEventEntry.properties.distinct_users.description
`uniq(person_id)` over the window — reach. Distinguishes a high-count event firing on one power user from one firing on many users.

# components.schemas.TopEventEntry.properties.recent_24h_count.description
Count in just the last 24 hours. Compare to `count / 7` to spot bursts: a ratio well above 1/7 means the event is concentrated in the last day.

# components.schemas.TopEventEntry.properties.recent_24h_users.description
`uniq(person_id)` over just the last 24 hours. A burst across many users is qualitatively different from one user in a loop.

# components.schemas.TopEventEntry.properties.first_seen.description
ISO-8601 timestamp of the earliest occurrence within the lookback window. Compare to the window start to spot new event types: `first_seen` close to `now` ⇒ likely new or recently bursting; close to the window edge ⇒ has been around at least that long (the window can't tell you when the event *truly* first appeared).

# components.schemas.TopEventEntry.properties.last_seen.description
ISO-8601 timestamp of the most recent occurrence within the lookback window.

# components.schemas.TopPage.properties.change.description
Period-over-period change in visitors, null when not meaningful.

# components.schemas.TopSource.properties.change.description
Period-over-period change in visitors, null when not meaningful.

# components.schemas.TraceNeighborsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TraceNeighborsQuery.properties.properties.description
Properties configurable in the interface

# components.schemas.TraceNeighborsQuery.properties.timestamp.description
Timestamp of the current trace to find neighbors for

# components.schemas.TraceNeighborsQuery.properties.traceId.description
ID of the current trace to find neighbors for

# components.schemas.TraceNeighborsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.TraceNeighborsQueryResponse.properties.newerTraceId.description
ID of the newer trace (chronologically after current)

# components.schemas.TraceNeighborsQueryResponse.properties.olderTraceId.description
ID of the older trace (chronologically before current)

# components.schemas.TraceNeighborsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.TraceNeighborsQueryResponse.properties.warnings.description
Data warehouse sync warnings — see AnalyticsQueryResponseBase.warnings for semantics.

# components.schemas.TraceQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TraceQuery.properties.properties.description
Properties configurable in the interface

# components.schemas.TraceQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.TraceQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.TraceQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TraceQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.TraceQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.TraceQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.TraceQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.TraceReview.properties.trace_url.description
Absolute URL to the trace this review is attached to.

# components.schemas.TraceReview.properties.comment.description
Optional comment or reasoning for the review.

# components.schemas.TraceReviewCreate.properties.trace_id.description
Trace ID for the review. Only one active review can exist per trace and team.

# components.schemas.TraceReviewCreate.properties.comment.description
Optional comment or reasoning for the review.

# components.schemas.TraceReviewCreate.properties.scores.description
Full desired score set for this review. Omit scorers you want to leave blank.

# components.schemas.TraceReviewCreate.properties.queue_id.description
Optional review queue ID for queue-context saves. When provided, the matching pending queue item is cleared after the review is saved. If omitted, any pending queue item for the same trace is cleared.

# components.schemas.TraceReviewScore.properties.definition_archived.description
Whether the scorer is currently archived.

# components.schemas.TraceReviewScore.properties.definition_version_id.description
Immutable scorer version ID used to validate this score.

# components.schemas.TraceReviewScore.properties.definition_version.description
Immutable scorer version number used to validate this score.

# components.schemas.TraceReviewScore.properties.definition_config.description
Immutable scorer configuration snapshot used to validate this score.

# components.schemas.TraceReviewScore.properties.categorical_values.description
Categorical option keys selected for this score.

# components.schemas.TraceReviewScoreWrite.properties.definition_version_id.description
Optional immutable scorer version ID. Defaults to the scorer's current version.

# components.schemas.TraceReviewScoreWrite.properties.categorical_values.description
Categorical option keys selected for this score.

# components.schemas.TraceSpansAggregationQuery.properties.compareFilter.description
Optional comparison window — when `compare` is true, the runner returns an extra `compare` result set.

# components.schemas.TraceSpansAggregationQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TraceSpansAggregationQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.TraceSpansAggregationQueryResponse.properties.compare.description
Result rows for the comparison period when `compareFilter.compare` is true.

# components.schemas.TraceSpansAggregationQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.TraceSpansAggregationQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TraceSpansAggregationQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.TraceSpansAggregationQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.TraceSpansAggregationQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.TraceSpansAggregationQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.TraceSpansQuery.properties.after.description
Cursor for fetching the next page of results

# components.schemas.TraceSpansQuery.properties.excludeAttributes.description
Omit the per-span `attributes` map from results to keep payloads compact

# components.schemas.TraceSpansQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TraceSpansQuery.properties.prefetchSpans.description
Prefetch up to this many spans per trace and include them in results

# components.schemas.TraceSpansQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.TraceSpansQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.TraceSpansQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TraceSpansQueryResponse.properties.nextCursor.description
Cursor for fetching the next page of results

# components.schemas.TraceSpansQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.TraceSpansQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.TraceSpansQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.TraceSpansQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.TraceSpansTreeQuery.properties.compareFilter.description
Optional comparison window — when `compare` is true, the runner returns an extra `compare` result set.

# components.schemas.TraceSpansTreeQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TraceSpansTreeQuery.properties.serviceName.description
Service name that scopes the returned tree. Applied to the spans CTE so the call-tree only contains spans from this service, even when matched traces span multiple services.

# components.schemas.TraceSpansTreeQuery.properties.spanName.description
Span name to scope the matched trace set. Required because the `(trace_id, parent_span_id)` self-join is prohibitive without bounding the matched traces — at high name cardinality the query becomes unsafe to run.

# components.schemas.TraceSpansTreeQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.TraceSpansTreeQueryResponse.properties.compare.description
Result rows for the comparison period when `compareFilter.compare` is true.

# components.schemas.TraceSpansTreeQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.TraceSpansTreeQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TraceSpansTreeQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.TraceSpansTreeQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.TraceSpansTreeQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.TraceSpansTreeQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.TracesQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TracesQuery.properties.properties.description
Properties configurable in the interface

# components.schemas.TracesQuery.properties.randomOrder.description
Use random ordering instead of timestamp DESC. Useful for representative sampling to avoid recency bias.

# components.schemas.TracesQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.TracesQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.TracesQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TracesQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.TracesQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.TracesQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.TracesQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.TranscriptSegment.description
Serializer for individual transcript segments from AssemblyAI

# components.schemas.TranslateRequest.properties.target_language.description
Target language code (default: 'en' for English)

# components.schemas.TrendingInsight.description
Insight enriched with view-count and recent-viewer fields, used by the trending action.

# components.schemas.TrendingInsight.properties.user_access_level.description
The effective access level the user has for this object

# components.schemas.TrendingInsight.properties.search_match_type.description
How this row matched the `search` term: `exact` (the term is a case-insensitive substring of the name, derived_name, description, or a tag name) or `similar` (a fuzzy trigram match only). Results are ordered exact-first. Null when the list is not filtered by `search`.

# components.schemas.TrendingInsight.properties.view_count.description
Number of distinct viewers in the time window. Higher values indicate insights that more people in the project actively look at, which is a strong proxy for which insights matter.

# components.schemas.TrendingInsight.properties.viewers.description
Up to 3 of the most recent users who viewed this insight in the time window.

# components.schemas.TrendingInsight.properties.last_modified_by.description
User who last modified this insight, or null if never modified after creation.

# components.schemas.TrendsAlertConfig.properties.check_ongoing_interval.description
When true, evaluate the current (still incomplete) time interval in addition to completed ones.

# components.schemas.TrendsAlertConfig.properties.series_index.description
Zero-based index of the series in the insight's query to monitor.

# components.schemas.TrendsFilter.properties.aggregationAxisFormat.description
Y-axis value formatter. Picks a human-friendly unit per value at render time without changing the underlying series values.

- `numeric` (default): raw numbers, e.g. `1,234`.
- `duration`: values are in seconds; rendered as friendly units per value (`45s`, `2m 12s`, `1h 4m`). Use this whenever the series is in seconds (latency, session length, time-to-event) instead of dividing in `formula` to force minutes or hours.
- `duration_ms`: values are in milliseconds; rendered as friendly units (`850ms`, `1.5s`, `1m 4s`).
- `percentage`: values are already in the 0-100 range; appends `%`.
- `percentage_scaled`: values are a 0-1 ratio; multiplied and rendered as `%`.
- `currency`: values are in the project's base currency (set in project settings, defaults to USD); rendered with that currency symbol. For values pinned to a specific currency regardless of project base (e.g. `$ai_total_cost_usd` is always USD), use `aggregationAxisPrefix` instead.
- `short`: compact notation for large counts (`1.2K`, `3.4M`).

# components.schemas.TrendsFilter.properties.aggregationAxisPostfix.description
Literal suffix applied to every value (e.g. ` req`). Reserve for units that `aggregationAxisFormat` cannot express. Do not use ` mins`, ` s`, ` ms`, `%` etc. — pick the matching `aggregationAxisFormat` instead so the underlying values stay numerically correct for breakdowns, formulas, and alerts. Include any leading space yourself.

# components.schemas.TrendsFilter.properties.aggregationAxisPrefix.description
Literal prefix applied to every value (e.g. `$`). Use to pin a unit or currency symbol that does not depend on `aggregationAxisFormat` — for example, when values are denominated in a fixed currency regardless of the project's base currency. Include any trailing space yourself.

# components.schemas.TrendsFilter.properties.decimalPlaces.description
Maximum number of decimal places shown. 1 or 2 is usually right for percentages and currency.

# components.schemas.TrendsFilter.properties.formulaNodes.description
List of formulas with optional custom names. Takes precedence over formula/formulas if set.

# components.schemas.TrendsFilter.properties.resultCustomizationBy.description
Wether result datasets are associated by their values or by their order.

# components.schemas.TrendsFilter.properties.resultCustomizations.description
Customizations for the appearance of result datasets.

# components.schemas.TrendsFilter.properties.stackBreakdownValues.description
On the horizontal bar-value chart, stack a series' breakdown values into a single bar instead of rendering one bar per breakdown value.

# components.schemas.TrendsFilter.properties.yAxisLabel.description
Custom label rendered alongside the Y axis.

# components.schemas.TrendsFormulaNode.properties.custom_name.description
Optional user-defined name for the formula

# components.schemas.TrendsQuery.properties.calendarHeatmapFilter.description
Properties specific to the calendar heatmap display variant. Only consulted when `trendsFilter.display === ChartDisplayType.CalendarHeatmap`; ignored otherwise.

# components.schemas.TrendsQuery.properties.conversionGoal.description
Whether we should be comparing against a specific conversion goal

# components.schemas.TrendsQuery.properties.dataColorTheme.description
Colors used in the insight's visualization

# components.schemas.TrendsQuery.properties.filterTestAccounts.description
Exclude internal and test users by applying the respective filters

# components.schemas.TrendsQuery.properties.interval.description
Granularity of the response. Can be one of `hour`, `day`, `week` or `month`

# components.schemas.TrendsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TrendsQuery.properties.tags.description
Tags that will be added to the Query log comment

# components.schemas.TrendsQuery.properties.trendsFilter.description
Properties specific to the trends insight

# components.schemas.TrendsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.TrendsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.TrendsQueryResponse.properties.hasMore.description
Wether more breakdown values are available.

# components.schemas.TrendsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.TrendsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.TrendsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.TrendsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.TrendsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.UpdateTextTileRequest.properties.tile_id.description
ID of the dashboard tile to update. Use dashboard-get to look up tile IDs.

# components.schemas.UpdateTextTileRequest.properties.body.description
New markdown body for the text tile. Omit to leave the body unchanged. Max 4000 characters.

# components.schemas.UpdateTextTileRequest.properties.layouts.description
New grid layout per breakpoint. Omit to leave the layout unchanged.

# components.schemas.UpdateTextTileRequest.properties.color.description
New accent color name, empty string or null to clear. Omit to leave unchanged.

# components.schemas.UpsertWizardSessionRequest.description
Input: validates the JSON the wizard CLI posts. team_id is derived from URL.

# components.schemas.UpsertWizardSessionRequest.properties.session_id.description
Stable identifier the wizard mints for this run (format: '{workflow_id}-{skill_id}-{started_at_iso}'). Reposting with the same session_id upserts the existing row.

# components.schemas.UpsertWizardSessionRequest.properties.workflow_id.description
High-level workflow being run, e.g. 'onboarding', 'migration', 'audit'.

# components.schemas.UpsertWizardSessionRequest.properties.skill_id.description
Specific skill within the workflow, e.g. 'nextjs', 'django', 'laravel'.

# components.schemas.UpsertWizardSessionRequest.properties.started_at.description
UTC timestamp when the wizard started this run. Matches the timestamp encoded in session_id.

# components.schemas.UpsertWizardSessionRequest.properties.run_phase.description
Lifecycle stage of the wizard run.

* `idle` - IDLE
* `running` - RUNNING
* `completed` - COMPLETED
* `error` - ERROR

# components.schemas.UpsertWizardSessionRequest.properties.event_plan.description
Optional structured plan of events the wizard intends to instrument. Schema is workflow-specific.

# components.schemas.UpsertWizardSessionRequest.properties.error.description
Populated when run_phase='error'. Shape: { type: string, message: string }.

# components.schemas.UsageMetric.properties.timeseries.description
Daily values over the current interval period. Only populated when display is 'sparkline'.

# components.schemas.UsageMetric.properties.timeseries_labels.description
ISO date strings for sparkline tooltip labels. Only populated when display is 'sparkline'.

# components.schemas.UsageMetricsQuery.properties.group_key.description
Group key. Required with group_type_index for group queries.

# components.schemas.UsageMetricsQuery.properties.group_type_index.description
Group type index. Required with group_key for group queries.

# components.schemas.UsageMetricsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.UsageMetricsQuery.properties.person_id.description
Person ID to fetch metrics for. Mutually exclusive with group parameters.

# components.schemas.UsageMetricsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.UsageMetricsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.UsageMetricsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.UsageMetricsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.UsageMetricsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.UsageMetricsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.UsageMetricsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.User.properties.pending_email.title
Pending email address awaiting verification

# components.schemas.User.properties.notification_settings.description
Map of notification preferences. Keys include `plugin_disabled`, `all_weekly_report_disabled`, `project_weekly_digest_disabled`, `error_tracking_weekly_digest_project_enabled`, `web_analytics_weekly_digest_project_enabled`, `organization_member_join_email_disabled`, `data_pipeline_error_threshold` (number between 0.0 and 1.0), and other per-topic switches. Values are either booleans, or (for per-project/per-resource keys) a map of IDs to booleans. Only the keys you send are updated — other preferences stay as-is.

# components.schemas.User.properties.anonymize_data.description
Whether PostHog should anonymize events captured for this user when identified.

# components.schemas.User.properties.is_staff.description
Designates whether the user can log into this admin site.

# components.schemas.User.properties.current_password.description
The user's current password. Required when changing `password` if the user already has a usable password set.

# components.schemas.User.properties.passkeys_enabled_for_2fa.description
Whether passkeys are enabled for 2FA authentication. Users can disable this to use only TOTP for 2FA while keeping passkeys for login.

# components.schemas.User.properties.hide_mcp_hints.description
When true, the user has opted out of in-app hints promoting the PostHog MCP integration after taking actions.

# components.schemas.User.properties.onboarding_delegated_to_organization_id.description
Organization ID of the pending delegation invite, if any. Used by the frontend to scope the 'waiting for teammate' UI to the org where delegation was initiated.

# components.schemas.User.properties.active_realtime_notification_types.description
Real-time notification types that currently have a live dispatch site. Drives the in-app notifications settings UI. Read-only.

# components.schemas.User.properties.requires_credential_review.description
True if the user has at least one Personal API Key and has not yet acknowledged their existing credentials. Used to gate a one-shot review screen on first post-provisioning login. Becomes False once the user POSTs to `/api/users/@me/credentials_review_complete/`. Read-only.

# components.schemas.UserBlastRadiusRequest.properties.group_type_index.description
Group type index for group-based flags (null for person-based flags)

# components.schemas.UserBlastRadiusResponse.properties.affected.description
Number of entities matching the condition (users or groups depending on group_type_index)

# components.schemas.UserBlastRadiusResponse.properties.total.description
Total number of entities of this type in the project

# components.schemas.UserGitHubAccount.properties.type.description
GitHub account type for the installation (e.g. User or Organization).

# components.schemas.UserGitHubAccount.properties.name.description
GitHub login or organization name tied to the installation.

# components.schemas.UserGitHubIntegrationItem.properties.kind.description
Integration kind; always `github` for this API.

# components.schemas.UserGitHubIntegrationItem.properties.repository_selection.description
Repository selection mode from GitHub (e.g. selected or all).

# components.schemas.UserGitHubIntegrationItem.properties.account.description
Installation account metadata from GitHub.

# components.schemas.UserGitHubIntegrationItem.properties.uses_shared_installation.description
True when this installation id matches a team-level GitHub integration on the active project.

# components.schemas.UserGitHubIntegrationListResponse.properties.results.description
GitHub personal integrations for the authenticated user.

# components.schemas.UserGitHubLinkStartRequest.properties.team_id.description
Optional team/project id (e.g. PostHog Code); web UI uses the session's current team.

# components.schemas.UserGitHubLinkStartRequest.properties.connect_from.description
Optional client hint (e.g. posthog_code) for return routing after OAuth.

# components.schemas.UserGitHubLinkStartResponse.properties.install_url.description
URL to open in the browser to install or authorize the GitHub App for this user.

# components.schemas.UserGitHubLinkStartResponse.properties.connect_flow.description
OAuth or install flow used for this GitHub connection.

# components.schemas.UserInterview.properties.classifications.description
Searchable classifications on the response. `abandoned` is auto-derived from the transcript when the interview is recorded; `off-topic` is set manually. Sending `classifications` on an update replaces the whole list — pass the full desired set, not a delta.

# components.schemas.UserInterviewSearchDocumentTypeEnum.description
* `transcript` - transcript
* `summary` - summary

# components.schemas.UserInterviewSearchRequest.properties.query.description
Natural-language query to match semantically against interview transcripts and summaries.

# components.schemas.UserInterviewSearchRequest.properties.document_types.description
Which document types to search across. Omit to default to both `transcript` and `summary`. Pass a non-empty subset to restrict the search.

# components.schemas.UserInterviewSearchRequest.properties.topic_id.description
Optional. Restrict results to interviews belonging to a specific UserInterviewTopic.

# components.schemas.UserInterviewSearchRequest.properties.classifications.description
Optional. Restrict results to interviews carrying any of these classifications (OR). Combines with `topic_id` as AND.

# components.schemas.UserInterviewSearchRequest.properties.limit.description
Maximum number of matches to return (1-50). Defaults to 10. Two matches per interview are possible — one for the transcript, one for the summary.

# components.schemas.UserInterviewSearchResult.properties.document_type.description
Which document type matched — `transcript` is the raw conversation, `summary` is the AI-generated abstract.

* `transcript` - transcript
* `summary` - summary

# components.schemas.UserInterviewSearchResult.properties.similarity.description
Cosine similarity in [0, 1]; higher is closer to the query. Computed as `1 - cosineDistance`.

# components.schemas.UserInterviewSearchResult.properties.content_snippet.description
Excerpt of the matched document (first 500 characters).

# components.schemas.UserInterviewSearchResult.properties.interviewee_identifier.description
Email or PostHog distinct ID of the interviewee.

# components.schemas.UserInterviewSearchResult.properties.topic_id.description
ID of the UserInterviewTopic the interview was conducted for, or null if detached.

# components.schemas.UserInterviewTopic.properties.interviewee_emails.description
Email addresses of people to interview. May be combined with interviewee_distinct_ids.

# components.schemas.UserInterviewTopic.properties.interviewee_distinct_ids.description
PostHog distinct IDs of people to interview. May be combined with interviewee_emails.

# components.schemas.UserInterviewTopic.properties.topic.description
The product, feature, or idea you want to ask interviewees about.

# components.schemas.UserInterviewTopic.properties.agent_context.description
Optional additional system prompt for the voice agent — extra background, tone, or constraints.

# components.schemas.UserInterviewTopic.properties.questions.description
Ordered list of questions the voice agent should work through during the interview.

# components.schemas.UserInterviewTopic.properties.invite_subject.description
Subject line for the invitation email. Plain text only — URLs, angle brackets, and control characters are rejected. Leave blank to use the default subject. Personalization is handled by the email template, so do not include placeholders.

# components.schemas.UserInterviewTopic.properties.invite_message.description
Intro message shown in the invitation email body, above the interview link. Plain prose only — URLs, angle brackets, and control characters are rejected (line breaks are allowed). Leave blank to use the default copy.

# components.schemas.UserPushTokenItem.properties.platform.description
Device platform the token was issued for.

* `ios` - iOS
* `android` - Android
* `web` - Web

# components.schemas.UserPushTokenItem.properties.last_seen_at.description
Last time the mobile app re-registered this token.

# components.schemas.UserPushTokenRegisterRequest.properties.token.description
Opaque push token issued by the device's platform push service (e.g. an Expo push token).

# components.schemas.UserPushTokenRegisterRequest.properties.platform.description
Device platform the token was issued for. One of `ios`, `android`, or `web`.

* `ios` - iOS
* `android` - Android
* `web` - Web

# components.schemas.UserPushTokenUnregisterRequest.properties.token.description
The opaque push token to remove for the authenticated user.

# components.schemas.ValidationStatusEnum.description
* `valid` - Valid
* `invalid` - Invalid
* `expired` - Expired
* `stale` - Stale (resource changed)

# components.schemas.VectorSearchQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.VectorSearchQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.VectorSearchQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.VectorSearchQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.VectorSearchQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.VectorSearchQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.VectorSearchQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.VectorSearchQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.VerbosityEnum.description
* `summary` - summary
* `stack` - stack
* `raw` - raw

# components.schemas.VisionQuota.properties.monthly_quota.description
Total observations the org may complete per calendar month.

# components.schemas.VisionQuota.properties.usage_this_month.description
Observations created this month that are in flight or have succeeded, counted against the quota.

# components.schemas.VisionQuota.properties.remaining.description
`monthly_quota - usage_this_month`, floored at 0.

# components.schemas.VisionQuota.properties.exhausted.description
True when `usage_this_month >= monthly_quota`; further observations are skipped until next period.

# components.schemas.VisionQuota.properties.period_start.description
First moment of the current quota period (UTC).

# components.schemas.VisionQuota.properties.period_end.description
First moment of the next quota period (UTC); the current period's exclusive upper bound.

# components.schemas.WarehouseStatusResponseStateEnum.description
* `pending` - pending
* `provisioning` - provisioning
* `ready` - ready
* `failed` - failed
* `deleting` - deleting
* `deleted` - deleted

# components.schemas.WebAnalyticsExternalSummaryQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.WebExperimentsAPI.description
Serializer for the exposed /api/web_experiments endpoint, to be used in posthog-js and for headless APIs.

# components.schemas.WebExperimentsAPI.properties.variants.description
Variants for the web experiment. Example:

        {
            "control": {
                "transforms": [
                    {
                        "text": "Here comes Superman!",
                        "html": "",
                        "selector": "#page > #body > .header h1"
                    }
                ],
                "conditions": "None",
                "rollout_percentage": 50
            },
        }

# components.schemas.WebExternalClicksTableQuery.properties.aggregation_group_type_index.description
Groups aggregation - not used in Web Analytics but required for type compatibility

# components.schemas.WebExternalClicksTableQuery.properties.dataColorTheme.description
Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility

# components.schemas.WebExternalClicksTableQuery.properties.interval.description
Interval for date range calculation (affects date_to rounding for hour vs day ranges)

# components.schemas.WebExternalClicksTableQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebExternalClicksTableQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.WebExternalClicksTableQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.WebExternalClicksTableQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebExternalClicksTableQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.WebExternalClicksTableQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.WebExternalClicksTableQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.WebExternalClicksTableQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.WebGoalsQuery.properties.aggregation_group_type_index.description
Groups aggregation - not used in Web Analytics but required for type compatibility

# components.schemas.WebGoalsQuery.properties.dataColorTheme.description
Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility

# components.schemas.WebGoalsQuery.properties.interval.description
Interval for date range calculation (affects date_to rounding for hour vs day ranges)

# components.schemas.WebGoalsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebGoalsQuery.properties.useWebAnalyticsPrecompute.description
Opt this specific query into the web_goals_query precompute path. Requires the `web-analytics-precompute-toggle` PostHog feature flag to be on for the team's organization for the gate to pass. *

# components.schemas.WebGoalsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.WebGoalsQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.WebGoalsQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebGoalsQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.WebGoalsQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.WebGoalsQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.WebGoalsQueryResponse.properties.usedLazyPrecompute.description
Whether the response was served from the lazy precompute path.

# components.schemas.WebGoalsQueryResponse.properties.usedPreAggregatedTables.description
Whether the response was served from a precomputed table.

# components.schemas.WebGoalsQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.WebNotableChangesQuery.properties.aggregation_group_type_index.description
Groups aggregation - not used in Web Analytics but required for type compatibility

# components.schemas.WebNotableChangesQuery.properties.dataColorTheme.description
Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility

# components.schemas.WebNotableChangesQuery.properties.interval.description
Interval for date range calculation (affects date_to rounding for hour vs day ranges)

# components.schemas.WebNotableChangesQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebNotableChangesQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.WebNotableChangesQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.WebNotableChangesQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebNotableChangesQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.WebNotableChangesQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.WebNotableChangesQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.WebNotableChangesQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.WebOverviewQuery.properties.aggregation_group_type_index.description
Groups aggregation - not used in Web Analytics but required for type compatibility

# components.schemas.WebOverviewQuery.properties.dataColorTheme.description
Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility

# components.schemas.WebOverviewQuery.properties.interval.description
Interval for date range calculation (affects date_to rounding for hour vs day ranges)

# components.schemas.WebOverviewQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebOverviewQuery.properties.useWebAnalyticsPrecompute.description
Opt this specific query into the web_overview_query precompute path. Requires the `web-analytics-precompute-toggle` PostHog feature flag to be on for the team's organization for the gate to pass. *

# components.schemas.WebOverviewQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.WebOverviewQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.WebOverviewQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebOverviewQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.WebOverviewQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.WebOverviewQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.WebOverviewQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.WebPageURLSearchQuery.properties.aggregation_group_type_index.description
Groups aggregation - not used in Web Analytics but required for type compatibility

# components.schemas.WebPageURLSearchQuery.properties.dataColorTheme.description
Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility

# components.schemas.WebPageURLSearchQuery.properties.interval.description
Interval for date range calculation (affects date_to rounding for hour vs day ranges)

# components.schemas.WebPageURLSearchQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebPageURLSearchQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.WebPageURLSearchQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.WebPageURLSearchQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebPageURLSearchQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.WebPageURLSearchQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.WebPageURLSearchQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.WebPageURLSearchQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.WebStatsTableQuery.properties.aggregation_group_type_index.description
Groups aggregation - not used in Web Analytics but required for type compatibility

# components.schemas.WebStatsTableQuery.properties.dataColorTheme.description
Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility

# components.schemas.WebStatsTableQuery.properties.interval.description
Interval for date range calculation (affects date_to rounding for hour vs day ranges)

# components.schemas.WebStatsTableQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebStatsTableQuery.properties.useWebAnalyticsPrecompute.description
Opt this specific query into the web stats table precompute path. Requires the `web-analytics-precompute-toggle` PostHog feature flag to be on for the team's organization for the gate to pass. *

# components.schemas.WebStatsTableQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.WebStatsTableQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.WebStatsTableQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebStatsTableQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.WebStatsTableQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.WebStatsTableQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.WebStatsTableQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.WebVitalsPathBreakdownQuery.properties.aggregation_group_type_index.description
Groups aggregation - not used in Web Analytics but required for type compatibility

# components.schemas.WebVitalsPathBreakdownQuery.properties.dataColorTheme.description
Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility

# components.schemas.WebVitalsPathBreakdownQuery.properties.interval.description
Interval for date range calculation (affects date_to rounding for hour vs day ranges)

# components.schemas.WebVitalsPathBreakdownQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebVitalsPathBreakdownQuery.properties.useWebAnalyticsPrecompute.description
Opt this specific query into the web vitals path breakdown precompute path. Requires the `web-analytics-precompute-toggle` PostHog feature flag to be on for the team's organization for the gate to pass. *

# components.schemas.WebVitalsPathBreakdownQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.WebVitalsPathBreakdownQueryResponse.properties.error.description
Query error. Returned only if 'explain' or `modifiers.debug` is true. Throws an error otherwise.

# components.schemas.WebVitalsPathBreakdownQueryResponse.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebVitalsPathBreakdownQueryResponse.properties.query_status.description
Query status indicates whether next to the provided data, a query is still running.

# components.schemas.WebVitalsPathBreakdownQueryResponse.properties.resolved_compare_date_range.description
The resolved previous/comparison period date range, when comparing against another period

# components.schemas.WebVitalsPathBreakdownQueryResponse.properties.timings.description
Measured timings for different parts of the query generation process

# components.schemas.WebVitalsPathBreakdownQueryResponse.properties.warnings.description
Warnings about data warehouse sources referenced by the query whose latest sync failed, is paused, hit a billing limit, or is otherwise stale. Results may not reflect current source data. Accumulated across every HogQL execution that contributes to this response — so insights backed by warehouse tables (Trends, Funnels, etc.) receive the same warnings as raw HogQL queries.

# components.schemas.WebVitalsQuery.properties.aggregation_group_type_index.description
Groups aggregation - not used in Web Analytics but required for type compatibility

# components.schemas.WebVitalsQuery.properties.dataColorTheme.description
Colors used in the insight's visualization - not used in Web Analytics but required for type compatibility

# components.schemas.WebVitalsQuery.properties.interval.description
Interval for date range calculation (affects date_to rounding for hour vs day ranges)

# components.schemas.WebVitalsQuery.properties.modifiers.description
Modifiers used when performing the query

# components.schemas.WebVitalsQuery.properties.version.description
version of the node, used for schema migrations

# components.schemas.WeeklyDigestResponse.properties.top_sources.description
Top 5 traffic sources by unique visitors.

# components.schemas.WeeklyDigestResponse.properties.dashboard_url.description
Link to the Web analytics dashboard for this project.

# components.schemas.WidgetCatalogEntry.properties.widget_type.description
Stable widget type identifier used in API requests.

# components.schemas.WidgetCatalogEntry.properties.group_id.description
Product area key for grouping related widget variants.

# components.schemas.WidgetCatalogEntry.properties.label.description
Widget variant label within the product area.

# components.schemas.WidgetCatalogEntry.properties.description.description
Short description of what the widget shows.

# components.schemas.WidgetCatalogEntry.properties.config_schema_hints.description
JSON schema hints for config fields (types, choices, bounds). Not a strict validator.

# components.schemas.WidgetCatalogEntry.properties.required_product_access.description
Product access resource required to view or run this widget, if any.

# components.schemas.WidgetCatalogResponse.properties.results.description
Registered dashboard widget types available when dashboard-widgets is enabled.

# components.schemas.WidgetTypeEnum.description
* `button` - button
* `tab` - tab
* `selector` - selector

# components.schemas.WizardSessionDTO.description
Output: serialises a WizardSessionDTO returned by the facade.

# components.schemas.WizardTaskDTOStatusEnum.description
* `pending` - PENDING
* `in_progress` - IN_PROGRESS
* `completed` - COMPLETED
* `failed` - FAILED
* `canceled` - CANCELED

# components.schemas.WoWChange.properties.percent.description
Absolute percentage change, rounded to nearest integer.

# components.schemas.WoWChange.properties.direction.description
Direction of the change relative to the prior period.

* `Up` - Up
* `Down` - Down

# components.schemas.WoWChange.properties.color.description
Hex color indicating whether the change is a positive or negative signal.

# components.schemas.WoWChange.properties.long_text.description
Verbose label, e.g. 'Up 12% from prior period'.

# components.schemas.ZScoreDetectorConfig.properties.threshold.description
Anomaly probability threshold [0-1]. Points above this probability are flagged (default: 0.9)

# components.schemas.ZScoreDetectorConfig.properties.window.description
Rolling window size for calculating mean/std (default: 30)

# components.schemas._CompareFilter.properties.compare.description
When true, also fetch results for a comparison window and return them under `compare`.

# components.schemas._CompareFilter.properties.compare_to.description
Relative date offset for the comparison window (e.g. '-1h', '-1d', '-7d'). Defaults to the immediately previous period of equal length.

# components.schemas._DateRange.properties.date_from.description
Start of the date range. Accepts ISO 8601 timestamps or relative formats: -7d, -1h, -1mStart, etc.

# components.schemas._DateRange.properties.date_to.description
End of the date range. Same format as date_from. Omit or null for "now".

# components.schemas._ErrorResponse.description
DRF's default error envelope — `{ "detail": str }` — typed for the OpenAPI schema.

# components.schemas._ErrorResponse.properties.detail.description
Human-readable error description from DRF.

# components.schemas._ExperimentApiMetricsList.description
List wrapper for OpenAPI schema generation — the field stores an array of metrics.

# components.schemas._HasSpansResponse.properties.hasSpans.description
Whether the team has ingested any tracing spans yet. Used to gate the onboarding empty state.

# components.schemas._InsightQuerySchema.description
The query definition for this insight. The `kind` field determines the query type:
- `InsightVizNode` — product analytics (trends, funnels, retention, paths, stickiness, lifecycle)
- `DataVisualizationNode` — SQL insights using HogQL
- `DataTableNode` — raw data tables
- `HogQuery` — Hog language queries

# components.schemas._LogAttributeEntry.properties.propertyFilterType.description
Property filter type: "log_attribute" or "log_resource_attribute". Use this as the `type` field when filtering.

# components.schemas._LogAttributeEntry.properties.matchedOn.description
How the search query matched this row: "key" if the attribute key matched, "value" if a value matched.

* `key` - key
* `value` - value

# components.schemas._LogAttributeEntry.properties.matchedValue.description
Sample matching value — only set when matchedOn is "value".

# components.schemas._LogAttributeValue.properties.id.description
Attribute value (used as the identifier).

# components.schemas._LogAttributeValue.properties.name.description
Display name — currently identical to `id`.

# components.schemas._LogEntry.properties.timestamp.description
ISO 8601 timestamp of the original log event.

# components.schemas._LogEntry.properties.observed_timestamp.description
ISO 8601 timestamp the log pipeline observed the event (may differ from `timestamp`).

# components.schemas._LogEntry.properties.severity_text.description
Log severity as a string (e.g. "info", "error"). Preferred over severity_number.

# components.schemas._LogEntry.properties.severity_number.description
Log severity as a numeric code. Redundant with severity_text; kept for OpenTelemetry compatibility.

# components.schemas._LogEntry.properties.level.description
ClickHouse alias for severity_text. Redundant; prefer severity_text.

# components.schemas._LogEntry.properties.span_id.description
Span ID. Returns "0000000000000000" when not set (padding, not null).

# components.schemas._LogEntry.properties.attributes.description
Log-level attributes as a string-keyed map. Values are strings (numeric/datetime attributes are also accessible via materialized columns).

# components.schemas._LogEntry.properties.resource_attributes.description
Resource-level attributes (service.name, k8s.*, host.hostname, etc.) as a string-keyed map. Repeats across all logs from the same pod/host.

# components.schemas._LogPropertyFilter.properties.key.description
Attribute key. For type "log", use "message". For "log_attribute"/"log_resource_attribute", use the attribute key (e.g. "k8s.container.name").

# components.schemas._LogPropertyFilter.properties.type.description
"log" filters the log body/message. "log_attribute" filters log-level attributes. "log_resource_attribute" filters resource-level attributes.

* `log` - log
* `log_attribute` - log_attribute
* `log_resource_attribute` - log_resource_attribute

# components.schemas._LogPropertyFilter.properties.operator.description
Comparison operator.

* `exact` - exact
* `is_not` - is_not
* `icontains` - icontains
* `not_icontains` - not_icontains
* `regex` - regex
* `not_regex` - not_regex
* `gt` - gt
* `lt` - lt
* `is_date_exact` - is_date_exact
* `is_date_before` - is_date_before
* `is_date_after` - is_date_after
* `is_set` - is_set
* `is_not_set` - is_not_set

# components.schemas._LogPropertyFilter.properties.value.description
Value to compare against. String, number, or array of strings. Omit for is_set/is_not_set operators.

# components.schemas._LogPropertyFilterOperatorEnum.description
* `exact` - exact
* `is_not` - is_not
* `icontains` - icontains
* `not_icontains` - not_icontains
* `regex` - regex
* `not_regex` - not_regex
* `gt` - gt
* `lt` - lt
* `is_date_exact` - is_date_exact
* `is_date_before` - is_date_before
* `is_date_after` - is_date_after
* `is_set` - is_set
* `is_not_set` - is_not_set

# components.schemas._LogPropertyFilterTypeEnum.description
* `log` - log
* `log_attribute` - log_attribute
* `log_resource_attribute` - log_resource_attribute

# components.schemas._LogsAttributesResponse.properties.results.description
Available attribute keys matching the filters.

# components.schemas._LogsAttributesResponse.properties.count.description
Total attribute keys matched (not paginated).

# components.schemas._LogsCountBody.properties.dateRange.description
Date range for the count. Defaults to last hour.

# components.schemas._LogsCountBody.properties.searchTerm.description
Full-text search term to filter log bodies.

# components.schemas._LogsCountRangeBucket.properties.date_from.description
Bucket start as ISO 8601 timestamp. Inclusive lower bound. Pass back as `dateRange.date_from` to drill in.

# components.schemas._LogsCountRangeBucket.properties.date_to.description
Bucket end as ISO 8601 timestamp. Exclusive upper bound. Pass back as `dateRange.date_to` to drill in.

# components.schemas._LogsCountRangeBucket.properties.count.description
Log entries matching the filters within this bucket.

# components.schemas._LogsCountRangesBody.properties.dateRange.description
Window to bucket. Defaults to last hour. Use a bucket's date_from/date_to from a prior response to recursively narrow into a sub-range.

# components.schemas._LogsCountRangesBody.properties.targetBuckets.description
Approximate number of buckets to return. The bucket interval is picked adaptively from a fixed list (1/5/10s, 1/2/5/10/15/30/60/120/240/360/720/1440m) to land near this target. Defaults to 10, capped at 100.

# components.schemas._LogsCountRangesBody.properties.severityLevels.description
Filter by log severity levels. Applied before bucketing.

# components.schemas._LogsCountRangesBody.properties.serviceNames.description
Filter by service names. Applied before bucketing.

# components.schemas._LogsCountRangesBody.properties.searchTerm.description
Full-text search across log bodies. Applied before bucketing.

# components.schemas._LogsCountRangesBody.properties.filterGroup.description
Property filters applied before bucketing. Same shape as `query-logs`.

# components.schemas._LogsCountRangesResponse.properties.ranges.description
Buckets ordered by `date_from` ascending. Empty buckets are omitted — infer gaps by comparing each bucket's `date_to` to the next bucket's `date_from`.

# components.schemas._LogsCountRangesResponse.properties.interval.description
Short-form duration of the chosen bucket width (e.g. "1h", "5m", "30s", "1d"). Informational only — use each bucket's `date_from`/`date_to` for follow-up queries.

# components.schemas._LogsCountResponse.properties.count.description
Number of log entries matching the filters.

# components.schemas._LogsQueryBody.properties.dateRange.description
Date range for the query. Defaults to last hour.

# components.schemas._LogsQueryBody.properties.orderBy.description
Order results by timestamp.

* `latest` - latest
* `earliest` - earliest

# components.schemas._LogsQueryBody.properties.searchTerm.description
Full-text search term to filter log bodies.

# components.schemas._LogsQueryBody.properties.after.description
Pagination cursor from previous response.

# components.schemas._LogsQueryBody.properties.excludeAttributes.description
Omit the per-log attributes and resource_attributes maps from results to keep payloads compact. Defaults to false.

# components.schemas._LogsQueryResponse.properties.query.description
The parsed query that was executed, echoed back for confirmation.

# components.schemas._LogsQueryResponse.properties.hasMore.description
True if more results exist beyond this page.

# components.schemas._LogsQueryResponse.properties.nextCursor.description
Opaque cursor to pass as `after` in the next request to fetch the next page. Null when hasMore is false.

# components.schemas._LogsQueryResponse.properties.maxExportableLogs.description
Maximum number of rows the `export` endpoint will produce — informational.

# components.schemas._LogsServiceAggregate.properties.service_name.description
Service name, or "(no value)" / "(no service)" placeholder for unset entries.

# components.schemas._LogsServiceAggregate.properties.log_count.description
Total log entries from this service in the window.

# components.schemas._LogsServiceAggregate.properties.error_count.description
Count of logs at severity "error" or "fatal".

# components.schemas._LogsServiceAggregate.properties.error_rate.description
Pre-computed error_count / log_count, rounded to 4 decimals. Useful for ranking noisy services.

# components.schemas._LogsServiceAggregate.properties.volume_share_pct.description
Share of total log volume in the window for this service (0–100).

# components.schemas._LogsServiceAggregate.properties.severity_breakdown.description
Counts by coarse severity bucket (debug, info, warn, error+fatal).

# components.schemas._LogsServiceAggregate.properties.active_rules.description
Enabled sampling rules whose scope includes this service.

# components.schemas._LogsServicesBody.properties.dateRange.description
Date range for the services aggregation. Defaults to last hour.

# components.schemas._LogsServicesBody.properties.serviceNames.description
Restrict the aggregation to these service names.

# components.schemas._LogsServicesBody.properties.searchTerm.description
Full-text search term to filter log bodies.

# components.schemas._LogsServicesRequest.properties.query.description
The services aggregation query to execute.

# components.schemas._LogsServicesResponse.properties.services.description
Per-service aggregates, ordered by log_count descending. Capped at 25 services.

# components.schemas._LogsServicesResponse.properties.sparkline.description
Time-bucketed counts broken down by service, for plotting volume over time.

# components.schemas._LogsServicesResponse.properties.summary.description
Roll-up stats for the Services tab header.

# components.schemas._LogsServicesSummary.properties.top_services_count.description
Number of top services included in the volume_share aggregate (up to 5).

# components.schemas._LogsServicesSummary.properties.top_services_volume_share_pct.description
Combined volume share (percent) of the top services by log_count.

# components.schemas._LogsSparklineBody.properties.dateRange.description
Date range for the sparkline. Defaults to last hour.

# components.schemas._LogsSparklineBody.properties.searchTerm.description
Full-text search term to filter log bodies.

# components.schemas._LogsSparklineBody.properties.sparklineBreakdownBy.description
Break down sparkline by "severity" (default) or "service".

* `severity` - severity
* `service` - service

# components.schemas._LogsSparklineBucket.properties.bytes_uncompressed.description
Sum of uncompressed bytes for the bucket.

# components.schemas._LogsSparklineResponse.properties.results.description
Time-bucketed log counts. Each bucket carries either `severity` or `service` depending on breakdown.

# components.schemas._LogsValuesResponse.properties.results.description
Distinct values observed for the requested attribute.

# components.schemas._LogsValuesResponse.properties.refreshing.description
Always false — reserved for future cached-value refresh signalling.

# components.schemas._MetricName.properties.name.description
Metric name as it appears in the team's data.

# components.schemas._MetricName.properties.metric_type.description
OTel metric type (gauge, sum, histogram, summary, exponential_histogram).

# components.schemas._MetricNamesResponse.properties.results.description
Distinct metric names ordered by recent activity.

# components.schemas._MetricQueryBody.properties.metricName.description
Exact metric name to query (e.g. 'http.server.duration').

# components.schemas._MetricQueryBody.properties.aggregation.description
Aggregation applied per time bucket.

* `sum` - sum
* `avg` - avg
* `count` - count
* `p95` - p95

# components.schemas._MetricQueryBody.properties.dateFrom.description
Lower bound (inclusive) for the query range. ISO 8601.

# components.schemas._MetricQueryBody.properties.dateTo.description
Upper bound (exclusive) for the query range. Defaults to now if omitted.

# components.schemas._MetricQueryResponse.properties.results.description
Time-bucketed points, ordered by time ascending.

# components.schemas._ModelBreakdown.properties.items.description
Rows of spend by model, ordered by cost descending.

# components.schemas._ModelBreakdown.properties.truncated.description
True when more rows exist beyond the requested `limit`. Re-request with a larger `limit` to retrieve them.

# components.schemas._ModelBreakdownRow.properties.generation_count.description
Number of $ai_generation + $ai_embedding events.

# components.schemas._ModelBreakdownRow.properties.input_tokens.description
Sum of `$ai_input_tokens` for this model.

# components.schemas._ModelBreakdownRow.properties.output_tokens.description
Sum of `$ai_output_tokens` for this model.

# components.schemas._ProductBreakdown.properties.items.description
Rows of spend by product, ordered by cost descending.

# components.schemas._ProductBreakdown.properties.truncated.description
True when more rows exist beyond the requested `limit`. Re-request with a larger `limit` to retrieve them.

# components.schemas._ProductBreakdownRow.properties.product.description
Value of the `ai_product` property on the event (e.g. `posthog_code`, `background_agents`). Null when unset.

# components.schemas._ProductBreakdownRow.properties.event_count.description
Number of $ai_generation + $ai_embedding events for this product.

# components.schemas._ProductBreakdownRow.properties.cost_usd.description
Total cost in USD for this product over the lookback window.

# components.schemas._SpanPropertyFilter.properties.key.description
Attribute key. For type "span", use built-in fields (trace_id, span_id, duration, name, kind, status_code). For "span_attribute"/"span_resource_attribute", use the attribute key (e.g. "http.method").

# components.schemas._SpanPropertyFilter.properties.type.description
"span" filters built-in span fields. "span_attribute" filters span-level attributes. "span_resource_attribute" filters resource-level attributes.

* `span` - span
* `span_attribute` - span_attribute
* `span_resource_attribute` - span_resource_attribute

# components.schemas._SpanPropertyFilter.properties.operator.description
Comparison operator.

* `exact` - exact
* `is_not` - is_not
* `icontains` - icontains
* `not_icontains` - not_icontains
* `regex` - regex
* `not_regex` - not_regex
* `gt` - gt
* `lt` - lt
* `is_set` - is_set
* `is_not_set` - is_not_set

# components.schemas._SpanPropertyFilter.properties.value.description
Value to compare against. String, number, or array of strings. Omit for is_set/is_not_set operators.

# components.schemas._SpanPropertyFilterOperatorEnum.description
* `exact` - exact
* `is_not` - is_not
* `icontains` - icontains
* `not_icontains` - not_icontains
* `regex` - regex
* `not_regex` - not_regex
* `gt` - gt
* `lt` - lt
* `is_set` - is_set
* `is_not_set` - is_not_set

# components.schemas._SpanPropertyFilterTypeEnum.description
* `span` - span
* `span_attribute` - span_attribute
* `span_resource_attribute` - span_resource_attribute

# components.schemas._Summary.properties.date_from.description
Inclusive UTC start of the spend window resolved from the request.

# components.schemas._Summary.properties.date_to.description
Exclusive UTC end of the spend window resolved from the request.

# components.schemas._Summary.properties.product.description
The `ai_product` filter applied to tool / model / trace breakdowns — echoes the request `product`.

# components.schemas._Summary.properties.total_cost_usd.description
Total LLM cost in USD across every `ai_product` for the user — independent of the `product` filter.

# components.schemas._Summary.properties.event_count.description
Total $ai_generation + $ai_embedding events captured across every product.

# components.schemas._Summary.properties.scoped_cost_usd.description
Total cost in USD for the product filter. Matches the cost summed across `by_tool` / `by_model` for the scoped slice.

# components.schemas._Summary.properties.scoped_event_count.description
Total $ai_generation + $ai_embedding events for the scoped slice.

# components.schemas._SymbolSetDownloadResponse.properties.url.description
Presigned URL to download the source map file. Use immediately; expires after one hour.

# components.schemas._ToolBreakdown.properties.items.description
Rows of spend by tool, ordered by cost descending.

# components.schemas._ToolBreakdown.properties.truncated.description
True when more rows exist beyond the requested `limit`. Re-request with a larger `limit` to retrieve them.

# components.schemas._ToolBreakdownRow.properties.tool.description
Individual tool name from `$ai_tools_called` (split on `,` since multi-tool generations store a comma-separated list). Null = pure text response with no tool call.

# components.schemas._ToolBreakdownRow.properties.generation_count.description
Number of $ai_generation events whose tool list includes this tool.

# components.schemas._ToolBreakdownRow.properties.cost_usd.description
Sum of `$ai_total_cost_usd` for generations whose tool list includes this tool. Multi-tool generations contribute their full cost to every tool they invoked, so this sum can exceed `summary.scoped_cost_usd`. Prefer `share_of_scoped` for headline percentages — it's computed per row and doesn't require the totals to reconcile.

# components.schemas._ToolBreakdownRow.properties.share_of_scoped.description
This tool's share of `summary.scoped_cost_usd`, expressed as a float in `[0, 1]`. Independent per row, so co-occurring tools can each show a substantial share — the headline number to present (e.g. `'Bash drove 47% of your spend'`).

# components.schemas._ToolBreakdownRow.properties.avg_input_tokens.description
Average `$ai_input_tokens` across these generations — high values signal context bloat per call.

# components.schemas._TopTraceRow.properties.trace_id.description
`$ai_trace_id` of the session — opaque string scoped to the originating product. Format is not stable: most are UUIDs but some SDK wrappers emit JSON-shaped strings like `{"device_id":"...","session_id":"..."}`. Callers should treat this as an opaque identifier (URL-encode before linking to a trace view).

# components.schemas._TopTraceRow.properties.generation_count.description
Number of $ai_generation events in this trace.

# components.schemas._TopTraceRow.properties.started_at.description
Timestamp of the earliest event in this trace.

# components.schemas._TopTraces.properties.items.description
Rows of top traces by cost, ordered by cost descending.

# components.schemas._TopTraces.properties.truncated.description
True when more rows exist beyond the requested `limit`. Re-request with a larger `limit` to retrieve them.

# components.schemas._TracingAggregationQueryBody.properties.dateRange.description
Date range for the primary window. Defaults to last hour.

# components.schemas._TracingAggregationQueryBody.properties.compareFilter.description
Optional comparison-window configuration. When omitted, only the primary window is returned.

# components.schemas._TracingAggregationQueryBody.properties.filterGroup.description
Property filters applied to spans in both windows.

# components.schemas._TracingDateRange.properties.date_from.description
Start of the date range. Accepts ISO 8601 timestamps or relative formats: -1h, -6h, -1d, -7d, etc.

# components.schemas._TracingDateRange.properties.date_to.description
End of the date range. Same format as date_from. Omit or null for "now".

# components.schemas._TracingQueryBody.properties.dateRange.description
Date range for the query. Defaults to last hour.

# components.schemas._TracingQueryBody.properties.orderBy.description
Order results by timestamp. Defaults to latest.

* `latest` - latest
* `earliest` - earliest

# components.schemas._TracingQueryBody.properties.traceId.description
Filter to a specific trace ID (hex string).

# components.schemas._TracingQueryBody.properties.after.description
Pagination cursor from previous response.

# components.schemas._TracingQueryBody.properties.rootSpans.description
Filter to root spans only. Defaults to true.

# components.schemas._TracingQueryBody.properties.prefetchSpans.description
Number of child spans to prefetch per trace (1-100).

# components.schemas._TracingQueryBody.properties.excludeAttributes.description
Omit the per-span attributes map from results to keep payloads compact. Defaults to false.

# components.schemas._TracingTraceRequest.properties.dateRange.description
Date range for the query. Defaults to last 24 hours.

# components.schemas._TracingTraceRequest.properties.excludeAttributes.description
Omit the per-span attributes map from results to keep payloads compact. Defaults to false.

# components.schemas._TracingTreeQueryBody.properties.spanName.description
Span name to scope the matched trace set. Required because the (trace_id, parent_span_id) self-join is unsafe without bounding the matched traces.

# components.schemas._TracingTreeQueryBody.properties.serviceName.description
Service name that scopes the returned tree. Applied to the spans CTE so the call-tree only contains spans from this service, even when matched traces span multiple services.

# components.schemas._TracingTreeQueryBody.properties.dateRange.description
Date range for the primary window. Defaults to last hour.

# components.schemas._TracingTreeQueryBody.properties.compareFilter.description
Optional comparison-window configuration. When omitted, only the primary window is returned.

# components.schemas._TracingTreeQueryBody.properties.filterGroup.description
Additional property filters applied to spans in both windows.

# components.schemas._TracingTreeRequest.properties.query.description
The span call-tree aggregation query to execute.

# components.schemas._WidgetTileLayoutBoxOpenApi.properties.x.description
Column position in the dashboard grid (0-indexed).

# components.schemas._WidgetTileLayoutBoxOpenApi.properties.y.description
Row position in the dashboard grid (0-indexed).

# components.schemas._WidgetTileLayoutBoxOpenApi.properties.w.description
Width in grid columns. The desktop grid is 12 columns wide.

# components.schemas._WidgetTileLayoutsOpenApi.properties.sm.description
Layout for the standard (desktop) breakpoint. The grid is 12 columns wide.

# components.schemas._WidgetTileLayoutsOpenApi.properties.xs.description
Layout for the small (mobile) breakpoint. The grid is 1 column wide.

# components.parameters.ProjectIdPath.description
Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.

# components.parameters.OrganizationIdPath.description
ID of the organization you're trying to access. To find the ID of the organization, make a call to /api/organizations/.