For engineers
Integration surface
Everything here already exists and runs. The provider is currently mock - a local simulation.
Provider capabilities
- Oauth
- ✓ supported
- Entitlements
- ✓ supported
- Collab Api
- ✓ supported
- Project Api
- ✓ supported
Authentication
API keys are issued from the control panel.
Authorization: Bearer <key_id>.<secret>
Events
Every one of these is published to the realtime stream and queued as a signed outbound webhook.
| Event | Meaning |
|---|---|
| assignment.graded | A submission was graded. |
| assignment.published | An assignment was set. |
| assignment.submitted | A student submitted work. |
| bandlab.account.linked | A BandLab account was linked. |
| bandlab.account.verified | BandLab ownership was proven. |
| bandlab.cakewalk.verified | A Cakewalk activation was confirmed. |
| bandlab.project.linked | A BandLab project was attached to coursework. |
| certification.issued | A course certificate was issued. |
| class.completed | A class finished its run. |
| class.created | A class was opened. |
| class.enrolled | A student joined a class. |
| collab.ended | A class collaboration closed. |
| collab.started | A class collaboration went live. |
| education.class.bound | A class was bound to a BandLab for Education classroom. |
| education.launched | A user was sent through to BandLab for Education. |
| faculty.rank.granted | A faculty rank was granted. |
| perk.earned | A teacher qualified for the membership perk. |
| perk.failed | A membership perk could not be fulfilled. |
| perk.provisioned | A membership perk was fulfilled by the provider. |
| student.badge.earned | A badge was awarded. |
| student.prestige | A student entered a new prestige level. |
| student.rank.up | A student unlocked a new rank. |
| student.xp.awarded | XP was granted. |
| user.registered | A new account was created. |
| user.verified | Email address confirmed. |
Webhook signatures
POST /api/v1/webhooks/bandlab
X-BandLab-Signature: t=<unix>,v1=<hex>
Content-Type: application/json
v1 = HMAC-SHA256(secret, "{t}." + raw_body)
Post any body to /api/v1/webhooks/test to check your signing code.
Realtime
GET /api/v1/events/stream?channels=student,class
Accept: text/event-stream
Authorization: Bearer <key_id>.<secret>