Run a bounded stored evaluator playground

POST /api/v1/public/evaluators/{evaluatorId}/playground

POST /api/v1/public/evaluators/{evaluatorId}/playground

Create or trigger evaluators playground.

Operation ID: post_api_v1_public_evaluators_evaluatorId_playground.

Authentication

Choose a credential. Each row is an accepted alternative; access also depends on current roles, project bindings, and entitlements.

CredentialCarrierOAuth scopes
OAuth2Authorization: Bearerevaluation: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

NameLocationRequiredType / allowed valuesDescription / constraints
evaluatorIdpathYesstringevaluatorId path parameter; format: uuid; Pattern constrained; see the downloadable schema.
x-project-idheaderYesstringx-project-id header parameter; Required service-account or OAuth project selection; format: uuid; Pattern constrained; see the downloadable schema.

Request body

Body required: yes.

application/json

FieldType / allowed valuesRequired in parentDescription / constraints
$objectYesadditionalProperties: false
attachmentIdsarray<string>NomaxItems: 5
attachmentIds[]stringYesformat: uuid; Pattern constrained; see the downloadable schema.
inputTextstring | nullNo—
inputText (anyOf 1)stringYes—
outputTextstring | nullNo—
outputText (anyOf 1)stringYes—
spanIdstring | nullNo—
spanId (anyOf 1)stringYesminLength: 1; maxLength: 64
traceIdstringNodefault: ``; 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 = "POST"
header = "Authorization: Bearer ${NEATLOGS_TOKEN}"
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/evaluators/<evaluatorId>/playground"
CURL_CONFIG

Responses

StatusDescriptionContent type
200Evaluator playground verdictapplication/json
400Invalid public API requestapplication/problem+json
401Missing or invalid public API credentialapplication/problem+json
403Public API request is not authorizedapplication/problem+json
404Evaluator input not foundapplication/problem+json
409Public API request conflictapplication/problem+json
413Public API request body too largeapplication/problem+json
415Unsupported public API request bodyapplication/problem+json
422Evaluator execution is unavailable or too largeapplication/problem+json
429Public API rate limit exceededapplication/problem+json
500Internal server errorapplication/problem+json
503Public 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.

FieldType / allowed valuesRequired in parentDescription / constraints
$objectYesadditionalProperties: false
dataobjectYesadditionalProperties: false
data.errorstring | nullYes—
data.error (anyOf 1)stringYesmaxLength: 2000
data.fieldsarray<object>YesmaxItems: 50
data.fields[]objectYesadditionalProperties: false
data.fields[].confidencenumber | nullNo—
data.fields[].confidence (anyOf 1)numberYesminimum: 0; maximum: 1
data.fields[].keystringYesminLength: 1; maxLength: 80
data.fields[].scorenumber | nullNo—
data.fields[].score (anyOf 1)numberYesminimum: 0; maximum: 1
data.fields[].valueanyYes—
data.overallstring | nullYes—
data.overall (anyOf 1)stringYesmaxLength: 20000
data.overallScorenumber | nullYes—
data.overallScore (anyOf 1)numberYesminimum: 0; maximum: 1
data.status"failed" | "succeeded" | "unknown"Yes—
data.toolCallsintegerYesminimum: 0; maximum: 12
requestIdstringYesPattern constrained; see the downloadable schema.
successtrueYes—

Response headers

HeaderDescription / constraints
RateLimit-LimitEffective request ceiling for the current window; minimum: 1
RateLimit-RemainingRequests remaining in the current window; minimum: 0
RateLimit-ResetUnix timestamp in seconds when the current window resets; minimum: 0
X-NeatLogs-RateLimit-DegradedWhether bounded emergency enforcement is active; —
X-NeatLogs-RateLimit-LimitEffective request ceiling for the current window; minimum: 1
X-NeatLogs-RateLimit-PolicyApplied pre-authentication or authenticated rate class; —
X-NeatLogs-RateLimit-RemainingRequests remaining in the current window; minimum: 0
X-NeatLogs-RateLimit-Reset-AfterWhole seconds until the current window resets; minimum: 1
X-NeatLogs-RateLimit-VersionNeatLogs rate-limit contract version; —
X-Request-IdServer-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.

On this page

Ask Neatlogs AI

Answers from the docs

How can I help?

Ask anything about instrumenting, tracing, or the Neatlogs dashboard.