Eval runs

Get an upload URL for a run artifact

Changed on

Retired. Every request answers 410 Gone with code: "FEATURE_NOT_SUPPORTED" and details.code: "SDK_UPGRADE_REQUIRED". @mcpjam/sdk 8.17.0 and later upload a run artifact by sending its bytes to POST /projects/{projectId}/eval-ingest/artifacts, which returns the storageId the run's results reference. Upgrade the SDK if a report logs this answer.

The gateway passes the backend's status and body through verbatim.

post/projects/{projectId}/eval-ingest/artifacts/upload-url

Request

  • Base URL
    https://app.mcpjam.com/api/v1
  • URL
    https://app.mcpjam.com/api/v1/projects/{projectId}/eval-ingest/artifacts/upload-url
  • Auth
    HTTP bearer

Path parameters

projectIdstring required

Project id, or the literal default for the key org's Default project.

Headers

x-mcpjam-eval-vocabulary'1' | '2'

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.

Request body

EvalIngestRequest required

Forwarded VERBATIM to the backend's eval-ingestion surface, which owns the schema. The projectId path segment always wins: it overwrites any projectId in the body, and the literal default omits it so the key's org Default project is used. Bodies are capped at ~6 MiB here and 5 MiB by the backend.

Changes

    • breaking

      removed the success response with the status

    • info

      endpoint deprecated

    • info

      added the non-success response with the status

    • info

      added the new optional header request parameter x-mcpjam-eval-vocabulary