PostHog · Schema

DataTableNode

A/B TestingAnalyticsFeature FlagsOpen-SourceProduct AnalyticsSession Recording

Properties

Name Type Description
allowSorting boolean Can the user click on column headers to sort the table? (default: true)
columns array Columns shown in the table, unless the `source` provides them.
context object Context for the table, used by components like ColumnConfigurator
contextKey string Context key for universal column configuration (e.g., "survey:123")
defaultColumns array Default columns to use when resetting column configuration
embedded boolean Uses the embedded version of LemonTable
expandable boolean Can expand row to show raw event data (default: true)
full boolean Show with most visual options enabled. Used in scenes.
hiddenColumns array Columns that aren't shown in the table, even if in columns or returned data
kind string
pinnedColumns array Columns that are sticky when scrolling horizontally
propertiesViaUrl boolean Link properties via the URL (default: false)
response object
showActions boolean Show the kebab menu at the end of the row
showColumnConfigurator boolean Show a button to configure the table's columns if possible
showCount boolean Show count of total and filtered results
showDateRange boolean Show date range selector
showElapsedTime boolean Show the time it takes to run a query
showEventFilter boolean Include an event filter above the table (EventsNode only)
showEventsFilter boolean Include an events filter above the table to filter by multiple events (EventsQuery only)
showExport boolean Show the export button
showHogQLEditor boolean Include a HogQL query editor above HogQL tables
showOpenEditorButton boolean Show a button to open the current query as a new insight. (default: true)
showPersistentColumnConfigurator boolean Show a button to configure and persist the table's default columns if possible
showPropertyFilter object Include a property filter above the table
showRecordingColumn boolean Show a recording column for events with session recordings
showReload boolean Show a reload button
showResultsTable boolean Show a results table
showSavedFilters boolean Show saved filters feature for this table (requires uniqueKey)
showSavedQueries boolean Shows a list of saved queries
showSearch boolean Include a free text search field (PersonsNode only)
showSourceQueryOptions boolean Show actors query options and back to source
showTableViews boolean Show table views feature for this table (requires uniqueKey)
showTestAccountFilters boolean Show filter to exclude test accounts
showTimings boolean Show a detailed query timing breakdown
source object Source of the events
tags object
version number version of the node, used for schema migrations
View JSON Schema on GitHub

JSON Schema

posthog-datatablenode-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/DataTableNode",
  "title": "DataTableNode",
  "additionalProperties": false,
  "properties": {
    "allowSorting": {
      "default": null,
      "description": "Can the user click on column headers to sort the table? (default: true)",
      "title": "Allowsorting",
      "type": "boolean",
      "nullable": true
    },
    "columns": {
      "default": null,
      "description": "Columns shown in the table, unless the `source` provides them.",
      "title": "Columns",
      "items": {
        "type": "string"
      },
      "type": "array",
      "nullable": true
    },
    "context": {
      "default": null,
      "description": "Context for the table, used by components like ColumnConfigurator",
      "allOf": [
        {
          "$ref": "#/components/schemas/DataTableNodeViewPropsContext"
        }
      ],
      "nullable": true
    },
    "contextKey": {
      "default": null,
      "description": "Context key for universal column configuration (e.g., \"survey:123\")",
      "title": "Contextkey",
      "type": "string",
      "nullable": true
    },
    "defaultColumns": {
      "default": null,
      "description": "Default columns to use when resetting column configuration",
      "title": "Defaultcolumns",
      "items": {
        "type": "string"
      },
      "type": "array",
      "nullable": true
    },
    "embedded": {
      "default": null,
      "description": "Uses the embedded version of LemonTable",
      "title": "Embedded",
      "type": "boolean",
      "nullable": true
    },
    "expandable": {
      "default": null,
      "description": "Can expand row to show raw event data (default: true)",
      "title": "Expandable",
      "type": "boolean",
      "nullable": true
    },
    "full": {
      "default": null,
      "description": "Show with most visual options enabled. Used in scenes.",
      "title": "Full",
      "type": "boolean",
      "nullable": true
    },
    "hiddenColumns": {
      "default": null,
      "description": "Columns that aren't shown in the table, even if in columns or returned data",
      "title": "Hiddencolumns",
      "items": {
        "type": "string"
      },
      "type": "array",
      "nullable": true
    },
    "kind": {
      "default": "DataTableNode",
      "title": "Kind",
      "type": "string",
      "enum": [
        "DataTableNode"
      ]
    },
    "pinnedColumns": {
      "default": null,
      "description": "Columns that are sticky when scrolling horizontally",
      "title": "Pinnedcolumns",
      "items": {
        "type": "string"
      },
      "type": "array",
      "nullable": true
    },
    "propertiesViaUrl": {
      "default": null,
      "description": "Link properties via the URL (default: false)",
      "title": "Propertiesviaurl",
      "type": "boolean",
      "nullable": true
    },
    "response": {
      "default": null,
      "title": "Response",
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "$ref": "#/components/schemas/Response"
        },
        {
          "$ref": "#/components/schemas/Response1"
        },
        {
          "$ref": "#/components/schemas/Response2"
        },
        {
          "$ref": "#/components/schemas/Response3"
        },
        {
          "$ref": "#/components/schemas/Response4"
        },
        {
          "$ref": "#/components/schemas/Response5"
        },
        {
          "$ref": "#/components/schemas/Response6"
        },
        {
          "$ref": "#/components/schemas/Response8"
        },
        {
          "$ref": "#/components/schemas/Response9"
        },
        {
          "$ref": "#/components/schemas/Response10"
        },
        {
          "$ref": "#/components/schemas/Response11"
        },
        {
          "$ref": "#/components/schemas/Response12"
        },
        {
          "$ref": "#/components/schemas/Response13"
        },
        {
          "$ref": "#/components/schemas/Response14"
        },
        {
          "$ref": "#/components/schemas/Response15"
        },
        {
          "$ref": "#/components/schemas/Response16"
        },
        {
          "$ref": "#/components/schemas/Response18"
        },
        {
          "$ref": "#/components/schemas/Response19"
        },
        {
          "$ref": "#/components/schemas/Response20"
        },
        {
          "$ref": "#/components/schemas/Response21"
        },
        {
          "$ref": "#/components/schemas/Response22"
        },
        {
          "$ref": "#/components/schemas/Response23"
        },
        {
          "$ref": "#/components/schemas/Response24"
        },
        {
          "$ref": "#/components/schemas/Response25"
        },
        {
          "$ref": "#/components/schemas/Response26"
        }
      ],
      "nullable": true
    },
    "showActions": {
      "default": null,
      "description": "Show the kebab menu at the end of the row",
      "title": "Showactions",
      "type": "boolean",
      "nullable": true
    },
    "showColumnConfigurator": {
      "default": null,
      "description": "Show a button to configure the table's columns if possible",
      "title": "Showcolumnconfigurator",
      "type": "boolean",
      "nullable": true
    },
    "showCount": {
      "default": null,
      "description": "Show count of total and filtered results",
      "title": "Showcount",
      "type": "boolean",
      "nullable": true
    },
    "showDateRange": {
      "default": null,
      "description": "Show date range selector",
      "title": "Showdaterange",
      "type": "boolean",
      "nullable": true
    },
    "showElapsedTime": {
      "default": null,
      "description": "Show the time it takes to run a query",
      "title": "Showelapsedtime",
      "type": "boolean",
      "nullable": true
    },
    "showEventFilter": {
      "default": null,
      "description": "Include an event filter above the table (EventsNode only)",
      "title": "Showeventfilter",
      "type": "boolean",
      "nullable": true
    },
    "showEventsFilter": {
      "default": null,
      "description": "Include an events filter above the table to filter by multiple events (EventsQuery only)",
      "title": "Showeventsfilter",
      "type": "boolean",
      "nullable": true
    },
    "showExport": {
      "default": null,
      "description": "Show the export button",
      "title": "Showexport",
      "type": "boolean",
      "nullable": true
    },
    "showHogQLEditor": {
      "default": null,
      "description": "Include a HogQL query editor above HogQL tables",
      "title": "Showhogqleditor",
      "type": "boolean",
      "nullable": true
    },
    "showOpenEditorButton": {
      "default": null,
      "description": "Show a button to open the current query as a new insight. (default: true)",
      "title": "Showopeneditorbutton",
      "type": "boolean",
      "nullable": true
    },
    "showPersistentColumnConfigurator": {
      "default": null,
      "description": "Show a button to configure and persist the table's default columns if possible",
      "title": "Showpersistentcolumnconfigurator",
      "type": "boolean",
      "nullable": true
    },
    "showPropertyFilter": {
      "default": null,
      "description": "Include a property filter above the table",
      "title": "Showpropertyfilter",
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "items": {
            "$ref": "#/components/schemas/TaxonomicFilterGroupType"
          },
          "type": "array"
        }
      ],
      "nullable": true
    },
    "showRecordingColumn": {
      "default": null,
      "description": "Show a recording column for events with session recordings",
      "title": "Showrecordingcolumn",
      "type": "boolean",
      "nullable": true
    },
    "showReload": {
      "default": null,
      "description": "Show a reload button",
      "title": "Showreload",
      "type": "boolean",
      "nullable": true
    },
    "showResultsTable": {
      "default": null,
      "description": "Show a results table",
      "title": "Showresultstable",
      "type": "boolean",
      "nullable": true
    },
    "showSavedFilters": {
      "default": null,
      "description": "Show saved filters feature for this table (requires uniqueKey)",
      "title": "Showsavedfilters",
      "type": "boolean",
      "nullable": true
    },
    "showSavedQueries": {
      "default": null,
      "description": "Shows a list of saved queries",
      "title": "Showsavedqueries",
      "type": "boolean",
      "nullable": true
    },
    "showSearch": {
      "default": null,
      "description": "Include a free text search field (PersonsNode only)",
      "title": "Showsearch",
      "type": "boolean",
      "nullable": true
    },
    "showSourceQueryOptions": {
      "default": null,
      "description": "Show actors query options and back to source",
      "title": "Showsourcequeryoptions",
      "type": "boolean",
      "nullable": true
    },
    "showTableViews": {
      "default": null,
      "description": "Show table views feature for this table (requires uniqueKey)",
      "title": "Showtableviews",
      "type": "boolean",
      "nullable": true
    },
    "showTestAccountFilters": {
      "default": null,
      "description": "Show filter to exclude test accounts",
      "title": "Showtestaccountfilters",
      "type": "boolean",
      "nullable": true
    },
    "showTimings": {
      "default": null,
      "description": "Show a detailed query timing breakdown",
      "title": "Showtimings",
      "type": "boolean",
      "nullable": true
    },
    "source": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/EventsNode"
        },
        {
          "$ref": "#/components/schemas/EventsQuery"
        },
        {
          "$ref": "#/components/schemas/PersonsNode"
        },
        {
          "$ref": "#/components/schemas/ActorsQuery"
        },
        {
          "$ref": "#/components/schemas/GroupsQuery"
        },
        {
          "$ref": "#/components/schemas/HogQLQuery"
        },
        {
          "$ref": "#/components/schemas/WebOverviewQuery"
        },
        {
          "$ref": "#/components/schemas/WebStatsTableQuery"
        },
        {
          "$ref": "#/components/schemas/WebExternalClicksTableQuery"
        },
        {
          "$ref": "#/components/schemas/WebGoalsQuery"
        },
        {
          "$ref": "#/components/schemas/WebVitalsQuery"
        },
        {
          "$ref": "#/components/schemas/WebVitalsPathBreakdownQuery"
        },
        {
          "$ref": "#/components/schemas/SessionAttributionExplorerQuery"
        },
        {
          "$ref": "#/components/schemas/SessionsQuery"
        },
        {
          "$ref": "#/components/schemas/RevenueAnalyticsGrossRevenueQuery"
        },
        {
          "$ref": "#/components/schemas/RevenueAnalyticsMetricsQuery"
        },
        {
          "$ref": "#/components/schemas/RevenueAnalyticsMRRQuery"
        },
        {
          "$ref": "#/components/schemas/RevenueAnalyticsOverviewQuery"
        },
        {
          "$ref": "#/components/schemas/RevenueAnalyticsTopCustomersQuery"
        },
        {
          "$ref": "#/components/schemas/RevenueExampleEventsQuery"
        },
        {
          "$ref": "#/components/schemas/RevenueExampleDataWarehouseTablesQuery"
        },
        {
          "$ref": "#/components/schemas/MarketingAnalyticsTableQuery"
        },
        {
          "$ref": "#/components/schemas/MarketingAnalyticsAggregatedQuery"
        },
        {
          "$ref": "#/components/schemas/NonIntegratedConversionsTableQuery"
        },
        {
          "$ref": "#/components/schemas/ErrorTrackingQuery"
        },
        {
          "$ref": "#/components/schemas/ErrorTrackingIssueCorrelationQuery"
        },
        {
          "$ref": "#/components/schemas/ExperimentFunnelsQuery"
        },
        {
          "$ref": "#/components/schemas/ExperimentTrendsQuery"
        },
        {
          "$ref": "#/components/schemas/TracesQuery"
        },
        {
          "$ref": "#/components/schemas/TraceQuery"
        },
        {
          "$ref": "#/components/schemas/EndpointsUsageTableQuery"
        }
      ],
      "description": "Source of the events",
      "title": "Source"
    },
    "tags": {
      "default": null,
      "allOf": [
        {
          "$ref": "#/components/schemas/QueryLogTags"
        }
      ],
      "nullable": true
    },
    "version": {
      "default": null,
      "description": "version of the node, used for schema migrations",
      "title": "Version",
      "type": "number",
      "nullable": true
    }
  },
  "required": [
    "source"
  ],
  "type": "object"
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/posthog-datatablenode"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.