Soft-delete a trace
DELETE /api/v1/public/traces/{traceId}
DELETE /api/v1/public/traces/{traceId}Delete public traces.
Operation ID: delete_api_v1_public_traces_traceId.
Authentication
Choose a credential. Each row is an accepted alternative; access also depends on current roles, project bindings, and entitlements.
| Credential | Carrier | OAuth scopes |
|---|---|---|
ServiceAccountBearerAuth | Authorization: Bearer | See credential policy |
OAuth2 | Authorization: Bearer | observability:write |
For OAuth and service-account credentials, send the selected project UUID in x-project-id, including when the header is optional for legacy keys.
Service-account tokens need the corresponding functional scopes listed for OAuth, as well as an active binding and role for the selected project.
Availability
This operation requires the tier-c-compute capability to be enabled for the deployment. Its presence in the contract does not guarantee availability. See operation availability.
Request parameters
| Name | Location | Required | Type / allowed values | Description / constraints |
|---|---|---|---|---|
traceId | path | Yes | string | traceId path parameter; minLength: 1; maxLength: 255 |
idempotency-key | header | Yes | string | idempotency-key header parameter; Required canonical UUIDv4 or high-entropy base64url idempotency key; minLength: 22; maxLength: 43; Pattern constrained; see the downloadable schema. |
x-project-id | header | Yes | string | x-project-id header parameter; format: uuid; Pattern constrained; see the downloadable schema. |
Request body
Body required: yes.
application/json
| Field | Type / allowed values | Required in parent | Description / constraints |
|---|---|---|---|
$ | object | Yes | additionalProperties: false |
confirmation | string | Yes | minLength: 1; maxLength: 255 |
Request example
Replace placeholder IDs and environment variables with values from your authorized project. Credentials are expanded into curl's stdin configuration, not its command arguments. Keep shell tracing off and do not log this configuration. For requests with a body, put a payload matching the schema in request-body.txt; form requests use URL-encoded content.
curl --fail-with-body --silent --show-error --config - <<CURL_CONFIG
request = "DELETE"
header = "Authorization: Bearer ${NEATLOGS_TOKEN}"
header = "idempotency-key: ${IDEMPOTENCY_KEY}"
header = "x-project-id: ${NEATLOGS_PROJECT_ID}"
header = "Content-Type: application/json"
data-binary = "@request-body.txt"
url = "https://app.neatlogs.com/api/v1/public/traces/<traceId>"
CURL_CONFIGResponses
| Status | Description | Content type |
|---|---|---|
200 | Trace catalog entry soft-deleted | application/json |
400 | Invalid public API request | application/problem+json |
401 | Missing or invalid public API credential | application/problem+json |
403 | Public API request is not authorized | application/problem+json |
404 | Trace not found | application/problem+json |
409 | Public API request conflict | application/problem+json |
413 | Public API request body too large | application/problem+json |
415 | Unsupported public API request body | application/problem+json |
429 | Public API rate limit exceeded | application/problem+json |
500 | Internal server error | application/problem+json |
503 | Public API credential, project context, or rate limiting unavailable. Backend is draining; retry after the Retry-After delay. | application/problem+json, application/json |
200 response fields
Content type: application/json.
| Field | Type / allowed values | Required in parent | Description / constraints |
|---|---|---|---|
$ | object | Yes | additionalProperties: false |
data | object | Yes | additionalProperties: false |
data.deletedAt | string | Yes | format: date-time; Pattern constrained; see the downloadable schema. |
data.mode | "soft_delete" | Yes | — |
data.publicSharingRevoked | true | Yes | — |
data.state | "deleted" | Yes | — |
data.traceId | string | Yes | minLength: 1; maxLength: 255 |
requestId | string | Yes | Pattern constrained; see the downloadable schema. |
success | true | Yes | — |
Response headers
| Header | Description / constraints |
|---|---|
RateLimit-Limit | Effective request ceiling for the current window; minimum: 1 |
RateLimit-Remaining | Requests remaining in the current window; minimum: 0 |
RateLimit-Reset | Unix timestamp in seconds when the current window resets; minimum: 0 |
X-NeatLogs-RateLimit-Degraded | Whether bounded emergency enforcement is active; — |
X-NeatLogs-RateLimit-Limit | Effective request ceiling for the current window; minimum: 1 |
X-NeatLogs-RateLimit-Policy | Applied pre-authentication or authenticated rate class; — |
X-NeatLogs-RateLimit-Remaining | Requests remaining in the current window; minimum: 0 |
X-NeatLogs-RateLimit-Reset-After | Whole seconds until the current window resets; minimum: 1 |
X-NeatLogs-RateLimit-Version | NeatLogs rate-limit contract version; — |
X-Request-Id | Server-owned request correlation identifier; Pattern constrained; see the downloadable schema. |
Failures use Problem Details. For exact validation patterns and all response schemas, download the OpenAPI specification.
