Get Evaluation

Retrieve the status and results of a specific evaluation by ID.

GET /v1/platform/evaluations/:id

Retrieves a single evaluation request by its ID. Use this endpoint to check the status and results of an evaluation, especially when using async mode.

Path Parameters

ParameterTypeDescription
idstringThe evaluation request ID (UUID)

Example Request

curl https://api.tutorflow.io/v1/platform/evaluations/2f4ad455-1e8e-4b6c-9f3a-7ebf4cf6f483 \
  -H "Authorization: Bearer tf_platform_..."

Response

Returns the full evaluation object. See Create Evaluation for the complete response schema.

{
  "id": "2f4ad455-1e8e-4b6c-9f3a-7ebf4cf6f483",
  "status": "COMPLETED",
  "evaluationType": "open_ended",
  "tier": "advanced",
  "score": 8,
  "maxScore": 10,
  "normalizedScore": 0.8,
  "confidence": 0.92,
  "strengths": ["Correctly identifies evaporation as a key process"],
  "mistakes": ["Did not mention condensation"],
  "suggestions": ["Include condensation as a step"],
  "feedbackSummary": "Strong understanding of the water cycle.",
  "nextStep": "Study the condensation phase.",
  "isTerminal": true,
  "createdAt": "2026-03-19T10:30:00Z",
  "completedAt": "2026-03-19T10:30:01Z"
}

Polling Pattern

When using async mode, poll this endpoint until isTerminal is true. The pollAfterMs field in the response suggests how long to wait before the next request.

async function waitForResult(evaluationId, apiKey) {
  while (true) {
    const res = await fetch(
      `https://api.tutorflow.io/v1/platform/evaluations/${evaluationId}`,
      { headers: { Authorization: `Bearer ${apiKey}` } }
    );
    const data = await res.json();
 
    if (data.isTerminal) return data;
    await new Promise(r => setTimeout(r, data.pollAfterMs ?? 1000));
  }
}

Alternatively, use Webhooks to receive evaluation.completed or evaluation.failed events instead of polling.

Status Lifecycle

StatusMeaning
PENDINGQueued for processing (async mode)
PROCESSINGCurrently being evaluated by AI
COMPLETEDSuccessfully graded. Results available.
FAILEDEvaluation failed after all retry attempts