REST API and App
Learnomy ships a full REST API that powers both the mobile/web app and third-party integrations. Everything students and instructors can do through the browser is also accessible through the API.
Overview
The REST API is built on top of the WordPress REST API framework. All Learnomy endpoints are registered under the namespace learnomy/v1, making them available at:
https://yoursite.com/wp-json/learnomy/v1/
The API is what the Learnomy mobile app and web app use to communicate with your site. If you are building an integration, a custom mobile app, or connecting Learnomy to another system, the REST API is the right layer to work with.
What the API Covers
The API provides endpoints for every major data type in Learnomy:
- Courses, sections, lessons, and topics
- Quizzes, questions, and quiz attempts
- Enrollments and student progress
- Certificates
- Reviews
- Memberships and subscriptions
- Coupons
- Earnings, commissions, and withdrawals
- Notifications and announcements
- Webhooks
- Admin operations (student management, settings, revenue reports)
Learnomy Pro adds its own endpoints under the learnomy-pro/v1 namespace for Pro-only features such as Cohorts, Learning Paths, Spaces, Assignments, and Membership Analytics.
Authentication
The API uses JWT (JSON Web Token) authentication.
Obtaining a token
Send a POST request to /wp-json/learnomy/v1/auth/token with a valid WordPress username and password. The response returns an access token and a refresh token.
Using a token
Pass the access token in the Authorization header on every authenticated request:
Authorization: Bearer <token>
Tokens expire and can be refreshed using the /auth/token/refresh endpoint.
Admin API keys
A future release will add long-lived API keys for server-to-server integrations (Zapier, custom backends, and similar). The API Keys section in Learnomy Settings > API and Performance will light up once those endpoints ship. Until then, use JWT tokens obtained through the login endpoint.
Response Shape
Every API response uses a consistent envelope format:
- List responses:
{ "data": [...], "meta": { "total": N, "cursor_next": "..." } } - Single resource:
{ "data": { ... } } - Errors:
{ "error": { "code": "...", "message": "...", "details": [...], "request_id": "..." } }
This shape is the same whether you are calling a Free endpoint or a Pro endpoint.
Rate Limiting
Learnomy applies rate limiting to write endpoints flagged as sensitive (login, password reset, quiz start, coupon validation, and others). The default limit is 60 requests per minute per user. Administrators and instructors are exempt from the rate limit. You can adjust this in Learnomy Settings > API and Performance.
Where to Find More
This page is a conceptual overview. The full endpoint reference is part of the Developer Guide:
- Endpoint inventory: see
audit/manifest.jsonin the plugin repository (166 curated endpoints (176 route registrations) across all Free controllers). - Code: REST controllers live in
includes/api/in the Free plugin andincludes/extensions/*/rest/in Learnomy Pro.
Tips
- The REST API is always available as long as the plugin is active. There is no separate toggle.
- All endpoints use
permission_callbackfor access control. Anonymous requests to protected endpoints receive a 401 response. There are no unprotected write endpoints. - ETag headers on read endpoints allow your HTTP client to use conditional requests and avoid re-downloading unchanged data.
- The WordPress application passwords feature also works with Learnomy's REST API as an alternative to JWT, since it uses standard WordPress authentication.