Accept one detection suggestion
POST /api/v1/public/detection-suggestions/{suggestionId}/accept
POST /api/v1/public/detection-suggestions/{suggestionId}/acceptCreate or trigger detection-suggestions accept.
Operation ID: post_api_v1_public_detection_suggestions_suggestionId_accept.
Authentication
Choose a credential. Each row is an accepted alternative; access also depends on current roles, project bindings, and entitlements.
| Credential | Carrier | OAuth scopes |
|---|---|---|
OAuth2 | Authorization: Bearer | configuration: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.
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 |
|---|---|---|---|---|
suggestionId | path | Yes | string | suggestionId path parameter; format: uuid; Pattern constrained; see the downloadable schema. |
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 | format: uuid; Pattern constrained; see the downloadable schema. |
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 = "POST"
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/detection-suggestions/<suggestionId>/accept"
CURL_CONFIGResponses
| Status | Description | Content type |
|---|---|---|
200 | Detection suggestion accepted | 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 | Detection suggestion not found | application/problem+json |
409 | Detection suggestion is terminal | 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.createdAt | string | Yes | format: date-time; Pattern constrained; see the downloadable schema. |
data.detectionId | string | null | Yes | — |
data.detectionId (anyOf 1) | string | Yes | format: uuid; Pattern constrained; see the downloadable schema. |
data.draft | object | object | object | object | Yes | — |
data.draft (oneOf 1) | object | Yes | additionalProperties: false |
data.draft (oneOf 1).batchFields | array<string> | null | No | — |
data.draft (oneOf 1).batchFields (anyOf 1) | array<string> | Yes | maxItems: 128 |
data.draft (oneOf 1).batchFields (anyOf 1)[] | string | Yes | minLength: 1; maxLength: 1024 |
data.draft (oneOf 1).description | string | null | No | — |
data.draft (oneOf 1).description (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 1).displayName | string | Yes | minLength: 1; maxLength: 255 |
data.draft (oneOf 1).groupId | string | Yes | format: uuid; Pattern constrained; see the downloadable schema. |
data.draft (oneOf 1).isActive | boolean | Yes | default: true |
data.draft (oneOf 1).issueSemantics | object | null | No | — |
data.draft (oneOf 1).issueSemantics (anyOf 1) | object | Yes | additionalProperties: false |
data.draft (oneOf 1).issueSemantics (anyOf 1).schema_version | "detector-issue-semantics-v1" | Yes | — |
data.draft (oneOf 1).issueSemantics (anyOf 1).polarity | "problem" | "healthy" | "informational" | "unknown" | Yes | — |
data.draft (oneOf 1).issueSemantics (anyOf 1).authority | "none" | "project_authoritative" | Yes | default: none |
data.draft (oneOf 1).issueSemantics (anyOf 1).truth_role | string | No | minLength: 1; maxLength: 100 |
data.draft (oneOf 1).issueSemantics (anyOf 1).contract_id | string | No | minLength: 1; maxLength: 256 |
data.draft (oneOf 1).issueSemantics (anyOf 1).contract_version | string | No | minLength: 1; maxLength: 100 |
data.draft (oneOf 1).runOn | object | Yes | additionalProperties: false |
data.draft (oneOf 1).runOn.frequency | "trace" | "span_type" | "span_name" | Yes | default: trace |
data.draft (oneOf 1).runOn.span_names | array<string> | null | No | — |
data.draft (oneOf 1).runOn.span_names (anyOf 1) | array<string> | Yes | maxItems: 128 |
data.draft (oneOf 1).runOn.span_names (anyOf 1)[] | string | Yes | minLength: 1; maxLength: 1024 |
data.draft (oneOf 1).runOn.span_types | array<string> | null | No | — |
data.draft (oneOf 1).runOn.span_types (anyOf 1) | array<string> | Yes | maxItems: 128 |
data.draft (oneOf 1).runOn.span_types (anyOf 1)[] | string | Yes | minLength: 1; maxLength: 255 |
data.draft (oneOf 1).threshold | number | Yes | default: 0.5; minimum: 0; maximum: 1 |
data.draft (oneOf 1).config | object | Yes | additionalProperties: false |
data.draft (oneOf 1).config.classifier_slug | "jailbreaking" | "nsfw" | "hate" | "refusals" | Yes | — |
data.draft (oneOf 1).type | "classifier" | Yes | — |
data.draft (oneOf 2) | object | Yes | additionalProperties: false |
data.draft (oneOf 2).batchFields | array<string> | null | No | — |
data.draft (oneOf 2).batchFields (anyOf 1) | array<string> | Yes | maxItems: 128 |
data.draft (oneOf 2).batchFields (anyOf 1)[] | string | Yes | minLength: 1; maxLength: 1024 |
data.draft (oneOf 2).description | string | null | No | — |
data.draft (oneOf 2).description (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 2).displayName | string | Yes | minLength: 1; maxLength: 255 |
data.draft (oneOf 2).groupId | string | Yes | format: uuid; Pattern constrained; see the downloadable schema. |
data.draft (oneOf 2).isActive | boolean | Yes | default: true |
data.draft (oneOf 2).issueSemantics | object | null | No | — |
data.draft (oneOf 2).issueSemantics (anyOf 1) | object | Yes | additionalProperties: false |
data.draft (oneOf 2).issueSemantics (anyOf 1).schema_version | "detector-issue-semantics-v1" | Yes | — |
data.draft (oneOf 2).issueSemantics (anyOf 1).polarity | "problem" | "healthy" | "informational" | "unknown" | Yes | — |
data.draft (oneOf 2).issueSemantics (anyOf 1).authority | "none" | "project_authoritative" | Yes | default: none |
data.draft (oneOf 2).issueSemantics (anyOf 1).truth_role | string | No | minLength: 1; maxLength: 100 |
data.draft (oneOf 2).issueSemantics (anyOf 1).contract_id | string | No | minLength: 1; maxLength: 256 |
data.draft (oneOf 2).issueSemantics (anyOf 1).contract_version | string | No | minLength: 1; maxLength: 100 |
data.draft (oneOf 2).runOn | object | Yes | additionalProperties: false |
data.draft (oneOf 2).runOn.frequency | "trace" | "span_type" | "span_name" | Yes | default: trace |
data.draft (oneOf 2).runOn.span_names | array<string> | null | No | — |
data.draft (oneOf 2).runOn.span_names (anyOf 1) | array<string> | Yes | maxItems: 128 |
data.draft (oneOf 2).runOn.span_names (anyOf 1)[] | string | Yes | minLength: 1; maxLength: 1024 |
data.draft (oneOf 2).runOn.span_types | array<string> | null | No | — |
data.draft (oneOf 2).runOn.span_types (anyOf 1) | array<string> | Yes | maxItems: 128 |
data.draft (oneOf 2).runOn.span_types (anyOf 1)[] | string | Yes | minLength: 1; maxLength: 255 |
data.draft (oneOf 2).threshold | number | Yes | default: 0.5; minimum: 0; maximum: 1 |
data.draft (oneOf 2).config | object | Yes | additionalProperties: false |
data.draft (oneOf 2).config.case_sensitive | boolean | Yes | default: false |
data.draft (oneOf 2).config.input_pattern | string | null | No | — |
data.draft (oneOf 2).config.input_pattern (anyOf 1) | string | Yes | minLength: 1; maxLength: 32768 |
data.draft (oneOf 2).config.operator | "AND" | "OR" | Yes | default: OR |
data.draft (oneOf 2).config.output_pattern | string | null | No | — |
data.draft (oneOf 2).config.output_pattern (anyOf 1) | string | Yes | minLength: 1; maxLength: 32768 |
data.draft (oneOf 2).type | "regex" | Yes | — |
data.draft (oneOf 3) | object | Yes | additionalProperties: false |
data.draft (oneOf 3).batchFields | array<string> | null | No | — |
data.draft (oneOf 3).batchFields (anyOf 1) | array<string> | Yes | maxItems: 128 |
data.draft (oneOf 3).batchFields (anyOf 1)[] | string | Yes | minLength: 1; maxLength: 1024 |
data.draft (oneOf 3).description | string | null | No | — |
data.draft (oneOf 3).description (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).displayName | string | Yes | minLength: 1; maxLength: 255 |
data.draft (oneOf 3).groupId | string | Yes | format: uuid; Pattern constrained; see the downloadable schema. |
data.draft (oneOf 3).isActive | boolean | Yes | default: true |
data.draft (oneOf 3).issueSemantics | object | null | No | — |
data.draft (oneOf 3).issueSemantics (anyOf 1) | object | Yes | additionalProperties: false |
data.draft (oneOf 3).issueSemantics (anyOf 1).schema_version | "detector-issue-semantics-v1" | Yes | — |
data.draft (oneOf 3).issueSemantics (anyOf 1).polarity | "problem" | "healthy" | "informational" | "unknown" | Yes | — |
data.draft (oneOf 3).issueSemantics (anyOf 1).authority | "none" | "project_authoritative" | Yes | default: none |
data.draft (oneOf 3).issueSemantics (anyOf 1).truth_role | string | No | minLength: 1; maxLength: 100 |
data.draft (oneOf 3).issueSemantics (anyOf 1).contract_id | string | No | minLength: 1; maxLength: 256 |
data.draft (oneOf 3).issueSemantics (anyOf 1).contract_version | string | No | minLength: 1; maxLength: 100 |
data.draft (oneOf 3).runOn | object | Yes | additionalProperties: false |
data.draft (oneOf 3).runOn.frequency | "trace" | "span_type" | "span_name" | Yes | default: trace |
data.draft (oneOf 3).runOn.span_names | array<string> | null | No | — |
data.draft (oneOf 3).runOn.span_names (anyOf 1) | array<string> | Yes | maxItems: 128 |
data.draft (oneOf 3).runOn.span_names (anyOf 1)[] | string | Yes | minLength: 1; maxLength: 1024 |
data.draft (oneOf 3).runOn.span_types | array<string> | null | No | — |
data.draft (oneOf 3).runOn.span_types (anyOf 1) | array<string> | Yes | maxItems: 128 |
data.draft (oneOf 3).runOn.span_types (anyOf 1)[] | string | Yes | minLength: 1; maxLength: 255 |
data.draft (oneOf 3).threshold | number | Yes | default: 0.5; minimum: 0; maximum: 1 |
data.draft (oneOf 3).config | object | Yes | additionalProperties: false |
data.draft (oneOf 3).config.conditions | array<object> | null | No | — |
data.draft (oneOf 3).config.conditions (anyOf 1) | array<object> | Yes | minItems: 1; maxItems: 100 |
data.draft (oneOf 3).config.conditions (anyOf 1)[] | object | Yes | additionalProperties: false |
data.draft (oneOf 3).config.conditions (anyOf 1)[].field | string | Yes | minLength: 1; maxLength: 512 |
data.draft (oneOf 3).config.conditions (anyOf 1)[].operator | "=" | "!=" | ">" | "<" | ">=" | "<=" | "contains" | "not_contains" | "in" | "not_in" | "is_empty" | "is_not_empty" | Yes | — |
data.draft (oneOf 3).config.conditions (anyOf 1)[].value | string | number | boolean | null | array<string | number | boolean> | No | — |
data.draft (oneOf 3).config.conditions (anyOf 1)[].value (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).config.conditions (anyOf 1)[].value (anyOf 2) | number | Yes | — |
data.draft (oneOf 3).config.conditions (anyOf 1)[].value (anyOf 3) | boolean | Yes | — |
data.draft (oneOf 3).config.conditions (anyOf 1)[].value (anyOf 5) | array<string | number | boolean> | Yes | maxItems: 100 |
data.draft (oneOf 3).config.conditions (anyOf 1)[].value (anyOf 5)[] | string | number | boolean | Yes | — |
data.draft (oneOf 3).config.conditions (anyOf 1)[].value (anyOf 5)[] (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).config.conditions (anyOf 1)[].value (anyOf 5)[] (anyOf 2) | number | Yes | — |
data.draft (oneOf 3).config.conditions (anyOf 1)[].value (anyOf 5)[] (anyOf 3) | boolean | Yes | — |
data.draft (oneOf 3).config.logic | "AND" | "OR" | null | No | — |
data.draft (oneOf 3).config.logic (anyOf 1) | "AND" | "OR" | Yes | — |
data.draft (oneOf 3).config.root | object | null | No | — |
data.draft (oneOf 3).config.root (anyOf 1) | object | Yes | additionalProperties: false |
data.draft (oneOf 3).config.root (anyOf 1).children | array<object | object> | Yes | minItems: 1; maxItems: 100 |
data.draft (oneOf 3).config.root (anyOf 1).children[] | object | object | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 1) | object | Yes | additionalProperties: false |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 1).field | string | Yes | minLength: 1; maxLength: 512 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 1).operator | "=" | "!=" | ">" | "<" | ">=" | "<=" | "contains" | "not_contains" | "in" | "not_in" | "is_empty" | "is_not_empty" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 1).type | "rule" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 1).value | string | number | boolean | null | array<string | number | boolean> | No | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 1).value (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 1).value (anyOf 2) | number | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 1).value (anyOf 3) | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 1).value (anyOf 5) | array<string | number | boolean> | Yes | maxItems: 100 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 1).value (anyOf 5)[] | string | number | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 1).value (anyOf 5)[] (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 1).value (anyOf 5)[] (anyOf 2) | number | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 1).value (anyOf 5)[] (anyOf 3) | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2) | object | Yes | additionalProperties: false |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children | array<object | object> | Yes | minItems: 1; maxItems: 100 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] | object | object | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 1) | object | Yes | additionalProperties: false |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 1).field | string | Yes | minLength: 1; maxLength: 512 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 1).operator | "=" | "!=" | ">" | "<" | ">=" | "<=" | "contains" | "not_contains" | "in" | "not_in" | "is_empty" | "is_not_empty" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 1).type | "rule" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 1).value | string | number | boolean | null | array<string | number | boolean> | No | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 2) | number | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 3) | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5) | array<string | number | boolean> | Yes | maxItems: 100 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] | string | number | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] (anyOf 2) | number | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] (anyOf 3) | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2) | object | Yes | additionalProperties: false |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children | array<object | object> | Yes | minItems: 1; maxItems: 100 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] | object | object | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1) | object | Yes | additionalProperties: false |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).field | string | Yes | minLength: 1; maxLength: 512 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).operator | "=" | "!=" | ">" | "<" | ">=" | "<=" | "contains" | "not_contains" | "in" | "not_in" | "is_empty" | "is_not_empty" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).type | "rule" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value | string | number | boolean | null | array<string | number | boolean> | No | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 2) | number | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 3) | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5) | array<string | number | boolean> | Yes | maxItems: 100 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] | string | number | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] (anyOf 2) | number | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] (anyOf 3) | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2) | object | Yes | additionalProperties: false |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children | array<object | object> | Yes | minItems: 1; maxItems: 100 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] | object | object | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1) | object | Yes | additionalProperties: false |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).field | string | Yes | minLength: 1; maxLength: 512 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).operator | "=" | "!=" | ">" | "<" | ">=" | "<=" | "contains" | "not_contains" | "in" | "not_in" | "is_empty" | "is_not_empty" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).type | "rule" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value | string | number | boolean | null | array<string | number | boolean> | No | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 2) | number | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 3) | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5) | array<string | number | boolean> | Yes | maxItems: 100 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] | string | number | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] (anyOf 2) | number | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] (anyOf 3) | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2) | object | Yes | additionalProperties: false |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children | array<object | object> | Yes | minItems: 1; maxItems: 100 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] | object | object | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1) | object | Yes | additionalProperties: false |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).field | string | Yes | minLength: 1; maxLength: 512 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).operator | "=" | "!=" | ">" | "<" | ">=" | "<=" | "contains" | "not_contains" | "in" | "not_in" | "is_empty" | "is_not_empty" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).type | "rule" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value | string | number | boolean | null | array<string | number | boolean> | No | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 2) | number | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 3) | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5) | array<string | number | boolean> | Yes | maxItems: 100 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] | string | number | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] (anyOf 2) | number | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 1).value (anyOf 5)[] (anyOf 3) | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2) | object | Yes | additionalProperties: false |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children | array<object> | Yes | minItems: 1; maxItems: 100 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] | object | Yes | additionalProperties: false |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[].field | string | Yes | minLength: 1; maxLength: 512 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[].operator | "=" | "!=" | ">" | "<" | ">=" | "<=" | "contains" | "not_contains" | "in" | "not_in" | "is_empty" | "is_not_empty" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[].type | "rule" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[].value | string | number | boolean | null | array<string | number | boolean> | No | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[].value (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[].value (anyOf 2) | number | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[].value (anyOf 3) | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[].value (anyOf 5) | array<string | number | boolean> | Yes | maxItems: 100 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[].value (anyOf 5)[] | string | number | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[].value (anyOf 5)[] (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[].value (anyOf 5)[] (anyOf 2) | number | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[].value (anyOf 5)[] (anyOf 3) | boolean | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).logic | "AND" | "OR" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).type | "group" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).logic | "AND" | "OR" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).type | "group" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).logic | "AND" | "OR" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).children[] (anyOf 2).type | "group" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).logic | "AND" | "OR" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).children[] (anyOf 2).type | "group" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).logic | "AND" | "OR" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).children[] (anyOf 2).type | "group" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).logic | "AND" | "OR" | Yes | — |
data.draft (oneOf 3).config.root (anyOf 1).type | "group" | Yes | — |
data.draft (oneOf 3).type | "conditional" | Yes | — |
data.draft (oneOf 4) | object | Yes | additionalProperties: false |
data.draft (oneOf 4).batchFields | array<string> | null | No | — |
data.draft (oneOf 4).batchFields (anyOf 1) | array<string> | Yes | maxItems: 128 |
data.draft (oneOf 4).batchFields (anyOf 1)[] | string | Yes | minLength: 1; maxLength: 1024 |
data.draft (oneOf 4).description | string | null | No | — |
data.draft (oneOf 4).description (anyOf 1) | string | Yes | maxLength: 32768 |
data.draft (oneOf 4).displayName | string | Yes | minLength: 1; maxLength: 255 |
data.draft (oneOf 4).groupId | string | Yes | format: uuid; Pattern constrained; see the downloadable schema. |
data.draft (oneOf 4).isActive | boolean | Yes | default: true |
data.draft (oneOf 4).issueSemantics | object | null | No | — |
data.draft (oneOf 4).issueSemantics (anyOf 1) | object | Yes | additionalProperties: false |
data.draft (oneOf 4).issueSemantics (anyOf 1).schema_version | "detector-issue-semantics-v1" | Yes | — |
data.draft (oneOf 4).issueSemantics (anyOf 1).polarity | "problem" | "healthy" | "informational" | "unknown" | Yes | — |
data.draft (oneOf 4).issueSemantics (anyOf 1).authority | "none" | "project_authoritative" | Yes | default: none |
data.draft (oneOf 4).issueSemantics (anyOf 1).truth_role | string | No | minLength: 1; maxLength: 100 |
data.draft (oneOf 4).issueSemantics (anyOf 1).contract_id | string | No | minLength: 1; maxLength: 256 |
data.draft (oneOf 4).issueSemantics (anyOf 1).contract_version | string | No | minLength: 1; maxLength: 100 |
data.draft (oneOf 4).runOn | object | Yes | additionalProperties: false |
data.draft (oneOf 4).runOn.frequency | "trace" | "span_type" | "span_name" | Yes | default: trace |
data.draft (oneOf 4).runOn.span_names | array<string> | null | No | — |
data.draft (oneOf 4).runOn.span_names (anyOf 1) | array<string> | Yes | maxItems: 128 |
data.draft (oneOf 4).runOn.span_names (anyOf 1)[] | string | Yes | minLength: 1; maxLength: 1024 |
data.draft (oneOf 4).runOn.span_types | array<string> | null | No | — |
data.draft (oneOf 4).runOn.span_types (anyOf 1) | array<string> | Yes | maxItems: 128 |
data.draft (oneOf 4).runOn.span_types (anyOf 1)[] | string | Yes | minLength: 1; maxLength: 255 |
data.draft (oneOf 4).threshold | number | Yes | default: 0.5; minimum: 0; maximum: 1 |
data.draft (oneOf 4).config | object | Yes | additionalProperties: false |
data.draft (oneOf 4).config.entities | array<"EMAIL_ADDRESS" | "PHONE_NUMBER" | "CREDIT_CARD" | "IP_ADDRESS" | "URL"> | null | No | — |
data.draft (oneOf 4).config.entities (anyOf 1) | array<"EMAIL_ADDRESS" | "PHONE_NUMBER" | "CREDIT_CARD" | "IP_ADDRESS" | "URL"> | Yes | maxItems: 5 |
data.draft (oneOf 4).config.entities (anyOf 1)[] | "EMAIL_ADDRESS" | "PHONE_NUMBER" | "CREDIT_CARD" | "IP_ADDRESS" | "URL" | Yes | — |
data.draft (oneOf 4).type | "pii" | Yes | — |
data.id | string | Yes | format: uuid; Pattern constrained; see the downloadable schema. |
data.runId | string | Yes | format: uuid; Pattern constrained; see the downloadable schema. |
data.status | "pending" | "accepted" | "dismissed" | Yes | — |
data.updatedAt | string | Yes | format: date-time; Pattern constrained; see the downloadable schema. |
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.
