Skip to content

List log groups in a project.

GET
/v1/projects/{projectId}/observability/log-groups
Code sample: Shell / cURL
curl --request GET \
--url 'https://stratum.example.com/v1/projects/example/observability/log-groups?origin=platform.system' \
--header 'Authorization: Bearer <token>'
projectId
required
string
/^p-[a-z0-9-]+$/
origin
string
Allowed values: platform.system platform.audit-shadow platform.pack platform.image-builder platform.guest-logs

Filter to platform-created groups of one origin when set. platform.guest-logs is the project’s guest-log group.

Log groups.

Media typeapplication/json
object
items
required
Array<object>
object
id
required
string
/^lg-[a-z0-9]{16}$/
projectId
required
string
name
required
string
displayName
required
string
description
string
retentionDays
required
integer
>= 1 <= 3650
emfEnabled

. When true, the PutLogEvents path scans each event message as JSON and extracts AWS Embedded Metric Format (_aws.CloudWatchMetrics) metrics, emitting them through the standard OTel SDK path. The log line still ships to VictoriaLogs unchanged. Defaults to false to avoid cardinality surprises.

boolean
tags
object
key
additional properties
string
origin

Provenance marker. Empty for customer-created groups; one of platform.system / platform.audit-shadow for the two auto-created-per-project groups, platform.pack for substrate groups, platform.image-builder for image build output, and platform.guest-logs for the instances group the instance agent ships guest logs to (one stream per instance, each line stamped instance_id by the control plane; the API cannot write to it).

string
state
required
string
Allowed values: active deleted
createdAt
required
string format: date-time
updatedAt
required
string format: date-time
deletedAt
string format: date-time
nullable
createdBy
required
string
nextPageToken
string
isTruncated

True when the server had more rows than it returned. The response is a valid prefix of the result, not the whole of it.

Without this flag a client at the server’s row ceiling receives a full page and no nextPageToken, which means “this is the complete set” — so data it never saw would be indistinguishable from data that does not exist.

It does not imply a cursor exists. These queries do not all sort on a total order, so a resumable token cannot be minted for them yet. The remedy is to narrow the request (filter, or a shorter time range), not to page.

boolean

Example

{
"items": [
{
"emfEnabled": false,
"state": "active"
}
]
}