Query String URL Tricks for SharePoint and Microsoft 365
Note
This is an open-source article with the community providing support for it. For official Microsoft content, see Microsoft 365 documentation.
The URL is a core tenet of our online lives. Despite all the apps, browsers, and tools that occasionally obfuscate it, behind the scenes the Internet is glued together in part by the Uniform Resource Locator (URL). The data that populates the Teams app on your phone wouldn't make it there without the URL of the Graph API endpoint.
As a site owner or Microsoft 365 admin, you'll see URLs all the time: SharePoint sites, Microsoft Forms, shared links, and even application shortcuts like https://office.com/launch/onedrive
.
This article will cover some powerful parameters that you can stick on the tail end of a URL to change what's shown on the page... and to make your job easier. These URL parameters will give you more options for solving problems.
Overview
The thing about query strings is… they are everywhere
You know this URL brings you to a website:
https://learn.microsoft.com
And this one brings you to a specific section of that same website:
https://learn.microsoft.com/search/
What about this URL?
https://learn.microsoft.com/search/?terms=community%20content
It has a ? at the end with a key (terms) and a value (community content). This is a query string. Based on the key and value in it, we can infer that it might affect or influence the page to show different content.
In this example, we can change the value in our address bar (and hit return) and the page content may be different. Example:
https://learn.microsoft.com/search/?terms=large%lists
Multiple filters
Here's an example of multiple filtering with two keys (products and languages) with their corresponding values (m365 and javascript):
https://learn.microsoft.com/samples/browse
https://learn.microsoft.com/samples/browse?products=m365&languages=javascript
And here's that same page loads different content with different values (ms-graph and html)
https://learn.microsoft.com/samples/browse/?products=ms-graph&languages=html
How does this mental modal of URL-as-page-transformer work in Microsoft 365? Keep reading!
Useful Query String Tricks
Put a Modern SharePoint page into Edit mode
Any Modern SharePoint Online page can be placed into Edit Mode by adding this query string URL: ?Mode=Edit
https://<yoursite>.sharepoint.com/sites/<sitename>/SitePages/default.aspx
https://<yoursite>.sharepoint.com/sites/<sitename>/SitePages/default.aspx?Mode=Edit
This isn't really easier than clicking the button on the page, but it's a good example of changing a page's look or function dramatically with a query string URL.
Tip
Sharing (links) is caring - The URL, like the one in your browser's address bar, usually support spaces. So something like ?terms=policy security
works just fine. Where it might not work consistently is when you share the URL via Email, text or Teams by copying and pasting it. As a best practice, replace any space in your URL query string with a %20
, like ?terms=policy%20security
.
Safety first.
Put a Modern SharePoint page into Maintenance mode
Any Modern SharePoint Online page, like:
https://<yoursite>.sharepoint.com/sites/<sitename>/SitePages/home.aspx
… can be placed into Maintenance Mode by adding this query string to the URL: ?maintenancemode=true
https://<yoursite>.sharepoint.com/sites/<sitename>/SitePages/home.aspx?maintenancemode=true
This gives you a behind-the-scenes view of the web parts on the page, and the data being sent back and forth between the page and the browser. This is helpful for diagnosing issues with pages including those using the SharePoint Framework (SPFx).
Read the official documentation on this in the article Maintenance mode for client-side web parts
Put (Nearly) Anything in SharePoint into Focused Mode
In the Classic SharePoint days, there was a way to create a focused view of just content by appending isDLg=1
as a query string to your URL. Those days are in the rear-view, but there's an updated version for Modern SharePoint: ?env=Embedded
This hides the main navigation, footer, side navigation (and App bar) on just about anything in your SharePoint site, including:
- Pages
- List views
- Site Contents
- Site Analytics
- Recycle Bin
For example in a list it would be:
https://<yoursite>.sharepoint.com/sites/<sitename>/Lists/<yourlistname>/allitems.aspx?env=Embedded
In a page it would be:
https://<yoursite>.sharepoint.com/sites/<sitename>/SitePages/default.aspx?env=Embedded
If your page or list are living on a Hub Site, you may notice the Hub Site navigation will remain when using env=Embedded
. If this is not desirable, e.g. if you are embedding a page using the embed webpart, you can append ?env=WebView
instead.
Note: With SharePoint pages, the Org Chart Web Part does not support working with ?env=WebView
.
Show Any SharePoint List as a Microsoft Lists List
If you've been building in Microsoft 365 for a while, you're probably used to working in SharePoint sites with pages, web parts, workflows, and navigations. Sometimes you just want to share the context of a single list or library within that site – and with a URL query string you can do just that.
Take your list, remove any existing query string on the end down to this:
https://<yoursite>.sharepoint.com/sites/<sitename>/Lists/<yourlistname>/allitems.aspx
…and append this to the end of it:
?env=WebViewList
Like this:
https://<yoursite>.sharepoint.com/sites/<sitename>/Lists/<yourlistname>/allitems.aspx?env=WebViewList
That's it! Now your SharePoint list displays in Microsoft Lists. This is a great way to maximize screen real estate and help focus people during collaboration. This list remains housed in the original SharePoint site, but now with all the user interface polish of Microsoft Lists.
Tip
Filter your filters - Sometimes you need to apply two or more query string filters to the same URL – two keys and two values. The format for that is generally to use the question mark (?
) first, and the ampersand (&
) for every additional key/value pair.
Example:
page.aspx?mykey=myvalue&thisotherkey=someothervalue
Redirect users navigation from a List
You can redirect users navigation by including the ?Source=
query string in a list URL. This method could support all those use cases where a user is supposed to click on a link to add a new SharePoint list item. Without the ?Source=
query string, a user would "get stuck" in the the default list view, whereas this query string would help site owners control a user journey.
Example: users visit a SharePoint page containing a link/button/banner to let them fill out a form by adding a new SharePoint list item. The SharePoint page has the following URL: https://<yoursite>.sharepoint.com/sites/<sitename>/SitePages/<yoursitepage.aspx>
A SharePoint list uses an out-of-the-box .aspx page, to let users fill out a form and add a new item. For example: https://<yoursite>.sharepoint.com/sites/<sitename>/Lists/<yourlistname>/NewForm.aspx
After adding a new item, the ?Source=
query string will redirect users to the previous SharePoint page or any other web resource. A new item URL containing the ?Source=
query string would have a structure like this:
https://<yoursite>.sharepoint.com/sites/<sitename>/Lists/<yourlistname>/NewForm.aspx?Source=https://<yoursite>.sharepoint.com/sites/<sitename>/SitePages/<yoursitepage.aspx>
Note
This method works even if a user clicks on the "Cancel" button of a list form! Therefore, a redirect to a "Thank you" page would lead to a misleading and inconsistent result, whereas an e-mail message from a Power Automate flow could be a better option, based on a new list item creation or not.
Create a Link to a List or Library Search Result
Within the Modern user interface, the search bar sets its context (or scope) to the List, Library, or site you're in. When you perform a search from a list or library, it appends a query string of the search term to the URL. This link is sharable/bookmarkable.
Here's my example list:
https://<greatsharepointsite>.sharepoint.com/sites/Lists/<ListName>/AllItems.aspx
Here it is after a search for the phrase tax documents:
https://<greatsharepointsite>.sharepoint.com/sites/Lists/<ListName>/AllItems.aspx?view=7&q=tax%20documents
And if you change the value of the q key in the URL query string, the results shown on the page will change:
https://<greatsharepointsite>.sharepoint.com/sites/Lists/<ListName>/AllItems.aspx?view=7&q=consultants
You can share this link, in a way that works almost like a SharePoint list view.
Tip
Kick things up a notch by also adding the focused-mode query string filter in combination, like:
https://<greatsharepointsite>.sharepoint.com/sites/Lists/<ListName>/AllItems.aspx?view=7&q=engineering&env=Embedded
View search vertical immediately
After enabling or updating the search vertical, there is a delay of several hours before the changes can be seen on the search page. In that case, you can add cacheClear=true
to the URL in SharePoint to view the changes immediately.
Read the official documentation on View the vertical in the search result page.
Debug SharePoint Framework Web Parts and Extensions
You can troubleshoot a SharePoint page to see if there is a SharePoint Framework (SPFx) extension or web part causing trouble. Add this ?disable3PCode
to the end of the URL to disable loading anything SPFx-related:
https://<yoursite>.sharepoint.com/sites/<sitename>/SitePages/default.aspx?disable3PCode
Read the official documentation on Disable SPFx web parts and extensions.
Filtering and sorting modern SharePoint and Microsoft Lists views
Built into Modern SharePoint and Microsoft Lists and Libraries are some powerful filtering and sorting query string URLs. Below are some examples.
Tip
While the syntax here will help show you the way, you can also build and discover your own query string URLs by using the View's filtering pane. As you toggle boxes for columns in the pane, observe how the URL changes. These query string URLs are bookmarkable and sharable!
Sort List and Library views in SharePoint and Microsoft Lists
Within any view, you can add a query string to the URL to sort by a column. Here's an example, where the column name Complete is sorted ascending:
https://<yoursite>.sharepoint.com/sites/Lists/mylist/AllItems.aspx?sortField=Complete&isAscending=true
The sortField
key is your internal column name, and isAscending
determines the sort direction (true for ascending, false for descending).
Filter Lists and Library views by column values with FilterField and FilterValue
Views can be filtered by specific column values with a query string URL. This could let you have a URL that filters by a status column value, or shows only items where some column value is true.
Filtering like this means never having to wait for search. SharePoint Search can sometimes take a few minutes to pick up on a change, but this filtering is immediate.
In a list or library, the minimum needed for this type of filter is:
AllItems.aspx?useFiltersInViewXml=1&FilterField1=<internalFieldName>&FilterValue1=<value>
(No <
>
brackets, you'd type the actual column value.)
?useFiltersInViewXml=1
tells the List or Library view that you're appending filtering criteria.FilterField1=
is the key and the value needs to be the internal name of the list/library column you want to filter by. (If you rename 'Title' to 'Product' in your list, you'll need to use 'Title' in your query string URL.)- When filtering yes/no columns, use the number
0
for no and the number1
for yes. - You can filter by multiple keys/values by incrementing the number pairs (up to 10), like this:
?useFiltersInViewXml=1&FilterField1=<internalFieldName>&FilterValue1=<valueA>&FilterField2=<internalFieldName2>&FilterValue2=<valueB>&FilterField3=<internalFieldName3>&FilterValue3=<valueC>
Tip
Internal field name is not the column name. You can find out the internal filed name by going to List Settings, choosing the column, and looking after the &Field=
key in the URL. That's using a query string URL to help you make a query string URL!
Example Scenario using FilterField You might have a Power Automate Flow set to email a List view status report URL based about a product in a list… with hundreds of possible products. You wouldn't want to make separate views for each product.
To solve this, you start with your All Items view and append URL query strings to create dynamic URLs for your Flow emails:
https://<mytenant>.sharepoint.com/Lists/mylist/AllItems.aspx
Here's that same List view, showing only items where the Product column is equal to Tacos:
https://<mytenant>.sharepoint.com/Lists/mylist/AllItems.aspx?useFiltersInViewXml=1&FilterField1=Product&FilterValue1=Tacos
That same List view, showing only items where the Product column are equal to Pizza... and now with a second filter to show where the Tasty column is set to Yes:
https://<mytenant>.sharepoint.com/Lists/mylist/AllItems.aspx?useFiltersInViewXml=1&FilterField1=Product&FilterValue1=Pizza&FilterField2=Tasty&FilterValue2=1
Your boss wants it sorted newest to oldest, so go ahead and add the query string to sort by Created date.
https://<mytenant>.sharepoint.com/Lists/mylist/AllItems.aspx?sortField=Created&isAscending=false&useFiltersInViewXml=1&FilterField1=Product&FilterValue1=Pizza&FilterField2=Tasty&FilterValue2=1
FilterField for multiple values
With a choice column, its possible to return multiple list items/library files from a single query string URL. Replace FilterValue1
with FilterValues1
and list each choice out separated by %3B%23
Here's an example of a query string URL on a list view that returns any items where the Status field is set to either Better or Awesome:
https://<mytenant>.sharepoint.com/Lists/mylist/AllItems.aspx?useFiltersInViewXml=1&FilterFields1=Status&FilterValues1=Better%3B%23Awesome
Further view filter reading from the experts
The list/library view filtering capabilities are extensive. These articles go into further detail, including filtering with managed metadata.
Nate Chamberlain: How to filter a SharePoint list or library using URL parameters
Piyush K Singh: Generate Modern List Filter URL: Managed Metadata
Conclusion ?article=done
This article has hopefully given you awareness of the hidden power of query string URLs, and how they can let the platform do some of the work for you.
If you know of other useful query strings like these, you should consider contributing them to these Microsoft Community Content documents. You can open an issue in the GitHub repo, or submit your own pull request!
Principal author: Patrick M. Doran
Microsoft 365 community content