ProgressionStudio Sign in Join free
Courses Ranks Classes Education Commons Sign inJoin free
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>

Discovery document · OpenAPI spec

Events

Every one of these is published to the realtime stream and queued as a signed outbound webhook.

EventMeaning
assignment.gradedA submission was graded.
assignment.publishedAn assignment was set.
assignment.submittedA student submitted work.
bandlab.account.linkedA BandLab account was linked.
bandlab.account.verifiedBandLab ownership was proven.
bandlab.cakewalk.verifiedA Cakewalk activation was confirmed.
bandlab.project.linkedA BandLab project was attached to coursework.
certification.issuedA course certificate was issued.
class.completedA class finished its run.
class.createdA class was opened.
class.enrolledA student joined a class.
collab.endedA class collaboration closed.
collab.startedA class collaboration went live.
education.class.boundA class was bound to a BandLab for Education classroom.
education.launchedA user was sent through to BandLab for Education.
faculty.rank.grantedA faculty rank was granted.
perk.earnedA teacher qualified for the membership perk.
perk.failedA membership perk could not be fulfilled.
perk.provisionedA membership perk was fulfilled by the provider.
student.badge.earnedA badge was awarded.
student.prestigeA student entered a new prestige level.
student.rank.upA student unlocked a new rank.
student.xp.awardedXP was granted.
user.registeredA new account was created.
user.verifiedEmail 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>