Environments-3

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

Endpoints

POST
POST
POST
POST
GET
GET
POST
GET
POST
PATCH
GET
POST
GET
PATCH

Create batch exports pause

Required API key scopes

batch_export:write

Path parameters

  • id
    string
  • project_id
    string

Request parameters

  • name
    string
  • model
  • destination
  • interval
  • paused
    boolean
  • last_paused_at
    string
  • start_at
    string
  • end_at
    string
  • hogql_query
    string
  • filters
  • timezone
  • offset_day
    integer
  • offset_hour
    integer

Example request

POST /api/environments/:project_id/batch_exports/:id/pause
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/:project_id/batch_exports/:id/pause/\
-d name="string",\
-d destination=undefined,\
-d interval=undefined

Example response

Status 200 No response body

Create batch exports run test step

Required API key scopes

INTERNAL

Path parameters

  • id
    string
  • project_id
    string

Request parameters

  • name
    string
  • model
  • destination
  • interval
  • paused
    boolean
  • last_paused_at
    string
  • start_at
    string
  • end_at
    string
  • hogql_query
    string
  • filters
  • timezone
  • offset_day
    integer
  • offset_hour
    integer

Example request

POST /api/environments/:project_id/batch_exports/:id/run_test_step
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/:project_id/batch_exports/:id/run_test_step/\
-d name="string",\
-d destination=undefined,\
-d interval=undefined

Example response

Status 200 No response body

Create batch exports unpause

Unpause a BatchExport.

Required API key scopes

batch_export:write

Path parameters

  • id
    string
  • project_id
    string

Request parameters

  • name
    string
  • model
  • destination
  • interval
  • paused
    boolean
  • last_paused_at
    string
  • start_at
    string
  • end_at
    string
  • hogql_query
    string
  • filters
  • timezone
  • offset_day
    integer
  • offset_hour
    integer

Example request

POST /api/environments/:project_id/batch_exports/:id/unpause
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/:project_id/batch_exports/:id/unpause/\
-d name="string",\
-d destination=undefined,\
-d interval=undefined

Example response

Status 200 No response body

Create batch exports run test step new

Required API key scopes

INTERNAL

Path parameters

  • project_id
    string

Request parameters

  • name
    string
  • model
  • destination
  • interval
  • paused
    boolean
  • last_paused_at
    string
  • start_at
    string
  • end_at
    string
  • hogql_query
    string
  • filters
  • timezone
  • offset_day
    integer
  • offset_hour
    integer

Example request

POST /api/environments/:project_id/batch_exports/run_test_step_new
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/:project_id/batch_exports/run_test_step_new/\
-d name="string",\
-d destination=undefined,\
-d interval=undefined

Example response

Status 200 No response body

Retrieve batch exports test

Required API key scopes

INTERNAL

Path parameters

  • project_id
    string

Example request

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

Example response

Status 200 No response body

List all conversations

Required API key scopes

conversation:read

Path parameters

  • project_id
    string

Query parameters

  • limit
    integer
  • offset
    integer

Response


Example request

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

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",
"status": "idle",
"title": "string",
"user": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {
"property1": null,
"property2": null
},
"role_at_organization": "engineering"
},
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"type": "assistant",
"is_internal": true,
"slack_thread_key": "string",
"slack_workspace_domain": "string",
"messages": [
{
"property1": null,
"property2": null
}
],
"has_unsupported_content": true,
"agent_mode": "string",
"pending_approvals": [
{
"property1": null,
"property2": null
}
]
}
]
}

Create conversations

Unified endpoint that handles both conversation creation and streaming.

  • If message is provided: Start new conversation processing
  • If no message: Stream from existing conversation

Required API key scopes

conversation:write

Path parameters

  • project_id
    string

Request parameters

  • content
    string
  • conversation
    string
  • contextual_tools
    object
  • ui_context
  • billing_context
  • trace_id
    string
  • session_id
    string
  • deep_research_mode
    boolean
    Default: false
  • agent_mode
  • resume_payload

Response


Example request

POST /api/environments/:project_id/conversations
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/:project_id/conversations/\
-d content="string",\
-d conversation="string",\
-d trace_id="string"

Example response

Status 201
RESPONSE
{
"content": "string",
"conversation": "a2d9c3ee-03b3-403a-b1c2-42b286bec1aa",
"contextual_tools": {
"property1": null,
"property2": null
},
"ui_context": null,
"billing_context": null,
"trace_id": "df570c03-5a03-4cea-8df0-c162d05127ac",
"session_id": "string",
"deep_research_mode": false,
"agent_mode": "product_analytics",
"resume_payload": null
}

Retrieve conversations

Required API key scopes

conversation:read

Path parameters

  • conversation
    string
  • project_id
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"status": "idle",
"title": "string",
"user": {
"id": 0,
"uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
"distinct_id": "string",
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"is_email_verified": true,
"hedgehog_config": {
"property1": null,
"property2": null
},
"role_at_organization": "engineering"
},
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z",
"type": "assistant",
"is_internal": true,
"slack_thread_key": "string",
"slack_workspace_domain": "string",
"messages": [
{
"property1": null,
"property2": null
}
],
"has_unsupported_content": true,
"agent_mode": "string",
"pending_approvals": [
{
"property1": null,
"property2": null
}
]
}

Create conversations append message

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).

Path parameters

  • conversation
    string
  • project_id
    string

Request parameters

  • content
    string

Response


Example request

POST /api/environments/:project_id/conversations/:conversation/append_message
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/:project_id/conversations/:conversation/append_message/\
-d content="string"

Example response

Status 200
RESPONSE
{
"content": "string"
}

Update conversations cancel

Path parameters

  • conversation
    string
  • project_id
    string

Request parameters


    Response


    Example request

    PATCH /api/environments/:project_id/conversations/:conversation/cancel
    export POSTHOG_PERSONAL_API_KEY=[your personal api key]
    curl -X PATCH \
    -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
    <ph_app_host>/api/environments/:project_id/conversations/:conversation/cancel/\
    -d status=undefined

    Example response

    Status 200
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "status": "idle",
    "title": "string",
    "user": {
    "id": 0,
    "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
    "distinct_id": "string",
    "first_name": "string",
    "last_name": "string",
    "email": "user@example.com",
    "is_email_verified": true,
    "hedgehog_config": {
    "property1": null,
    "property2": null
    },
    "role_at_organization": "engineering"
    },
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z",
    "type": "assistant",
    "is_internal": true,
    "slack_thread_key": "string",
    "slack_workspace_domain": "string",
    "messages": [
    {
    "property1": null,
    "property2": null
    }
    ],
    "has_unsupported_content": true,
    "agent_mode": "string",
    "pending_approvals": [
    {
    "property1": null,
    "property2": null
    }
    ]
    }

    List all customer profile configs

    Required API key scopes

    customer_profile_config:read

    Path parameters

    • project_id
      string

    Query parameters

    • limit
      integer
    • offset
      integer

    Response


    Example request

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

    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",
    "scope": "person",
    "content": null,
    "sidebar": null,
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z"
    }
    ]
    }

    List all customer profile configs

    Required API key scopes

    customer_profile_config:read

    Path parameters

    • project_id
      string

    Query parameters

    • limit
      integer
    • offset
      integer

    Response


    Example request

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

    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",
    "scope": "person",
    "content": null,
    "sidebar": null,
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z"
    }
    ]
    }

    Create customer profile configs

    Required API key scopes

    customer_profile_config:write

    Path parameters

    • project_id
      string

    Request parameters

    • scope
    • content
    • sidebar

    Response


    Example request

    POST /api/environments/:project_id/customer_profile_configs
    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/:project_id/customer_profile_configs/\
    -d scope=undefined

    Example response

    Status 201
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "scope": "person",
    "content": null,
    "sidebar": null,
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z"
    }

    Create customer profile configs

    Required API key scopes

    customer_profile_config:write

    Path parameters

    • project_id
      string

    Request parameters

    • scope
    • content
    • sidebar

    Response


    Example request

    POST /api/environments/:project_id/customer_profile_configs
    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/:project_id/customer_profile_configs/\
    -d scope=undefined

    Example response

    Status 201
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "scope": "person",
    "content": null,
    "sidebar": null,
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z"
    }

    Retrieve customer profile configs

    Required API key scopes

    customer_profile_config:read

    Path parameters

    • id
      string
    • project_id
      string

    Response


    Example request

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

    Example response

    Status 200
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "scope": "person",
    "content": null,
    "sidebar": null,
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z"
    }

    Retrieve customer profile configs

    Required API key scopes

    customer_profile_config:read

    Path parameters

    • id
      string
    • project_id
      string

    Response


    Example request

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

    Example response

    Status 200
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "scope": "person",
    "content": null,
    "sidebar": null,
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z"
    }

    Update customer profile configs

    Required API key scopes

    customer_profile_config:write

    Path parameters

    • id
      string
    • project_id
      string

    Request parameters

    • scope
    • content
    • sidebar

    Response


    Example request

    PATCH /api/environments/:project_id/customer_profile_configs/: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/:project_id/customer_profile_configs/:id/\
    -d scope=undefined

    Example response

    Status 200
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "scope": "person",
    "content": null,
    "sidebar": null,
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z"
    }

    Update customer profile configs

    Required API key scopes

    customer_profile_config:write

    Path parameters

    • id
      string
    • project_id
      string

    Request parameters

    • scope
    • content
    • sidebar

    Response


    Example request

    PATCH /api/environments/:project_id/customer_profile_configs/: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/:project_id/customer_profile_configs/:id/\
    -d scope=undefined

    Example response

    Status 200
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "scope": "person",
    "content": null,
    "sidebar": null,
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z"
    }
    Next page →

    Community questions

    Questions about this page? or post a community question.