Canvas supports Dynamic Registration for LTI Advantage tools — a streamlined, one-step way to register an external tool. Praxis AI uses it to offer a simplified onboarding experience for the Pria LTI tool.The result is two roles, two simple tasks:
Administrators register Pria as an LTI tool in a single guided flow, and
Faculty place Pria in their courses and connect each course to a Digital Twin.
An administrator only needs to register Pria once per Canvas instance. After that, faculty can add Pria to any course.
This page covers both registration methods, then how faculty place and configure Pria in a course.
Method
Best for
Effort
Dynamic Registration (recommended)
Most institutions — fastest path, default placements
10–15 min
Manual Registration
Pinning a specific Digital Twin or fine-grained control of placements (e.g. top_navigation)
This is the recommended method for most institutions. Canvas walks you through a guided wizard and registers Pria with sensible defaults.
1
Open the Apps page
Log in to your Canvas instance, then go to Admin → (your account) → Apps and select the Manage tab. Click Install a New App in the top-right corner.
Admin → Apps → Manage → Install a New App
2
Choose Dynamic Registration
In the Install App dialog:
Under Select LTI Version, choose 1.3.
Set Install Method to Dynamic Registration.
In Dynamic Registration URL, enter:
https://pria.praxislxp.com/lti/register
Select LTI 1.3 and Dynamic Registration, then enter the registration URL
Click Next to begin the LTI Advantage registration.
3
Review permissions
Pria requests the gradebook and roster permissions it needs to operate. The recommended defaults are pre-selected.
Pria's requested permissions, with recommended defaults pre-selected
Leave the defaults and click Next.
Altering these defaults can affect Pria’s behavior. Only change them if you have a specific reason.
4
Confirm data sharing
Choose what user data is shared with Pria. The default, All user data, includes Canvas ID, name, SIS ID, avatar, and email address.
Data Sharing step — All user data is the default
Leave the default and click Next.
5
Select placements
Placements control where Pria can be accessed from in Canvas. We recommend enabling:
Placement
Recommendation
Course Navigation
✅ Recommended — Pria appears in the course sidebar
Link Selection
✅ Recommended — lets faculty embed Pria in modules
Account Navigation
Optional
Top Navigation
Optional — opens Pria in a drawer
Page Menu
Optional
Choose where Pria may be accessed from
Adjust the selection to suit your institution and click Next.
6
Set the nickname
Give the tool an Administration Nickname (the label shown next to the app’s name in Canvas) and an optional description. You can also rename each placement.
Nickname and description for the Pria tool
This is the administrative label. When faculty place Pria in a course, they can give that placement its own name, independent of the nickname you set here.
Click Next.
7
Set icons (optional)
Optionally set a Tool Icon URL and per-placement icons. The defaults point to Pria’s logo.
Tool icon and per-placement icon URLs
Click Next.
8
Review and install
Review your permissions, data sharing, and placements. Use the pencil icons to jump back and edit any section.
Review step summarizing the registration
Click Install App to finish registration.
9
Make Pria available
Pria installs as Not Available — it won’t appear to faculty until you enable it. On the app’s Availability and Exceptions tab, click the pencil (edit) icon next to Installed in (your account).
The installed app, still marked Not Available
In the Edit Exception dialog, change the status from Not Available to Available, then click Save. This makes Pria available across your child sub-accounts and courses.
Change Not Available → Available, then Save
Use Add Exception if you’d rather enable Pria for specific sub-accounts or courses instead of the whole account.
10
Confirm installation
The app now shows Available, along with its Deployment ID and active placements. Pria is registered and ready for faculty to use.
Canvas does not allow adding placements or editing custom properties after a tool is installed through Dynamic Registration. Use Manual Registration when you need that control up front.
Choose manual registration when you want to:
Pin a specific Digital Twin by setting a priainstitutionid, or
Control placements precisely — for example, to use the top_navigation placement, which opens Pria in a drawer similar to a wiki page.
In the Method dropdown, select Paste JSON, then paste the configuration below into the LTI 1.3 Configuration field. The scopes in it are what you are granting Pria: the lti-ags entries let it read and write gradebook entries and scores, contextmembership.readonly lets it read the course roster, and the three canvas.instructure.com entries let Canvas and Pria keep the signing key, account lookup and grade-progress checks in sync.
Set priainstitutionid to the Digital Twin’s Public ID to always open that twin (institution is the API’s word for a Digital Twin). To let faculty connect a Digital Twin during onboarding instead, delete the priainstitutionid line.
4
Save and copy the Client ID
Toggle back to Manual Entry to confirm the placements — you’ll now see top_navigation listed. Save the key, then copy its Client ID (for example, 243790000000000223). You’ll need it in the next section.
A complete walkthrough of the manual setup is also available in this Google Doc.
Go to Admin → (your account) → Settings → Apps, then click + App.
2
Add by Client ID
In the Add App dialog, set Configuration Type to By Client ID, paste the Client ID you copied above, and click Submit. Canvas finds the matching LTI app — click Install to confirm.
If you reinstall Pria, Canvas shows a confirmation dialog. Click Install to add the new installation — it supports the Digital Twin onboarding workflow and is independent of any previous install.
Your Pria LTI application is now installed. It can take a few minutes for Canvas to make it available as a placement.
This section is for faculty, and assumes an administrator has already registered Pria using one of the methods above.From your Dashboard, open the course where you want to add Pria.
1
Add an item to a module
Inside a module, click the + button to add an item. In the Add Item to Module dialog, set the dropdown to External Tool, then select Pria from the list of tools.
Add an External Tool item and choose Pria
2
Embed Pria
Pria opens its Link Resource from External Tool card. Click Embed in your course to create the link.
The Pria embed card
3
Name and add the item
Back in the Add Item to Module dialog, give the placement a page name (for example, Professor Cantu), then click Add Item.
Name the placement and add it to the module
Pria now appears in your module. Click it to launch. Pria opens inline unless your placement is configured to launch in a separate window.
The first time an admin or instructor launches Pria in a course, it shows Let’s get you connected. If your account is already associated with one or more Digital Twins, you can connect an existing twin or create a new one.
Connect an existing Digital Twin or create a new one
Select any Digital Twin from the list to connect it to this course. Every Pria placement in the course then opens that twin.
A course connects to one Digital Twin. A course that another active twin already uses is refused with “This course is already connected to another Digital Twin”. To switch twins later, a teacher or administrator of the twin unlinks the course from Your Profile › Canvas / LTI (see Faculty Onboarding), or a Digital Twin admin removes it from the twin’s LTI Contexts list; the next launch shows this screen again.
Click + Digital Twin to create a new, personalized Digital Twin. In the New Digital Twin dialog, enter:
A name for your twin (for example, Bob)
A picture URL that is publicly accessible on the internet (no CORS restrictions)
Create a new Digital Twin
Click Let’s GO! to finish. Pria then shows Confirm it’s you: select Send me a code and type the code emailed to you — this makes you the new twin’s administrator — and you land in your new Digital Twin.
Anytime you or your students open Pria in this course, they’ll open this Digital Twin directly. When you place Pria in another course, the onboarding wizard again offers to reuse an existing twin or create a new one.
The connection screen also has a Hide Pria in this course card: students no longer see Pria in the course, and teachers can select Show Pria in this course to bring it back.
Students see “Pria is not available in this course right now. Ask your teacher.” Teachers see This course’s Digital Twin is disabled with two buttons:
Disconnect this Digital Twin from the course — then reload and connect the course to another twin.
Hide Pria in this course.
When the twin is blocked because its whole account is disabled, only Hide Pria in this course is offered; ask the Praxis AI team at humans@praxis-ai.com.
Open the Personalization and AI Models tab to customize your Digital Twin’s behavior, system prompt, and available models. Click Update to save your changes.For the full reference, see the Personalization documentation.
Students are automatically added to your Digital Twin once you’ve placed Pria in the course, launched it, and completed the connection wizard for the first time. If a student opens Pria before a twin has been connected, a message asks them to have a teacher or administrator set it up.Admin accounts may first see Confirm it’s you and enter a one-time code; students are not asked. See More security for LMS login.
LTI launches require third-party cookies. In Incognito/Private mode, or when cookies are blocked, the launch may fail with a cookie-related error. Allow third-party cookies (or add an exception for pria.praxislxp.com) and retry.
Verify the Redirect URIs are registered exactly as shown. Check for trailing slashes or typos.
Pria doesn’t appear in a course
Confirm the app’s availability is set to Available (Dynamic Registration) or the Developer Key is ON (Manual). Verify the tool was installed at the correct account level.
”Unregistered” or “Unknown Client” errors
Confirm the Client ID in Canvas matches the registered tool, and that the registration URL is correct.
Third-party cookie errors
LTI requires cookies. Allow third-party cookies (or add an exception for pria.praxislxp.com) and avoid Incognito/Private mode.
Students can’t access but faculty can
Ensure a Digital Twin has been connected to the course and is not disabled, Pria is not hidden in the course, the item is published, and availability isn’t restricted by an exception.
Deep linking (adding Pria from the module editor) not creating content
Verify the Link Selection placement is enabled and the course allows external-tool content in modules.
Custom parameters not passing
For manual registration, ensure custom fields are set in the Developer Key JSON, not only on the External Tool config.
Test launches in a normal browser window first. If it works there but fails in Incognito, the issue is cookie-related.
Configure your Digital Twin to call Canvas APIs for course-aware responses.
Configure Your Digital Twin
Customize AI behavior, system prompts, and available tools.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"praxis-ai","description":"Pria is an AI-powered digital twin that transforms human expertise into scalable, intelligent assistants for organizations across industries. Originally designed for education, Pria has evolved into a comprehensive middleware solution that captures, preserves, and amplifies institutional knowledge through personalized AI assistants.Pria seamlessly integrates into existing workflows - from learning management systems like Canvas and Moodle to enterprise platforms, websites, and business applications - providing 24/7 expert guidance for complex decision-making, knowledge transfer, and operational excellence. Powered by advanced orchestration technology, Pria leverages multiple Large Language Models (Claude, GPT-5, Gemini, Grok) and natural language processing to create human-like digital twins that understand context, maintain conversation continuity, and execute sophisticated agentic workflows through custom assistant personas.","colors":{"primary":"#5011FD","light":"#9B7BFF","dark":"#5011FD"},"logo":{"light":"https://mintcdn.com/praxisai/6nkK9KsHziJK7eUJ/images/logo/light.svg?fit=max\u0026auto=format\u0026n=6nkK9KsHziJK7eUJ\u0026q=85\u0026s=5d438417be87dbcd1a5749d3173410fc","dark":"https://mintcdn.com/praxisai/6nkK9KsHziJK7eUJ/images/logo/dark.svg?fit=max\u0026auto=format\u0026n=6nkK9KsHziJK7eUJ\u0026q=85\u0026s=86b4975deee6dc59be3442353e2c9e72"},"favicon":"https://mintcdn.com/praxisai/V04kWbMpKOdRS_h5/images/favicon.svg?fit=max\u0026auto=format\u0026n=V04kWbMpKOdRS_h5\u0026q=85\u0026s=0e8c7ce7a5d6b58089449c3d8e687b28","navbar":{"links":[{"href":"https://docs.praxis-ai.com/mdx/contact-support","label":"Support"}],"primary":{"type":"button","label":"Request a Demo","href":"https://praxis-ai.com/contact/"}},"footer":{"socials":{"bluesky":"https://bsky.app/profile/praxis-ai.bsky.social","instagram":"https://www.instagram.com/praxis_ai","x":"https://x.com/AiPraxis","github":"https://gitlab.com/praxis-ai","linkedin":"https://linkedin.com/company/praxis-ai"}},"banner":{"content":"Important update for Canvas users: more security for Canvas login — [read what changes](/mdx/user-guide/lms/canvas-login-security)","dismissible":true},"errors":{"404":{"redirect":true,"title":"Page Not Found","description":"Not Found. Redirecting you to the [Welcome page](/mdx/introduction/welcome)..."}},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Innovations Hub","icon":"newspaper","href":"https://praxis-ai.com/innovation-hub/"},{"anchor":"Community Gitlab","icon":"gitlab","href":"https://gitlab.com/praxis-ai/pria-client-sdk"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"praxisai","hasAudioNarration":false,"actualSubdomain":"praxisai","customDomains":["docs.praxis-ai.com"],"gitSource":{"type":"gitlab","owner":"praxis-ai","repo":"pria-documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"projectId":71806583,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae32493aca55928ae6bf7ff","collectionId":"837e0a23-e61b-4e57-9fb5-d184faf0d25a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae32493aca55928ae6bf7ff"},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ae32493aca55928ae6bf7ff","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Developer","count":478},{"language":"default","tag":"Runtime API","count":300},{"language":"default","tag":"Administrator API","count":147},{"language":"default","tag":"Admin","count":52},{"language":"default","tag":"Power User","count":33},{"language":"default","tag":"User","count":31},{"language":"default","tag":"Connectors","count":26},{"language":"default","tag":"Presentations","count":26},{"language":"default","tag":"Agents","count":25},{"language":"default","tag":"User Profile","count":24}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"mdx/integrations/canvas/lti-1-3","slug":"/mdx/integrations/canvas/lti-1-3","pageMetadata":{"title":"LTI 1.3 for Canvas","description":"Install Pria in Canvas as an LTI Advantage tool with Dynamic Registration or a Developer Key, and place it in your courses.","icon":"globe","keywords":["Canvas","Canvas LTI","install Pria in Canvas","LTI","LTI 1.3","LTI Advantage","Dynamic Registration","Developer Key","Instructure","LMS"],"href":"/mdx/integrations/canvas/lti-1-3"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Install Pria in Canvas as an LTI Advantage tool with Dynamic Registration or a Developer Key, and place it in your courses.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,hr:`hr`,input:`input`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,CodeBlock,Frame,Heading,Note,OptimizedImage,Step,Steps,Table,Tip,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`introduction`,children:`Introduction`}),`\n`,_jsxs(_components.p,{children:[`Canvas supports `,_jsx(_components.strong,{children:`Dynamic Registration`}),` for LTI Advantage tools — a streamlined, one-step way to register an external tool. Praxis AI uses it to offer a simplified onboarding experience for the Pria LTI tool.`]}),`\n`,_jsx(_components.p,{children:`The result is two roles, two simple tasks:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Administrators`}),` register Pria as an LTI tool in a single guided flow, and`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Faculty`}),` place Pria in their courses and connect each course to a Digital Twin.`]}),`\n`]}),`\n`,_jsxs(Note,{children:[`An administrator only needs to register Pria `,_jsx(_components.strong,{children:`once`}),` per Canvas instance. After that, faculty can add Pria to any course.`]}),`\n`,_jsx(_components.p,{children:`This page covers both registration methods, then how faculty place and configure Pria in a course.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Method`}),_jsx(_components.th,{children:`Best for`}),_jsx(_components.th,{children:`Effort`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Dynamic Registration`}),` (recommended)`]}),_jsx(_components.td,{children:`Most institutions — fastest path, default placements`}),_jsx(_components.td,{children:`10–15 min`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Manual Registration`})}),_jsxs(_components.td,{children:[`Pinning a specific Digital Twin or fine-grained control of placements (e.g. `,_jsx(_components.code,{children:`top_navigation`}),`)`]}),_jsx(_components.td,{children:`20–30 min`})]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsx(_components.p,{children:`Before you begin, ensure you have:`}),`\n`,_jsxs(_components.ul,{className:`contains-task-list`,children:[`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,_jsx(_components.strong,{children:`Canvas admin access`}),` for the account where Pria will be installed`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,_jsx(_components.strong,{children:`Permission to register external LTI tools`}),` at your institution`]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,_jsx(_components.strong,{children:`A valid account`}),` at `,_jsx(_components.a,{href:`https://pria.praxislxp.com`,children:`pria.praxislxp.com`})]}),`\n`,_jsxs(_components.li,{className:`task-list-item`,children:[_jsx(_components.input,{type:`checkbox`,disabled:true}),` `,_jsx(_components.strong,{children:`Third-party cookies enabled`}),` in your browser (required for LTI launches)`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`dynamic-registration`,children:`Dynamic Registration`}),`\n`,_jsx(_components.p,{children:`This is the recommended method for most institutions. Canvas walks you through a guided wizard and registers Pria with sensible defaults.`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Open the Apps page`,children:[_jsxs(_components.p,{children:[`Log in to your Canvas instance, then go to `,_jsx(_components.strong,{children:`Admin → (your account) → Apps`}),` and select the `,_jsx(_components.strong,{children:`Manage`}),` tab. Click `,_jsx(_components.strong,{children:`Install a New App`}),` in the top-right corner.`]}),_jsx(Frame,{caption:`Admin → Apps → Manage → Install a New App`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-install.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=4e844047bc4b34065b3880066a85d9f5`,alt:`Canvas Apps Manage page with the Install a New App button`,\"data-og-width\":`1234`,width:`1234`,\"data-og-height\":`1105`,height:`1105`,\"data-path\":`images/integrations/canvas/lti/canvas-admin-apps-install.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-install.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=805191c5acbe277f35b43f37df10cdca 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-install.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=8f053f94b3013ed9ca944f34ec9330f3 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-install.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=1fd59bca8032361f013d282e22781b04 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-install.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=e149445f4c48819337b95c5b7be85441 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-install.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=946b7112210123b266d3d19e13d08c2c 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-install.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=aa38143cc8a4caafbe639029918942ca 2500w`})})]}),_jsxs(Step,{title:`Choose Dynamic Registration`,children:[_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Install App`}),` dialog:`]}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Under `,_jsx(_components.strong,{children:`Select LTI Version`}),`, choose `,_jsx(_components.strong,{children:`1.3`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Set `,_jsx(_components.strong,{children:`Install Method`}),` to `,_jsx(_components.strong,{children:`Dynamic Registration`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`In `,_jsx(_components.strong,{children:`Dynamic Registration URL`}),`, enter:`]}),`\n`]}),_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://pria.praxislxp.com/lti/register`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),_jsx(Frame,{caption:`Select LTI 1.3 and Dynamic Registration, then enter the registration URL`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-dynareg.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=7a807d539000e7e67605d6c96176902d`,alt:`Install App dialog with LTI 1.3, Dynamic Registration, and the Pria registration URL`,\"data-og-width\":`1069`,width:`1069`,\"data-og-height\":`796`,height:`796`,\"data-path\":`images/integrations/canvas/lti/canvas-admin-apps-dynareg.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-dynareg.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=456db9676846960dc86064609ca7a6fc 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-dynareg.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=595dfe6220c0b3ec65d6da687c9d5918 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-dynareg.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=1831730483860ed3d333cd3c2b023bc6 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-dynareg.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=75f7701b5636568c7d03ce71ecc9aea8 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-dynareg.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=8b32174d37476fefe60674e8a02c4315 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-dynareg.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=de696d216f87c6b3a079c85022d03dc8 2500w`})}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Next`}),` to begin the LTI Advantage registration.`]})]}),_jsxs(Step,{title:`Review permissions`,children:[_jsx(_components.p,{children:`Pria requests the gradebook and roster permissions it needs to operate. The recommended defaults are pre-selected.`}),_jsx(Frame,{caption:`Pria's requested permissions, with recommended defaults pre-selected`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-permissions.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=788283e328dfc98a3f0ea1bf27356a77`,alt:`Permissions step listing the actions Pria can perform`,\"data-og-width\":`1072`,width:`1072`,\"data-og-height\":`808`,height:`808`,\"data-path\":`images/integrations/canvas/lti/canvas-admin-apps-permissions.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-permissions.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=0485959fcecb761f6cb1e9db724e0d8a 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-permissions.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=21b743d37975015cdb6a22ed1f523292 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-permissions.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=6950680ed6bda99a97baeaad0ecee8df 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-permissions.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=6afb6874f7b7b678e5eac65688824b4c 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-permissions.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=172e61558b3e589dd9082875bd489127 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-permissions.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=92e31c45efb6b72954aa952df79fd502 2500w`})}),_jsxs(_components.p,{children:[`Leave the defaults and click `,_jsx(_components.strong,{children:`Next`}),`.`]}),_jsx(Tip,{children:`Altering these defaults can affect Pria’s behavior. Only change them if you have a specific reason.`})]}),_jsxs(Step,{title:`Confirm data sharing`,children:[_jsxs(_components.p,{children:[`Choose what user data is shared with Pria. The default, `,_jsx(_components.strong,{children:`All user data`}),`, includes Canvas ID, name, SIS ID, avatar, and email address.`]}),_jsx(Frame,{caption:`Data Sharing step — All user data is the default`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-datasharing.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=20a4acb6d9db82329c8026c3eb1ad1c5`,alt:`Data Sharing step with the user-data dropdown`,\"data-og-width\":`1308`,width:`1308`,\"data-og-height\":`804`,height:`804`,\"data-path\":`images/integrations/canvas/lti/canvas-admin-apps-datasharing.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-datasharing.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=2670a8355c676b8135c0a6893eabb20b 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-datasharing.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=206d214c08dcda97a7feda88544bc19d 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-datasharing.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=22635892573acb18eb17a34dff5c8e89 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-datasharing.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=89249412fa5a78fac14251ec871cf0a8 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-datasharing.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=966164782a67c47e11ea78bcfab26a69 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-datasharing.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=50a4a401aa80e34de913a715ffeb3051 2500w`})}),_jsxs(_components.p,{children:[`Leave the default and click `,_jsx(_components.strong,{children:`Next`}),`.`]})]}),_jsxs(Step,{title:`Select placements`,children:[_jsx(_components.p,{children:`Placements control where Pria can be accessed from in Canvas. We recommend enabling:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Placement`}),_jsx(_components.th,{children:`Recommendation`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Course Navigation`})}),_jsx(_components.td,{children:`✅ Recommended — Pria appears in the course sidebar`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Link Selection`})}),_jsx(_components.td,{children:`✅ Recommended — lets faculty embed Pria in modules`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Account Navigation`})}),_jsx(_components.td,{children:`Optional`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Top Navigation`})}),_jsx(_components.td,{children:`Optional — opens Pria in a drawer`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Page Menu`})}),_jsx(_components.td,{children:`Optional`})]})]})]}),_jsx(Frame,{caption:`Choose where Pria may be accessed from`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-placements.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=29207a9a9e763bd140c25a78691bdeff`,alt:`Placements step with selectable checkboxes`,\"data-og-width\":`1069`,width:`1069`,\"data-og-height\":`807`,height:`807`,\"data-path\":`images/integrations/canvas/lti/canvas-admin-apps-placements.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-placements.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=609c6e8a96ea4942e2aa3899b0d9f506 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-placements.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=bdd0ace61560d87f0248cc52d9f5e2a9 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-placements.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=9709e4e0bfb741921a8737b966bcebce 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-placements.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=dc1985c32f0a67c0c56783cd3ef974a4 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-placements.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=37e9ec5ade6c1038a2a18d568f00ae41 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-placements.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=6a0353c84ee6e5f59c7c6f28f71b75ce 2500w`})}),_jsxs(_components.p,{children:[`Adjust the selection to suit your institution and click `,_jsx(_components.strong,{children:`Next`}),`.`]})]}),_jsxs(Step,{title:`Set the nickname`,children:[_jsxs(_components.p,{children:[`Give the tool an `,_jsx(_components.strong,{children:`Administration Nickname`}),` (the label shown next to the app’s name in Canvas) and an optional description. You can also rename each placement.`]}),_jsx(Frame,{caption:`Nickname and description for the Pria tool`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-nicknames.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=4c281e0e3ed3455ef56fc8d68232c81f`,alt:`Nickname step with the Administration Nickname and Description fields`,\"data-og-width\":`1229`,width:`1229`,\"data-og-height\":`805`,height:`805`,\"data-path\":`images/integrations/canvas/lti/canvas-admin-apps-nicknames.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-nicknames.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=dc987530e8ba81740bad93d11218ee70 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-nicknames.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=0c3afdeb18a2c43ac4258b695144a622 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-nicknames.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=98514ea0a16b78320edec1f450bcad11 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-nicknames.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=27fc0978bd0f3148b61ab090bf737237 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-nicknames.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=d03f001f4efff0ff6f843220dea3eb19 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-nicknames.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=91ed62bbd56d2a856aebbeb09f37f9ef 2500w`})}),_jsx(Tip,{children:`This is the administrative label. When faculty place Pria in a course, they can give that placement its own name, independent of the nickname you set here.`}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Next`}),`.`]})]}),_jsxs(Step,{title:`Set icons (optional)`,children:[_jsxs(_components.p,{children:[`Optionally set a `,_jsx(_components.strong,{children:`Tool Icon URL`}),` and per-placement icons. The defaults point to Pria’s logo.`]}),_jsx(Frame,{caption:`Tool icon and per-placement icon URLs`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-icons.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=06d1bdb4f7f7e99395fa8326b79f2b23`,alt:`Icons step with the Tool Icon URL field`,\"data-og-width\":`1188`,width:`1188`,\"data-og-height\":`811`,height:`811`,\"data-path\":`images/integrations/canvas/lti/canvas-admin-apps-icons.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-icons.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=f32b7a2af062b58068f1296ec34112a6 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-icons.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=596b12aa9d75bfb23145ebd40fc75950 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-icons.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=a303ef1ef4ae145ee1a2d9a9866033af 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-icons.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=9fd936501a3b501c99828adedd9f1304 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-icons.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=c788548bbab3f873890f5f4267b60261 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-icons.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=fc1cd2db28e8af7c322d53f79d25162c 2500w`})}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Next`}),`.`]})]}),_jsxs(Step,{title:`Review and install`,children:[_jsx(_components.p,{children:`Review your permissions, data sharing, and placements. Use the pencil icons to jump back and edit any section.`}),_jsx(Frame,{caption:`Review step summarizing the registration`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-review.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=137839ee8b71aae1a1e21532b0b83dfc`,alt:`Review step with editable sections`,\"data-og-width\":`1066`,width:`1066`,\"data-og-height\":`805`,height:`805`,\"data-path\":`images/integrations/canvas/lti/canvas-admin-apps-review.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-review.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=7c9e868cfaf29a3bad30c329fe42e74e 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-review.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=8cf1fe00aa51dde2b62f41dda3c4e426 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-review.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=220417a153577a7b095f404b650dc2a3 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-review.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=047fa9b1140333a4c217e618f1b2f551 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-review.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=5eee637e21d1738d9988826367e2250e 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-review.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=285e0fdfb4ea1df1c034112de29d2330 2500w`})}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Install App`}),` to finish registration.`]})]}),_jsxs(Step,{title:`Make Pria available`,children:[_jsxs(_components.p,{children:[`Pria installs as `,_jsx(_components.strong,{children:`Not Available`}),` — it won’t appear to faculty until you enable it. On the app’s `,_jsx(_components.strong,{children:`Availability and Exceptions`}),` tab, click the `,_jsx(_components.strong,{children:`pencil (edit)`}),` icon next to `,_jsx(_components.em,{children:`Installed in (your account)`}),`.`]}),_jsx(Frame,{caption:`The installed app, still marked Not Available`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-enable.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=a3d3657a4683c66a279d3f3cfac61e96`,alt:`App detail card showing the Not Available status and Add Exception button`,\"data-og-width\":`1081`,width:`1081`,\"data-og-height\":`967`,height:`967`,\"data-path\":`images/integrations/canvas/lti/canvas-admin-apps-enable.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-enable.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=f7bb262abe8daf45b16c6fb4280c229f 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-enable.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=aa603392f40da24bddac17a43d3707a8 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-enable.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=b29d5b5ac7aa63a4ac34a6b0500eca39 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-enable.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=8b8bf5b2db215bc7be160bcf3e76d4c9 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-enable.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=eadde24d13fc240674331376044c3300 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-enable.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=6dc65b6f5dd2a6e392bcc1fd83a7b231 2500w`})}),_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Edit Exception`}),` dialog, change the status from `,_jsx(_components.strong,{children:`Not Available`}),` to `,_jsx(_components.strong,{children:`Available`}),`, then click `,_jsx(_components.strong,{children:`Save`}),`. This makes Pria available across your child sub-accounts and courses.`]}),_jsx(Frame,{caption:`Change Not Available → Available, then Save`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-exceptions.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=fc98dd933507d54c9778401a8c6c4b0c`,alt:`Edit Exception dialog changing availability to Available`,\"data-og-width\":`1183`,width:`1183`,\"data-og-height\":`832`,height:`832`,\"data-path\":`images/integrations/canvas/lti/canvas-admin-apps-exceptions.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-exceptions.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=8f0c7c82360bdf89358210c68566ddfb 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-exceptions.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=518ee99bd48225fd5b8771fb6a908e43 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-exceptions.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=9e49908b1cde7b4eee6497d07b592c5a 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-exceptions.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=6c1dbcebe574baba94b48fc634b9255b 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-exceptions.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=d7148364a6a22737ece9a0431d3e3a23 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-exceptions.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=a3851bce94e4fc229f65658715aff47b 2500w`})}),_jsxs(Tip,{children:[`Use `,_jsx(_components.strong,{children:`Add Exception`}),` if you’d rather enable Pria for specific sub-accounts or courses instead of the whole account.`]})]}),_jsxs(Step,{title:`Confirm installation`,children:[_jsxs(_components.p,{children:[`The app now shows `,_jsx(_components.strong,{children:`Available`}),`, along with its Deployment ID and active placements. Pria is registered and ready for faculty to use.`]}),_jsx(Frame,{caption:`Pria installed and available`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-installed.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=28ce9025b0104370d842ac31ad91544d`,alt:`App card showing Available status, Deployment ID, and placements`,\"data-og-width\":`745`,width:`745`,\"data-og-height\":`304`,height:`304`,\"data-path\":`images/integrations/canvas/lti/canvas-admin-apps-installed.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-installed.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=90e61697bc91dfb0d5bdba14d363a19b 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-installed.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=d2d5b8c6eeae8c01505a6a10b0b4613d 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-installed.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=27be3ef934d585b9280ab79a7bd17215 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-installed.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=d0db8cd2cab9bc2967a04bfff6c522b9 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-installed.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=0e99fbdc06c426bcfbe1780c4de21a35 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-admin-apps-installed.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=ac964fe84fea28dc491ea7e276b35b2f 2500w`})})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`manual-registration`,children:`Manual Registration`}),`\n`,_jsxs(Warning,{children:[`Canvas does not allow adding placements or editing custom properties after a tool is installed through `,_jsx(_components.strong,{children:`Dynamic Registration`}),`. Use Manual Registration when you need that control up front.`]}),`\n`,_jsx(_components.p,{children:`Choose manual registration when you want to:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pin a specific Digital Twin`}),` by setting a `,_jsx(_components.code,{children:`priainstitutionid`}),`, or`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Control placements precisely`}),` — for example, to use the `,_jsx(_components.code,{children:`top_navigation`}),` placement, which opens Pria in a drawer similar to a wiki page.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`create-the-developer-key`,children:`Create the developer key`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Developer Keys`,children:_jsxs(_components.p,{children:[`Log in to Canvas and go to `,_jsx(_components.strong,{children:`Admin → (your account) → Developer Keys`}),`.`]})}),_jsx(Step,{title:`Add an LTI key`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`+ Developer Key`}),` and select `,_jsx(_components.strong,{children:`+ LTI Key`}),`.`]})}),_jsxs(Step,{title:`Configure the key`,children:[_jsx(_components.p,{children:`Fill in the key settings:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Key Name:`}),` `,_jsx(_components.code,{children:`Pria LTI`})]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Owner Email:`}),` your admin email`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Redirect URIs:`})}),`\n`,_jsx(CodeBlock,{numberOfLines:`4`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://pria.praxislxp.com/lti`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://pria.praxislxp.com/lti/resources`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`https://pria.praxislxp.com/lti/launch`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Method`}),` dropdown, select `,_jsx(_components.strong,{children:`Paste JSON`}),`, then paste the configuration below into the `,_jsx(_components.strong,{children:`LTI 1.3 Configuration`}),` field. The `,_jsx(_components.code,{children:`scopes`}),` in it are what you are granting Pria: the `,_jsx(_components.code,{children:`lti-ags`}),` entries let it read and write gradebook entries and scores, `,_jsx(_components.code,{children:`contextmembership.readonly`}),` lets it read the course roster, and the three `,_jsx(_components.code,{children:`canvas.instructure.com`}),` entries let Canvas and Pria keep the signing key, account lookup and grade-progress checks in sync.`]}),`\n`]}),`\n`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`68`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`68`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Pria LTI\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"scopes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://purl.imsglobal.org/spec/lti-ags/scope/lineitem\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://purl.imsglobal.org/spec/lti-ags/scope/lineitem.readonly\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://purl.imsglobal.org/spec/lti-ags/scope/result.readonly\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://purl.imsglobal.org/spec/lti-ags/scope/score\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://canvas.instructure.com/lti/public_jwk/scope/update\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://canvas.instructure.com/lti/account_lookup/scope/show\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://canvas.instructure.com/lti-ags/progress/scope/show\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"extensions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"domain\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"praxislxp.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"platform\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"canvas.instructure.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"settings\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Pria LTI\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"icon_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://pria.praxislxp.com/logo192.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"platform\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"canvas.instructure.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"placements\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Pria LTI\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"icon_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://pria.praxislxp.com/logo192.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"placement\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"account_navigation\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"LtiResourceLinkRequest\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"target_link_uri\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://pria.praxislxp.com\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Manual Pria LTI\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"icon_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://pria.praxislxp.com/logo192.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"placement\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"link_selection\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"LtiDeepLinkingRequest\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"target_link_uri\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://pria.praxislxp.com/lti\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Manual Pria LTI\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"icon_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://pria.praxislxp.com/logo192.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"placement\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"wiki_page_menu\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"LtiResourceLinkRequest\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"target_link_uri\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://pria.praxislxp.com/lti\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Manual Pria LTI\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"icon_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://pria.praxislxp.com/logo192.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"placement\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"top_navigation\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"LtiResourceLinkRequest\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"target_link_uri\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://pria.praxislxp.com/lti/launch\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"privacy_level\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"public\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Praxis-AI, Pria LTI\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"custom_fields\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"priainstitutionid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"f831501f-b645-481a-9cbb-331509aa....\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"userid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"$Canvas.user.id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"courseid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"$Canvas.course.id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"coursename\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"$Canvas.course.name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"partnerid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"$Canvas.account.id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"partnername\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"$Canvas.account.name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"accountglobalid\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"$Canvas.root_account.global_id\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"public_jwk_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://pria.praxislxp.com/lti/keys\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"target_link_uri\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://pria.praxislxp.com/lti\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"oidc_initiation_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://pria.praxislxp.com/lti/login\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsxs(Note,{children:[`Set `,_jsx(_components.code,{children:`priainstitutionid`}),` to the Digital Twin’s Public ID to always open that twin (`,_jsx(_components.code,{children:`institution`}),` is the API’s word for a Digital Twin). To let faculty connect a Digital Twin during onboarding instead, delete the `,_jsx(_components.code,{children:`priainstitutionid`}),` line.`]})]}),_jsx(Step,{title:`Save and copy the Client ID`,children:_jsxs(_components.p,{children:[`Toggle back to `,_jsx(_components.strong,{children:`Manual Entry`}),` to confirm the placements — you’ll now see `,_jsx(_components.code,{children:`top_navigation`}),` listed. Save the key, then `,_jsx(_components.strong,{children:`copy its Client ID`}),` (for example, `,_jsx(_components.code,{children:`243790000000000223`}),`). You’ll need it in the next section.`]})})]}),`\n`,_jsxs(Tip,{children:[`A complete walkthrough of the manual setup is also available in this `,_jsx(_components.a,{href:`https://docs.google.com/document/d/1-HSJTOIjg9C5LFIVeO0bw_Ntnc0rOyKe9I-5djf8L3M/edit?usp=sharing`,children:`Google Doc`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`install-the-app-from-the-client-id`,children:`Install the app from the Client ID`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the Apps page`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Admin → (your account) → Settings → Apps`}),`, then click `,_jsx(_components.strong,{children:`+ App`}),`.`]})}),_jsx(Step,{title:`Add by Client ID`,children:_jsxs(_components.p,{children:[`In the `,_jsx(_components.strong,{children:`Add App`}),` dialog, set `,_jsx(_components.strong,{children:`Configuration Type`}),` to `,_jsx(_components.strong,{children:`By Client ID`}),`, paste the `,_jsx(_components.strong,{children:`Client ID`}),` you copied above, and click `,_jsx(_components.strong,{children:`Submit`}),`. Canvas finds the matching LTI app — click `,_jsx(_components.strong,{children:`Install`}),` to confirm.`]})})]}),`\n`,_jsxs(Note,{children:[`If you reinstall Pria, Canvas shows a confirmation dialog. Click `,_jsx(_components.strong,{children:`Install`}),` to add the new installation — it supports the Digital Twin onboarding workflow and is independent of any previous install.`]}),`\n`,_jsx(_components.p,{children:`Your Pria LTI application is now installed. It can take a few minutes for Canvas to make it available as a placement.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`place-pria-in-your-course`,children:`Place Pria in your course`}),`\n`,_jsxs(_components.p,{children:[`This section is for `,_jsx(_components.strong,{children:`faculty`}),`, and assumes an administrator has already registered Pria using one of the methods above.`]}),`\n`,_jsxs(_components.p,{children:[`From your `,_jsx(_components.strong,{children:`Dashboard`}),`, open the course where you want to add Pria.`]}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Add an item to a module`,children:[_jsxs(_components.p,{children:[`Inside a module, click the `,_jsx(_components.strong,{children:`+`}),` button to add an item. In the `,_jsx(_components.strong,{children:`Add Item to Module`}),` dialog, set the dropdown to `,_jsx(_components.strong,{children:`External Tool`}),`, then select `,_jsx(_components.strong,{children:`Pria`}),` from the list of tools.`]}),_jsx(Frame,{caption:`Add an External Tool item and choose Pria`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-addtool.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=a4eac74b997560b11c4b84194b0f3a2f`,alt:`Add Item to Module dialog with External Tool selected`,\"data-og-width\":`1068`,width:`1068`,\"data-og-height\":`765`,height:`765`,\"data-path\":`images/integrations/canvas/lti/canvas-course-module-addtool.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-addtool.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=c5253bcdfa9a8e4af84709d262624111 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-addtool.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=f614d018f69338f0880acecf8616915f 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-addtool.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=d738a6e4f0b57567ae45ef93ec03ae07 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-addtool.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=2ff8c0cf1293c5ec68437d344040023c 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-addtool.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=b2a9de1b38d9cdc862138351cbf51a31 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-addtool.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=97b0208fc25f9976e50c2e043836ab03 2500w`})})]}),_jsxs(Step,{title:`Embed Pria`,children:[_jsxs(_components.p,{children:[`Pria opens its `,_jsx(_components.strong,{children:`Link Resource from External Tool`}),` card. Click `,_jsx(_components.strong,{children:`Embed in your course`}),` to create the link.`]}),_jsx(Frame,{caption:`The Pria embed card`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-linkresource.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=958ba71d53a0a7337f1d0b8169349ff9`,alt:`Link Resource from External Tool card with Embed in your course button`,\"data-og-width\":`1116`,width:`1116`,\"data-og-height\":`559`,height:`559`,\"data-path\":`images/integrations/canvas/lti/canvas-course-module-linkresource.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-linkresource.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=0cf9e82acfa156973cacd65530095ebf 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-linkresource.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=7bff5b3bcc83ff35789a992910b35661 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-linkresource.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=51b9bebd020df94460d3bdbebc2074b6 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-linkresource.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=cab31028c3f4837074abc5664a446416 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-linkresource.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=8c473820c955ad9e84c1ba0bab26a5bb 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-linkresource.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=05a644d0d6305e7eb9478b5c39314a27 2500w`})})]}),_jsxs(Step,{title:`Name and add the item`,children:[_jsxs(_components.p,{children:[`Back in the `,_jsx(_components.strong,{children:`Add Item to Module`}),` dialog, give the placement a page name (for example, `,_jsx(_components.em,{children:`Professor Cantu`}),`), then click `,_jsx(_components.strong,{children:`Add Item`}),`.`]}),_jsx(Frame,{caption:`Name the placement and add it to the module`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-add.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=d836f4259685c7712a1d7e041d21b644`,alt:`Add Item dialog with the page name and Add Item button`,\"data-og-width\":`1179`,width:`1179`,\"data-og-height\":`754`,height:`754`,\"data-path\":`images/integrations/canvas/lti/canvas-course-module-add.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-add.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=8d5cf4846e9fa00501d3875fc4f0fe3a 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-add.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=79aeaf7dab77018ff889928e72d2ffa1 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-add.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=a6658dd577e702344200166b8af00750 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-add.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=be38ab640042c1ea8d8703c65d63e4fc 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-add.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=bbcc14648733a58b1ae6cb3ac5385a47 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-module-add.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=273f63cf5d569b7a08d8a668ed8bb53c 2500w`})})]})]}),`\n`,_jsx(_components.p,{children:`Pria now appears in your module. Click it to launch. Pria opens inline unless your placement is configured to launch in a separate window.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`connect-a-digital-twin`,children:`Connect a Digital Twin`}),`\n`,_jsxs(_components.p,{children:[`The first time an admin or instructor launches Pria in a course, it shows `,_jsx(_components.strong,{children:`Let’s get you connected`}),`. If your account is already associated with one or more Digital Twins, you can connect an existing twin or create a new one.`]}),`\n`,_jsx(Frame,{caption:`Connect an existing Digital Twin or create a new one`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-twin-selector.png?fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=c21e4d0db8114d2f2a14e077ea266982`,alt:`Let's get you connected screen listing existing Digital Twins and a + Digital Twin button`,\"data-og-width\":`1400`,width:`1400`,\"data-og-height\":`1298`,height:`1298`,\"data-path\":`images/integrations/canvas/lti/canvas-course-twin-selector.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-twin-selector.png?w=280\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=7b8c502457630ff4ec48c6ee21f8d99d 280w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-twin-selector.png?w=560\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=06e9dec4a8aa896befc6a41ca250ffca 560w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-twin-selector.png?w=840\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=101592184913c00bea297e4edcd57b20 840w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-twin-selector.png?w=1100\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=ffb0fc0e6a13414412dd19a4ffbca68d 1100w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-twin-selector.png?w=1650\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=c32888f92cb94a43ddb31cf3e1d19434 1650w, https://mintcdn.com/praxisai/MYvJPjU8SmwcqWTE/images/integrations/canvas/lti/canvas-course-twin-selector.png?w=2500\u0026fit=max\u0026auto=format\u0026n=MYvJPjU8SmwcqWTE\u0026q=85\u0026s=01cfc6537ce0e476543191896c75b332 2500w`})}),`\n`,_jsx(Heading,{level:`3`,id:`use-an-existing-twin`,children:`Use an existing twin`}),`\n`,_jsx(_components.p,{children:`Select any Digital Twin from the list to connect it to this course. Every Pria placement in the course then opens that twin.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`A course connects to `,_jsx(_components.strong,{children:`one`}),` Digital Twin. A course that another active twin already uses is refused with “This course is already connected to another Digital Twin”. To switch twins later, a teacher or administrator of the twin unlinks the course from `,_jsx(_components.strong,{children:`Your Profile › Canvas / LTI`}),` (see `,_jsx(_components.a,{href:`/mdx/user-guide/lms/faculty-onboarding#unlinking-a-digital-twin`,children:`Faculty Onboarding`}),`), or a Digital Twin admin removes it from the twin’s `,_jsx(_components.strong,{children:`LTI Contexts`}),` list; the next launch shows this screen again.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`create-a-new-twin`,children:`Create a new twin`}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`+ Digital Twin`}),` to create a new, personalized Digital Twin. In the `,_jsx(_components.strong,{children:`New Digital Twin`}),` dialog, enter:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.strong,{children:`name`}),` for your twin (for example, `,_jsx(_components.em,{children:`Bob`}),`)`]}),`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.strong,{children:`picture URL`}),` that is publicly accessible on the internet (no CORS restrictions)`]}),`\n`]}),`\n`,_jsx(Frame,{caption:`Create a new Digital Twin`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/praxisai/uR6JXzaIBuSxXgYI/images/integrations/canvas/lti/canvas-course-twin-create.png?fit=max\u0026auto=format\u0026n=uR6JXzaIBuSxXgYI\u0026q=85\u0026s=656716e7f87a7cb763396d499bcb5244`,alt:`New Digital Twin dialog with name and picture URL fields`,\"data-og-width\":`2163`,width:`2163`,\"data-og-height\":`1150`,height:`1150`,\"data-path\":`images/integrations/canvas/lti/canvas-course-twin-create.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/praxisai/uR6JXzaIBuSxXgYI/images/integrations/canvas/lti/canvas-course-twin-create.png?w=280\u0026fit=max\u0026auto=format\u0026n=uR6JXzaIBuSxXgYI\u0026q=85\u0026s=d9b21d2b022f92346b0155200be2ce57 280w, https://mintcdn.com/praxisai/uR6JXzaIBuSxXgYI/images/integrations/canvas/lti/canvas-course-twin-create.png?w=560\u0026fit=max\u0026auto=format\u0026n=uR6JXzaIBuSxXgYI\u0026q=85\u0026s=767f1b19a0ce51f309bc93750d8e2eef 560w, https://mintcdn.com/praxisai/uR6JXzaIBuSxXgYI/images/integrations/canvas/lti/canvas-course-twin-create.png?w=840\u0026fit=max\u0026auto=format\u0026n=uR6JXzaIBuSxXgYI\u0026q=85\u0026s=5617ca746514adba21748c7260161425 840w, https://mintcdn.com/praxisai/uR6JXzaIBuSxXgYI/images/integrations/canvas/lti/canvas-course-twin-create.png?w=1100\u0026fit=max\u0026auto=format\u0026n=uR6JXzaIBuSxXgYI\u0026q=85\u0026s=15713583ca13fb3cb280adaca070624c 1100w, https://mintcdn.com/praxisai/uR6JXzaIBuSxXgYI/images/integrations/canvas/lti/canvas-course-twin-create.png?w=1650\u0026fit=max\u0026auto=format\u0026n=uR6JXzaIBuSxXgYI\u0026q=85\u0026s=58e6245b2acd64e2a41b612ed236d066 1650w, https://mintcdn.com/praxisai/uR6JXzaIBuSxXgYI/images/integrations/canvas/lti/canvas-course-twin-create.png?w=2500\u0026fit=max\u0026auto=format\u0026n=uR6JXzaIBuSxXgYI\u0026q=85\u0026s=459683484d6628588e083200a614706a 2500w`})}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Let’s GO!`}),` to finish. Pria then shows `,_jsx(_components.strong,{children:`Confirm it’s you`}),`: select `,_jsx(_components.strong,{children:`Send me a code`}),` and type the code emailed to you — this makes you the new twin’s administrator — and you land in your new Digital Twin.`]}),`\n`,_jsx(Tip,{children:`Anytime you or your students open Pria in this course, they’ll open this Digital Twin directly. When you place Pria in another course, the onboarding wizard again offers to reuse an existing twin or create a new one.`}),`\n`,_jsx(Heading,{level:`3`,id:`hide-pria-in-a-course`,children:`Hide Pria in a course`}),`\n`,_jsxs(_components.p,{children:[`The connection screen also has a `,_jsx(_components.strong,{children:`Hide Pria in this course`}),` card: students no longer see Pria in the course, and teachers can select `,_jsx(_components.strong,{children:`Show Pria in this course`}),` to bring it back.`]}),`\n`,_jsx(Heading,{level:`3`,id:`if-the-course’s-digital-twin-is-disabled`,children:`If the course’s Digital Twin is disabled`}),`\n`,_jsxs(_components.p,{children:[`Students see “Pria is not available in this course right now. Ask your teacher.” Teachers see `,_jsx(_components.strong,{children:`This course’s Digital Twin is disabled`}),` with two buttons:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Disconnect this Digital Twin from the course`}),` — then reload and connect the course to another twin.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Hide Pria in this course`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`When the twin is blocked because its whole account is disabled, only `,_jsx(_components.strong,{children:`Hide Pria in this course`}),` is offered; ask the Praxis AI team at `,_jsx(_components.a,{href:`mailto:humans@praxis-ai.com`,children:`humans@praxis-ai.com`}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`personalize-your-twin`,children:`Personalize your twin`}),`\n`,_jsxs(_components.p,{children:[`Open the `,_jsx(_components.strong,{children:`Personalization and AI Models`}),` tab to customize your Digital Twin’s behavior, system prompt, and available models. Click `,_jsx(_components.strong,{children:`Update`}),` to save your changes.`]}),`\n`,_jsxs(_components.p,{children:[`For the full reference, see the `,_jsx(_components.a,{href:`/mdx/admin-guide/personalization`,children:`Personalization`}),` documentation.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`student-access`,children:`Student access`}),`\n`,_jsx(_components.p,{children:`Students are automatically added to your Digital Twin once you’ve placed Pria in the course, launched it, and completed the connection wizard for the first time. If a student opens Pria before a twin has been connected, a message asks them to have a teacher or administrator set it up.`}),`\n`,_jsxs(_components.p,{children:[`Admin accounts may first see `,_jsx(_components.strong,{children:`Confirm it’s you`}),` and enter a one-time code; students are not asked. See `,_jsx(_components.a,{href:`/mdx/user-guide/lms/canvas-login-security`,children:`More security for LMS login`}),`.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`LTI launches require `,_jsx(_components.strong,{children:`third-party cookies`}),`. In Incognito/Private mode, or when cookies are blocked, the launch may fail with a cookie-related error. Allow third-party cookies (or add an exception for `,_jsx(_components.code,{children:`pria.praxislxp.com`}),`) and retry.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Issue`}),_jsx(_components.th,{children:`Solution`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`”Invalid redirect” during launch`})}),_jsx(_components.td,{children:`Verify the Redirect URIs are registered exactly as shown. Check for trailing slashes or typos.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Pria doesn’t appear in a course`})}),_jsxs(_components.td,{children:[`Confirm the app’s availability is set to `,_jsx(_components.strong,{children:`Available`}),` (Dynamic Registration) or the Developer Key is `,_jsx(_components.strong,{children:`ON`}),` (Manual). Verify the tool was installed at the correct account level.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`”Unregistered” or “Unknown Client” errors`})}),_jsx(_components.td,{children:`Confirm the Client ID in Canvas matches the registered tool, and that the registration URL is correct.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Third-party cookie errors`})}),_jsxs(_components.td,{children:[`LTI requires cookies. Allow third-party cookies (or add an exception for `,_jsx(_components.code,{children:`pria.praxislxp.com`}),`) and avoid Incognito/Private mode.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Students can’t access but faculty can`})}),_jsx(_components.td,{children:`Ensure a Digital Twin has been connected to the course and is not disabled, Pria is not hidden in the course, the item is published, and availability isn’t restricted by an exception.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Deep linking (adding Pria from the module editor) not creating content`})}),_jsxs(_components.td,{children:[`Verify the `,_jsx(_components.strong,{children:`Link Selection`}),` placement is enabled and the course allows external-tool content in modules.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Custom parameters not passing`})}),_jsx(_components.td,{children:`For manual registration, ensure custom fields are set in the Developer Key JSON, not only on the External Tool config.`})]})]})]}),`\n`,_jsx(Tip,{children:`Test launches in a normal browser window first. If it works there but fails in Incognito, the issue is cookie-related.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`what’s-next`,children:`What’s next?`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Enable Canvas Tools`,icon:`wrench`,href:`/mdx/integrations/canvas/pria-tools`,children:_jsx(_components.p,{children:`Configure your Digital Twin to call Canvas APIs for course-aware responses.`})}),_jsx(Card,{title:`Configure Your Digital Twin`,icon:`sliders`,href:`/mdx/admin-guide/configuration`,children:_jsx(_components.p,{children:`Customize AI behavior, system prompts, and available tools.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"LTI 1.3 for Canvas","description":"Install Pria in Canvas as an LTI Advantage tool with Dynamic Registration or a Developer Key, and place it in your courses.","icon":"globe","keywords":["Canvas","Canvas LTI","install Pria in Canvas","LTI","LTI 1.3","LTI Advantage","Dynamic Registration","Developer Key","Instructure","LMS"],"href":"/mdx/integrations/canvas/lti-1-3"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Introduction","slug":"introduction","depth":2,"children":[]},{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Dynamic Registration","slug":"dynamic-registration","depth":2,"children":[]},{"title":"Manual Registration","slug":"manual-registration","depth":2,"children":[{"title":"Create the developer key","slug":"create-the-developer-key","depth":3,"children":[]},{"title":"Install the app from the Client ID","slug":"install-the-app-from-the-client-id","depth":3,"children":[]}]},{"title":"Place Pria in your course","slug":"place-pria-in-your-course","depth":2,"children":[]},{"title":"Connect a Digital Twin","slug":"connect-a-digital-twin","depth":2,"children":[{"title":"Use an existing twin","slug":"use-an-existing-twin","depth":3,"children":[]},{"title":"Create a new twin","slug":"create-a-new-twin","depth":3,"children":[]},{"title":"Hide Pria in a course","slug":"hide-pria-in-a-course","depth":3,"children":[]},{"title":"If the course’s Digital Twin is disabled","slug":"if-the-course’s-digital-twin-is-disabled","depth":3,"children":[]}]},{"title":"Personalize your twin","slug":"personalize-your-twin","depth":2,"children":[]},{"title":"Student access","slug":"student-access","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]},{"title":"What’s next?","slug":"what’s-next","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"praxisai","siteName":"praxis-ai","title":"LTI 1.3 for Canvas - praxis-ai","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T19:48:05.009Z","originalFileLocation":"mdx/integrations/canvas/lti-1-3.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Install Pria in Canvas as an LTI Advantage tool with Dynamic Registration or a Developer Key, and place it in your courses.\">\u003cmeta data-mint-head name=\"application-name\" content=\"praxis-ai\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/praxisai/XTh1KbQ9ZEBjlBJJ/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/praxisai/XTh1KbQ9ZEBjlBJJ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/praxisai/XTh1KbQ9ZEBjlBJJ/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/praxisai/XTh1KbQ9ZEBjlBJJ/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/praxisai/XTh1KbQ9ZEBjlBJJ/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/praxisai/XTh1KbQ9ZEBjlBJJ/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/praxisai/XTh1KbQ9ZEBjlBJJ/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/praxisai/XTh1KbQ9ZEBjlBJJ/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/praxisai/XTh1KbQ9ZEBjlBJJ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"LTI 1.3 for Canvas - praxis-ai\">\u003cmeta data-mint-head property=\"og:description\" content=\"Install Pria in Canvas as an LTI Advantage tool with Dynamic Registration or a Developer Key, and place it in your courses.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"praxis-ai\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.praxis-ai.com/mdx/integrations/canvas/lti-1-3\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://praxisai.mintlify.app/_mintlify/api/og/v2?division=LMS+Integrations\u0026amp;title=LTI+1.3+for+Canvas\u0026amp;description=Install+Pria+in+Canvas+as+an+LTI+Advantage+tool+with+Dynamic+Registration+or+a+Developer+Key%2C+and+place+it+in+your+courses.\u0026amp;theme=3e471d4a71780917dfd4dd5f\u0026amp;signature=590e0e6921da6b348117d9678b11d7f2008cd912395da9c18dbdec5af72a136d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"LTI 1.3 for Canvas - praxis-ai\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Install Pria in Canvas as an LTI Advantage tool with Dynamic Registration or a Developer Key, and place it in your courses.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://praxisai.mintlify.app/_mintlify/api/og/v2?division=LMS+Integrations\u0026amp;title=LTI+1.3+for+Canvas\u0026amp;description=Install+Pria+in+Canvas+as+an+LTI+Advantage+tool+with+Dynamic+Registration+or+a+Developer+Key%2C+and+place+it+in+your+courses.\u0026amp;theme=3e471d4a71780917dfd4dd5f\u0026amp;signature=590e0e6921da6b348117d9678b11d7f2008cd912395da9c18dbdec5af72a136d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/praxisai/XTh1KbQ9ZEBjlBJJ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"praxis-ai\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5011FD\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.praxis-ai.com/mdx/integrations/canvas/lti-1-3\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/mdx/integrations/canvas/lti-1-3.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.praxis-ai.com/#organization\",\"name\":\"praxis-ai\",\"url\":\"https://docs.praxis-ai.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/praxisai/6nkK9KsHziJK7eUJ/images/logo/light.svg?fit=max\u0026auto=format\u0026n=6nkK9KsHziJK7eUJ\u0026q=85\u0026s=5d438417be87dbcd1a5749d3173410fc\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.praxis-ai.com#website\",\"name\":\"praxis-ai\",\"url\":\"https://docs.praxis-ai.com\",\"publisher\":{\"@id\":\"https://docs.praxis-ai.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.praxis-ai.com/mdx/integrations/canvas/lti-1-3#webpage\",\"url\":\"https://docs.praxis-ai.com/mdx/integrations/canvas/lti-1-3\",\"name\":\"LTI 1.3 for Canvas\",\"description\":\"Install Pria in Canvas as an LTI Advantage tool with Dynamic Registration or a Developer Key, and place it in your courses.\",\"dateModified\":\"2026-10-28T19:48:05.009Z\",\"isPartOf\":{\"@id\":\"https://docs.praxis-ai.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.praxis-ai.com/mdx/integrations/canvas/lti-1-3#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.praxis-ai.com/mdx/integrations/canvas/lti-1-3#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"LMS Integrations\",\"item\":\"https://docs.praxis-ai.com/mdx/integrations/canvas/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"LTI 1.3 for Canvas\",\"item\":\"https://docs.praxis-ai.com/mdx/integrations/canvas/lti-1-3\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.praxis-ai.com/mdx/integrations/canvas/lti-1-3#article\",\"headline\":\"LTI 1.3 for Canvas\",\"name\":\"LTI 1.3 for Canvas\",\"description\":\"Install Pria in Canvas as an LTI Advantage tool with Dynamic Registration or a Developer Key, and place it in your courses.\",\"url\":\"https://docs.praxis-ai.com/mdx/integrations/canvas/lti-1-3\",\"mainEntityOfPage\":{\"@id\":\"https://docs.praxis-ai.com/mdx/integrations/canvas/lti-1-3#webpage\"},\"dateModified\":\"2026-10-28T19:48:05.009Z\",\"keywords\":\"Canvas, Canvas LTI, install Pria in Canvas, LTI, LTI 1.3, LTI Advantage, Dynamic Registration, Developer Key, Instructure, LMS\",\"publisher\":{\"@id\":\"https://docs.praxis-ai.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.praxis-ai.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"praxis-ai\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"praxis-ai","nav":{"global":{"anchors":[{"anchor":"Innovations Hub","icon":"newspaper","href":"https://praxis-ai.com/innovation-hub/"},{"anchor":"Community Gitlab","icon":"gitlab","href":"https://gitlab.com/praxis-ai/pria-client-sdk"}]},"tabs":[{"tab":"Overview","pages":[{"title":"Overview","href":"/mdx/introduction/welcome"}]},{"tab":"New User","pages":[{"title":"New User","href":"/mdx/user-guide/introduction"}]},{"tab":"Power User","pages":[{"title":"Power User","href":"/mdx/user-guide/capabilities/content-creation"}]},{"tab":"Admin","pages":[{"title":"Admin","href":"/mdx/admin-guide/introduction"}]},{"tab":"Developer","groups":[{"group":"Overview","pages":[{"title":"Overview","icon":"rocket","href":"/mdx/integrations/overview"}]},{"group":"Getting Started","pages":[{"title":"Getting Started","icon":"compass","href":"/mdx/developer/getting-started"}]},{"group":"LMS Integrations","pages":[{"title":"Overview","icon":"puzzle-piece","href":"/mdx/integrations/canvas/overview"},{"title":"Custom Theme","icon":"code-fork","href":"/mdx/integrations/canvas/theme"},{"title":"Theme Tools","description":"Theme Tools is an optional extra on top of the Canvas Theme install — it layers editor widgets and on-page interactions on top of the embedded Pria SDK so Pria feels native to Canvas.","icon":"wand-magic-sparkles","href":"/mdx/integrations/canvas/theme-tools"},{"title":"LTI 1.3 for Canvas","icon":"globe","href":"/mdx/integrations/canvas/lti-1-3"},{"title":"Pria Tools","description":"Control your Canvas instance through the Canvas REST APIs","icon":"wrench","href":"/mdx/integrations/canvas/pria-tools"},{"title":"Canvas Scopes Reference","icon":"shield-halved","href":"/mdx/integrations/canvas/pria-tools-scopes"},{"title":"D2L Brightspace","icon":"globe","href":"/mdx/integrations/d2l/introduction"},{"title":"Blackboard Learn","icon":"globe","href":"/mdx/integrations/blackboard/introduction"},{"title":"Moodle","icon":"globe","href":"/mdx/integrations/moodle/introduction"}]},{"group":"Voice \u0026 Avatars","pages":[{"title":"Voice \u0026 Realtime Providers","icon":"microphone","href":"/mdx/integrations/voice-providers/overview"},{"title":"ElevenLabs Voice Agent","icon":"wave-square","href":"/mdx/integrations/elevenlabs/introduction"},{"title":"Gemini Live Voice","icon":"microphone-lines","href":"/mdx/integrations/gemini-live/introduction"},{"title":"Anam Avatar","icon":"user","href":"/mdx/integrations/anam/introduction"}]},{"group":"Web \u0026 Chat Integrations","pages":[{"title":"Chat Completions API","icon":"comments","href":"/mdx/integrations/chat-completions/introduction"},{"title":"Embed your Digital Twin","icon":"puzzle-piece","href":"/mdx/integrations/web/introduction"},{"title":"Guest Twin Links","icon":"link","href":"/mdx/integrations/web/guest-links"},{"title":"Digital Twin Loading Sequence","icon":"spinner","href":"/mdx/integrations/web/loading-sequence"},{"title":"Avatar Embed Widget","icon":"user-astronaut","href":"/mdx/integrations/web/avatar-widget"},{"title":"Websites Examples","icon":"globe","href":"/mdx/integrations/web/examples"}]},{"group":"MCP Server","pages":[{"title":"MCP Server","icon":"brain","href":"/mdx/integrations/mcp/introduction"},{"title":"Verified identity","icon":"shield-check","href":"/mdx/integrations/mcp/verified-identity"}]},{"group":"JavaScript SDK","pages":[{"title":"JavaScript SDK","sidebarTitle":"JavaScript","icon":"code","href":"/mdx/sdk/javascript"},{"title":"JavaScript SDK Examples","icon":"code","href":"/mdx/sdk/javascript-examples"},{"title":"Object Definitions","icon":"cubes","href":"/mdx/sdk/object-definitions"}]},{"group":"Authentication","pages":[{"title":"Authentication Overview","icon":"lock","href":"/mdx/integrations/authentication/overview"},{"title":"Social Login (Google, Microsoft, Apple, GitHub, Facebook)","icon":"circle-user","href":"/mdx/integrations/authentication/social-oauth"},{"title":"Enterprise SSO","icon":"building","href":"/mdx/integrations/authentication/enterprise-sso"}]},{"group":"REST API","pages":[{"title":"Introduction","icon":"circle-info","href":"/mdx/api-reference/introduction"},{"title":"Streaming Responses (SSE \u0026 Socket.IO)","icon":"tower-broadcast","href":"/mdx/api-reference/streaming"}]},{"group":"Runtime API","pages":[{"group":"Testing","pages":[{"title":"Check status of the middleware application","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/test/health","href":"/api-reference/testing/check-status-of-the-middleware-application"},{"title":"Retrieves an institution and validates user access for a specific context","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/test/url","href":"/api-reference/testing/retrieves-an-institution-and-validates-user-access-for-a-specific-context"}]},{"group":"Branding","pages":[{"title":"Retrieve branding information for a digital twin","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/agent/branding","href":"/api-reference/branding/retrieve-branding-information-for-a-digital-twin"},{"title":"Resolve a public twin widget by its web-access slug","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/agent/twins/{slug}","href":"/api-reference/branding/resolve-a-public-twin-widget-by-its-web-access-slug"}]},{"group":"Authentication","pages":[{"title":"Register a new user","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/signup","href":"/api-reference/authentication/register-a-new-user"},{"title":"Generate password reset code","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/generateResetCode","href":"/api-reference/authentication/generate-password-reset-code"},{"title":"Validate password reset code","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/checkResetCode","href":"/api-reference/authentication/validate-password-reset-code"},{"title":"Change user password","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/changePassword","href":"/api-reference/authentication/change-user-password"},{"title":"Validate account activation code","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/checkActivateCode","href":"/api-reference/authentication/validate-account-activation-code"},{"title":"User authentication and sign-in","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/signin","href":"/api-reference/authentication/user-authentication-and-sign-in"},{"title":"Automatic user signup and authentication","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/autosignup","href":"/api-reference/authentication/automatic-user-signup-and-authentication"},{"title":"Sign in with Apple (native)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/apple","href":"/api-reference/authentication/sign-in-with-apple-native"},{"title":"Generate Digital Twin instructions from Q\u0026A","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/generate-prompt-preview","href":"/api-reference/authentication/generate-digital-twin-instructions-from-q\u0026a"},{"title":"Exchange a Pria API key for a JWT","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/api-key-signin","href":"/api-reference/authentication/exchange-a-pria-api-key-for-a-jwt"},{"title":"Submit a 6-digit MFA code to complete login","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/mfa-verify","href":"/api-reference/authentication/submit-a-6-digit-mfa-code-to-complete-login"},{"title":"Request a new MFA code for the current challenge","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/mfa-resend","href":"/api-reference/authentication/request-a-new-mfa-code-for-the-current-challenge"},{"title":"Abandon the current MFA challenge (user clicked Cancel)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/mfa-cancel","href":"/api-reference/authentication/abandon-the-current-mfa-challenge-user-clicked-cancel"}]},{"group":"OAuth","pages":[{"title":"Initiate SSO login","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/auth/sso/{id}","href":"/api-reference/oauth/initiate-sso-login"},{"title":"SSO callback","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/sso_callback","href":"/api-reference/oauth/sso-callback"},{"title":"GitHub Marketplace webhook receiver","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/github/webhook","href":"/api-reference/oauth/github-marketplace-webhook-receiver"},{"title":"Start the Google Services (per-user) OAuth consent flow","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/auth/google/services/authorize","href":"/api-reference/oauth/start-the-google-services-per-user-oauth-consent-flow"},{"title":"Google Services OAuth callback","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/auth/google/services/callback","href":"/api-reference/oauth/google-services-oauth-callback"},{"title":"Validate the caller's stored Google Services token","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/auth/google/services/validate","href":"/api-reference/oauth/validate-the-callers-stored-google-services-token"},{"title":"Revoke the caller's stored Google Services token","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/auth/google/services/revoke","href":"/api-reference/oauth/revoke-the-callers-stored-google-services-token"},{"title":"Start the Google OAuth flow for an institution-level token","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/auth/google/institution/authorize","href":"/api-reference/oauth/start-the-google-oauth-flow-for-an-institution-level-token"},{"title":"Validate an institution's stored Google token","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/auth/google/institution/{institutionId}/validate","href":"/api-reference/oauth/validate-an-institutions-stored-google-token"},{"title":"Revoke an institution's stored Google token","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/auth/google/institution/{institutionId}/revoke","href":"/api-reference/oauth/revoke-an-institutions-stored-google-token"},{"title":"Complete the Canvas LMS API authorization handoff","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/auth/token_complete","href":"/api-reference/oauth/complete-the-canvas-lms-api-authorization-handoff"}]},{"group":"Institutions","pages":[{"title":"Get institutions for LTI context","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/getInstitutionsForContextid","href":"/api-reference/institutions/get-institutions-for-lti-context"},{"title":"Create a Digital Twin for a Canvas course","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/createInstitutionForContextid","href":"/api-reference/institutions/create-a-digital-twin-for-a-canvas-course"},{"title":"Check the upgrade to create Digital Twins","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/twin-upgrade","href":"/api-reference/institutions/check-the-upgrade-to-create-digital-twins"},{"title":"Upgrade to create Digital Twins","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/twin-upgrade","href":"/api-reference/institutions/upgrade-to-create-digital-twins"},{"title":"Update institution settings","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/institution","href":"/api-reference/institutions/update-institution-settings"},{"title":"Create a Digital Twin","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/institution","href":"/api-reference/institutions/create-a-digital-twin"},{"title":"Fetch lazy-loaded institution about markdown","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/institutionAbout","href":"/api-reference/institutions/fetch-lazy-loaded-institution-about-markdown"},{"title":"A Digital Twin's about and its numbers of files and assistants","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/twinSummary","href":"/api-reference/institutions/a-digital-twins-about-and-its-numbers-of-files-and-assistants"}]},{"group":"SDK Launch","pages":[{"title":"Sign SDK launch parameters","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/sdk-sign","href":"/api-reference/sdk-launch/sign-sdk-launch-parameters"},{"title":"Verify SDK launch token","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/sdk-verify","href":"/api-reference/sdk-launch/verify-sdk-launch-token"},{"title":"Course-wide Hide Pria for everyone toggle","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/sdk-hide","href":"/api-reference/sdk-launch/course-wide-hide-pria-for-everyone-toggle"},{"title":"A teacher disconnects a disabled Digital Twin from its Canvas course","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/sdk-unlink-course","href":"/api-reference/sdk-launch/a-teacher-disconnects-a-disabled-digital-twin-from-its-canvas-course"}]},{"group":"User","pages":[{"title":"Fork a platform definition into a new user definition.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/fleet-tasks/customize","href":"/api-reference/user/fork-a-platform-definition-into-a-new-user-definition"},{"title":"Update one of the caller's authored definitions.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/agents/fleet-tasks/{slug}","href":"/api-reference/user/update-one-of-the-callers-authored-definitions"},{"title":"Delete (soft) one of the caller's authored definitions.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/agents/fleet-tasks/{slug}","href":"/api-reference/user/delete-soft-one-of-the-callers-authored-definitions"},{"title":"Hide or show an institution definition for the caller.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/fleet-tasks/{slug}/twin-disable","href":"/api-reference/user/hide-or-show-an-institution-definition-for-the-caller"},{"title":"List the caller's saved agent workflows.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/workflows","href":"/api-reference/user/list-the-callers-saved-agent-workflows"},{"title":"Create a saved agent workflow.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/workflows","href":"/api-reference/user/create-a-saved-agent-workflow"},{"title":"Read one of the caller's workflows.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/workflows/{id}","href":"/api-reference/user/read-one-of-the-callers-workflows"},{"title":"Delete one of the caller's workflows.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/agents/workflows/{id}","href":"/api-reference/user/delete-one-of-the-callers-workflows"},{"title":"Update one of the caller's workflows.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json patch /api/user/agents/workflows/{id}","href":"/api-reference/user/update-one-of-the-callers-workflows"},{"title":"Run one of the caller's workflows now.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/workflows/{id}/run","href":"/api-reference/user/run-one-of-the-callers-workflows-now"},{"title":"Run history for one of the caller's workflows.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/workflows/{id}/runs","href":"/api-reference/user/run-history-for-one-of-the-callers-workflows"},{"title":"Credit-cap gauges and block state for the caller's current institution.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/credit-cap-status","href":"/api-reference/user/credit-cap-gauges-and-block-state-for-the-callers-current-institution"},{"title":"Per-dialog context-composition breakdown for the InfoCard 10×10 grid.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/history/{id}/composition","href":"/api-reference/user/per-dialog-context-composition-breakdown-for-the-infocard-10×10-grid"},{"title":"Save a meeting transcript record to the owner's personal vault","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/history/{id}/meeting-transcript/vault","href":"/api-reference/user/save-a-meeting-transcript-record-to-the-owners-personal-vault"},{"title":"Platform choices for the per-mode subagent seat grid.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/subagentSeatOptions","href":"/api-reference/user/platform-choices-for-the-per-mode-subagent-seat-grid"},{"title":"Twin Home — a Digital Twin's week at a glance (twin admins)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/twin-home/{institutionId}","href":"/api-reference/user/twin-home-—-a-digital-twins-week-at-a-glance-twin-admins"},{"title":"Conversation Review inbox — conversations to review for a twin","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/conversation-review/list","href":"/api-reference/user/conversation-review-inbox-—-conversations-to-review-for-a-twin"},{"title":"Resolve, dismiss or reopen a review","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json patch /api/user/conversation-review/{id}","href":"/api-reference/user/resolve-dismiss-or-reopen-a-review"},{"title":"Add the right answer to the twin's Knowledge and resolve the review","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/conversation-review/{id}/knowledge","href":"/api-reference/user/add-the-right-answer-to-the-twins-knowledge-and-resolve-the-review"},{"title":"Per-bucket credits spent for the calling user within an instance scope","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/usage-history","href":"/api-reference/user/per-bucket-credits-spent-for-the-calling-user-within-an-instance-scope"},{"title":"Set the authorized-source allowlist for the caller's personal API key","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/api-key/sources","href":"/api-reference/user/set-the-authorized-source-allowlist-for-the-callers-personal-api-key"},{"title":"Update user profile or change password","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/me","href":"/api-reference/user/update-user-profile-or-change-password"},{"title":"Dismiss the welcome message","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/me/personal-welcome-dismiss","href":"/api-reference/user/dismiss-the-welcome-message"},{"title":"Upload profile picture","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/uploadPicture","href":"/api-reference/user/upload-profile-picture"},{"title":"Get custom AI models","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/customModels","href":"/api-reference/user/get-custom-ai-models"},{"title":"Get system AI models","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/systemModels","href":"/api-reference/user/get-system-ai-models"},{"title":"Observe RunPod model readiness","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/runpod/status","href":"/api-reference/user/observe-runpod-model-readiness"},{"title":"Start, reconcile, or release bounded RunPod warm-up demand","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/runpod/warm","href":"/api-reference/user/start-reconcile-or-release-bounded-runpod-warm-up-demand"},{"title":"Refresh user profile data","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/refresh/profile","href":"/api-reference/user/refresh-user-profile-data"},{"title":"Refresh user entitlements and permissions","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/refresh/entitlements","href":"/api-reference/user/refresh-user-entitlements-and-permissions"},{"title":"Usage-vs-cap reporting for one person, or an account's at-limit counts.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/usage-limits","href":"/api-reference/user/usage-vs-cap-reporting-for-one-person-or-an-accounts-at-limit-counts"}]},{"group":"Agentspace","pages":[{"title":"List worker-backed deployments of a project","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agentspace/{projectId}/deployments","href":"/api-reference/agentspace/list-worker-backed-deployments-of-a-project"},{"title":"Status of one deployment service (registry + guest supervisor observation)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agentspace/{projectId}/deployments/{serviceId}","href":"/api-reference/agentspace/status-of-one-deployment-service-registry-+-guest-supervisor-observation"},{"title":"Publish the revision served by a READY release service (expected-head CAS)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agentspace/{projectId}/deployments/{serviceId}/publish","href":"/api-reference/agentspace/publish-the-revision-served-by-a-ready-release-service-expected-head-cas"},{"title":"Roll the published head back to a retained prior revision (expected-head CAS)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agentspace/{projectId}/deployments/{serviceId}/rollback","href":"/api-reference/agentspace/roll-the-published-head-back-to-a-retained-prior-revision-expected-head-cas"},{"title":"Stop one service instance, fenced on its generation","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agentspace/{projectId}/deployments/{serviceId}/stop","href":"/api-reference/agentspace/stop-one-service-instance-fenced-on-its-generation"},{"title":"Bounded, cursor-resumable, redacted service logs","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agentspace/{projectId}/deployments/{serviceId}/logs","href":"/api-reference/agentspace/bounded-cursor-resumable-redacted-service-logs"},{"title":"Mint a short-lived private dev-preview capability for the caller","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agentspace/{projectId}/dev/{serviceId}/preview","href":"/api-reference/agentspace/mint-a-short-lived-private-dev-preview-capability-for-the-caller"}]},{"group":"Connectors","pages":[{"title":"Connector framework availability","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/connectors/status","href":"/api-reference/connectors/connector-framework-availability"},{"title":"The connectors Pria offers (manifests, no secrets)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/connectors/catalog","href":"/api-reference/connectors/the-connectors-pria-offers-manifests-no-secrets"},{"title":"Your connections (plus your twin's shared ones when you administer it)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/connectors/connections","href":"/api-reference/connectors/your-connections-plus-your-twins-shared-ones-when-you-administer-it"},{"title":"Add a Stripe connection from a restricted read-only key","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/connectors/connections/stripe","href":"/api-reference/connectors/add-a-stripe-connection-from-a-restricted-read-only-key"},{"title":"Connect a Postgres or MongoDB database through Pria's static egress IP","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/connectors/connections/database/{kind}","href":"/api-reference/connectors/connect-a-postgres-or-mongodb-database-through-prias-static-egress-ip"},{"title":"How to prove control of a database address another organisation connected first","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/connectors/connections/{id}/verification","href":"/api-reference/connectors/how-to-prove-control-of-a-database-address-another-organisation-connected-first"},{"title":"Prove control of the database address (DNS TXT record or a token in the database)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/connectors/connections/{id}/verify","href":"/api-reference/connectors/prove-control-of-the-database-address-dns-txt-record-or-a-token-in-the-database"},{"title":"Remove a connection whose key was pasted here (Stripe)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/connectors/connections/{id}","href":"/api-reference/connectors/remove-a-connection-whose-key-was-pasted-here-stripe"},{"title":"Bindings of one of your connections","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/connectors/connections/{id}/bindings","href":"/api-reference/connectors/bindings-of-one-of-your-connections"},{"title":"Create a binding (who may use the connection, for what, on which files)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/connectors/connections/{id}/bindings","href":"/api-reference/connectors/create-a-binding-who-may-use-the-connection-for-what-on-which-files"},{"title":"Remove a binding","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/connectors/bindings/{id}","href":"/api-reference/connectors/remove-a-binding"},{"title":"Edit a binding (narrowing it revokes its session approvals)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json patch /api/user/connectors/bindings/{id}","href":"/api-reference/connectors/edit-a-binding-narrowing-it-revokes-its-session-approvals"},{"title":"Google Picker session for the binding editor (owner only; off unless configured)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/connectors/connections/{id}/picker","href":"/api-reference/connectors/google-picker-session-for-the-binding-editor-owner-only;-off-unless-configured"},{"title":"Access log of one of your connections (decisions, never arguments)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/connectors/connections/{id}/calls","href":"/api-reference/connectors/access-log-of-one-of-your-connections-decisions-never-arguments"},{"title":"Connector writes waiting for YOUR approval (you own the connection)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/connectors/approvals/pending","href":"/api-reference/connectors/connector-writes-waiting-for-your-approval-you-own-the-connection"},{"title":"Approve or deny one connector write (once, or all for this session)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/connectors/approvals/{approvalId}","href":"/api-reference/connectors/approve-or-deny-one-connector-write-once-or-all-for-this-session"},{"title":"Your active approve-all-for-this-session grants","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/connectors/grants","href":"/api-reference/connectors/your-active-approve-all-for-this-session-grants"},{"title":"Revoke one of your session grants","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/connectors/grants/{id}","href":"/api-reference/connectors/revoke-one-of-your-session-grants"},{"title":"Institution admins — every connection in the institution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/connectors/admin/connections","href":"/api-reference/connectors/institution-admins-—-every-connection-in-the-institution"},{"title":"Institution admins — every active session grant","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/connectors/admin/grants","href":"/api-reference/connectors/institution-admins-—-every-active-session-grant"},{"title":"Institution admins — pending connector write approvals (see only; the owner decides)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/connectors/admin/approvals","href":"/api-reference/connectors/institution-admins-—-pending-connector-write-approvals-see-only;-the-owner-decides"},{"title":"Institution admins — revoke a connection","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/connectors/admin/connections/{id}","href":"/api-reference/connectors/institution-admins-—-revoke-a-connection"},{"title":"Institution admins — revoke a session grant","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/connectors/admin/grants/{id}","href":"/api-reference/connectors/institution-admins-—-revoke-a-session-grant"},{"title":"List the caller's pending MCP connector approvals","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/mcp-approvals/pending","href":"/api-reference/connectors/list-the-callers-pending-mcp-connector-approvals"},{"title":"Approve or deny one pending MCP connector call","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/mcp-approvals/{id}","href":"/api-reference/connectors/approve-or-deny-one-pending-mcp-connector-call"},{"title":"Check whether this session may decide MCP approvals now","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/mcp-approvals/step-up","href":"/api-reference/connectors/check-whether-this-session-may-decide-mcp-approvals-now"}]},{"group":"Email proposals","pages":[{"title":"List the emails a conversation turn prepared for you to send","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/email-proposals","href":"/api-reference/email-proposals/list-the-emails-a-conversation-turn-prepared-for-you-to-send"},{"title":"Send a prepared email","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/email-proposals/{id}/send","href":"/api-reference/email-proposals/send-a-prepared-email"},{"title":"Discard a prepared email without sending it","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/email-proposals/{id}/decline","href":"/api-reference/email-proposals/discard-a-prepared-email-without-sending-it"}]},{"group":"Assistants","pages":[{"title":"Add an assistant to the caller's favorites","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/favoriteAssistants/{id}","href":"/api-reference/assistants/add-an-assistant-to-the-callers-favorites"},{"title":"Remove an assistant from the caller's favorites","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/favoriteAssistants/{id}","href":"/api-reference/assistants/remove-an-assistant-from-the-callers-favorites"},{"title":"Search and retrieve assistants","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/assistants","href":"/api-reference/assistants/search-and-retrieve-assistants"},{"title":"Create a new assistant","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/assistant","href":"/api-reference/assistants/create-a-new-assistant"},{"title":"Get a single assistant by ID","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/assistant/{id}","href":"/api-reference/assistants/get-a-single-assistant-by-id"},{"title":"Update an existing assistant","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/assistant/{id}","href":"/api-reference/assistants/update-an-existing-assistant"},{"title":"Soft-delete an assistant","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/assistant/{id}","href":"/api-reference/assistants/soft-delete-an-assistant"},{"title":"Increment an assistant's liked count","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/assistantLikesCount/{id}","href":"/api-reference/assistants/increment-an-assistants-liked-count"}]},{"group":"RAG","pages":[{"title":"Search file content via RAG-KAG and return scored snippets","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/files/search-content","href":"/api-reference/rag/search-file-content-via-rag-kag-and-return-scored-snippets"},{"title":"Get embedding chunks for an upload","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/embeddings","href":"/api-reference/rag/get-embedding-chunks-for-an-upload"},{"title":"Create a new embedding chunk","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/embedding","href":"/api-reference/rag/create-a-new-embedding-chunk"},{"title":"Update an embedding chunk","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/embedding/{id}","href":"/api-reference/rag/update-an-embedding-chunk"},{"title":"Delete an embedding chunk","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/embedding/{id}","href":"/api-reference/rag/delete-an-embedding-chunk"},{"title":"Sanitize an embedding chunk with AI","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/embedding/{id}/sanitize","href":"/api-reference/rag/sanitize-an-embedding-chunk-with-ai"},{"title":"Search RAG content for user using a specified query string","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/searchRag","href":"/api-reference/rag/search-rag-content-for-user-using-a-specified-query-string"}]},{"group":"User Profile","pages":[{"title":"Estimate cost of processing personal-vault files through KAG extraction","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/kag/personal/backfill-quote","href":"/api-reference/user-profile/estimate-cost-of-processing-personal-vault-files-through-kag-extraction"},{"title":"Start (or resume) KAG backfill for the caller's personal vault","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/kag/personal/backfill","href":"/api-reference/user-profile/start-or-resume-kag-backfill-for-the-callers-personal-vault"},{"title":"Aggregate status of the caller's personal-vault KAG jobs","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/kag/personal/backfill/status","href":"/api-reference/user-profile/aggregate-status-of-the-callers-personal-vault-kag-jobs"},{"title":"Cancel the caller's in-progress personal KAG backfill","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/kag/personal/backfill/active","href":"/api-reference/user-profile/cancel-the-callers-in-progress-personal-kag-backfill"},{"title":"Estimate cost of processing a Digital Twin's files through KAG extraction","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/institution/{id}/kag/backfill-quote","href":"/api-reference/user-profile/estimate-cost-of-processing-a-digital-twins-files-through-kag-extraction"},{"title":"Read-only funnel diagnostic for a Digital Twin's KAG backfill quote","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/institution/{id}/kag/backfill-diagnose","href":"/api-reference/user-profile/read-only-funnel-diagnostic-for-a-digital-twins-kag-backfill-quote"},{"title":"Start (or resume) KAG backfill for a Digital Twin's vault","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/institution/{id}/kag/backfill","href":"/api-reference/user-profile/start-or-resume-kag-backfill-for-a-digital-twins-vault"},{"title":"Aggregate status of a Digital Twin's KAG jobs","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/institution/{id}/kag/backfill/status","href":"/api-reference/user-profile/aggregate-status-of-a-digital-twins-kag-jobs"},{"title":"Cancel a Digital Twin's in-progress KAG backfill","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/institution/{id}/kag/backfill/active","href":"/api-reference/user-profile/cancel-a-digital-twins-in-progress-kag-backfill"},{"title":"Send a verification code to prove email ownership (post-enable enrollment)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/me/mfa-enroll","href":"/api-reference/user-profile/send-a-verification-code-to-prove-email-ownership-post-enable-enrollment"},{"title":"Dismiss the enable-MFA nudge for 7 days","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/me/mfa-prompt-dismiss","href":"/api-reference/user-profile/dismiss-the-enable-mfa-nudge-for-7-days"},{"title":"List the current user's active MFA-trusted devices","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/me/trusted-devices","href":"/api-reference/user-profile/list-the-current-users-active-mfa-trusted-devices"},{"title":"Revoke ALL trusted devices for the current user","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/me/trusted-devices","href":"/api-reference/user-profile/revoke-all-trusted-devices-for-the-current-user"},{"title":"Revoke a specific trusted device","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/me/trusted-devices/{deviceId}","href":"/api-reference/user-profile/revoke-a-specific-trusted-device"},{"title":"Toggle the email verification factor on or off","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/me/mfa/email","href":"/api-reference/user-profile/toggle-the-email-verification-factor-on-or-off"},{"title":"Begin authenticator-app (TOTP) enrollment","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/me/totp/setup","href":"/api-reference/user-profile/begin-authenticator-app-totp-enrollment"},{"title":"Confirm and activate the authenticator-app factor","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/me/totp/confirm","href":"/api-reference/user-profile/confirm-and-activate-the-authenticator-app-factor"},{"title":"Turn off the authenticator-app factor","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/me/totp/disable","href":"/api-reference/user-profile/turn-off-the-authenticator-app-factor"},{"title":"Regenerate single-use backup codes","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/me/totp/backup-codes/regenerate","href":"/api-reference/user-profile/regenerate-single-use-backup-codes"},{"title":"Confirm it's you — ask for the code that gives a course-page session its full rights","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/launch-scope/challenge","href":"/api-reference/user-profile/confirm-its-you-—-ask-for-the-code-that-gives-a-course-page-session-its-full-rights"},{"title":"What powers a Digital Twin — its chat and voice models, files and knowledge graph","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/institution/{id}/models-knowledge","href":"/api-reference/user-profile/what-powers-a-digital-twin-—-its-chat-and-voice-models-files-and-knowledge-graph"},{"title":"The spending limits a Digital Twin may set","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/institution/{id}/turn-limits","href":"/api-reference/user-profile/the-spending-limits-a-digital-twin-may-set"},{"title":"List devices that have used the caller's personal API key","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/api-key-usage","href":"/api-reference/user-profile/list-devices-that-have-used-the-callers-personal-api-key"},{"title":"Forget a device row from the caller's list (cosmetic only)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/api-key-usage/{id}","href":"/api-reference/user-profile/forget-a-device-row-from-the-callers-list-cosmetic-only"}]},{"group":"AI","pages":[{"title":"Refresh tasks belonging to an owned plan","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/plan/{sessionId}/task-children","href":"/api-reference/ai/refresh-tasks-belonging-to-an-owned-plan"},{"title":"Explicitly Collect or request a retry for an owned plan task","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/plan/{sessionId}/task-children/{stepId}","href":"/api-reference/ai/explicitly-collect-or-request-a-retry-for-an-owned-plan-task"},{"title":"Stop a plan and retain a resumable checkpoint","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/personal/plan/{sessionId}/stop","href":"/api-reference/ai/stop-a-plan-and-retain-a-resumable-checkpoint"},{"title":"Read the owner's private build screenshots","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/ai/personal/plan/{sessionId}/artifact","href":"/api-reference/ai/read-the-owners-private-build-screenshots"},{"title":"Verify an exact persisted untracked chat completion","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/ai/personal/turns/by-turn/{clientTurnId}/history/{historyId}","href":"/api-reference/ai/verify-an-exact-persisted-untracked-chat-completion"},{"title":"Look up the durable execution receipt for a chat turn","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/ai/personal/turns/by-turn/{clientTurnId}","href":"/api-reference/ai/look-up-the-durable-execution-receipt-for-a-chat-turn"},{"title":"Stop a running chat reply by its turn id","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/personal/turns/cancel","href":"/api-reference/ai/stop-a-running-chat-reply-by-its-turn-id"},{"title":"Read the durable execution receipt by execution id","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/ai/personal/turns/{executionId}","href":"/api-reference/ai/read-the-durable-execution-receipt-by-execution-id"},{"title":"Request a durable Stop for an execution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/personal/turns/{executionId}/stop","href":"/api-reference/ai/request-a-durable-stop-for-an-execution"},{"title":"OpenAI-compatible Chat Completions endpoint (inbound integration)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/chat/completions","href":"/api-reference/ai/openai-compatible-chat-completions-endpoint-inbound-integration"}]},{"group":"Audio Notes","pages":[{"title":"Upload one or more audio segments for transcription and vault ingestion","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/audio-notes","href":"/api-reference/audio-notes/upload-one-or-more-audio-segments-for-transcription-and-vault-ingestion"}]},{"group":"Collections","pages":[{"title":"List collections for a vault","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/collections","href":"/api-reference/collections/list-collections-for-a-vault"},{"title":"Create a new collection","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/collection","href":"/api-reference/collections/create-a-new-collection"},{"title":"Update collection (rename, move vault)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/collection/{id}","href":"/api-reference/collections/update-collection-rename-move-vault"},{"title":"Delete a collection; its files move to the Trash","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/collection/{id}","href":"/api-reference/collections/delete-a-collection;-its-files-move-to-the-trash"},{"title":"Count what deleting a collection would do (changes nothing)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/collection/{id}/delete-preview","href":"/api-reference/collections/count-what-deleting-a-collection-would-do-changes-nothing"},{"title":"List files within a collection","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/collection/{id}/files","href":"/api-reference/collections/list-files-within-a-collection"},{"title":"Add files to a collection","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/collection/{id}/add","href":"/api-reference/collections/add-files-to-a-collection"},{"title":"Remove files from a collection","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/collection/{id}/remove","href":"/api-reference/collections/remove-files-from-a-collection"},{"title":"Download collection as ZIP","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/collection/{id}/download","href":"/api-reference/collections/download-collection-as-zip"},{"title":"Bulk action on files or collections","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/bulk/action","href":"/api-reference/collections/bulk-action-on-files-or-collections"},{"title":"Get all file and collection IDs for bulk select-all","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/collections/select-all-ids","href":"/api-reference/collections/get-all-file-and-collection-ids-for-bulk-select-all"},{"title":"Get recursive file counts for collections","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/collections/deep-count","href":"/api-reference/collections/get-recursive-file-counts-for-collections"},{"title":"Download selected files as ZIP","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/bulk/download","href":"/api-reference/collections/download-selected-files-as-zip"}]},{"group":"Feedback","pages":[{"title":"Submit feedback","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/feedback","href":"/api-reference/feedback/submit-feedback"},{"title":"Get user feedbacks","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/feedbacks","href":"/api-reference/feedback/get-user-feedbacks"}]},{"group":"IP Vault","pages":[{"title":"Upload content from URL","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/url","href":"/api-reference/ip-vault/upload-content-from-url"},{"title":"Upload files","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/files","href":"/api-reference/ip-vault/upload-files"},{"title":"Delete uploaded file","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/files/{fileId}","href":"/api-reference/ip-vault/delete-uploaded-file"},{"title":"Update file confidential status","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json patch /api/user/files/{fileId}/confidential","href":"/api-reference/ip-vault/update-file-confidential-status"},{"title":"Reload file content","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/reload/{fileId}","href":"/api-reference/ip-vault/reload-file-content"},{"title":"Re-ingest file from source URL","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/reingest/{fileId}","href":"/api-reference/ip-vault/re-ingest-file-from-source-url"},{"title":"Re-queue an existing file for ingestion","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/files/{fileId}/reprocess","href":"/api-reference/ip-vault/re-queue-an-existing-file-for-ingestion"},{"title":"Edit a text file's content and reprocess it","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/files/{fileId}/content","href":"/api-reference/ip-vault/edit-a-text-files-content-and-reprocess-it"},{"title":"Get KAG (knowledge graph) summary for a file","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/files/{uploadId}/kag-summary","href":"/api-reference/ip-vault/get-kag-knowledge-graph-summary-for-a-file"},{"title":"Search and retrieve user uploaded files","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/uploads","href":"/api-reference/ip-vault/search-and-retrieve-user-uploaded-files"},{"title":"Scan vault uploads for content quality","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/uploads/vault-health","href":"/api-reference/ip-vault/scan-vault-uploads-for-content-quality"},{"title":"Aggregate vault-wide health stats","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/uploads/vault-health-summary","href":"/api-reference/ip-vault/aggregate-vault-wide-health-stats"},{"title":"Summarize the Trash for the notice above the composer","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/uploads/trash-summary","href":"/api-reference/ip-vault/summarize-the-trash-for-the-notice-above-the-composer"},{"title":"List every file with a vault-health issue","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/uploads/files-with-issues","href":"/api-reference/ip-vault/list-every-file-with-a-vault-health-issue"},{"title":"Update an existing upload file's metadata","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/upload/{id}","href":"/api-reference/ip-vault/update-an-existing-upload-files-metadata"}]},{"group":"User Files","pages":[{"title":"Swap (replace) the on-disk asset for an existing Upload","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/upload/{fileId}/swap-asset","href":"/api-reference/user-files/swap-replace-the-on-disk-asset-for-an-existing-upload"},{"title":"Download a workspace as ZIP","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/workspace/{slug}/export","href":"/api-reference/user-files/download-a-workspace-as-zip"},{"title":"Get a short-lived link to a file","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/upload-token","href":"/api-reference/user-files/get-a-short-lived-link-to-a-file"}]},{"group":"History","pages":[{"title":"Retrieve user conversation histories","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/histories","href":"/api-reference/history/retrieve-user-conversation-histories"},{"title":"Retrieve user's favorite dialogues","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/favorites","href":"/api-reference/history/retrieve-users-favorite-dialogues"},{"title":"Retrieve user conversations","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/courses","href":"/api-reference/history/retrieve-user-conversations"},{"title":"Update a history record","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/history/{id}","href":"/api-reference/history/update-a-history-record"},{"title":"Clear history records (soft delete)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/clearHistory","href":"/api-reference/history/clear-history-records-soft-delete"},{"title":"Rename a conversation or favorite","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/renameHistory","href":"/api-reference/history/rename-a-conversation-or-favorite"},{"title":"Generate an AI summary title for a history record or conversation","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/summarizeHistory","href":"/api-reference/history/generate-an-ai-summary-title-for-a-history-record-or-conversation"}]},{"group":"User Institutions","pages":[{"title":"Update user institution preferences","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/userInstitution/{id}","href":"/api-reference/user-institutions/update-user-institution-preferences"},{"title":"Unlink LTI context from user institution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/unlinkContextId/{id}","href":"/api-reference/user-institutions/unlink-lti-context-from-user-institution"},{"title":"Credit user institution with tokens","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/userInstitutionCredit/{id}","href":"/api-reference/user-institutions/credit-user-institution-with-tokens"},{"title":"Switch user's active institution profile","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/userInstitutionSwitch/{id}","href":"/api-reference/user-institutions/switch-users-active-institution-profile"},{"title":"Accept the privacy policy of your digital twin's account","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/account-policy/accept","href":"/api-reference/user-institutions/accept-the-privacy-policy-of-your-digital-twins-account"}]},{"group":"Membership","pages":[{"title":"Remove user institution membership","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/userInstitution/{id}","href":"/api-reference/membership/remove-user-institution-membership"},{"title":"Create personal institution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/userInstitutionCreatePersonal","href":"/api-reference/membership/create-personal-institution"},{"title":"Join an institution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/institutionJoin","href":"/api-reference/membership/join-an-institution"},{"title":"Create or retrieve institution join code","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/institutionCreateJoinId","href":"/api-reference/membership/create-or-retrieve-institution-join-code"},{"title":"Email an invite link to a recipient","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/institutionSendInvite","href":"/api-reference/membership/email-an-invite-link-to-a-recipient"},{"title":"Get institution by join code","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/institutionByJoinId","href":"/api-reference/membership/get-institution-by-join-code"},{"title":"Get available institutions","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/availableInstitutions","href":"/api-reference/membership/get-available-institutions"},{"title":"Approve a pending membership","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/approveUid","href":"/api-reference/membership/approve-a-pending-membership"}]},{"group":"Memberships","pages":[{"title":"Check the caller's membership on a public twin slug","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/twinMembership","href":"/api-reference/memberships/check-the-callers-membership-on-a-public-twin-slug"}]},{"group":"Memory","pages":[{"title":"List the user's memory parameters (personal + shared in their instances).","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/memory","href":"/api-reference/memory/list-the-users-memory-parameters-personal-+-shared-in-their-instances"},{"title":"Hard-delete a single memory parameter.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/memory/{id}","href":"/api-reference/memory/hard-delete-a-single-memory-parameter"},{"title":"Edit a memory parameter (whitelisted fields only).","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json patch /api/user/memory/{id}","href":"/api-reference/memory/edit-a-memory-parameter-whitelisted-fields-only"},{"title":"Bulk hard-delete the user's own personal memory rows (filter-aware).","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/memory/personal","href":"/api-reference/memory/bulk-hard-delete-the-users-own-personal-memory-rows-filter-aware"},{"title":"Bulk hard-delete shared rows for an instance (requires institutions.edit).","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/memory/institution/{id}","href":"/api-reference/memory/bulk-hard-delete-shared-rows-for-an-instance-requires-institutionsedit"}]},{"group":"My Data","pages":[{"title":"Personal-scope data counts","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/data/stats","href":"/api-reference/my-data/personal-scope-data-counts"},{"title":"Request a ZIP-by-email export of personal data","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/data/export","href":"/api-reference/my-data/request-a-zip-by-email-export-of-personal-data"},{"title":"Scoped soft-delete of personal data","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/data","href":"/api-reference/my-data/scoped-soft-delete-of-personal-data"}]},{"group":"Presentations","pages":[{"title":"Whether this Digital Twin can make presentation videos","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/presentations/availability","href":"/api-reference/presentations/whether-this-digital-twin-can-make-presentation-videos"},{"title":"List your presentation videos","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/presentations","href":"/api-reference/presentations/list-your-presentation-videos"},{"title":"Get one presentation video and its versions","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/presentations/{id}","href":"/api-reference/presentations/get-one-presentation-video-and-its-versions"},{"title":"Delete one of your presentation videos","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/presentations/{id}","href":"/api-reference/presentations/delete-one-of-your-presentation-videos"},{"title":"Get one version of a presentation video, ready to play","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/presentations/{id}/revisions/{n}","href":"/api-reference/presentations/get-one-version-of-a-presentation-video-ready-to-play"},{"title":"Edit one scene's narration or on-screen text","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json patch /api/user/presentations/{id}/scenes/{sceneId}","href":"/api-reference/presentations/edit-one-scenes-narration-or-on-screen-text"},{"title":"Rename a video","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json patch /api/user/presentations/{id}/title","href":"/api-reference/presentations/rename-a-video"},{"title":"Upload your logo for this video","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/presentations/{id}/brand/logo","href":"/api-reference/presentations/upload-your-logo-for-this-video"},{"title":"Stop making a presentation video","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/presentations/{id}/cancel","href":"/api-reference/presentations/stop-making-a-presentation-video"},{"title":"The Brand panel of this video","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/presentations/{id}/brand","href":"/api-reference/presentations/the-brand-panel-of-this-video"},{"title":"Apply a brand to this video (a new version)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/presentations/{id}/brand","href":"/api-reference/presentations/apply-a-brand-to-this-video-a-new-version"},{"title":"Delete one of your saved brands","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/presentations/{id}/brand/saved/{slug}","href":"/api-reference/presentations/delete-one-of-your-saved-brands"},{"title":"Show (or stop showing) a logo from your Digital Twin's files on public links and MP4s","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/presentations/{id}/brand/logo/public","href":"/api-reference/presentations/show-or-stop-showing-a-logo-from-your-digital-twins-files-on-public-links-and-mp4s"},{"title":"Read brand colours and a logo from your website","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/presentations/{id}/brand/import","href":"/api-reference/presentations/read-brand-colours-and-a-logo-from-your-website"},{"title":"List the brand save offers of a chat reply","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/presentations/brand-proposals","href":"/api-reference/presentations/list-the-brand-save-offers-of-a-chat-reply"},{"title":"Save a brand offer for next time","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/presentations/brand-proposals/{proposalId}/accept","href":"/api-reference/presentations/save-a-brand-offer-for-next-time"},{"title":"Decline a brand offer","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/presentations/brand-proposals/{proposalId}/decline","href":"/api-reference/presentations/decline-a-brand-offer"},{"title":"Estimate the credits to export the current version to MP4","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/presentations/{id}/export/estimate","href":"/api-reference/presentations/estimate-the-credits-to-export-the-current-version-to-mp4"},{"title":"Start the MP4 export (after the user confirmed the estimate)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/presentations/{id}/export","href":"/api-reference/presentations/start-the-mp4-export-after-the-user-confirmed-the-estimate"},{"title":"Your recent exports of this presentation (newest first, up to 10)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/presentations/{id}/exports","href":"/api-reference/presentations/your-recent-exports-of-this-presentation-newest-first-up-to-10"},{"title":"Poll one export","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/presentations/{id}/export/{jobId}","href":"/api-reference/presentations/poll-one-export"},{"title":"Download the MP4 or the captions (WebVTT)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/presentations/{id}/export/{jobId}/download","href":"/api-reference/presentations/download-the-mp4-or-the-captions-webvtt"},{"title":"Your share links of this presentation","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/presentations/{id}/shares","href":"/api-reference/presentations/your-share-links-of-this-presentation"},{"title":"Create a share link (view-only) for a version","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/presentations/{id}/shares","href":"/api-reference/presentations/create-a-share-link-view-only-for-a-version"},{"title":"Delete a share link now","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/presentations/{id}/shares/{shareId}","href":"/api-reference/presentations/delete-a-share-link-now"},{"title":"Change a share link — audience, version, expiry, label — or turn it off","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json patch /api/user/presentations/{id}/shares/{shareId}","href":"/api-reference/presentations/change-a-share-link-—-audience-version-expiry-label-—-or-turn-it-off"}]},{"group":"Questions","pages":[{"title":"List active onboarding questions for the Persona Builder bank.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/questions","href":"/api-reference/questions/list-active-onboarding-questions-for-the-persona-builder-bank"}]},{"group":"Setting","pages":[{"title":"Retrieve settings by key","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/settingByKey","href":"/api-reference/setting/retrieve-settings-by-key"},{"title":"Retrieve settings for the current institution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/settings","href":"/api-reference/setting/retrieve-settings-for-the-current-institution"},{"title":"Create a new instance variable","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/setting","href":"/api-reference/setting/create-a-new-instance-variable"},{"title":"Update an instance variable","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/setting/{settingId}","href":"/api-reference/setting/update-an-instance-variable"},{"title":"Delete an instance variable","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/setting/{settingId}","href":"/api-reference/setting/delete-an-instance-variable"}]},{"group":"Billing","pages":[{"title":"Get current subscription plan","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/stripe/plan","href":"/api-reference/billing/get-current-subscription-plan"},{"title":"Create subscription checkout session","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/stripe/subscribe","href":"/api-reference/billing/create-subscription-checkout-session"},{"title":"Get checkout session result","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/stripe/checkout-result","href":"/api-reference/billing/get-checkout-session-result"}]},{"group":"User History","pages":[{"title":"Lazy-fetch the bulk thinking and reasoning array for a single History record","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/history/{id}/thinking","href":"/api-reference/user-history/lazy-fetch-the-bulk-thinking-and-reasoning-array-for-a-single-history-record"},{"title":"Lazy-fetch the structured RAG-KAG retrieval segments for a single History record","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/history/{id}/ragSearch","href":"/api-reference/user-history/lazy-fetch-the-structured-rag-kag-retrieval-segments-for-a-single-history-record"},{"title":"Read an assistant response aloud using the configured speech model","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/history/{id}/audio","href":"/api-reference/user-history/read-an-assistant-response-aloud-using-the-configured-speech-model"},{"title":"Hear a short sample of a read-aloud voice","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/tts/preview","href":"/api-reference/user-history/hear-a-short-sample-of-a-read-aloud-voice"}]},{"group":"Tools","pages":[{"title":"Get available tools for the authenticated user","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/tools","href":"/api-reference/tools/get-available-tools-for-the-authenticated-user"}]},{"group":"Transcription","pages":[{"title":"Transient speech-to-text","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/transcribe","href":"/api-reference/transcription/transient-speech-to-text"}]},{"group":"Agents","pages":[{"title":"Issue a short-lived ticket for the caller's KasmVNC desktop","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/workspace/ticket","href":"/api-reference/agents/issue-a-short-lived-ticket-for-the-callers-kasmvnc-desktop"},{"title":"Get current user's agent workspace status","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/workspace/me","href":"/api-reference/agents/get-current-users-agent-workspace-status"},{"title":"Status of the caller's daemon (Pria row + guest truth)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/v2/daemon","href":"/api-reference/agents/status-of-the-callers-daemon-pria-row-+-guest-truth"},{"title":"Ensure the caller's persistent Synaps daemon is running (agentsv2)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/v2/daemon","href":"/api-reference/agents/ensure-the-callers-persistent-synaps-daemon-is-running-agentsv2"},{"title":"Stop the caller's daemon and close its session row","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/v2/daemon/stop","href":"/api-reference/agents/stop-the-callers-daemon-and-close-its-session-row"},{"title":"Single-use ticket for the daemon WebSocket","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/v2/ticket","href":"/api-reference/agents/single-use-ticket-for-the-daemon-websocket"},{"title":"Saved daemon sessions (headers only, most recent first)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/v2/sessions","href":"/api-reference/agents/saved-daemon-sessions-headers-only-most-recent-first"},{"title":"Default + favorite models for the daemon's model picker","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/v2/models","href":"/api-reference/agents/default-+-favorite-models-for-the-daemons-model-picker"},{"title":"Daemon + bridge versions","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/v2/info","href":"/api-reference/agents/daemon-+-bridge-versions"},{"title":"Read-only snapshot of the daemon's configuration (managed by Pria)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/v2/config","href":"/api-reference/agents/read-only-snapshot-of-the-daemons-configuration-managed-by-pria"},{"title":"Always refused — the daemon configuration is managed by Pria","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/v2/config","href":"/api-reference/agents/always-refused-—-the-daemon-configuration-is-managed-by-pria"},{"title":"The models and reasoning levels a workflow can use on the current twin","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/v2/workflow-models","href":"/api-reference/agents/the-models-and-reasoning-levels-a-workflow-can-use-on-the-current-twin"},{"title":"The caller's agentsv2 workflows on the current twin","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/v2/workflows","href":"/api-reference/agents/the-callers-agentsv2-workflows-on-the-current-twin"},{"title":"Create a workflow (owner and twin come from the session, never the body)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/v2/workflows","href":"/api-reference/agents/create-a-workflow-owner-and-twin-come-from-the-session-never-the-body"},{"title":"One workflow","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/v2/workflows/{id}","href":"/api-reference/agents/one-workflow"},{"title":"Delete a workflow (its run records stay; a run in progress finishes)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/user/agents/v2/workflows/{id}","href":"/api-reference/agents/delete-a-workflow-its-run-records-stay;-a-run-in-progress-finishes"},{"title":"Update a workflow (partial)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json patch /api/user/agents/v2/workflows/{id}","href":"/api-reference/agents/update-a-workflow-partial"},{"title":"Run now — a new session in the caller's daemon with the instruction as its first prompt","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/v2/workflows/{id}/run","href":"/api-reference/agents/run-now-—-a-new-session-in-the-callers-daemon-with-the-instruction-as-its-first-prompt"},{"title":"The workflow's latest 20 runs, newest first","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/v2/workflows/{id}/runs","href":"/api-reference/agents/the-workflows-latest-20-runs-newest-first"},{"title":"The caller's agent email allowlist on their current twin","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/email-allowlist","href":"/api-reference/agents/the-callers-agent-email-allowlist-on-their-current-twin"},{"title":"Replace the caller's agent email allowlist on their current twin","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/agents/email-allowlist","href":"/api-reference/agents/replace-the-callers-agent-email-allowlist-on-their-current-twin"},{"title":"The caller's VM-login seat setting on their current twin.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/vm-login","href":"/api-reference/agents/the-callers-vm-login-seat-setting-on-their-current-twin"},{"title":"Choose the providers whose seats run on the VM's own Synaps login.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/agents/vm-login","href":"/api-reference/agents/choose-the-providers-whose-seats-run-on-the-vms-own-synaps-login"},{"title":"Check whether a local Synaps login for one provider is present and usable on the caller's VM","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/vm-login/probe","href":"/api-reference/agents/check-whether-a-local-synaps-login-for-one-provider-is-present-and-usable-on-the-callers-vm"},{"title":"VM owner only — let other members of a shared agent VM use their own Synaps login on it.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/user/agents/vm-login/vm-policy","href":"/api-reference/agents/vm-owner-only-—-let-other-members-of-a-shared-agent-vm-use-their-own-synaps-login-on-it"}]},{"group":"Subscription connections","pages":[{"title":"Start connecting the twin's ChatGPT subscription","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/chatgpt/start","href":"/api-reference/subscription-connections/start-connecting-the-twins-chatgpt-subscription"},{"title":"Finish connecting the twin's ChatGPT subscription","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/chatgpt/poll","href":"/api-reference/subscription-connections/finish-connecting-the-twins-chatgpt-subscription"},{"title":"Is a ChatGPT subscription connected to the twin","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/connect/chatgpt/status","href":"/api-reference/subscription-connections/is-a-chatgpt-subscription-connected-to-the-twin"},{"title":"Disconnect the twin's ChatGPT subscription","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/chatgpt/disconnect","href":"/api-reference/subscription-connections/disconnect-the-twins-chatgpt-subscription"},{"title":"Start connecting the twin's Grok subscription","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/grok/start","href":"/api-reference/subscription-connections/start-connecting-the-twins-grok-subscription"},{"title":"Finish connecting the twin's Grok subscription","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/grok/poll","href":"/api-reference/subscription-connections/finish-connecting-the-twins-grok-subscription"},{"title":"Is a Grok subscription connected to the twin","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/connect/grok/status","href":"/api-reference/subscription-connections/is-a-grok-subscription-connected-to-the-twin"},{"title":"Disconnect the twin's Grok subscription","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/grok/disconnect","href":"/api-reference/subscription-connections/disconnect-the-twins-grok-subscription"}]},{"group":"Git connections","pages":[{"title":"Is GitHub connected for this person's agents","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/connect/github/status","href":"/api-reference/git-connections/is-github-connected-for-this-persons-agents"},{"title":"Start connecting GitHub (returns the GitHub sign-in address)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/github/start","href":"/api-reference/git-connections/start-connecting-github-returns-the-github-sign-in-address"},{"title":"Disconnect GitHub","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/github/disconnect","href":"/api-reference/git-connections/disconnect-github"},{"title":"The person's GitLab connections for their agents","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/connect/gitlab/status","href":"/api-reference/git-connections/the-persons-gitlab-connections-for-their-agents"},{"title":"Start connecting gitlab.com by sign-in","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/gitlab/start","href":"/api-reference/git-connections/start-connecting-gitlabcom-by-sign-in"},{"title":"Connect any GitLab with a personal access token","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/gitlab/token","href":"/api-reference/git-connections/connect-any-gitlab-with-a-personal-access-token"},{"title":"Disconnect one GitLab host","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/gitlab/disconnect","href":"/api-reference/git-connections/disconnect-one-gitlab-host"},{"title":"GitHub / GitLab sign-in return (browser redirect)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/auth/agent-git/{provider}/callback","href":"/api-reference/git-connections/github-gitlab-sign-in-return-browser-redirect"}]},{"group":"Google connection","pages":[{"title":"Can this user's agents read Gmail on the current Digital Twin","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/connect/google/status","href":"/api-reference/google-connection/can-this-users-agents-read-gmail-on-the-current-digital-twin"}]},{"group":"Power BI connection","pages":[{"title":"Power BI connection status of this Digital Twin","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/connect/powerbi/status","href":"/api-reference/power-bi-connection/power-bi-connection-status-of-this-digital-twin"},{"title":"Connect this Digital Twin to Power BI (read-only)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/powerbi/key","href":"/api-reference/power-bi-connection/connect-this-digital-twin-to-power-bi-read-only"},{"title":"Disconnect this Digital Twin from Power BI","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/powerbi/disconnect","href":"/api-reference/power-bi-connection/disconnect-this-digital-twin-from-power-bi"}]},{"group":"Procore connection","pages":[{"title":"Procore connection status of this Digital Twin","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/user/agents/connect/procore/status","href":"/api-reference/procore-connection/procore-connection-status-of-this-digital-twin"},{"title":"Connect this Digital Twin to Procore (read-only)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/procore/key","href":"/api-reference/procore-connection/connect-this-digital-twin-to-procore-read-only"},{"title":"Disconnect this Digital Twin from Procore","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/user/agents/connect/procore/disconnect","href":"/api-reference/procore-connection/disconnect-this-digital-twin-from-procore"}]},{"group":"Admin","pages":[{"title":"Twin admin — read whether members may use their VM's own Synaps login","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/admin/institution/{id}/agent-vm-local-login","href":"/api-reference/admin/twin-admin-—-read-whether-members-may-use-their-vms-own-synaps-login"},{"title":"Twin admin — allow or disallow members to run seats on their VM's own Synaps login.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json put /api/admin/institution/{id}/agent-vm-local-login","href":"/api-reference/admin/twin-admin-—-allow-or-disallow-members-to-run-seats-on-their-vms-own-synaps-login"}]},{"group":"Realtime","pages":[{"title":"Create realtime AI session","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/rtProxy/rtSession","href":"/api-reference/realtime/create-realtime-ai-session"},{"title":"Background tool jobs of a realtime session","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/rtTools/jobs","href":"/api-reference/realtime/background-tool-jobs-of-a-realtime-session"},{"title":"Execute realtime tool","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/rtTools/exec","href":"/api-reference/realtime/execute-realtime-tool"},{"title":"Stream a provider-neutral avatar voice turn (Anam + future providers)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/rtProxy/voiceTurn","href":"/api-reference/realtime/stream-a-provider-neutral-avatar-voice-turn-anam-+-future-providers"},{"title":"Mint a Deepgram streaming STT session","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/rtProxy/deepgram/sttSession","href":"/api-reference/realtime/mint-a-deepgram-streaming-stt-session"},{"title":"Save realtime conversation","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/rtSave/conversation","href":"/api-reference/realtime/save-realtime-conversation"},{"title":"Voice turn prediction check (is the speaker done, is it the same request, is it an interruption)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/rtProxy/turnPredict","href":"/api-reference/realtime/voice-turn-prediction-check-is-the-speaker-done-is-it-the-same-request-is-it-an-interruption"},{"title":"Report one voice turn-prediction outcome","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/rtProxy/voiceTurn/spec","href":"/api-reference/realtime/report-one-voice-turn-prediction-outcome"}]},{"group":"Conversation","pages":[{"title":"Send a message to the AI assistant","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/personal/qanda","href":"/api-reference/conversation/send-a-message-to-the-ai-assistant"},{"title":"Send a message with HTTP SSE streaming response","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/personal-stream/qanda-stream","href":"/api-reference/conversation/send-a-message-with-http-sse-streaming-response"},{"title":"Send a message to the AI assistant (experimental — Soul Document prompt)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/experimental/personal/qanda","href":"/api-reference/conversation/send-a-message-to-the-ai-assistant-experimental-—-soul-document-prompt"},{"title":"Send a message to the AI assistant (experimental — Soul Document V2 prompt)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/ai/experimental/personal/qanda-v2","href":"/api-reference/conversation/send-a-message-to-the-ai-assistant-experimental-—-soul-document-v2-prompt"}]},{"group":"Presentation share links","pages":[{"title":"Open a shared presentation video","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/public/presentation-share/resolve","href":"/api-reference/presentation-share-links/open-a-shared-presentation-video"},{"title":"Count a view of a shared video","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/public/presentation-share/view","href":"/api-reference/presentation-share-links/count-a-view-of-a-shared-video"},{"title":"Download a shared video or its captions","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/public/presentation-share/download","href":"/api-reference/presentation-share-links/download-a-shared-video-or-its-captions"}]},{"group":"Boards","pages":[{"title":"The caller's Projects boards access","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/boards/access","href":"/api-reference/boards/the-callers-projects-boards-access"},{"title":"Who can see a Projects scope — the people a card there may be assigned to","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/boards/boards/members","href":"/api-reference/boards/who-can-see-a-projects-scope-—-the-people-a-card-there-may-be-assigned-to"},{"title":"A card's timeline — comments and activity in one thread, oldest first","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/boards/tasks/{taskId}/timeline","href":"/api-reference/boards/a-cards-timeline-—-comments-and-activity-in-one-thread-oldest-first"},{"title":"Comment on a card (plain text, ≤ 2000 chars; mentions resolved within the board's members)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/boards/tasks/{taskId}/comments","href":"/api-reference/boards/comment-on-a-card-plain-text-≤-2000-chars;-mentions-resolved-within-the-boards-members"},{"title":"Remove a comment (author or board owner); the row stays, reading Comment removed","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json delete /api/boards/tasks/{taskId}/comments/{eventId}","href":"/api-reference/boards/remove-a-comment-author-or-board-owner;-the-row-stays-reading-comment-removed"},{"title":"Add the standard workflow lanes to a board","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json post /api/boards/boards/{boardId}/lanes","href":"/api-reference/boards/add-the-standard-workflow-lanes-to-a-board"},{"title":"A cross-board view of your open cards","deprecated":null,"version":null,"openapi":"/mdx/api-reference/runtime/runtime-api.json get /api/boards/views/{name}","href":"/api-reference/boards/a-cross-board-view-of-your-open-cards"}]}]},{"group":"Administrator API","pages":[{"group":"Testing","pages":[{"title":"Check status of the middleware application","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/test/health","href":"/api-reference/testing/check-status-of-the-middleware-application"},{"title":"Retrieves an institution and validates user access for a specific context","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/test/url","href":"/api-reference/testing/retrieves-an-institution-and-validates-user-access-for-a-specific-context"}]},{"group":"Authentication","pages":[{"title":"Register a new user","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/signup","href":"/api-reference/authentication/register-a-new-user"},{"title":"Generate password reset code","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/generateResetCode","href":"/api-reference/authentication/generate-password-reset-code"},{"title":"Validate password reset code","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/checkResetCode","href":"/api-reference/authentication/validate-password-reset-code"},{"title":"Change user password","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/changePassword","href":"/api-reference/authentication/change-user-password"},{"title":"Validate account activation code","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/checkActivateCode","href":"/api-reference/authentication/validate-account-activation-code"},{"title":"User authentication and sign-in","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/signin","href":"/api-reference/authentication/user-authentication-and-sign-in"},{"title":"Automatic user signup and authentication","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/autosignup","href":"/api-reference/authentication/automatic-user-signup-and-authentication"},{"title":"Sign in with Apple (native)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/apple","href":"/api-reference/authentication/sign-in-with-apple-native"},{"title":"Generate Digital Twin instructions from Q\u0026A","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/generate-prompt-preview","href":"/api-reference/authentication/generate-digital-twin-instructions-from-q\u0026a"},{"title":"Exchange a Pria API key for a JWT","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/api-key-signin","href":"/api-reference/authentication/exchange-a-pria-api-key-for-a-jwt"},{"title":"Submit a 6-digit MFA code to complete login","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/mfa-verify","href":"/api-reference/authentication/submit-a-6-digit-mfa-code-to-complete-login"},{"title":"Request a new MFA code for the current challenge","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/mfa-resend","href":"/api-reference/authentication/request-a-new-mfa-code-for-the-current-challenge"},{"title":"Abandon the current MFA challenge (user clicked Cancel)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/mfa-cancel","href":"/api-reference/authentication/abandon-the-current-mfa-challenge-user-clicked-cancel"}]},{"group":"OAuth","pages":[{"title":"Initiate SSO login","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/auth/sso/{id}","href":"/api-reference/oauth/initiate-sso-login"},{"title":"SSO callback","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/sso_callback","href":"/api-reference/oauth/sso-callback"},{"title":"GitHub Marketplace webhook receiver","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/github/webhook","href":"/api-reference/oauth/github-marketplace-webhook-receiver"},{"title":"Start the Google Services (per-user) OAuth consent flow","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/auth/google/services/authorize","href":"/api-reference/oauth/start-the-google-services-per-user-oauth-consent-flow"},{"title":"Google Services OAuth callback","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/auth/google/services/callback","href":"/api-reference/oauth/google-services-oauth-callback"},{"title":"Validate the caller's stored Google Services token","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/auth/google/services/validate","href":"/api-reference/oauth/validate-the-callers-stored-google-services-token"},{"title":"Revoke the caller's stored Google Services token","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/auth/google/services/revoke","href":"/api-reference/oauth/revoke-the-callers-stored-google-services-token"},{"title":"Start the Google OAuth flow for an institution-level token","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/auth/google/institution/authorize","href":"/api-reference/oauth/start-the-google-oauth-flow-for-an-institution-level-token"},{"title":"Validate an institution's stored Google token","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/auth/google/institution/{institutionId}/validate","href":"/api-reference/oauth/validate-an-institutions-stored-google-token"},{"title":"Revoke an institution's stored Google token","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/auth/google/institution/{institutionId}/revoke","href":"/api-reference/oauth/revoke-an-institutions-stored-google-token"},{"title":"Complete the Canvas LMS API authorization handoff","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/auth/token_complete","href":"/api-reference/oauth/complete-the-canvas-lms-api-authorization-handoff"}]},{"group":"Institutions","pages":[{"title":"Get institutions for LTI context","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/getInstitutionsForContextid","href":"/api-reference/institutions/get-institutions-for-lti-context"},{"title":"Create a Digital Twin for a Canvas course","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/createInstitutionForContextid","href":"/api-reference/institutions/create-a-digital-twin-for-a-canvas-course"}]},{"group":"SDK Launch","pages":[{"title":"Sign SDK launch parameters","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/sdk-sign","href":"/api-reference/sdk-launch/sign-sdk-launch-parameters"},{"title":"Verify SDK launch token","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/sdk-verify","href":"/api-reference/sdk-launch/verify-sdk-launch-token"},{"title":"Course-wide Hide Pria for everyone toggle","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/sdk-hide","href":"/api-reference/sdk-launch/course-wide-hide-pria-for-everyone-toggle"},{"title":"A teacher disconnects a disabled Digital Twin from its Canvas course","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/auth/sdk-unlink-course","href":"/api-reference/sdk-launch/a-teacher-disconnects-a-disabled-digital-twin-from-its-canvas-course"}]},{"group":"Admin Accounts","pages":[{"title":"Get account by ID","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/account/{id}","href":"/api-reference/admin-accounts/get-account-by-id"},{"title":"Update account","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json put /api/admin/account/{id}","href":"/api-reference/admin-accounts/update-account"},{"title":"Transfer credits between account and institution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json put /api/admin/accountInstitution/{id}","href":"/api-reference/admin-accounts/transfer-credits-between-account-and-institution"},{"title":"Get list of account transfers","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/accountTransfers","href":"/api-reference/admin-accounts/get-list-of-account-transfers"},{"title":"Search and retrieve accounts","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/accounts","href":"/api-reference/admin-accounts/search-and-retrieve-accounts"}]},{"group":"Admin AI Models","pages":[{"title":"Create a new AI model","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/aimodel","href":"/api-reference/admin-ai-models/create-a-new-ai-model"},{"title":"Get AI model by ID","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/aimodel/{id}","href":"/api-reference/admin-ai-models/get-ai-model-by-id"},{"title":"Update AI model","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json put /api/admin/aimodel/{id}","href":"/api-reference/admin-ai-models/update-ai-model"},{"title":"Delete AI model","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/aimodel/{id}","href":"/api-reference/admin-ai-models/delete-ai-model"},{"title":"Get list of AI models","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/aimodels","href":"/api-reference/admin-ai-models/get-list-of-ai-models"},{"title":"Bulk soft-delete multiple aimodels","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/aimodels/bulk-delete","href":"/api-reference/admin-ai-models/bulk-soft-delete-multiple-aimodels"}]},{"group":"Admin Boards","pages":[{"title":"Grant or revoke Projects boards access on one membership","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json put /api/admin/boards/access","href":"/api-reference/admin-boards/grant-or-revoke-projects-boards-access-on-one-membership"},{"title":"Who, in one account, has Projects boards access","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/boards/access/account/{accountId}","href":"/api-reference/admin-boards/who-in-one-account-has-projects-boards-access"}]},{"group":"Admin Feedbacks","pages":[{"title":"Get feedback by ID","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/feedback/{id}","href":"/api-reference/admin-feedbacks/get-feedback-by-id"},{"title":"Update feedback","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json put /api/admin/feedback/{id}","href":"/api-reference/admin-feedbacks/update-feedback"},{"title":"Delete feedback","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/feedback/{id}","href":"/api-reference/admin-feedbacks/delete-feedback"},{"title":"Bulk soft-delete multiple feedbacks","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/feedbacks/bulk-delete","href":"/api-reference/admin-feedbacks/bulk-soft-delete-multiple-feedbacks"},{"title":"Search and retrieve feedbacks","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/feedbacks","href":"/api-reference/admin-feedbacks/search-and-retrieve-feedbacks"}]},{"group":"Admin Institutions","pages":[{"title":"Create a new institution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/institution","href":"/api-reference/admin-institutions/create-a-new-institution"},{"title":"Get a Digital Twin's settings","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/institution/{id}","href":"/api-reference/admin-institutions/get-a-digital-twins-settings"},{"title":"Update an institution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json put /api/admin/institution/{id}","href":"/api-reference/admin-institutions/update-an-institution"},{"title":"Delete an institution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/institution/{id}","href":"/api-reference/admin-institutions/delete-an-institution"},{"title":"Generate about text for institution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/generateAbout","href":"/api-reference/admin-institutions/generate-about-text-for-institution"},{"title":"Release a Digital Twin's credits to its account","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json put /api/admin/freeInstitutionCreditsById/{id}","href":"/api-reference/admin-institutions/release-a-digital-twins-credits-to-its-account"},{"title":"Clone an institution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/cloneInstitution/{id}","href":"/api-reference/admin-institutions/clone-an-institution"},{"title":"Reassign an institution to a different account","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json patch /api/admin/institution/{id}/account","href":"/api-reference/admin-institutions/reassign-an-institution-to-a-different-account"},{"title":"Get agent workspace state for an instance","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/institution/{id}/agent","href":"/api-reference/admin-institutions/get-agent-workspace-state-for-an-instance"},{"title":"Make an instance an agent","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/institution/{id}/agent/activate","href":"/api-reference/admin-institutions/make-an-instance-an-agent"},{"title":"Retry failed agent workspace provisioning","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/institution/{id}/agent/retry","href":"/api-reference/admin-institutions/retry-failed-agent-workspace-provisioning"},{"title":"Disable agent workspace desired state","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/institution/{id}/agent/disable","href":"/api-reference/admin-institutions/disable-agent-workspace-desired-state"},{"title":"Bulk soft-delete multiple institutions","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/institutions/bulk-delete","href":"/api-reference/admin-institutions/bulk-soft-delete-multiple-institutions"},{"title":"Retrieve list of institutions","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/institutions","href":"/api-reference/admin-institutions/retrieve-list-of-institutions"},{"title":"Get institution details by ID","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/institution/{institutionId}","href":"/api-reference/admin-institutions/get-institution-details-by-id"},{"title":"Update an institution configuration","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json put /api/admin/institution/{institutionId}","href":"/api-reference/admin-institutions/update-an-institution-configuration"}]},{"group":"Admin Questions","pages":[{"title":"Generate institution system prompt","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/generateInstitutionPrompt","href":"/api-reference/admin-questions/generate-institution-system-prompt"},{"title":"Analyze a prompt","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/analyzePrompt","href":"/api-reference/admin-questions/analyze-a-prompt"},{"title":"Retrieve institution questions","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/institutionQuestions","href":"/api-reference/admin-questions/retrieve-institution-questions"},{"title":"Retrieve institutional assessment questions","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/questions","href":"/api-reference/admin-questions/retrieve-institutional-assessment-questions"}]},{"group":"Admin Histories","pages":[{"title":"Delete multiple histories","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/deleteHistories","href":"/api-reference/admin-histories/delete-multiple-histories"},{"title":"Bulk soft-delete multiple history records","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/histories/bulk-delete","href":"/api-reference/admin-histories/bulk-soft-delete-multiple-history-records"},{"title":"Retrieve conversation histories for admin users","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/histories","href":"/api-reference/admin-histories/retrieve-conversation-histories-for-admin-users"},{"title":"Retrieve detailed history record by ID","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/history/{historyId}","href":"/api-reference/admin-histories/retrieve-detailed-history-record-by-id"},{"title":"Delete a specific history record","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/history/{historyId}","href":"/api-reference/admin-histories/delete-a-specific-history-record"},{"title":"Get weekly chart data for admin histories","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/histories/charts/weekly","href":"/api-reference/admin-histories/get-weekly-chart-data-for-admin-histories"},{"title":"Get time-series chart data for histories","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/histories/charts/timeline","href":"/api-reference/admin-histories/get-time-series-chart-data-for-histories"},{"title":"Get totals chart data for histories","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/histories/charts/totals","href":"/api-reference/admin-histories/get-totals-chart-data-for-histories"},{"title":"Get unique user count chart data","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/histories/charts/users","href":"/api-reference/admin-histories/get-unique-user-count-chart-data"},{"title":"Long-format per-user-per-period usage extract","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/histories/charts/user-stats","href":"/api-reference/admin-histories/long-format-per-user-per-period-usage-extract"},{"title":"Subagent efficiency over the turn trace (last 31 days)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/histories/charts/subagent-efficiency","href":"/api-reference/admin-histories/subagent-efficiency-over-the-turn-trace-last-31-days"},{"title":"Compare specific institutions side-by-side","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/histories/charts/cross-institution","href":"/api-reference/admin-histories/compare-specific-institutions-side-by-side"},{"title":"Get conversation model usage distribution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/histories/charts/model-distribution","href":"/api-reference/admin-histories/get-conversation-model-usage-distribution"},{"title":"Get tool usage and prompt cache census","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/histories/charts/tools","href":"/api-reference/admin-histories/get-tool-usage-and-prompt-cache-census"},{"title":"Get peak usage heatmap for conversations","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/histories/charts/heatmap","href":"/api-reference/admin-histories/get-peak-usage-heatmap-for-conversations"},{"title":"Lazy-fetch the bulk thinking and reasoning array for a single History record (admin)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/history/{id}/thinking","href":"/api-reference/admin-histories/lazy-fetch-the-bulk-thinking-and-reasoning-array-for-a-single-history-record-admin"},{"title":"Lazy-fetch the structured RAG-KAG retrieval segments for a single History record (admin)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/history/{id}/ragSearch","href":"/api-reference/admin-histories/lazy-fetch-the-structured-rag-kag-retrieval-segments-for-a-single-history-record-admin"}]},{"group":"Admin Charts","pages":[{"title":"Get chart by ID","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/chart/{id}","href":"/api-reference/admin-charts/get-chart-by-id"},{"title":"Delete chart","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/chart/{id}","href":"/api-reference/admin-charts/delete-chart"},{"title":"Get list of charts","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/charts","href":"/api-reference/admin-charts/get-list-of-charts"}]},{"group":"Admin MCP Servers","pages":[{"title":"Create a new MCP server","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/mcpserver","href":"/api-reference/admin-mcp-servers/create-a-new-mcp-server"},{"title":"Get MCP server by ID","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/mcpserver/{id}","href":"/api-reference/admin-mcp-servers/get-mcp-server-by-id"},{"title":"Update MCP server","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json put /api/admin/mcpserver/{id}","href":"/api-reference/admin-mcp-servers/update-mcp-server"},{"title":"Delete MCP server","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/mcpserver/{id}","href":"/api-reference/admin-mcp-servers/delete-mcp-server"},{"title":"Get list of MCP servers","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/mcpservers","href":"/api-reference/admin-mcp-servers/get-list-of-mcp-servers"},{"title":"Test a connector and list its tools","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/mcpserver/test","href":"/api-reference/admin-mcp-servers/test-a-connector-and-list-its-tools"}]},{"group":"Admin Memory","pages":[{"title":"List memory parameters for a user, grouped by institution.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/memory/user/{userId}","href":"/api-reference/admin-memory/list-memory-parameters-for-a-user-grouped-by-institution"},{"title":"Bulk hard-delete memory parameters for a user (filter-aware).","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/memory/user/{userId}","href":"/api-reference/admin-memory/bulk-hard-delete-memory-parameters-for-a-user-filter-aware"},{"title":"List shared memory parameters for an instance.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/memory/institution/{instId}","href":"/api-reference/admin-memory/list-shared-memory-parameters-for-an-instance"},{"title":"Bulk hard-delete shared memory parameters for an instance (filter-aware).","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/memory/institution/{instId}","href":"/api-reference/admin-memory/bulk-hard-delete-shared-memory-parameters-for-an-instance-filter-aware"},{"title":"Hard-delete a single memory parameter.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/memory/{id}","href":"/api-reference/admin-memory/hard-delete-a-single-memory-parameter"},{"title":"Edit a single memory parameter (whitelisted fields only).","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json patch /api/admin/memory/{id}","href":"/api-reference/admin-memory/edit-a-single-memory-parameter-whitelisted-fields-only"}]},{"group":"Admin Sessions","pages":[{"title":"Get session by ID","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/session/{id}","href":"/api-reference/admin-sessions/get-session-by-id"},{"title":"Soft-delete a session","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/session/{id}","href":"/api-reference/admin-sessions/soft-delete-a-session"},{"title":"Bulk soft-delete multiple sessions","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/sessions/bulk-delete","href":"/api-reference/admin-sessions/bulk-soft-delete-multiple-sessions"},{"title":"Get session analytics charts","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/sessions/charts","href":"/api-reference/admin-sessions/get-session-analytics-charts"},{"title":"Search and retrieve active sessions","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/sessions","href":"/api-reference/admin-sessions/search-and-retrieve-active-sessions"}]},{"group":"Admin - SSO Providers","pages":[{"title":"List SSO providers","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/ssoProviders","href":"/api-reference/admin--sso-providers/list-sso-providers"},{"title":"Create SSO provider","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/ssoProvider","href":"/api-reference/admin--sso-providers/create-sso-provider"},{"title":"Get SSO provider by ID","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/ssoProvider/{id}","href":"/api-reference/admin--sso-providers/get-sso-provider-by-id"},{"title":"Update SSO provider","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json put /api/admin/ssoProvider/{id}","href":"/api-reference/admin--sso-providers/update-sso-provider"},{"title":"Delete SSO provider","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/ssoProvider/{id}","href":"/api-reference/admin--sso-providers/delete-sso-provider"},{"title":"Bulk delete SSO providers","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/ssoProviders/bulk-delete","href":"/api-reference/admin--sso-providers/bulk-delete-sso-providers"},{"title":"Test SSO provider connectivity","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/ssoProvider/test/{id}","href":"/api-reference/admin--sso-providers/test-sso-provider-connectivity"}]},{"group":"Admin Assistants","pages":[{"title":"Bulk soft-delete multiple assistants","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/assistants/bulk-delete","href":"/api-reference/admin-assistants/bulk-soft-delete-multiple-assistants"},{"title":"Retrieve filtered list of assistants","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/assistants","href":"/api-reference/admin-assistants/retrieve-filtered-list-of-assistants"}]},{"group":"Admin Users","pages":[{"title":"Search and retrieve users for admin management","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/users","href":"/api-reference/admin-users/search-and-retrieve-users-for-admin-management"},{"title":"Bulk-set the status of multiple users","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json put /api/admin/users/bulk-status","href":"/api-reference/admin-users/bulk-set-the-status-of-multiple-users"},{"title":"Bulk soft-delete multiple users","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/users/bulk-delete","href":"/api-reference/admin-users/bulk-soft-delete-multiple-users"},{"title":"Live 24h cap-effectiveness analytics","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/users/cap-effectiveness","href":"/api-reference/admin-users/live-24h-cap-effectiveness-analytics"},{"title":"Get user details by ID (Admin only)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/user/{userId}","href":"/api-reference/admin-users/get-user-details-by-id-admin-only"},{"title":"Edit a user (Admin only)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json put /api/admin/user/{userId}","href":"/api-reference/admin-users/edit-a-user-admin-only"},{"title":"Delete a user by ID","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/user/{userId}","href":"/api-reference/admin-users/delete-a-user-by-id"},{"title":"Create a user, or add an existing account to a digital twin","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/user","href":"/api-reference/admin-users/create-a-user-or-add-an-existing-account-to-a-digital-twin"},{"title":"Merge a source user into a target user","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/users/merge","href":"/api-reference/admin-users/merge-a-source-user-into-a-target-user"}]},{"group":"Admin Entitlements","pages":[{"title":"Get user institutions by user ID","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/userInstitutionsByUserId/{userId}","href":"/api-reference/admin-entitlements/get-user-institutions-by-user-id"},{"title":"Bulk hard-delete multiple entitlement memberships","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/userInstitutions/bulk-delete","href":"/api-reference/admin-entitlements/bulk-hard-delete-multiple-entitlement-memberships"},{"title":"Get users associated with institutions","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/userInstitutions","href":"/api-reference/admin-entitlements/get-users-associated-with-institutions"},{"title":"Update user institution attributes such as account type, status, etc.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json put /api/admin/userInstitution/{userId}","href":"/api-reference/admin-entitlements/update-user-institution-attributes-such-as-account-type-status-etc"},{"title":"Revoke a member's Canvas API token","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/userInstitution/{id}/canvasToken","href":"/api-reference/admin-entitlements/revoke-a-members-canvas-api-token"},{"title":"Delete a user institution by ID","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/userInstitution/{id}","href":"/api-reference/admin-entitlements/delete-a-user-institution-by-id"},{"title":"Get users eligible to enroll in an institution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/userInstitutions/eligible","href":"/api-reference/admin-entitlements/get-users-eligible-to-enroll-in-an-institution"},{"title":"Enroll users into an institution","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/userInstitutions/enroll","href":"/api-reference/admin-entitlements/enroll-users-into-an-institution"}]},{"group":"Admin Payments","pages":[{"title":"List payments","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/stripePayments","href":"/api-reference/admin-payments/list-payments"}]},{"group":"Admin Tools","pages":[{"title":"List tools","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/tools","href":"/api-reference/admin-tools/list-tools"}]},{"group":"Admin Uploads","pages":[{"title":"Get upload by ID","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/upload/{id}","href":"/api-reference/admin-uploads/get-upload-by-id"}]},{"group":"Admin Usage Limits","pages":[{"title":"Usage-vs-cap reporting (per-user) or account-wide at-limit counts.","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/usage-limits","href":"/api-reference/admin-usage-limits/usage-vs-cap-reporting-per-user-or-account-wide-at-limit-counts"}]},{"group":"Exports","pages":[{"title":"Queue an async full-dataset CSV export","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/exports","href":"/api-reference/exports/queue-an-async-full-dataset-csv-export"}]},{"group":"Admin","pages":[{"title":"List a target user's active MFA-trusted devices (admin)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/users/{userId}/trusted-devices","href":"/api-reference/admin/list-a-target-users-active-mfa-trusted-devices-admin"},{"title":"Revoke ALL trusted devices for a target user (admin)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json delete /api/admin/users/{userId}/trusted-devices","href":"/api-reference/admin/revoke-all-trusted-devices-for-a-target-user-admin"},{"title":"List Praxis Shield threat incidents for the caller's managed institutions","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/security/threats","href":"/api-reference/admin/list-praxis-shield-threat-incidents-for-the-callers-managed-institutions"},{"title":"Get a full Praxis Shield incident (with evidence + LLM assessments)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/security/threats/{incidentId}","href":"/api-reference/admin/get-a-full-praxis-shield-incident-with-evidence-+-llm-assessments"},{"title":"Update a Praxis Shield incident (status / severity / categories)","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json patch /api/admin/security/threats/{incidentId}","href":"/api-reference/admin/update-a-praxis-shield-incident-status-severity-categories"},{"title":"Get the live flagged history records cited by a Praxis Shield incident","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json get /api/admin/security/threats/{incidentId}/history","href":"/api-reference/admin/get-the-live-flagged-history-records-cited-by-a-praxis-shield-incident"},{"title":"Add a reviewer note to a Praxis Shield incident","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/security/threats/{incidentId}/notes","href":"/api-reference/admin/add-a-reviewer-note-to-a-praxis-shield-incident"},{"title":"Record a reviewer action intent on a Praxis Shield incident","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/security/threats/{incidentId}/actions","href":"/api-reference/admin/record-a-reviewer-action-intent-on-a-praxis-shield-incident"},{"title":"Suspend the user flagged by a Praxis Shield incident","deprecated":null,"version":null,"openapi":"/mdx/api-reference/admin/admin-api.json post /api/admin/security/threats/{incidentId}/suspend-user","href":"/api-reference/admin/suspend-the-user-flagged-by-a-praxis-shield-incident"}]}]}]},{"tab":"LXP","pages":[{"title":"LXP","href":"/mdx/lxp/introduction"}]},{"tab":"What's New?","pages":[{"title":"What's New?","href":"/mdx/changelog"}]}]},"title":"LTI 1.3 for Canvas - praxis-ai","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["10e4515597","07c022d89b","a74be98ba7"],"chunks":["BannerMarkdown-B-Glu166.js","dist-zbf22OZA.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-Cs6nMGht.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","Frame-DYplxqhs.js","DynamicMarkdown-Cc6AuSHS.js","zoom-image-lightbox-BNnMwe0F.js","lightbox-handle-r17bVUz3.js"]}