canonical: https://jentic.com/apis/teachable.com/teachable

# Teachable API

API for managing courses, users, enrollments, and transactions on Teachable. The API exposes 21 endpoints secured with apiKey authentication.

## For AI agents

Programmatically fetch all courses, fetch a specific course. Covers 21 operations with apiKey authentication.

## Scope

Does not handle communications, crm, or developer tools - use for payments only.

## Capabilities

- Fetch all courses
- Mark lecture as complete
- List quizzes in a lecture
- Query and filter Teachable API records by parameters
- Monitor Teachable API operational status and events

## Use cases

### Payments Operations

Use the Teachable API to perform payments operations programmatically. The API provides 21 endpoints covering core functionality including fetch all courses, fetch a specific course, fetch enrolled students.

Example prompt: Call GET /courses to fetch all courses

### Automated Courses Management

Automate courses operations by combining multiple Teachable API endpoints. Agents can fetch a specific course and then fetch enrolled students in a single workflow.

Example prompt: Call GET /courses/{course_id} to fetch a specific course, then verify the result

### AI Agent Integration via Jentic

AI agents discover and call Teachable API endpoints through Jentic without managing credentials directly. An agent searches for the required operation by intent, receives the matching endpoint schema, and executes the call with Jentic-managed authentication. This eliminates the need to read API documentation or handle apiKey tokens manually.

Example prompt: Search Jentic for 'fetch all courses', load the operation schema, and execute with Jentic-managed credentials

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /courses | Fetch all courses |
| GET | /courses/{course_id} | Fetch a specific course |
| GET | /courses/{course_id}/enrollments | Fetch enrolled students |
| GET | /courses/{course_id}/progress | Fetch user course progress |
| GET | /courses/{course_id}/lectures/{lecture_id} | Fetch lecture content |
| POST | /courses/{course_id}/lectures/{lecture_id}/mark_complete | Mark lecture as complete |
| GET | /courses/{course_id}/lectures/{lecture_id}/quizzes | List quizzes in a lecture |
| GET | /courses/{course_id}/lectures/{lecture_id}/quizzes/{quiz_id} | Fetch quiz info |

## Key resources

- **Courses** — Operations related to Courses
- **Enrollment** — Operations related to Enrollment
- **Lectures** — Operations related to Lectures
- **PricingPlans** — Operations related to PricingPlans
- **Quizzes** — Operations related to Quizzes

## Why Jentic

- **Setup:** Wiring the Teachable API by hand means sending its API-key header on every request, targeting the developers.teachable.com/v1 host, and building your own retry handling across its course and lecture endpoints. Through Jentic you install once, import the Teachable API from the API Directory, store the API key once, and your agent calls it.
- **Permission scoping:** The Teachable API puts the course, lecture, and quiz ids in the URL path (/courses/{course_id}/lectures/{lecture_id}/...), so a rule can pin your agent to one course: it can read that course, its enrollments, progress, lectures, and quizzes. You choose the operations it may call, so a state change like marking a lecture complete is not included unless you add it.
- **Credential handling:** Your Teachable API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'fetch all courses' or 'get a course's enrollments', and Jentic returns the matching Teachable API operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Stripe** — Alternative payments API
- **Adyen** — Alternative payments API
- **Square** — Complementary payments API
- **Paypal** — Complementary payments API

## FAQ

### What authentication does the Teachable API use?

The Teachable API uses an API key passed in the `Api-Key` header. Through Jentic, these credentials are stored encrypted in your Jentic One instance and injected at execution time, so raw secrets never enter the agent context.

### Can I fetch all courses with the Teachable API?

Yes. Use the GET /courses endpoint. The API returns structured JSON responses that agents can parse and act on directly.

### What are the rate limits for the Teachable API?

Rate limits are not specified in the OpenAPI spec. Check the vendor documentation for current limits. Through Jentic, rate limiting is handled automatically with retry logic built into the execution layer.

### How do I fetch all courses through Jentic?

Install the Jentic SDK with pip install jentic, authenticate through Jentic One, the self-hosted execution layer, then search for 'fetch all courses'. Jentic returns the matching Teachable API operation with its input schema. Load the schema and execute the call - credentials are injected automatically.

### How many endpoints does the Teachable API have?

The Teachable API exposes 21 endpoints covering courses, enrollment, lectures operations.

### Can I limit what my agent is allowed to do with the Teachable API?

Yes. Jentic One is self-hosted, so your own rules decide which Teachable operations and credentials your agent can use. Because the API puts course, lecture, and quiz ids in the URL path, you can pin the agent to a single course and let it read only that course, its enrollments, progress, lectures, and quizzes. You also choose the exact operations it may call, so a state change such as marking a lecture complete stays off limits unless you explicitly allow it.
