For IT Admins

Connect MusEdLab to your LMS

MusEdLab supports LTI 1.3, the standard used by Canvas, Schoology, Moodle, and most learning management systems. This page is for IT admins setting up the integration — if you're a teacher, feel free to forward this link to your district's IT department.

Quick setup (recommended): Dynamic Registration

MusEdLab supports LTI 1.3 Dynamic Registration, which means there's no manual copying of Issuer URLs, Client IDs, or signing keys. You paste one URL into your LMS's own admin console, and the registration happens automatically:

🔗

Registration URL:
https://musedlab.ai/lti/register

Paste this into your LMS's Dynamic Registration flow, and MusEdLab is registered in a few seconds — no keys, no IDs, no back-and-forth email.

Canvas

1
Go to Admin → Developer Keys
2
Click + Developer Key → + LTI Registration
3
Paste the registration URL above when prompted.
4
Turn the new keyON, then add MusEdLab as an external tool in any course.

Schoology

1
Go to App Center → External Tool settings
2
Add a tool via LTI 1.3 Dynamic Registration
3
Paste the registration URL above.

Moodle

1
Go toSite administration → Plugins → External tool → Manage tools
2
Paste the registration URL into the Tool URLfield.
3
ClickAdd LTI Advantage
4
Open the new MusEdLab tool's settings and set Default launch container to New window and Tool configuration usage to Show in activity chooser and as a preconfigured tool. Moodle applies its own defaults during automatic registration, so these two settings need a one-time manual edit. The new-window setting avoids the Google sign-in issue covered in the section below — Google won't allow its sign-in screen to load inside an embedded frame, so MusEdLab needs to open in its own window.
ℹ️

MusEdLab requests a "new window" launch for every activity automatically, and most platforms — including Canvas and Schoology — should honor this without any extra setup. If you're on one of those platforms and still notice MusEdLab loading inside an embedded frame (rather than its own window or tab), check your platform's tool settings for an equivalent "launch container" or "display type" option and set it to open in a new window, the same fix as the Moodle step above.

A heads-up about the first sign-in

The first time a teacher opens MusEdLab from inside your LMS, they'll be asked to sign in with Google. Because Google doesn't allow its sign-in screen to load inside another site's embedded frame (a security policy Google enforces, not something specific to MusEdLab or your LMS), that sign-in opens in the full browser window instead of inside the assignment.

💡

What to tell teachers: sign in with Google when prompted, then go back to your course and open the MusEdLab activity one more time. After that first sign-in, it'll open normally without asking again in the same browser.

This only affects the one-time teacher sign-in used to set up and manage assignments. Students opening their own anonymous assignment links never need to sign in at all, so this doesn't come up for them.

About the Deployment ID

ℹ️

Some platforms — Canvas in particular — only generate a Deployment ID once the tool is actually activated inside a course, which happens after registration completes. If you don't see MusEdLab appear as available right away, activate it in one course first; the Deployment ID should follow. If you run into trouble, reach out at support@musedlab.ai with your Issuer URL and we can confirm everything landed correctly on our end.

What data is exchanged

MusEdLab's LTI integration is intentionally minimal. When a user launches MusEdLab from your LMS, we only request:

  • The issuer (which LMS platform the launch came from)
  • A pseudonymous subject identifier (a stable but anonymous ID for the launching user — not their name or email)

We do not request gradebook access, roster data, or any scopes beyond a basic resource-link launch. No student names, emails, or other identifying information are part of the LTI exchange, consistent with MusEdLab's FERPA-safe design everywhere else in the product. See Data Privacy for more on how MusEdLab handles data generally.

My LMS isn't listed, or Dynamic Registration isn't available

Not every LMS supports Dynamic Registration yet. If yours doesn't, MusEdLab can still be registered manually — just send us the following from your LMS's LTI configuration screen:

  • Issuer (iss)
  • Client ID
  • Deployment ID(s)
  • OIDC auth endpoint
  • Token endpoint
  • Platform JWKS URL

Email these to support@musedlab.ai and we'll complete the registration on our side within a couple of business days.

⚠️

Google Classroom is not supported for LTI integration — Google Classroom doesn't support the LTI 1.3 standard at all. If your school uses Google Classroom, teachers can still use MusEdLab directly by signing in with the same Google account they already use.

Troubleshooting

⚠️

"Registration didn't complete" error: This usually means your LMS's registration endpoint rejected the request, or there was a temporary network issue. Try again from your LMS admin console — if it keeps failing, email us the exact error text at support@musedlab.ai and we'll look into it.

⚠️

"This URL must be opened by your LMS's Dynamic Registration flow" error: This means the registration URL was opened directly in a browser rather than pasted into your LMS's own registration flow. Make sure you're pasting it into the field your LMS provides for tool registration, not visiting it as a regular webpage.

⚠️

A teacher gets a Google "403 — you do not have access to this page" error when signing in: This is expected on the very first sign-in — see A heads-up about the first sign-in above. Sign in with Google when it opens in the full browser window, then reopen the activity from your course once more.

💬

Still stuck, or have a question not covered here? Email us — we respond personally to every LTI setup question.