Creating a Scoped Developer Key: Atomis Search
Users can choose to use a Scoped Developer Key instead of creating a custom user role in order to limit the permissions granted to Atomic Search.
Scoped Developer Key Creation Instructions
Purpose
Users can choose to use a Scoped Developer Key instead of creating a custom user role in order to limit the permissions granted to Atomic Search.
Creating a Scoped Developer Key
- Create a new Account Admin with account/sub-account level access in Canvas using an email address that has no associated Canvas account.
- We suggest creating an ‘Atomic Search’ user so that, if the person first installing Atomic Search leaves the institution, the user and app won’t be deleted.
- Activate the new user in an Incognito window using the link sent via email. To bypass an SSO sign-in, on the SSO page, enter [domain].instructure.com/login/canvas.
- Log in to Canvas under the new Account Admin with root-level account/sub-account access.
- Access the root account/sub-account.
- Select Developer Keys in the left-hand Canvas navigation menu.
![]()
- Select add a Developer Key.

- Select "API",

- Enter the following information:
- Key Name: “Atomic Search”
- Owner Email: [The Admin Email]
- Redirect URIs (choose the URI specific to your region):
- Redirect URI (Legacy): Same as Redirect URIs
- Vendor Code (LTI 2): Leave empty
- Icon URL: (choose the one specific to your region)
|
US |
|
|
Sydney |
|
|
Dublin |

- Turn on the Enforce Scopes and Allow Include Parameters options.

- Select the scopes shown in the table below.
- A simple way to ensure that you select the correct scope:
- First, expand all of the sections shown in the list below (Accounts, Assignments, Courses, Discussion Topics, Enrollments, External Tools, Files, Modules, Pages, Quiz Questions, Quizzes, and Users)

- On a Mac, select CMD+F, and on a PC, select CTRL+F to search within the page.
- Starting with the first ‘Scope Selection’, copy and paste the full entry (e.g. copy/paste “url:GET|/api/v1/accounts”) and hit Enter. Validate that it matches the full scope. Select the scope. Move on and search for the next one, and so on.


|
Section |
Scope Selection |
Access Purpose |
|
Accounts |
url:GET|/api/v1/accounts |
Welcome app and permissions for searching courses/accounts |
|
Accounts |
url:GET|/api/v1/accounts/:account_id/courses |
Indexing |
|
Accounts |
url:GET|/api/v1/accounts/:account_id/permissions |
Welcome app |
|
Accounts |
url:GET|/api/v1/accounts/:account_id/sub_accounts |
Welcome app and indexing |
|
Assignments |
url:GET|/api/v1/courses/:course_id/assignments |
Indexing |
|
Assignments |
url:GET|/api/v1/courses/:course_id/assignments/:id |
Indexing |
|
Assignments |
url:PUT|/api/v1/courses/:course_id/assignments/:id |
Find & Replace |
|
Courses |
url:GET|/api/v1/courses |
Welcome app |
|
Courses |
url:GET|/api/v1/courses/:id |
Indexing |
|
Courses |
url:GET|/api/v1/courses/:course_id/permissions |
Welcome app |
|
Discussion Topics |
url:GET|/api/v1/courses/:course_id/discussion_topics |
Indexing |
|
Discussion Topics |
url:GET|/api/v1/courses/:course_id/discussion_topics/:topic_id |
Indexing |
|
Discussion Topics |
url:PUT|/api/v1/courses/:course_id/discussion_topics/:topic_id |
Find & Replace |
|
Discussion Topics |
url:GET/api/v1/courses/:course_id/discussion_topics/:topic_id/entries |
Permission for searching course discussions |
|
Enrollments |
url:GET|/api/v1/users/:user_id/enrollments |
Permissions for searching courses/ accounts |
|
Enrollments |
url:GET|/api/v1/users/:user_id/temporary_enrollment_status |
Permissions for searching courses/ accounts |
|
External Tools |
url:POST|/api/v1/courses/:course_id/external_tools |
Welcome app |
|
External Tools |
url:GET|/api/v1/accounts/:account_id/external_tools |
Welcome app |
|
External Tools |
url:POST|/api/v1/accounts/:account_id/external_tools |
Welcome app |
|
External Tools |
url:GET|/api/v1/courses/:course_id/external_tools |
Welcome app |
|
External Tools |
url:PUT|/api/v1/accounts/:account_id/external_tools/:external_tool_id |
Welcome app |
|
External Tools |
url:PUT|/api/v1/courses/:course_id/external_tools/:external_tool_id |
Welcome app |
|
Files |
url:GET|/api/v1/courses/:course_id/files |
Indexing |
|
Files |
url:GET|/api/v1/courses/:course_id/files/:id |
Indexing |
|
Modules |
url:GET|/api/v1/courses/:course_id/modules |
Indexing |
|
Modules |
url:GET|/api/v1/courses/:course_id/modules/:module_id/items |
Indexing |
|
Pages |
url:GET|/api/v1/courses/:course_id/front_page |
Indexing |
|
Pages |
url:GET|/api/v1/courses/:course_id/pages |
Indexing |
|
Pages |
url:GET|/api/v1/courses/:course_id/pages/:url_or_id |
Indexing |
|
Pages |
url:PUT|/api/v1/courses/:course_id/pages/:url_or_id |
Find & Replace |
|
Quiz Questions |
url:GET|/api/v1/courses/:course_id/quizzes/:quiz_id/questions |
Indexing |
|
Quiz Questions |
url:PUT|/api/v1/courses/:course_id/quizzes/:quiz_id/questions/:id |
Find & Replace |
|
Quizzes |
url:GET|/api/v1/courses/:course_id/quizzes |
Indexing |
|
Quizzes |
url:GET|/api/v1/courses/:course_id/quizzes/:id |
Indexing |
|
Quizzes |
url:PUT|/api/v1/courses/:course_id/quizzes/:id |
Find & Replace |
|
Users |
url:GET|/api/v1/users/:user_id/profile |
OAuth |
- Click Save to create the developer key.
- The Key will now be displayed on the Developers Key page.
- Change the state of the Key to ON.

- Send the following information to Atomic Jolt at support@atomicjolt.com:
- Developer Key - Number on the first line listed for the key in the Details column.

- Developer Key ID - Click the Show Key button to see.

- Canvas Domain - The Canvas domain that students and teachers use. (e.g. “[institution].instructure.com”).
- Atomic Jolt will complete the setup in our system using the provided information.
- Schedule a time with your Atomic Jolt representative to install the Search tool together.
- When the user authorizes Atomic Search to install the tool into Canvas, it will issue an Access Token to Atomic Search that is limited to the Scopes that you specified for the Developer key.