Skip to main content

Registering a Tool

Before your LMS can launch a tool, the two systems have to be introduced. Registration is a two-way exchange: the vendor gives you some URLs and a key, and you give them some URLs and an ID.

You can register a tool from the LTIAAS Portal or through the Tools API. Both do the same thing.

What You Need from the Vendor

Ask the tool vendor for these. Most LTI® 1.3 tools publish them on a setup page.

FieldWhat it is
loginEndpointTheir OIDC login initiation URL. LTIAAS posts here to start a launch.
launchEndpointWhere launches should land by default.
deeplinkingEndpointWhere deep linking launches land. Optional — falls back to launchEndpoint.
redirectionUrisEvery URL the tool may be redirected back to. A launch aiming anywhere else is refused.
authConfigHow LTIAAS verifies messages the tool signs — usually a keyset URL.

Registering

curl -X POST https://your.ltiaas.com/admin/tools \
-H "Authorization: Bearer <API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"name": "My Tool",
"loginEndpoint": "https://mytool.com/lti/login",
"launchEndpoint": "https://mytool.com/lti/launch",
"deeplinkingEndpoint": "https://mytool.com/lti/deeplink",
"redirectionUris": ["https://mytool.com/lti/launch"],
"authConfig": { "method": "JWK_SET", "key": "https://mytool.com/lti/keys" },
"permissions": ["MEMBERSHIPS_READ", "LINEITEMS_READ"],
"personalData": "COMPLETE",
"active": true
}'
note

Tool management lives under /admin, not /api. It uses the same API key.

LTIAAS responds with the registration, including three values it generated for you:

{
"id": "3wT7bVhgsve6byG33fVV",
"clientId": "3wT7bVhgsve6byG33fVV",
"deploymentId": "EgAssgssdfgsfshshq8iw",
"publicKey": "-----BEGIN PUBLIC KEY-----\n...\n-----END PUBLIC KEY-----\n",
"...": "..."
}

The clientId is the value you will pass on every launch of this tool. It is always identical to id.

What You Give the Vendor

These are the registration settings for your platform. They are the same for every tool except clientId.

SettingValue
Platform / Issuer URLhttps://your.ltiaas.com
Client IDThe clientId from the registration response
Deployment IDThe deploymentId from the registration response
OIDC authentication endpointhttps://your.ltiaas.com/lti/authenticate
Access token endpointhttps://your.ltiaas.com/lti/authorize
Keyset (JWKS) URLhttps://your.ltiaas.com/lti/keys
tip

Vendors label these differently — "authorization endpoint", "auth login URL", "platform OIDC endpoint" — but there are only ever three URLs plus an issuer and a client ID. If a form has a field you cannot place, the Platform Endpoints reference describes what each one does.

Choosing an Auth Method

authConfig.method tells LTIAAS how to check the tool's signatures.

Methodkey holdsUse when
JWK_SETA URL to the tool's JWKSAlmost always. The tool can rotate keys without telling you.
JWK_KEYA single JWK, as a JSON stringThe tool publishes one static key, no endpoint.
RSA_KEYA PEM-encoded public keyThe vendor sends you a .pem file.

Prefer JWK_SET. Static keys mean an outage the day the vendor rotates them.

Permissions

permissions controls which LTI® services this tool may use. A tool requesting a scope it was not granted is refused at the token endpoint.

PermissionLets the tool
MEMBERSHIPS_READRead the course roster
LINEITEMS_READRead grade lines
LINEITEMS_READ_WRITECreate, update and delete grade lines
GRADES_READRead learners' scores
GRADES_WRITEPost scores

Grant only what the tool needs. A tool that just displays content needs none at all — send an empty array.

caution

A permission granted here still does nothing unless the matching service is enabled on your account in the portal. Both have to be on.

Privacy Level

personalData caps how much you can reveal about a user to this tool:

ValueTool receives
NONENo name, no email
EMAILEmail only
NAMEFull, given and family name
COMPLETEName and email

LTIAAS enforces this when it builds the ID Token, so you can always send complete user records and let the setting do the filtering. It also applies to rosters returned through names and roles.

A single launch can lower or raise the level with the personalData field on the launch request — useful when one tool serves both anonymous and identified activities.

Custom Parameters

customParameters are key/value pairs sent to the tool on every launch. Individual launches can add their own; where both set the same key, the launch wins.

Managing Tools Afterwards

  • List or fetch registrations
  • Update one — every field is optional, and PUT and PATCH behave identically, so omitted fields keep their values
  • Deactivate to stop launches while keeping the registration; activate to resume
  • Delete to remove it and its keys permanently
tip

Reach for deactivate rather than delete when a contract lapses. Deleting destroys the tool's key pair, so re-registering later means the vendor has to reconfigure their side from scratch.

Next Steps

You now have a clientId. Your first launch puts it to work.

All trademarks, logos, and service marks displayed on this website are the property of their respective owners. LTIAAS is a trademark of GatherAct, LLC, doing business as LTIAAS. Learning Tools Interoperability (LTI)® and LTI® are trademarks of 1EdTech Consortium, Inc. LTIAAS is not affiliated with, endorsed or sponsored by 1EdTech Consortium, Inc. or by any other owners of third-party trademarks used on this website. LTIAAS is not responsible for the content, quality, or accuracy of any websites linked to or from this website that are not owned by LTIAAS. If you have any questions or concerns about the use of any trademarks or content on this website, please contact us.