Request insights for an eval run
No credits are consumed — the model cost is on MCPJam. Runs a model over the finished run and draws on the same shared insightsPerDay request ledger as swarm and user-testing insights.
202: scheduled, not done. Poll the run detail’s insights envelope rather than re-requesting — the envelope’s status distinguishes pending from not_requested, which a second POST would not.
Authorizations
MCPJam API key (sk_…). Create one at Settings → API keys. Guest sessions cannot use the API, and API keys cannot manage other API keys.
Headers
Which vocabulary this request and its response speak. Absent means 1, which is byte-for-byte today's contract: the same request fields, the same refusals, the same response projection. 2 is the canonical vocabulary. Any other value is a 400 with code: "VALIDATION_ERROR".
Today it decides one thing: the spelling of an evaluator's policy role. Vocabulary 1 accepts and returns gating; vocabulary 2 accepts both spellings and returns the canonical required. Sending required without the header is a 400, deliberately — vocabulary 1 is not widened to meet vocabulary 2 half way, because a boundary that accepts a spelling it does not announce is one two implementations can disagree about.
A response that varies by vocabulary sends Vary: x-mcpjam-eval-vocabulary.
1, 2 Path Parameters
ID of the hosted project that contains the server.
Eval run ID, as returned by POST /eval-runs.
Body
Optional. A bodyless POST is the ordinary case.
Regenerate even when insights already exist. COUNTS AGAIN against the daily insight quota (no credits either way). Must be a real boolean — "false" is rejected rather than read as consent.

