Max

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

Endpoints

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

List all environments conversations

Required API key scopes

conversation:read

Query parameters

  • limit
    integer
  • offset
    integer

Response


Example request

GET /api/environments/:environment_id/conversations
export POSTHOG_PERSONAL_API_KEY=[your personal api key]
curl \
-H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
<ph_app_host>/api/environments/:environment_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",
"topic": "web_analytics",
"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": {},
"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"
}
]
}

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

Request parameters

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

Response


Example request

POST /api/environments/:environment_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/:environment_id/conversations/\
-d content=["string","null"],\
-d conversation="string",\
-d trace_id="string"

Example response

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

Retrieve environments conversations

Required API key scopes

conversation:read

Path parameters

  • conversation
    string

Response


Example request

GET /api/environments/:environment_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/:environment_id/conversations/:conversation/

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"status": "idle",
"title": "string",
"topic": "web_analytics",
"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": {},
"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": [
{}
],
"has_unsupported_content": true,
"agent_mode": "string",
"is_sandbox": true,
"pending_approvals": [
{}
]
}

Delete environments conversations

Delete a conversation.

Required API key scopes

conversation:write

Path parameters

  • conversation
    string

Example request

DELETE /api/environments/:environment_id/conversations/:conversation
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/conversations/:conversation/

Example response

Status 204 No response body

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

Request parameters

  • content
    string

Response


Example request

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

Example response

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

Update environments conversations cancel

Path parameters

  • conversation
    string

Request parameters


    Response


    Example request

    PATCH /api/environments/:environment_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/:environment_id/conversations/:conversation/cancel/\
    -d status=undefined

    Example response

    Status 200
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "status": "idle",
    "title": "string",
    "topic": "web_analytics",
    "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": {},
    "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": [
    {}
    ],
    "has_unsupported_content": true,
    "agent_mode": "string",
    "is_sandbox": true,
    "pending_approvals": [
    {}
    ]
    }

    Retrieve environments conversations queue

    Path parameters

    • conversation
      string

    Response


    Example request

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

    Example response

    Status 200
    RESPONSE
    {
    "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
    "status": "idle",
    "title": "string",
    "topic": "web_analytics",
    "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": {},
    "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": [
    {}
    ],
    "has_unsupported_content": true,
    "agent_mode": "string",
    "is_sandbox": true,
    "pending_approvals": [
    {}
    ]
    }

    Create environments conversations queue

    Path parameters

    • conversation
      string

    Request parameters


      Response


      Example request

      POST /api/environments/:environment_id/conversations/:conversation/queue
      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/conversations/:conversation/queue/\
      -d status=undefined

      Example response

      Status 200
      RESPONSE
      {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "status": "idle",
      "title": "string",
      "topic": "web_analytics",
      "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": {},
      "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": [
      {}
      ],
      "has_unsupported_content": true,
      "agent_mode": "string",
      "is_sandbox": true,
      "pending_approvals": [
      {}
      ]
      }

      Update environments conversations queue

      Path parameters

      • conversation
        string
      • queue_id
        string

      Request parameters


        Response


        Example request

        PATCH /api/environments/:environment_id/conversations/:conversation/queue/:queue_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/conversations/:conversation/queue/:queue_id/\
        -d status=undefined

        Example response

        Status 200
        RESPONSE
        {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "status": "idle",
        "title": "string",
        "topic": "web_analytics",
        "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": {},
        "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": [
        {}
        ],
        "has_unsupported_content": true,
        "agent_mode": "string",
        "is_sandbox": true,
        "pending_approvals": [
        {}
        ]
        }

        Delete environments conversations queue

        Path parameters

        • conversation
          string
        • queue_id
          string

        Example request

        DELETE /api/environments/:environment_id/conversations/:conversation/queue/:queue_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/conversations/:conversation/queue/:queue_id/

        Example response

        Status 204 No response body

        Create environments conversations queue clear

        Path parameters

        • conversation
          string

        Request parameters


          Response


          Example request

          POST /api/environments/:environment_id/conversations/:conversation/queue/clear
          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/conversations/:conversation/queue/clear/\
          -d status=undefined

          Example response

          Status 200
          RESPONSE
          {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "status": "idle",
          "title": "string",
          "topic": "web_analytics",
          "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": {},
          "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": [
          {}
          ],
          "has_unsupported_content": true,
          "agent_mode": "string",
          "is_sandbox": true,
          "pending_approvals": [
          {}
          ]
          }

          List all conversations

          Required API key scopes

          conversation:read

          Query parameters

          • limit
            integer
          • offset
            integer

          Response


          Example request

          GET /api/projects/:project_id/conversations
          export POSTHOG_PERSONAL_API_KEY=[your personal api key]
          curl \
          -H "Authorization: Bearer $POSTHOG_PERSONAL_API_KEY" \
          <ph_app_host>/api/projects/: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",
          "topic": "web_analytics",
          "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": {},
          "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"
          }
          ]
          }

          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

          Request parameters

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

          Response


          Example request

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

          Example response

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

          Retrieve conversations

          Required API key scopes

          conversation:read

          Path parameters

          • conversation
            string

          Response


          Example request

          GET /api/projects/: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/projects/:project_id/conversations/:conversation/

          Example response

          Status 200
          RESPONSE
          {
          "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
          "status": "idle",
          "title": "string",
          "topic": "web_analytics",
          "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": {},
          "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": [
          {}
          ],
          "has_unsupported_content": true,
          "agent_mode": "string",
          "is_sandbox": true,
          "pending_approvals": [
          {}
          ]
          }

          Delete conversations

          Delete a conversation.

          Required API key scopes

          conversation:write

          Path parameters

          • conversation
            string

          Example request

          DELETE /api/projects/:project_id/conversations/:conversation
          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/conversations/:conversation/

          Example response

          Status 204 No response body

          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

          Request parameters

          • content
            string

          Response


          Example request

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

          Example response

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

          Update conversations cancel

          Path parameters

          • conversation
            string

          Request parameters


            Response


            Example request

            PATCH /api/projects/: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/projects/:project_id/conversations/:conversation/cancel/\
            -d status=undefined

            Example response

            Status 200
            RESPONSE
            {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            "status": "idle",
            "title": "string",
            "topic": "web_analytics",
            "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": {},
            "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": [
            {}
            ],
            "has_unsupported_content": true,
            "agent_mode": "string",
            "is_sandbox": true,
            "pending_approvals": [
            {}
            ]
            }

            Retrieve conversations queue

            Path parameters

            • conversation
              string

            Response


            Example request

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

            Example response

            Status 200
            RESPONSE
            {
            "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
            "status": "idle",
            "title": "string",
            "topic": "web_analytics",
            "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": {},
            "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": [
            {}
            ],
            "has_unsupported_content": true,
            "agent_mode": "string",
            "is_sandbox": true,
            "pending_approvals": [
            {}
            ]
            }

            Create conversations queue

            Path parameters

            • conversation
              string

            Request parameters


              Response


              Example request

              POST /api/projects/:project_id/conversations/:conversation/queue
              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/conversations/:conversation/queue/\
              -d status=undefined

              Example response

              Status 200
              RESPONSE
              {
              "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
              "status": "idle",
              "title": "string",
              "topic": "web_analytics",
              "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": {},
              "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": [
              {}
              ],
              "has_unsupported_content": true,
              "agent_mode": "string",
              "is_sandbox": true,
              "pending_approvals": [
              {}
              ]
              }

              Update conversations queue

              Path parameters

              • conversation
                string
              • queue_id
                string

              Request parameters


                Response


                Example request

                PATCH /api/projects/:project_id/conversations/:conversation/queue/:queue_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/conversations/:conversation/queue/:queue_id/\
                -d status=undefined

                Example response

                Status 200
                RESPONSE
                {
                "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
                "status": "idle",
                "title": "string",
                "topic": "web_analytics",
                "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": {},
                "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": [
                {}
                ],
                "has_unsupported_content": true,
                "agent_mode": "string",
                "is_sandbox": true,
                "pending_approvals": [
                {}
                ]
                }

                Community questions

                Questions about this page? or post a community question.