Environments-3

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

Endpoints

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

Retrieve environments batch exports logs

Path parameters

  • id
    string
  • project_id
    string

Example request

GET /api/environments/:project_id/batch_exports/:id/logs
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/:id/logs/

Example response

Status 200 No response body

Create environments batch exports pause

Pause 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

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 environments 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

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 environments 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

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 environments 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

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