The Instructure Community will enter a read-only state on November 22, 2025 as we prepare to migrate to our new Community platform in early December. Read our blog post for more info about this change.
We want to make some navigation links hidden by default when the course is created. Not external LTI's - as we can do that by XML. An example is the Files link we want to hide it by default. Any ideas?
Solved! Go to Solution.
You can do it with the Tabs API, and the id of the default tabs looks consistent (i.e. you get the files tab with `/courses/{course_id}/tabs/files`)
So you can do the update in one step (per class):
curl -X PUT "https://{canvas_url}/api/v1/courses/{course_id}/tabs/files" -F "hidden=true" -H "Authorization: Bearer {SUPERSECRET}" | jq --raw-output
which for the course I tested it with returned:
{
"id": "files",
"html_url": "/courses/28241/files",
"full_url": "https://templeu.instructure.com/courses/28241/files",
"position": 4,
"hidden": true,
"visibility": "admins",
"label": "Files",
"type": "internal"
}
It seems worth pointing out -- I'm pretty sure that that the link will just greyed out for Teachers, not invisible (alas, I tried -F "enabled=false" and -F "visibility=false" just to see, but they didn't have any effect -- I'm guessing that disabling the tool would break the course files functionality, not just hide the link entirely).
You can do it with the Tabs API, and the id of the default tabs looks consistent (i.e. you get the files tab with `/courses/{course_id}/tabs/files`)
So you can do the update in one step (per class):
curl -X PUT "https://{canvas_url}/api/v1/courses/{course_id}/tabs/files" -F "hidden=true" -H "Authorization: Bearer {SUPERSECRET}" | jq --raw-output
which for the course I tested it with returned:
{
"id": "files",
"html_url": "/courses/28241/files",
"full_url": "https://templeu.instructure.com/courses/28241/files",
"position": 4,
"hidden": true,
"visibility": "admins",
"label": "Files",
"type": "internal"
}
It seems worth pointing out -- I'm pretty sure that that the link will just greyed out for Teachers, not invisible (alas, I tried -F "enabled=false" and -F "visibility=false" just to see, but they didn't have any effect -- I'm guessing that disabling the tool would break the course files functionality, not just hide the link entirely).
The docs have a visibility of "none" - but, like trying false, it doesn't have any affect - the visibility stays as "admins".
Tried on Syllabus and its the same.
So you can hide it from students, but not teachers. For teachers its greyed out.
Hi Peter, maybe something we can think about when site is created in seams?
Thanks @phanley - do you happen to know if students can still see the files tab in the app if you hide it that way? Thank you!
It disappears for students. And is greyed out for teachers.
Hi, @leon_huang a belated Welcome to the Community!
This is definitely an option.
Much like the LTI's, you can do the same thing to native links as well. Check out the https://community.canvaslms.com/docs/DOC-12933-415257079 guide for more info. For this to be something that is done by default, you may want to employ the use of Master Shells or take a look into Blueprint Courses. A great one to get started with is @kblack 's blog, https://community.canvaslms.com/groups/higher-ed/blog/2017/08/05/designing-maintaining-and-perhaps-r....
Hope this helps! Please feel free to let us know if we can expand the answers to your questions or if you have any others.
Thanks all for your responses. very helpful.
Community helpTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign inTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign in
This discussion post is outdated and has been archived. Please use the Community question forums and official documentation for the most current and accurate information.