POST
cURL

Raw overall of a fact-scored turn

For a scenario scored by facts, every scored turn returns two fields at every score access tier:
  • raw_overall_value: the scoring tree’s overall on the 0 to 100 scale.
  • raw_reward: the same value divided by 100, on the 0 to 1 scale.
Both fields use the tree’s own composition, before any reward weight overrides. Legacy scoring and skipped turns omit them.

Read or store fact readings

Scored fact-based turns return observations at the full score access tier, whether or not production storage is enabled. The scores and reward-only tiers withhold these per-fact readings. store_attempt_run is meant for grading attempts on episodes started from a recording with baseline_run_id. Set it to true to save the attempt in production and receive its run_id. The flag defaults to false. A verifier can save the full-tier observations locally instead. For an episode started with baseline_run_id, compare raw_reward with the start response’s baseline.reward. The selected judge must match the baseline’s judge. These attempts reject reward_config overrides before generating the person’s reply.

Where the time went

Every turn response carries a timing object at every score access tier. It says how long each part of the turn took, in whole milliseconds rounded down, so a slow grading can be traced to its cause:
  • load_ms: loading the episode and its scenario.
  • persona_ms: the simulated person composing its answer.
  • scoring_ms: resolving the scoring tree, the judge reads, the composition of the score and, when store_attempt_run or turn storage is on, the write of the stored run.
  • total_ms: from the start of the episode load to the end of scoring. The three phases above never add up to more than this; the gap is the work between them.
  • judge_reads: the number of judge reads this turn sent, one per open fact, repeat and judge. A turn the legacy scorers scored, or a turn with scoring skipped, reports 0.
  • read_limit: the most judge reads the server runs at once. Every scoring in progress on the server shares this limit, so a turn’s reads can wait for other turns’ reads.
A turn that reports judge_reads of 50 with a read_limit of 32 sent its reads in two waves. Compare scoring_ms with judge_reads across turns to see whether the judge or the person’s answer is the slow part.

Authorizations

Authorization
string
header
required

API key obtained from Labs Portal

Headers

X-Tacit-Judge-Model
enum<string>

Judge model ID. Must match judge_model when both are supplied.

Available options:
bedrock-llama-3.1-70b,
bedrock-llama-3.1-8b,
bedrock-llama-3-70b,
bedrock-llama-3-8b,
minimax-m2.5,
mistral-7b,
mistral-large-2402,
mistral-small-2402,
mixtral-8x7b,
kimi-k3,
nemotron-super-120b,
bedrock-gpt-5.4,
bedrock-gpt-5.5,
bedrock-gpt-5.6-luna,
bedrock-gpt-5.6-sol,
bedrock-gpt-5.6-terra,
bedrock-gpt-6-astra,
bedrock-gpt-6-luna,
bedrock-gpt-6-sol,
bedrock-gpt-6.1-sol,
palmyra-vision-7b,
bedrock-grok-4.6,
bedrock-grok-4.7,
glm-5,
glm-5.3,
claude-haiku-5-5,
claude-sonnet-5,
claude-sonnet-5-5,
claude-opus-4-7,
claude-opus-4-8,
claude-opus-5,
claude-opus-5-5,
claude-fable-5,
claude-fable-5-1,
claude-4-5-haiku,
claude-sonnet-4-6,
claude-opus-4-5,
claude-opus-4-6,
glm-4.7-flash,
glm-4.7,
nova-micro,
nova-lite,
nova-pro,
nova-2-lite,
deepseek-r1,
deepseek-v3,
deepseek-v3.2,
kimi-k2-thinking,
kimi-k2.5,
minimax-m2,
minimax-m2.1,
bedrock-qwen3-32b,
bedrock-qwen3-235b,
bedrock-qwen3-coder-30b,
bedrock-qwen3-coder-480b,
bedrock-qwen3-coder-next,
bedrock-qwen3-next-80b,
bedrock-qwen3-vl-235b,
mistral-large-3,
devstral-123b,
magistral-small,
pixtral-large,
ministral-14b,
ministral-8b,
ministral-3b,
bedrock-llama-4-maverick,
bedrock-llama-4-scout,
bedrock-llama-3.3-70b,
gemma-3-27b,
gemma-3-12b,
gemma-3-4b,
nemotron-nano-30b,
nemotron-nano-12b,
nemotron-nano-9b,
bedrock-gpt-oss-120b,
bedrock-gpt-oss-20b,
palmyra-x5,
palmyra-x4

Path Parameters

id
string
required

The episode ID (from path parameter)

Body

application/json
id
string
required

The episode ID (from path parameter)

messages
object[]
required

New messages in this turn (user prompt and model response)

judge_model
enum<string>
Available options:
bedrock-llama-3.1-70b,
bedrock-llama-3.1-8b,
bedrock-llama-3-70b,
bedrock-llama-3-8b,
minimax-m2.5,
mistral-7b,
mistral-large-2402,
mistral-small-2402,
mixtral-8x7b,
kimi-k3,
nemotron-super-120b,
bedrock-gpt-5.4,
bedrock-gpt-5.5,
bedrock-gpt-5.6-luna,
bedrock-gpt-5.6-sol,
bedrock-gpt-5.6-terra,
bedrock-gpt-6-astra,
bedrock-gpt-6-luna,
bedrock-gpt-6-sol,
bedrock-gpt-6.1-sol,
palmyra-vision-7b,
bedrock-grok-4.6,
bedrock-grok-4.7,
glm-5,
glm-5.3,
claude-haiku-5-5,
claude-sonnet-5,
claude-sonnet-5-5,
claude-opus-4-7,
claude-opus-4-8,
claude-opus-5,
claude-opus-5-5,
claude-fable-5,
claude-fable-5-1,
claude-4-5-haiku,
claude-sonnet-4-6,
claude-opus-4-5,
claude-opus-4-6,
glm-4.7-flash,
glm-4.7,
nova-micro,
nova-lite,
nova-pro,
nova-2-lite,
deepseek-r1,
deepseek-v3,
deepseek-v3.2,
kimi-k2-thinking,
kimi-k2.5,
minimax-m2,
minimax-m2.1,
bedrock-qwen3-32b,
bedrock-qwen3-235b,
bedrock-qwen3-coder-30b,
bedrock-qwen3-coder-480b,
bedrock-qwen3-coder-next,
bedrock-qwen3-next-80b,
bedrock-qwen3-vl-235b,
mistral-large-3,
devstral-123b,
magistral-small,
pixtral-large,
ministral-14b,
ministral-8b,
ministral-3b,
bedrock-llama-4-maverick,
bedrock-llama-4-scout,
bedrock-llama-3.3-70b,
gemma-3-27b,
gemma-3-12b,
gemma-3-4b,
nemotron-nano-30b,
nemotron-nano-12b,
nemotron-nano-9b,
bedrock-gpt-oss-120b,
bedrock-gpt-oss-20b,
palmyra-x5,
palmyra-x4
store_attempt_run
boolean

Store this grading attempt in production. Defaults to false; the verifier can save observations locally instead.

reward_config
object

Per-turn reward configuration. Controls which scorers run and their weights. Omitted quality weight keys default to 0, so only specified scorers execute. Saves tokens during curriculum learning. turn_discovery_credit selects the per-turn discovery credit in place of discovery.

Response

Success

turn
number
required

Current turn number (1-indexed)

observation
object
required

The observation for the next turn

reward
number
required

Reward score (0 to 1) based on the full conversation so far

Required range: 0 <= x <= 1
timing
object
required

Where this turn spent its time, in whole milliseconds rounded down. Returned at every score access tier.

episode_complete
boolean
required

Whether the episode has ended

run_id
string<uuid>

Stored scoring run when turn or attempt storage is enabled.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
observations
object[]

Per-fact readings from this scored turn. Full score access only.

raw_overall_value
number

Fact scoring tree overall on the 0 to 100 scale, before reward overrides.

Required range: 0 <= x <= 100
raw_reward
number

Fact scoring tree overall on the 0 to 1 scale, before reward overrides.

Required range: 0 <= x <= 1
judge_model
enum<string>
Available options:
bedrock-llama-3.1-70b,
bedrock-llama-3.1-8b,
bedrock-llama-3-70b,
bedrock-llama-3-8b,
minimax-m2.5,
mistral-7b,
mistral-large-2402,
mistral-small-2402,
mixtral-8x7b,
kimi-k3,
nemotron-super-120b,
bedrock-gpt-5.4,
bedrock-gpt-5.5,
bedrock-gpt-5.6-luna,
bedrock-gpt-5.6-sol,
bedrock-gpt-5.6-terra,
bedrock-gpt-6-astra,
bedrock-gpt-6-luna,
bedrock-gpt-6-sol,
bedrock-gpt-6.1-sol,
palmyra-vision-7b,
bedrock-grok-4.6,
bedrock-grok-4.7,
glm-5,
glm-5.3,
claude-haiku-5-5,
claude-sonnet-5,
claude-sonnet-5-5,
claude-opus-4-7,
claude-opus-4-8,
claude-opus-5,
claude-opus-5-5,
claude-fable-5,
claude-fable-5-1,
claude-4-5-haiku,
claude-sonnet-4-6,
claude-opus-4-5,
claude-opus-4-6,
glm-4.7-flash,
glm-4.7,
nova-micro,
nova-lite,
nova-pro,
nova-2-lite,
deepseek-r1,
deepseek-v3,
deepseek-v3.2,
kimi-k2-thinking,
kimi-k2.5,
minimax-m2,
minimax-m2.1,
bedrock-qwen3-32b,
bedrock-qwen3-235b,
bedrock-qwen3-coder-30b,
bedrock-qwen3-coder-480b,
bedrock-qwen3-coder-next,
bedrock-qwen3-next-80b,
bedrock-qwen3-vl-235b,
mistral-large-3,
devstral-123b,
magistral-small,
pixtral-large,
ministral-14b,
ministral-8b,
ministral-3b,
bedrock-llama-4-maverick,
bedrock-llama-4-scout,
bedrock-llama-3.3-70b,
gemma-3-27b,
gemma-3-12b,
gemma-3-4b,
nemotron-nano-30b,
nemotron-nano-12b,
nemotron-nano-9b,
bedrock-gpt-oss-120b,
bedrock-gpt-oss-20b,
palmyra-x5,
palmyra-x4
scores
object

Optional breakdown of individual score dimensions. When omitted, only the combined reward is provided.

score_breakdown
object

Textual reasoning per score dimension. Only included for subscriptions with full score access.

terminal_reason
enum<string>

Reason for episode termination (only present when episode_complete is true)

Available options:
client_terminated,
max_turns_reached,
error,
completed