This reference documents the currently available Heights Platform API endpoints for customers and integration partners.
Requests are account-specific, authenticated by API key, and return JSON responses.
Use an admin user API key in the Authorization header:
Authorization: Token token=YOUR_API_KEY
Bearer tokens are also accepted: Authorization: Bearer YOUR_API_KEY.
Content Type
Responses are JSON.
Use Content-Type: application/json when sending JSON bodies.
Rate Limiting
Public API requests are rate limited per account: standard accounts receive
60 requests per minute, and Academy plan accounts receive
300 requests per minute.
Response Headers
X-Request-Id for support/debugging.
X-API-Version: v1.
Pagination
Students are paginated by default. Orders support optional pagination when a page parameter is provided.
:id is the public unique_order value returned as id by order list responses and the new_order webhook. The response is a single order object using the webhook field shape.
Unenrolls a student from paid membership by setting paying_student=false.
Parameter
Type
Required
Description
email
string
Yes
Student email address.
name
string
Yes
Student name.
POST
/api/v1/student/revoke-course
Removes a course from each of the student’s orders.
Parameter
Type
Required
Description
email
string
Yes
Student email address.
name
string
Yes
Student name.
course_id
integer
Yes
Course to revoke.
POST
/api/v1/student/revoke-bundle
Removes bundle access and also removes the bundle’s courses and digital products from orders.
Parameter
Type
Required
Description
email
string
Yes
Student email address.
bundle_id
integer
Yes
Bundle to revoke.
POST
/api/v1/student/grant-role
Grants a role to a student.
Parameter
Type
Required
Description
email
string
Yes
Student email address.
role_id
integer
Yes
Role to grant.
POST
/api/v1/student/revoke-role
Revokes a role from a student.
Parameter
Type
Required
Description
email
string
Yes
Student email address.
role_id
integer
Yes
Role to revoke.
POST
/api/v1/student/reset-course-progress
Resets a student’s completion/progress records for a single course. Requires permission to reset the course.
Parameter
Type
Required
Description
email
string
Yes
Student email address.
course_id
integer
Yes
Course progress to reset.
POST
/api/v1/student/reset-bundle-progress
Resets a student’s completion/progress records for all courses in a bundle. Requires permission to reset the bundle.
Parameter
Type
Required
Description
email
string
Yes
Student email address.
bundle_id
integer
Yes
Bundle progress to reset.
Webhooks
Heights has an existing webhook subscription system. Use the existing subscription UI instead of building duplicate webhook routes for customer integrations.
Subscription process
How to subscribe
Sign in to the Heights account as an admin.
Go to Account Settings → Integrations → Webhooks.
Enter a target URL, choose an event, and save the subscription.
Available events
Event
When it triggers
new_student
Student enrolls in the program.
new_order
An order is generated, including paid purchases and granted access orders.
course_completed
Student completes a course.
student_completed
Student reaches 100% program completion.
new_answer
Student submits an assignment answer.
new_project_post
Student posts in a project.
new_order payload
The new_order webhook payload matches GET /api/v1/orders/:id.