External Data

For instructions on how to authenticate to use this endpoint, see API overview.

Endpoints

GET
POST
GET
PATCH
DELETE
POST
DELETE
POST
POST
POST
GET
POST
GET
PATCH
DELETE
POST
DELETE
POST

List all environments external data schemas

Also available via the PostHog MCP server:

  • external-data-schemas-listList data import schemas

Required API key scopes

external_data_source:read

Query parameters

  • limit
    integer
  • offset
    integer
  • search
    string

Response


Example request

GET /api/environments/:environment_id/external_data_schemas
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/environments/:environment_id/external_data_schemas/

Example response

Status 200
RESPONSE
{
"count": 123,
"next": "http://api.example.org/accounts/?offset=400&limit=100",
"previous": "http://api.example.org/accounts/?offset=200&limit=100",
"results": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"label": "string",
"table": {},
"should_sync": true,
"last_synced_at": "2019-08-24T14:15:22Z",
"latest_error": "string",
"incremental": true,
"status": "string",
"sync_type": "full_refresh",
"incremental_field": "string",
"incremental_field_type": "integer",
"sync_frequency": "never",
"sync_time_of_day": "14:15:22Z",
"description": "string",
"primary_key_columns": [
"string"
],
"cdc_table_mode": "consolidated",
"enabled_columns": [
"string"
],
"available_columns": [
{
"name": "string",
"data_type": "string",
"is_nullable": true
}
]
}
]
}

Create environments external data schemas

Required API key scopes

external_data_source:write

Request parameters

  • should_sync
    boolean
  • sync_type
  • incremental_field
    stringnull
  • incremental_field_type
  • sync_frequency
  • sync_time_of_day
    stringnull
  • primary_key_columns
    arraynull
  • cdc_table_mode
  • enabled_columns
    arraynull

Response


Example request

POST /api/environments/:environment_id/external_data_schemas
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/environments/:environment_id/external_data_schemas/\
-d name="string"

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"label": "string",
"table": {},
"should_sync": true,
"last_synced_at": "2019-08-24T14:15:22Z",
"latest_error": "string",
"incremental": true,
"status": "string",
"sync_type": "full_refresh",
"incremental_field": "string",
"incremental_field_type": "integer",
"sync_frequency": "never",
"sync_time_of_day": "14:15:22Z",
"description": "string",
"primary_key_columns": [
"string"
],
"cdc_table_mode": "consolidated",
"enabled_columns": [
"string"
],
"available_columns": [
{
"name": "string",
"data_type": "string",
"is_nullable": true
}
]
}

Retrieve environments external data schemas

Also available via the PostHog MCP server:

  • external-data-schemas-retrieveGet data import schema

Required API key scopes

external_data_source:read

Path parameters

  • id
    string

Response


Example request

GET /api/environments/:environment_id/external_data_schemas/:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/environments/:environment_id/external_data_schemas/:id/

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"label": "string",
"table": {},
"should_sync": true,
"last_synced_at": "2019-08-24T14:15:22Z",
"latest_error": "string",
"incremental": true,
"status": "string",
"sync_type": "full_refresh",
"incremental_field": "string",
"incremental_field_type": "integer",
"sync_frequency": "never",
"sync_time_of_day": "14:15:22Z",
"description": "string",
"primary_key_columns": [
"string"
],
"cdc_table_mode": "consolidated",
"enabled_columns": [
"string"
],
"available_columns": [
{
"name": "string",
"data_type": "string",
"is_nullable": true
}
]
}

Update environments external data schemas

Also available via the PostHog MCP server:

  • external-data-schemas-partial-updateUpdate data import schema

Required API key scopes

external_data_source:write

Path parameters

  • id
    string

Request parameters

  • should_sync
    boolean
  • sync_type
  • incremental_field
    stringnull
  • incremental_field_type
  • sync_frequency
  • sync_time_of_day
    stringnull
  • primary_key_columns
    arraynull
  • cdc_table_mode
  • enabled_columns
    arraynull

Response


Example request

PATCH /api/environments/:environment_id/external_data_schemas/:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl -X PATCH \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/environments/:environment_id/external_data_schemas/:id/\
-d name="string"

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"label": "string",
"table": {},
"should_sync": true,
"last_synced_at": "2019-08-24T14:15:22Z",
"latest_error": "string",
"incremental": true,
"status": "string",
"sync_type": "full_refresh",
"incremental_field": "string",
"incremental_field_type": "integer",
"sync_frequency": "never",
"sync_time_of_day": "14:15:22Z",
"description": "string",
"primary_key_columns": [
"string"
],
"cdc_table_mode": "consolidated",
"enabled_columns": [
"string"
],
"available_columns": [
{
"name": "string",
"data_type": "string",
"is_nullable": true
}
]
}

Delete environments external data schemas

Required API key scopes

external_data_source:write

Path parameters

  • id
    string

Example request

DELETE /api/environments/:environment_id/external_data_schemas/:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl -X DELETE \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/environments/:environment_id/external_data_schemas/:id/

Example response

Status 204 No response body

Create environments external data schemas cancel

Required API key scopes

external_data_source:write

Path parameters

  • id
    string

Request parameters

  • should_sync
    boolean
  • sync_type
  • incremental_field
    stringnull
  • incremental_field_type
  • sync_frequency
  • sync_time_of_day
    stringnull
  • primary_key_columns
    arraynull
  • cdc_table_mode
  • enabled_columns
    arraynull

Example request

POST /api/environments/:environment_id/external_data_schemas/:id/cancel
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/environments/:environment_id/external_data_schemas/:id/cancel/\
-d name="string"

Example response

Status 200 No response body

Delete environments external data schemas delete data

Required API key scopes

external_data_source:write

Path parameters

  • id
    string

Example request

DELETE /api/environments/:environment_id/external_data_schemas/:id/delete_data
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl -X DELETE \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/environments/:environment_id/external_data_schemas/:id/delete_data/

Example response

Status 204 No response body

Create environments external data schemas incremental fields

Also available via the PostHog MCP server:

  • external-data-schemas-incremental-fields-createRefresh candidate incremental fields for a schema

Required API key scopes

external_data_source:write

Path parameters

  • id
    string

Request parameters

  • should_sync
    boolean
  • sync_type
  • incremental_field
    stringnull
  • incremental_field_type
  • sync_frequency
  • sync_time_of_day
    stringnull
  • primary_key_columns
    arraynull
  • cdc_table_mode
  • enabled_columns
    arraynull

Example request

POST /api/environments/:environment_id/external_data_schemas/:id/incremental_fields
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/environments/:environment_id/external_data_schemas/:id/incremental_fields/\
-d name="string"

Example response

Status 200 No response body

Create environments external data schemas reload

Required API key scopes

external_data_source:write

Path parameters

  • id
    string

Request parameters

  • should_sync
    boolean
  • sync_type
  • incremental_field
    stringnull
  • incremental_field_type
  • sync_frequency
  • sync_time_of_day
    stringnull
  • primary_key_columns
    arraynull
  • cdc_table_mode
  • enabled_columns
    arraynull

Example request

POST /api/environments/:environment_id/external_data_schemas/:id/reload
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/environments/:environment_id/external_data_schemas/:id/reload/\
-d name="string"

Example response

Status 200 No response body

Create environments external data schemas resync

Required API key scopes

external_data_source:write

Path parameters

  • id
    string

Request parameters

  • should_sync
    boolean
  • sync_type
  • incremental_field
    stringnull
  • incremental_field_type
  • sync_frequency
  • sync_time_of_day
    stringnull
  • primary_key_columns
    arraynull
  • cdc_table_mode
  • enabled_columns
    arraynull

Example request

POST /api/environments/:environment_id/external_data_schemas/:id/resync
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/environments/:environment_id/external_data_schemas/:id/resync/\
-d name="string"

Example response

Status 200 No response body

List all external data schemas

Also available via the PostHog MCP server:

  • external-data-schemas-listList data import schemas

Required API key scopes

external_data_source:read

Query parameters

  • limit
    integer
  • offset
    integer
  • search
    string

Response


Example request

GET /api/projects/:project_id/external_data_schemas
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/external_data_schemas/

Example response

Status 200
RESPONSE
{
"count": 123,
"next": "http://api.example.org/accounts/?offset=400&limit=100",
"previous": "http://api.example.org/accounts/?offset=200&limit=100",
"results": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"label": "string",
"table": {},
"should_sync": true,
"last_synced_at": "2019-08-24T14:15:22Z",
"latest_error": "string",
"incremental": true,
"status": "string",
"sync_type": "full_refresh",
"incremental_field": "string",
"incremental_field_type": "integer",
"sync_frequency": "never",
"sync_time_of_day": "14:15:22Z",
"description": "string",
"primary_key_columns": [
"string"
],
"cdc_table_mode": "consolidated",
"enabled_columns": [
"string"
],
"available_columns": [
{
"name": "string",
"data_type": "string",
"is_nullable": true
}
]
}
]
}

Create external data schemas

Required API key scopes

external_data_source:write

Request parameters

  • should_sync
    boolean
  • sync_type
  • incremental_field
    stringnull
  • incremental_field_type
  • sync_frequency
  • sync_time_of_day
    stringnull
  • primary_key_columns
    arraynull
  • cdc_table_mode
  • enabled_columns
    arraynull

Response


Example request

POST /api/projects/:project_id/external_data_schemas
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/external_data_schemas/\
-d name="string"

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"label": "string",
"table": {},
"should_sync": true,
"last_synced_at": "2019-08-24T14:15:22Z",
"latest_error": "string",
"incremental": true,
"status": "string",
"sync_type": "full_refresh",
"incremental_field": "string",
"incremental_field_type": "integer",
"sync_frequency": "never",
"sync_time_of_day": "14:15:22Z",
"description": "string",
"primary_key_columns": [
"string"
],
"cdc_table_mode": "consolidated",
"enabled_columns": [
"string"
],
"available_columns": [
{
"name": "string",
"data_type": "string",
"is_nullable": true
}
]
}

Retrieve external data schemas

Also available via the PostHog MCP server:

  • external-data-schemas-retrieveGet data import schema

Required API key scopes

external_data_source:read

Path parameters

  • id
    string

Response


Example request

GET /api/projects/:project_id/external_data_schemas/:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/external_data_schemas/:id/

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"label": "string",
"table": {},
"should_sync": true,
"last_synced_at": "2019-08-24T14:15:22Z",
"latest_error": "string",
"incremental": true,
"status": "string",
"sync_type": "full_refresh",
"incremental_field": "string",
"incremental_field_type": "integer",
"sync_frequency": "never",
"sync_time_of_day": "14:15:22Z",
"description": "string",
"primary_key_columns": [
"string"
],
"cdc_table_mode": "consolidated",
"enabled_columns": [
"string"
],
"available_columns": [
{
"name": "string",
"data_type": "string",
"is_nullable": true
}
]
}

Update external data schemas

Also available via the PostHog MCP server:

  • external-data-schemas-partial-updateUpdate data import schema

Required API key scopes

external_data_source:write

Path parameters

  • id
    string

Request parameters

  • should_sync
    boolean
  • sync_type
  • incremental_field
    stringnull
  • incremental_field_type
  • sync_frequency
  • sync_time_of_day
    stringnull
  • primary_key_columns
    arraynull
  • cdc_table_mode
  • enabled_columns
    arraynull

Response


Example request

PATCH /api/projects/:project_id/external_data_schemas/:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl -X PATCH \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/external_data_schemas/:id/\
-d name="string"

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"name": "string",
"label": "string",
"table": {},
"should_sync": true,
"last_synced_at": "2019-08-24T14:15:22Z",
"latest_error": "string",
"incremental": true,
"status": "string",
"sync_type": "full_refresh",
"incremental_field": "string",
"incremental_field_type": "integer",
"sync_frequency": "never",
"sync_time_of_day": "14:15:22Z",
"description": "string",
"primary_key_columns": [
"string"
],
"cdc_table_mode": "consolidated",
"enabled_columns": [
"string"
],
"available_columns": [
{
"name": "string",
"data_type": "string",
"is_nullable": true
}
]
}

Delete external data schemas

Required API key scopes

external_data_source:write

Path parameters

  • id
    string

Example request

DELETE /api/projects/:project_id/external_data_schemas/:id
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl -X DELETE \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/external_data_schemas/:id/

Example response

Status 204 No response body

Create external data schemas cancel

Required API key scopes

external_data_source:write

Path parameters

  • id
    string

Request parameters

  • should_sync
    boolean
  • sync_type
  • incremental_field
    stringnull
  • incremental_field_type
  • sync_frequency
  • sync_time_of_day
    stringnull
  • primary_key_columns
    arraynull
  • cdc_table_mode
  • enabled_columns
    arraynull

Example request

POST /api/projects/:project_id/external_data_schemas/:id/cancel
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/external_data_schemas/:id/cancel/\
-d name="string"

Example response

Status 200 No response body

Delete external data schemas delete data

Required API key scopes

external_data_source:write

Path parameters

  • id
    string

Example request

DELETE /api/projects/:project_id/external_data_schemas/:id/delete_data
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl -X DELETE \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/external_data_schemas/:id/delete_data/

Example response

Status 204 No response body

Create external data schemas incremental fields

Also available via the PostHog MCP server:

  • external-data-schemas-incremental-fields-createRefresh candidate incremental fields for a schema

Required API key scopes

external_data_source:write

Path parameters

  • id
    string

Request parameters

  • should_sync
    boolean
  • sync_type
  • incremental_field
    stringnull
  • incremental_field_type
  • sync_frequency
  • sync_time_of_day
    stringnull
  • primary_key_columns
    arraynull
  • cdc_table_mode
  • enabled_columns
    arraynull

Example request

POST /api/projects/:project_id/external_data_schemas/:id/incremental_fields
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl
-H 'Content-Type: application/json'\
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/projects/:project_id/external_data_schemas/:id/incremental_fields/\
-d name="string"

Example response

Status 200 No response body

Community questions

Questions about this page? or post a community question.