# LTIAAS > LTIAAS implements the LTI 1.3 protocol as a service. A learning tool > registers with LTIAAS once; LTIAAS performs the OpenID Connect and JWT > handshake with each learning management system and redirects the user to > the tool with a token. The tool then uses a plain REST API for single > sign-on, course rosters, gradebook writes and deep linking. Integrators > do not implement OAuth, sign or verify JWTs, or host a key set. Two products: LTIAAS Launch, for learning tools connecting to LMSes, and LTIAAS Connect, for learning management systems consuming LTI tools. ## Start here - [Agent skill](https://ltiaas.com/build-with-ai): instructions for AI coding agents, including the mistakes to avoid - [OpenAPI description](https://ltiaas.com/openapi.json): the complete, authoritative API surface - [Full documentation as one file](https://ltiaas.com/llms-full.txt) - [Pricing](https://ltiaas.com/pricing): per active user, first five free, no monthly fee on the Plus plan Any page below is also available as Markdown by appending `.md` to its URL. ## Getting started - [Getting Started](https://ltiaas.com/guides/introduction.md) - [Account Setup and Deploy](https://ltiaas.com/guides/account-setup.md): How to set up your account and deploy your LTI® tool. - [Receiving Your First Launch](https://ltiaas.com/guides/first-launch.md): What to do after receiving your first launch. ## Connecting an LMS - [LMS Setup](https://ltiaas.com/guides/lms/introduction.md) - [Blackboard](https://ltiaas.com/guides/lms/blackboard.md): How to set up your LTI® tool in the Blackboard LMS. - [Brightspace](https://ltiaas.com/guides/lms/brightspace.md): How to set up your LTI® tool in the Brightspace LMS. - [Canvas](https://ltiaas.com/guides/lms/canvas.md): How to set up your LTI® tool in the Canvas LMS. - [Moodle](https://ltiaas.com/guides/lms/moodle.md): How to set up your LTI® tool in the Moodle LMS. - [Others](https://ltiaas.com/guides/lms/others.md): How to set up your LTI® tool in any LMS. - [Schoology](https://ltiaas.com/guides/lms/schoology.md): How to set up your LTI® tool in the Schoology LMS. ## Integration flows - [Integration Flows](https://ltiaas.com/guides/flows.md): End-to-end walkthroughs of every step in an LTIAAS integration, from LMS registration through grade passback. - [Async / Service-Key Grading](https://ltiaas.com/guides/flows/async-grading.md): Submit grades, refresh rosters, and reconcile state from background jobs — no live launch required. - [Deep Linking Flow](https://ltiaas.com/guides/flows/deep-linking.md): How a teacher picks content from your tool and embeds it into an LMS assignment — what LTIAAS handles versus what your application builds. - [Grade Passback Flow](https://ltiaas.com/guides/flows/grade-passback.md): Send scores from your tool back to the LMS gradebook — line item lookup, create-if-missing, and per-user score submission. - [Launch + idtoken-based SSO](https://ltiaas.com/guides/flows/launch-and-sso.md): Turn an LTI® launch into a logged-in session in your own auth system using the ID Token. - [Dynamic LMS Registration](https://ltiaas.com/guides/flows/lms-registration.md): How an LMS registers with your LTIAAS-powered tool through Dynamic Registration, including the optional pre-approval flow for paid or gated tools. - [Manual LMS Registration](https://ltiaas.com/guides/flows/manual-registration.md): Register an LMS manually or via the /admin/platforms API — for LMSes without Dynamic Registration, or for self-service / bulk registration workflows. - [Names & Roles (Roster Sync)](https://ltiaas.com/guides/flows/names-and-roles.md): Pull the LMS class roster into your tool — service check, paginated members fetch, role mapping, and user upsert. - [OAuth2 with the LMS API](https://ltiaas.com/guides/flows/oauth2.md): When LTI® isn't enough — connect to the LMS's native API on behalf of the user, with LTIAAS handling the OAuth2 dance. ## Using the API - [Using the LTIAAS API](https://ltiaas.com/guides/api/introduction.md) - [Accessing the API Asynchronously](https://ltiaas.com/guides/api/async.md): How to access the API outside of an LTI® launch. - [Authenticating API Requests](https://ltiaas.com/guides/api/authentication.md): How to authenticate API requests. - [Performing Deep Linking](https://ltiaas.com/guides/api/deeplinking.md): How to perform deep linking and create activities. - [Performing Dynamic Registration](https://ltiaas.com/guides/api/dynamic-registration.md): How to perform dynamic registration - [Handling API Errors](https://ltiaas.com/guides/api/error-handling.md): How to understand and handle errors returned by the LTIAAS API. - [Retrieving the ID Token](https://ltiaas.com/guides/api/idtoken.md): How to retrieve the ID Token and use it to perform SSO. - [Manipulating Grade Lines](https://ltiaas.com/guides/api/manipulating-grade-lines.md): How to manipulate grade lines in the LMS grade book. - [Manipulating Grades](https://ltiaas.com/guides/api/manipulating-grades.md): How to manipulate grades in the LMS grade book. - [Generating OAuth2 Access Tokens](https://ltiaas.com/guides/api/oauth.md): How to set up OAuth2 with an LMS and generate user-scoped access tokens. - [Handling Pagination](https://ltiaas.com/guides/api/pagination.md): How to handle pagination and limit results. - [Retrieving Course Roster](https://ltiaas.com/guides/api/roster.md): How to retrieve the course roster. ## Customer portal - [Using the LTIAAS Portal](https://ltiaas.com/guides/portal/introduction.md) - [Deleting Your Account](https://ltiaas.com/guides/portal/account-delete.md): How to delete an LTIAAS account. - [Upgrading Your Account](https://ltiaas.com/guides/portal/account-upgrades.md): How to upgrade an LTIAAS account. - [Managing Account Users](https://ltiaas.com/guides/portal/account-users.md): How to manage LTIAAS account users. - [Custom Domain Setup](https://ltiaas.com/guides/portal/custom-domain-setup.md): How to setup a custom domain for your LTIAAS account. ## Troubleshooting - [Troubleshooting](https://ltiaas.com/guides/troubleshooting/introduction.md) - [Common Problems and Solutions](https://ltiaas.com/guides/troubleshooting/common_problems.md): Common problems you might run into and how to fix them. - [Prerequisites](https://ltiaas.com/guides/troubleshooting/prerequisites.md): What is needed to properly use LTIAAS. - [Troubleshooting Error Messages](https://ltiaas.com/guides/troubleshooting/troubleshooting_error_messages.md): Reference of the error codes and messages returned by LTIAAS, with the cause and fix for each. ## Resources - [Resources](https://ltiaas.com/guides/resources/introduction.md) - [Navigating the Cookie-Free Future with LTI®](https://ltiaas.com/guides/resources/cookies-and-lti.md): LTI® tools are often displayed in iFrames. This makes for a seamless interface with the LMS, but creates challenges when Cookies are involved. This guide describes how to deal with these challenges. - [GitHub](https://ltiaas.com/guides/resources/github.md): LTIAAS GitHub Repos - [LTIAAS Firebase Test Tool](https://ltiaas.com/guides/resources/ltiaas-firebase-test-tool-video.md): In this video Joe explains how to deploy a Firebase project from https://github.com/LTIAAS/Firebase-LTI-Test-Tool. He explains how to connect the Firebase project with an LTI® 1.3 service provided by https://ltiaas.com. Finally, he explains the code that was deployed to Firebase to provide a better understand on how an LTI® launch and Deep Linking work. - [Introduction to LTIAAS](https://ltiaas.com/guides/resources/ltiaas-intro-video.md): Joe explains how LTIAAS works and how to use it to easily create an LTI® Advantage learning tool. - [Moodle as an LTI® CMS](https://ltiaas.com/guides/resources/moodle-as-an-lti-cms.md): Learn how to use Moodle as an LTI®-Capable Content Management System - [Videos](https://ltiaas.com/guides/resources/videos.md) ## Connect: getting started - [Introduction to LTIAAS Connect](https://ltiaas.com/connect/guides/introduction.md): Add LTI® 1.3 support to your learning management system without implementing the protocol. - [How a Launch Works](https://ltiaas.com/connect/guides/starting/how-it-works.md): The four steps of an LTIAAS Connect launch, and which side is responsible for each. - [Configuring Your Account](https://ltiaas.com/connect/guides/starting/portal-setup.md): The URLs, API key and public key that a Connect integration depends on. - [Registering a Tool](https://ltiaas.com/connect/guides/starting/registering-a-tool.md): Register a third-party LTI® tool and exchange settings with its vendor. ## Connect: integration flows - [Integration Flows](https://ltiaas.com/connect/guides/flows/introduction.md): End-to-end walkthroughs of the launch flows an LTIAAS Connect integration supports. - [Core Launch](https://ltiaas.com/connect/guides/flows/core-launch.md): A complete worked example, from a user clicking an activity to landing inside the tool. - [Deep Linking](https://ltiaas.com/connect/guides/flows/deep-linking.md): Let a teacher browse a tool's content, pick what to add to a course, and store the result. ## Connect: handling service requests - [Handling Service Requests](https://ltiaas.com/connect/guides/services/introduction.md): Answer the roster reads, grade writes and deep linking results that LTIAAS forwards to your Service URL. - [Line Items](https://ltiaas.com/connect/guides/services/line-items.md): Let tools create and manage grade lines in your gradebook. - [Memberships](https://ltiaas.com/connect/guides/services/memberships.md): Answer roster requests from tools through the Names and Roles service. - [Scores and Results](https://ltiaas.com/connect/guides/services/scores-and-results.md): Record the grades tools post, and return them when asked. ## Connect: using the API - [Using the Connect API](https://ltiaas.com/connect/guides/api/introduction.md): Conventions, authentication and error handling for the LTIAAS Connect API. - [Authenticating API Requests](https://ltiaas.com/connect/guides/api/authentication.md): Authenticate your calls to LTIAAS, and verify the requests LTIAAS makes to you. - [Error Handling](https://ltiaas.com/connect/guides/api/error-handling.md): The shape of LTIAAS Connect errors and what the common codes mean.