Dynamic LMS Registration
Make sure you've read about authenticating API requests before proceeding to the guide below.
The Registration API endpoints only accept the bearer api key based authentication method.
Before an LMS can launch your LTI® tool, the two systems must complete a one-time platform registration. During registration, the LMS and your tool exchange OIDC client metadata, public keys, redirect URIs, and the list of LTI® services and message types your tool offers. From that point on, both systems can trust each other to sign and verify the JWTs that drive every subsequent launch.
LTIAAS gives you access to Dynamic Registration through the https://your.ltiaas.com/lti/register endpoint. The LMS administrator only ever needs to know that one URL; LTIAAS performs the registration handshake on your behalf, and you can optionally interpose your own page partway through to gate the registration on a sign-in, a payment, or a terms-of-service acceptance.
This guide walks through the full Dynamic Registration flow, including the optional pre-approval branch. If your LMS does not support Dynamic Registration, see the Manual LMS Registration guide instead — the end state is identical: a persistent platformId in LTIAAS pointing at one LMS.
LMS administrator initiates dynamic registration
Step 1 of 6The LMS administrator opens whichever page their LMS provides for adding a new LTI® 1.3 tool (Canvas calls it "LTI Registration", Moodle calls it "Register a tool", Brightspace exposes it under External Learning Tools), and enters your tool's single dynamic registration URL:
https://your.ltiaas.com/lti/register
This is the only piece of information about your tool that the LMS administrator needs. Each LMS that supports Dynamic Registration accepts this same URL — there is no separate URL per LMS or per registration. Once the administrator submits the form, the LMS begins the registration handshake by making a request to that URL.
It's common to publish a short "How to install our tool" page on your marketing site or documentation that lists this URL together with a brief screenshot of where to paste it in each LMS family you support. The per-LMS guides under LMS Setup are good starting points for the LMS-specific instructions.
What's next
Once a registration exists, every launch from that LMS will arrive at your registered launch URL. To continue building out your integration, see the following guides:
- Manual LMS Registration flow — the alternative path when Dynamic Registration isn't an option, or when you want to register programmatically via
POST /admin/platforms. - Launch + idtoken SSO flow — turn a launch into a logged-in session in your tool's auth system.
- Deep Linking flow — allow teachers to pick specific content from your tool and embed it into an LMS assignment.
- Grade Passback flow — send scores back to the LMS gradebook from inside your tool.
