Environments-21

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

Generate a human-readable text representation of an LLM trace event.

This endpoint converts LLM analytics events ($ai_generation, $ai_span, $ai_embedding, or $ai_trace) into formatted text representations suitable for display, logging, or analysis.

Supported Event Types:

  • $ai_generation: Individual LLM API calls with input/output messages
  • $ai_span: Logical spans with state transitions
  • $ai_embedding: Embedding generation events (text input → vector)
  • $ai_trace: Full traces with hierarchical structure

Options:

  • max_length: Maximum character count (default: 4000000)
  • truncated: Enable middle-content truncation within events (default: true)
  • truncate_buffer: Characters at start/end when truncating (default: 1000)
  • include_markers: Use interactive markers vs plain text indicators (default: true)
    • Frontend: set true for <<<TRUNCATED|base64|...>>> markers
    • Backend/LLM: set false for ... (X chars truncated) ... text
  • collapsed: Show summary vs full trace tree (default: false)
  • include_hierarchy: Include tree structure for traces (default: true)
  • max_depth: Maximum depth for hierarchical rendering (default: unlimited)
  • tools_collapse_threshold: Number of tools before auto-collapsing list (default: 5)
    • Tool lists >5 items show <<<TOOLS_EXPANDABLE|...>>> marker for frontend
    • Or [+] AVAILABLE TOOLS: N for backend when include_markers: false
  • include_line_numbers: Prefix each line with line number like L001:, L010: (default: false)

Use Cases:

  • Frontend display: truncated: true, include_markers: true, include_line_numbers: true
  • Backend LLM context (summary): truncated: true, include_markers: false, collapsed: true
  • Backend LLM context (full): truncated: false

The response includes the formatted text and metadata about the rendering.

Endpoints

POST
GET
POST
POST
GET
POST
GET
POST
GET
PATCH

Create environments llm analytics text repr

Required API key scopes

llm_analytics:write

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Request parameters

  • event_type

    Type of LLM event to stringify

    • $ai_generation - $ai_generation
    • $ai_span - $ai_span
    • $ai_embedding - $ai_embedding
    • $ai_trace - $ai_trace
  • data

    Event data to stringify. For traces, should include 'trace' and 'hierarchy' fields.

  • options

    Optional configuration for text generation


Response


Example request

POST /api/environments/:project_id/llm_analytics/text_repr
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/llm_analytics/text_repr/\
-d event_type=undefined,\
-d data=undefined

Example response

Status 200
RESPONSE
{
"text": "INPUT:\n\n[1] USER\n\nWhat is the capital of France?\n\n...",
"metadata": {
"event_type": "$ai_generation",
"event_id": "gen_123",
"rendering": "detailed",
"char_count": 150,
"truncated": false
}
}
Status 400
Status 500
Status 503

Retrieve environments logs attributes

Required API key scopes

error_tracking:read

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Example request

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

Example response

Status 200 No response body

Retrieve environments logs attributes

Required API key scopes

error_tracking:read

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Example request

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

Example response

Status 200 No response body

Create environments logs query

Required API key scopes

error_tracking:read

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Example request

POST /api/environments/:project_id/logs/query
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/logs/query/

Example response

Status 200 No response body

Create environments logs query

Required API key scopes

error_tracking:read

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Example request

POST /api/environments/:project_id/logs/query
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/logs/query/

Example response

Status 200 No response body

Create environments logs sparkline

Required API key scopes

error_tracking:read

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Example request

POST /api/environments/:project_id/logs/sparkline
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/logs/sparkline/

Example response

Status 200 No response body

Create environments logs sparkline

Required API key scopes

error_tracking:read

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Example request

POST /api/environments/:project_id/logs/sparkline
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/logs/sparkline/

Example response

Status 200 No response body

Retrieve environments logs values

Required API key scopes

error_tracking:read

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Example request

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

Example response

Status 200 No response body

Retrieve environments logs values

Required API key scopes

error_tracking:read

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Example request

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

Example response

Status 200 No response body

Create environments max tools create and query insight

Required API key scopes

insight:readquery:read

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Example request

POST /api/environments/:project_id/max_tools/create_and_query_insight
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/max_tools/create_and_query_insight/

Example response

Status 200 No response body

Create environments max tools create and query insight

Required API key scopes

insight:readquery:read

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Example request

POST /api/environments/:project_id/max_tools/create_and_query_insight
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/max_tools/create_and_query_insight/

Example response

Status 200 No response body

List all environments persisted folder

Required API key scopes

persisted_folder:read

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Query parameters

  • limit
    integer

    Number of results to return per page.

  • offset
    integer

    The initial index from which to return the results.


Response


Example request

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

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",
"type": "home",
"protocol": "string",
"path": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}

List all environments persisted folder

Required API key scopes

persisted_folder:read

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Query parameters

  • limit
    integer

    Number of results to return per page.

  • offset
    integer

    The initial index from which to return the results.


Response


Example request

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

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",
"type": "home",
"protocol": "string",
"path": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}
]
}

Create environments persisted folder

Required API key scopes

persisted_folder:write

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Request parameters

  • type
  • protocol
    string
  • path
    string

Response


Example request

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

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"type": "home",
"protocol": "string",
"path": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}

Create environments persisted folder

Required API key scopes

persisted_folder:write

Path parameters

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Request parameters

  • type
  • protocol
    string
  • path
    string

Response


Example request

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

Example response

Status 201
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"type": "home",
"protocol": "string",
"path": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}

Retrieve environments persisted folder

Required API key scopes

persisted_folder:read

Path parameters

  • id
    string

    A UUID string identifying this Persisted Folder.

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"type": "home",
"protocol": "string",
"path": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}

Retrieve environments persisted folder

Required API key scopes

persisted_folder:read

Path parameters

  • id
    string

    A UUID string identifying this Persisted Folder.

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"type": "home",
"protocol": "string",
"path": "string",
"created_at": "2019-08-24T14:15:22Z",
"updated_at": "2019-08-24T14:15:22Z"
}

Update environments persisted folder

Required API key scopes

persisted_folder:write

Path parameters

  • id
    string

    A UUID string identifying this Persisted Folder.

  • project_id
    string

    Project ID of the project you're trying to access. To find the ID of the project, make a call to /api/projects/.


Request parameters

  • type
  • protocol
    string
  • path
    string

Response


Example request

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

Example response

Status 200
RESPONSE
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"type": "home",
"protocol": "string",
"path": "string",
"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.