Use this page to read the discovery manifest, the live prices, and your key's health from the CLI.
tutorflow platform manifest
Read the public agent discovery manifest at /v1/platform/.well-known/agent.json.
It needs no API key:
tutorflow platform manifestThe manifest is useful for agents that need to discover supported platform capabilities before deciding which command or API workflow to run.
Example JSON response:
{
"schema": "https://tutorflow.io/agent-manifest/v3",
"name": "TutorFlow Agent Platform",
"baseUrl": "https://api.tutorflow.io/v1/content",
"accountBaseUrl": "https://api.tutorflow.io/v1/platform/agent",
"auth": {
"type": "bearer",
"header": "Authorization",
"prefix": "tf_content_",
"testPrefix": "tf_content_test_"
},
"registration": {
"endpoint": "/v1/platform/agent/register",
"method": "POST",
"requiredFields": ["name", "slug"],
"optionalFields": ["email", "agentIdentity"],
"returns": ["contentApiKey", "defaultClassroomId", "contentApiBaseUrl"]
},
"services": ["course", "module", "test", "slide", "video", "game", "evaluation"],
"capabilities": {
"evaluation": {
"endpoint": "POST /v1/content/classrooms/{classroomId}/evaluations",
"unit": "request",
"unitPriceUsd": 0.02
},
"slide": {
"endpoint": "POST /v1/content/classrooms/{classroomId}/slides/generate",
"unit": "text page",
"unitPriceUsd": 0.02,
"imagePagePriceUsd": 0.06
},
"video": {
"endpoint": "POST /v1/content/classrooms/{classroomId}/videos",
"unit": "video",
"unitPriceUsd": 0
}
},
"addOns": {
"video_narration": {
"endpoint": "POST /v1/content/classrooms/{classroomId}/videos/{id}/narration",
"unit": "scene",
"unitPriceUsd": 0.02
},
"video_render": {
"endpoint": "POST /v1/content/classrooms/{classroomId}/videos/{id}/render",
"unit": "render",
"unitPriceUsd": 0.1
}
},
"trial": {
"creditsUsd": 1,
"credits": 50,
"centsPerCredit": 2,
"emailVerificationRequiredForTrial": false,
"emailVerificationRequiredForBilling": true
},
"pricing": {
"endpoint": "/v1/platform/pricing-catalog",
"currency": "USD",
"model": "per_unit"
},
"docs": "https://tutorflow.io/agent-platform/docs",
"health": "/v1/platform/health"
}The manifest is abridged here. Content work points at the Content API: replace
{classroomId} with your defaultClassroomId.
tutorflow platform pricing
Read the public pricing catalog at /v1/platform/pricing-catalog. It needs no
API key:
tutorflow platform pricingUse this before generating content or submitting evaluations when an agent needs to estimate cost or present pricing context to an operator.
Example JSON response:
[
{
"category": "evaluation",
"tier": "default",
"catalogKey": "evaluation.default",
"amountUsd": 0.02,
"baseUsd": 0,
"unitCredits": 1,
"baseCredits": 0,
"unit": "request",
"description": "POST /evaluations: per graded answer.",
"currency": "USD",
"source": "organization_credit_amount_v3",
"stripeLookupKey": "platform-agent-credits-usd-metered",
"stripeMeterEventName": "agent_credits",
"isActive": true
},
{
"category": "slide",
"tier": "default",
"catalogKey": "slide.default",
"amountUsd": 0.02,
"baseUsd": 0,
"unitCredits": 1,
"baseCredits": 0,
"unit": "text page",
"description": "POST /slides/generate: per text page. Page 1 and every fourth page after it (1, 5, 9, ...) are image pages, priced as slide_image.",
"currency": "USD",
"source": "organization_credit_amount_v3",
"stripeLookupKey": "platform-agent-credits-usd-metered",
"stripeMeterEventName": "agent_credits",
"isActive": true
}
]The response is abridged to two of its nine entries. Prices are credits at 2 US cents each. See Pricing and Billing.
tutorflow platform health
Check whether the API accepts the active key. It calls GET /v1/platform/health,
which takes a live tf_content_ key with full access or a legacy tf_platform_
key, and works even when the balance is empty:
tutorflow platform healthThis command requires authentication. It is the fastest smoke test after setting
TUTORFLOW_API_KEY or running tutorflow auth login.
Example JSON response:
{
"status": "ok",
"organizationId": "org_2d8b1a3f"
}Agent-Friendly Smoke Test
For CI or agent bootstrapping, combine JSON mode with platform health:
TUTORFLOW_API_KEY="tf_content_..." tutorflow --json platform healthA successful command exits with status 0. Authentication and network failures
exit with status 1 and write a JSON error to stderr in JSON mode. To check a
test key, run tutorflow --json classroom list instead: account routes and
platform health refuse test keys.
tutorflow platform share-redirect
Resolve a share link of the removed Platform content routes to the classroom page that replaced it:
tutorflow platform share-redirect <shareToken>It calls GET /v1/platform/share-redirects/{shareToken}, needs no API key, and
prints the API response as returned. The route allows 60 requests per minute per IP.