Where do I get the bearer token?
Create a Content API key with POST /v1/content/organizations/{organizationId}/api-keys while signed in as a TutorFlow admin. The returned apiKey starts with tf_content_. Use it as Authorization: Bearer tf_content_....
Why is the key only shown once?
TutorFlow stores only a hash of the key. If the full key is lost, rotate or create a new key.
Can I use the same key for test and production?
Use separate keys. This makes rate limits, revocation, and incident response cleaner.
What payload size should I start with?
Start with one category and one level, or one similarly small content group. Expand after the result manifest and review flow are stable.
What happens if I retry the same idempotency key?
TutorFlow returns the existing job for that organization and key. Use a new idempotency key only when the source payload changed.
Why is video output not an MP4 immediately?
Content Integration first returns editable video structure. Trigger MP4 rendering after reviewing the generated scenes.
How do I export content authored in TutorFlow UI?
Use POST /v1/content/classrooms/{classroomId}/integrations/exports with a signed-in TutorFlow admin session. This returns a completed manifest for existing TutorFlow UI content.
When should I use webhooks instead of polling?
Use polling for the first pilot. Add webhooks after you can create jobs, poll results, and store manifests reliably.
What should I send to support?
Send job id, key prefix, endpoint path, timestamp, idempotency key, final response body, and source JSON only if it can be shared. Never send the full tf_content_ key.