Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.coraltalk.com/llms.txt

Use this file to discover all available pages before exploring further.

Quickstart

This guide walks through a typical integration: create a course, add a class, create an oral assessment, and share the student exam URL.
Replace YOUR_LIVE_KEY with a ct_live_ key for production, or use YOUR_TEST_KEY (ct_test_) with /api/v1/dev/ while developing.

Prerequisites

  • Organization admin account on Coraltalk
  • API key created from API Keys in the organization sidebar
  • curl or any HTTP client

Step 1 — Create a course

curl -X POST "https://app.coraltalk.com/api/v1/prod/courses" \
  -H "Authorization: Bearer ct_live_YOUR_LIVE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Introduction to Biology",
    "level": "undergraduate"
  }'
Save the course _id as COURSE_ID.

Step 2 — Create a class

curl -X POST "https://app.coraltalk.com/api/v1/prod/courses/COURSE_ID/classes" \
  -H "Authorization: Bearer ct_live_YOUR_LIVE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Bio 101 — Spring 2026",
    "classMode": "online",
    "startDate": "2026-01-15T00:00:00.000Z",
    "endDate": "2026-05-15T23:59:59.000Z"
  }'
Save the class _id as CLASS_ID.

Step 3 — Create an oral assessment

curl -X POST "https://app.coraltalk.com/api/v1/prod/oral-assessments" \
  -H "Authorization: Bearer ct_live_YOUR_LIVE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Midterm Oral Exam",
    "classId": "CLASS_ID",
    "duration": 600,
    "examType": "Generic",
    "questions": [
      { "id": "1", "text": "Explain the process of cellular respiration." },
      { "id": "2", "text": "Compare mitosis and meiosis." }
    ]
  }'
Save the assessment _id as EXAM_ID. Students take the exam at:
https://app.coraltalk.com/exam/{EXAM_ID}
If you configure a custom domain, use:
https://exams.yourschool.edu/exam/{EXAM_ID}

Next steps

Roleplay

Create scenario-based speaking assignments

VidTickets

Async video prompts with presigned uploads

Custom domains

Brand exam pages on your hostname

Errors

Status codes and error handling