API Reference

Complete reference for all TutorFlow Agent Platform endpoints.

Base URL

https://api.tutorflow.io/v1/platform

Authentication

External endpoints require a valid Platform API key passed via the Authorization header. Internal management endpoints are authenticated through TutorFlow admin auth. See Authentication for details.

Endpoints Overview

Evaluations (API Key required)

MethodEndpointDescription
POST/evaluationsCreate an evaluation request
GET/evaluations/:idGet evaluation result
GET/evaluations/:id/files/:field/:indexDownload evaluation files
GET/evaluationsList evaluation requests

Courses (API Key required)

MethodEndpointDescription
POST/coursesCreate a course generation request
GET/courses/:idGet course by ID
GET/coursesList course requests
POST/courses/:id/edit-tokenGenerate an edit token for a course
GET/courses/public/:shareTokenGet public course by share token
GET/courses/public/:shareToken/lessons/:sequenceGet public lesson by sequence
GET/courses/edit/:editTokenGet course by edit token
GET/courses/edit/:editToken/fullGet full course with lessons
GET/courses/edit/:editToken/lessons/:sequenceGet lesson by edit token
PATCH/courses/edit/:editToken/lessons/:sequenceUpdate lesson by edit token
PATCH/courses/edit/:editTokenUpdate course by edit token

Agent Self-Service

MethodEndpointAuthDescription
GET/.well-known/agent.jsonNoneService discovery manifest
POST/agent/registerNone (IP throttled)Self-service registration
GET/agent/verify-email?token=NoneVerify workspace email
POST/agent/verify-email/resendAPI KeyResend verification email
POST/agent/billing/sessionAPI KeyGet checkout page URL for credit purchase
GET/agent/billing/statusAPI KeyBilling status and payment method info
GET/agent/accountAPI KeyWorkspace info and credit balance
GET/agent/checkout?token=NoneValidate a billing checkout token
POST/agent/checkoutNoneCreate Stripe session from checkout token

LTI 1.3 Integration

MethodEndpointAuthDescription
POST/lti/registrationsAPI KeyCreate an LTI registration
GET/lti/registrationsAPI KeyList LTI registrations
GET/lti/registrations/:idAPI KeyGet an LTI registration
PUT/lti/registrations/:idAPI KeyUpdate an LTI registration
DELETE/lti/registrations/:idAPI KeyDelete an LTI registration
GET/lti/loginNoneOIDC login initiation (called by LMS)
POST/lti/launchNoneLaunch callback (called by LMS)
GET/lti/.well-known/jwks.jsonNonePublic JWKS endpoint

Health

MethodEndpointAuthDescription
GET/healthAPI KeyHealth check (validates API key)

MCP

Agents can also connect via the Model Context Protocol instead of calling REST endpoints directly.

TransportURL
Streamable HTTPhttps://mcp.tutorflow.io/api/mcp

Dashboard (Admin Auth required)

MethodEndpointDescription
GET/dashboard/workspacesList accessible workspaces
GET/dashboard/workspaces/:idGet workspace detail
PUT/dashboard/workspaces/:idUpdate workspace (name, slug, auto-reload)
GET/dashboard/workspaces/:id/membersList members
GET/dashboard/workspaces/:id/member-invitesList member invites
POST/dashboard/workspaces/:id/member-invitesInvite a member
POST/dashboard/workspaces/:id/member-invites/:inviteId/resendResend invite
DELETE/dashboard/workspaces/:id/member-invites/:inviteIdCancel invite
GET/dashboard/workspaces/:id/api-keysList API keys
POST/dashboard/workspaces/:id/api-keysCreate an API key
POST/dashboard/workspaces/:id/api-keys/:keyId/rotateRotate an API key
POST/dashboard/workspaces/:id/api-keys/:keyId/revokeRevoke an API key
GET/dashboard/workspaces/:id/pricing-catalogList pricing catalog
GET/dashboard/workspaces/:id/usage/summaryUsage summary
GET/dashboard/workspaces/:id/usage/detailsUsage details
GET/dashboard/workspaces/:id/billing/invoicesList invoices
GET/dashboard/workspaces/:id/billing/invoices/:invoiceIdGet invoice
GET/dashboard/workspaces/:id/billing/payment-methodGet payment method
POST/dashboard/workspaces/:id/billing/payment-method-sessionCreate payment method session
POST/dashboard/workspaces/:id/billing/purchase-creditsPurchase credits ($5–$5,000)
GET/dashboard/workspaces/:id/evaluationsList evaluations
GET/dashboard/workspaces/:id/evaluations/:evaluationIdGet evaluation
GET/dashboard/workspaces/:id/coursesList courses
GET/dashboard/workspaces/:id/courses/:courseIdGet course
GET/dashboard/workspaces/:id/webhooksList webhooks
POST/dashboard/workspaces/:id/webhooksCreate a webhook
DELETE/dashboard/workspaces/:id/webhooks/:webhookIdDelete a webhook

Internal Management

MethodEndpointDescription
POST/workspacesCreate a workspace
GET/workspacesList workspaces
POST/api-keysCreate an API key
GET/api-keysList API keys
POST/api-keys/:id/revokeRevoke an API key
POST/api-keys/:id/rotateRotate an API key
POST/webhooksCreate a webhook endpoint
GET/webhooksList webhook endpoints
DELETE/webhooks/:idDelete a webhook endpoint
GET/usageUsage summary
GET/usage/detailsUsage details
POST/billing/invoicesCreate billing invoice draft
POST/billing/webhooks/stripeStripe webhook handler

Response Format

All responses return JSON. Successful responses include the resource directly:

{
  "id": "uuid",
  "status": "COMPLETED",
  "evaluationType": "open_ended",
  "score": 8,
  "feedbackSummary": "Strong answer..."
}

External Platform API key error responses follow this format:

{
  "error": {
    "code": "platform_invalid_request",
    "message": "Validation failed",
    "status": 400
  }
}

Detailed References