You are writing a script, a flow or a web part, and it needs to know what kind of list it is dealing with.
Is it a custom list, a document library or a hidden system list? SharePoint answers that with a number.
Quick answer: a SharePoint list template ID is the integer stored in a list’s BaseTemplate property. The most common values are 100 (custom list), 101 (document library), 104 (announcements), 106 (events/calendar) and 107 (tasks).
You can read it with PnP PowerShell, the REST API or Microsoft Graph.
What Is a SharePoint List Template ID?
Every list and library in SharePoint is created from a list definition. The ID of that definition is saved on the list as BaseTemplate, a read-only integer.
In the client object model, the same values are named in the ListTemplateType enumeration, so 100 is GenericList and 101 is DocumentLibrary.
A second property, BaseType, groups lists more broadly: 0 for generic lists, 1 for document libraries, 4 for surveys and 5 for issue lists.
If you are new to how lists and libraries fit together, our overview of what SharePoint Online is and how it works is a good starting point.
SharePoint List Template ID Reference Table
These are the IDs you will meet most often in SharePoint Online. Names and values come from the ListTemplateType enumeration on Microsoft Learn.
| ID | Enum name | What it is | Base type |
|---|---|---|---|
| 100 | GenericList | Custom list | 0 |
| 101 | DocumentLibrary | Document library | 1 |
| 102 | Survey | Survey | 4 |
| 103 | Links | Links list | 0 |
| 104 | Announcements | Announcements list | 0 |
| 105 | Contacts | Contacts list | 0 |
| 106 | Events | Calendar (events list) | 0 |
| 107 | Tasks | Tasks list | 0 |
| 108 | DiscussionBoard | Discussion board | 0 |
| 109 | PictureLibrary | Picture library | 1 |
| 115 | XMLForm | Form library | 1 |
| 119 | WebPageLibrary | Wiki page library | 1 |
| 120 | CustomGrid | Custom list in grid view | 0 |
| 130 | DataConnectionLibrary | Data connection library | – |
| 150 | GanttTasks | Project tasks | 0 |
| 170 | PromotedLinks | Promoted links | – |
| 171 | TasksWithTimelineAndHierarchy | Tasks with timeline and hierarchy | – |
| 600 | ExternalList | External list | – |
| 1100 | IssueTracking | Issue tracking | 5 |
SharePoint also creates system lists and galleries behind the scenes. You will see these IDs when you list everything on a site:
| ID | Enum name | What it is |
|---|---|---|
| 110 | DataSources | Data sources for a site |
| 111 | WebTemplateCatalog | Site template gallery |
| 112 | UserInformation | User Information list |
| 113 | WebPartCatalog | Web Part gallery |
| 114 | ListTemplateCatalog | List template gallery |
| 116 | MasterPageCatalog | Master page gallery |
| 121 | SolutionCatalog | Solution gallery |
| 123 | ThemeCatalog | Theme gallery |
| 140 | WorkflowHistory | Workflow history |
| 160 | AccessRequest | Access requests list |
Most business content lives in 100 and 101. If you are planning how to structure files, these practical document library examples show what each library type is good for.
How to Find a List’s Template ID
The reliable way is to read BaseTemplate from the list itself. Some lists, such as publishing libraries, report IDs that are not in the enumeration, so checking the real list beats guessing from a table.
With PnP PowerShell
Connect to the site and select the property for every list. Replace the URL and the client ID of your own Entra ID app registration:
Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/operations" -Interactive -ClientId "<your-app-id>"
Get-PnPList | Select-Object Title, BaseTemplate, BaseType, Hidden | Sort-Object BaseTemplate
With the REST API
Signed in to SharePoint, paste this URL into the browser. The $filter part is optional and keeps only document libraries:
https://contoso.sharepoint.com/sites/operations/_api/web/lists?$select=Title,BaseTemplate,Hidden&$filter=BaseTemplate eq 101
With Microsoft Graph
Graph returns a string instead of a number. Call GET /sites/{site-id}/lists and read list.template, which holds values such as genericList and documentLibrary.
Microsoft notes these map to the same enumeration. Teams that manage many sites often wrap these calls into wider SharePoint administration and governance work.
Using Template IDs in Scripts, Flows and SPFx
Create a list with PnP PowerShell
New-PnPList takes the enum name in -Template. This creates a document library with its own URL and shows it on the Quick Launch:
New-PnPList -Title "Vendor Contracts" -Url "VendorContracts" -Template DocumentLibrary -OnQuickLaunch
Create a list with REST
A POST to /_api/web/lists sets the type through BaseTemplate in the request body:
{
"__metadata": { "type": "SP.List" },
"BaseTemplate": 100,
"Title": "Facility Requests",
"Description": "Chicago office requests"
}
Filter lists in Power Automate
In a cloud flow, the Send an HTTP request to SharePoint action can call the same REST URL with the BaseTemplate eq 101 filter.
That is handy for flows that loop through every library on a site, such as a retention or permissions report. For larger automation projects, our Power Automate development team builds and supports these flows.
Check the list type in SPFx
In a SharePoint Framework web part, this.context.spHttpClient.get() with SPHttpClient.configurations.v1 calls the REST endpoint above. A property pane can then offer only document libraries by filtering on 101.
Our SPFx development service uses this pattern in many custom web parts.
Common Mistakes to Avoid
- Looking for “Calendar”. The calendar list is
Events(106) in code, not a Calendar enum value. - Forgetting hidden lists. Filter on
Hidden eq falseor your script will touch system lists like User Information (112). - Mixing up list and site templates. Site template IDs such as
STS#3are a separate system from list template IDs. - Comparing Graph strings to numbers. Graph returns
documentLibrary, REST and CSOM return 101. - Assuming 101 means every library. Picture (109), form (115) and wiki page (119) libraries have their own IDs, so check
BaseType eq 1when you need all of them. Good document management planning avoids this kind of surprise.
Next Steps
Template IDs are a small detail, but they decide whether your scripts and flows act on the right lists.
If you need help auditing sites, automating list provisioning or building web parts, book a free consultation with our SharePoint team.
Frequently Asked Questions
Keep Learning
- Automating around lists? Browse the Power Automate connectors we use most.
- Deciding where files should live? Read SharePoint vs OneDrive vs Teams.
- Own a site? See what a SharePoint site owner does.



