---
title: "Check whether a project has traces"
method: GET
path: "/v1/private/traces/exists"
tags: ["Traces"]
---

# Check whether a project has traces

`GET /v1/private/traces/exists`

Returns whether the project has at least one trace matching the given scope. Cheap existence probe (LIMIT 1) used to drive empty-state decisions without scanning or aggregating the whole project.

## Query parameters

- `project_id` string, uuid
- `project_name` string
- `source` string — Restrict the probe to a single ingestion source (e.g. 'sdk' for the Logs empty state), matching the rendered list's logs-source scope. Omit to probe any source.
- `thread_only` boolean — When true, only considers traces that belong to a thread (thread_id is set) — used by the Threads empty state.

## Response `200`

Trace existence

- ExistenceResponse
  - `exists` boolean — Whether the project has at least one matching entity for the given scope

## Changes

- **2026-07-10** `4f9588a73d90` — 1 info
  - endpoint added
- **2026-05-04** `d606e84c75e4` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/comet-ml/apis/opik-rest-api/changes/v1/private/traces/exists/get.md)

---

[API](https://skmtc.dev/comet-ml/apis/opik-rest-api.md) · [All operations](https://skmtc.dev/comet-ml/apis/opik-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/comet-ml/opik-rest-api/revisions/1a1bcfd67f99/schema)
