v0 · ga · status:operational

/dev/teachfloor

The control surface for learning data. REST, MCP, webhooks — one token, no glue code.

tf type a command or search…
  • Get current member
    GET /v0/members/me
  • List active courses
    tf courses list --status active
  • Run from Claude
    mcp · teachfloor
  • Subscribe to webhooks
    course.completed · payment.failed
  • Install the CLI
    curl -fsSL https://cli.teachfloor.com | bash
connected·tf_live_••••8fa2
docs
rest api

One REST API. All your learning data.

Bearer auth, predictable resource URLs, cursor pagination.

baseapi.teachfloor.com/v0authBearer
your stack
Web app
Backend service
Automation
rest
GET/members
POST/courses
PATCH/members/:id
DELETE/sessions/:id
resources
Members
Courses
Activities
Custom fields
v0 stable120 req/minp50 < 100mstest mode
api reference
apps

Native extensions inside the dashboard.

Drop custom UI next to courses, members and activities. The runtime handles auth, framing and routing.

runtimev3mounts11 locations
app.teachfloor.com / members / alex
Alex Park
alex@designstudio.io · 3 courses
mount · action bar
mount · detail panel
Linked CRM · hubspot-bridge
LifecycleCustomer
Deal value$12,400
Last contact3d ago
MRR$1,033
ZEN-12286Billing schedule update
ZEN-12289Apply discount to subscription
ZEN-12290Change account owner
Sidebar mountDetail panelAction barCourse headerMember card
apps docs
javascript sdk

Hook into the platform in three lines.

A 6kB script tag exposes Teachfloor as a typed API surface — data, events and actions, all from your custom page.

size6.2 kBtypes
runtime lifecycle
Page load
<script>
tf.onInit
session ready
Fetch data
members / courses
Listen events
course.completed
Trigger actions
track · ping · sync
devtools · console
live
10:02:14tf.onInitsession ready
10:02:15member.currentAlex Park
10:04:38course.completedcrs_q3
10:04:38track()→ amplitude
10:04:39
API.memberAPI.coursesAPI.activitiesAPI.on()
sdk reference
mcp server

Run Teachfloor from Claude, ChatGPT, Cursor.

Expose your platform as agent-callable tools. List members, ship courses, run analytics from inside any MCP client.

protocolmcp/2025-06tools27
the bridge
Claude Desktop
ChatGPT
Cursor
MCP
members.list
courses.list
members.invite
certs.issue
+ 23 more tools
example call
connected
How many learners completed Q3 Onboarding?
tool · teachfloor.courses.completion
42 of 58 (72%) completed. 6 stuck at module 3, 4 inactive 14+ days.
Claude DesktopChatGPTCursorZed
clinew

Your terminal, your platform.

One-binary install. Same shape as the REST API, shell-friendly defaults. Scripts, CI, ad-hoc fixes — no fetch boilerplate.

shellzsh · bash · fishversion0.4.2
three steps
01
Install
one shell command
02
Authenticate
browser OAuth flow
03
Run
scripts · CI · pipelines
what it can do
Manage members
Scaffold courses
Tail events
Deploy apps
Rotate keys
Bulk import
tf logintf memberstf events tailShell completion
cli reference
webhooks

React to events in real time.

Signed payloads, retries with exponential backoff, replayable from the delivery log. No polling.

signatureHMAC-SHA256retriesup to 24h
event lifecycle
sources
course.completed
member.enrolled
activity.graded
payment.failed
teachfloor
webhook engine
  • Sign payload
  • Exponential backoff
  • Delivery log
your endpoints
/webhooks/tf20042ms
/webhooks/tf20061ms
/webhooks/tf42912ms
/webhooks/tf20038ms
Signature verificationRetry policyEvent referenceDelivery log
webhook reference
fluent in your stack
Zapier
Anthropic
Stripe
Cursor
Segment
OpenAI
Webflow
Claude
Slack
faq

Common questions.

Do I need an SDK to call the API?

No. curl works. We ship a JavaScript SDK if you want realtime events and inline auth, but anything in the dashboard is one Bearer token away over plain REST.

Where do I get an API key?

Dashboard → Settings → API keys → New key. Keys are scoped per organization and rotatable. We never store the raw key — copy it once at creation.

What's the rate limit?

120 requests / minute per organization on standard plans, no request-burst penalty. Hit the limit and the response includes a Retry-After header so you can back off cleanly.

Does the MCP server work with ChatGPT and Cursor?

Yes — the server speaks the standard Model Context Protocol. Claude Desktop, ChatGPT Custom GPTs, Cursor and any other MCP-aware client connect with the same config.

Where do I see webhook deliveries?

Dashboard → Developers → Webhooks → click any subscription for the delivery log: HTTP status, payload, signed body, retry count and timing. Replay from there.

Is there a sandbox?

Every organization comes with a test mode flag — same endpoints, isolated data, no billing impact.

start_building

$ tf init

Generate a key, read the docs, ship the integration.