● Microsoft 365 and Power Platform specialists since 2018 · Working hours overlap US time zonesAboutCareersBlogContact
Discuss Your Project

SharePoint (SPFx) solutions

IT Helpdesk →Quiz App → Leave ManagementExpense Claim ManagementAsset ManagementVisitor ManagementTraining ManagementPerformance Reviews See all SharePoint solutions →
Ready-made, customizedRequest a solution demo

See a working SPFx solution inside SharePoint.

Request a demo

SharePoint List Template ID: Reference Table and How to Find It

SharePoint list template ID reference with PnP PowerShell and REST examples by TSinfo Technologies

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.

IDEnum nameWhat it isBase type
100GenericListCustom list0
101DocumentLibraryDocument library1
102SurveySurvey4
103LinksLinks list0
104AnnouncementsAnnouncements list0
105ContactsContacts list0
106EventsCalendar (events list)0
107TasksTasks list0
108DiscussionBoardDiscussion board0
109PictureLibraryPicture library1
115XMLFormForm library1
119WebPageLibraryWiki page library1
120CustomGridCustom list in grid view0
130DataConnectionLibraryData connection library–
150GanttTasksProject tasks0
170PromotedLinksPromoted links–
171TasksWithTimelineAndHierarchyTasks with timeline and hierarchy–
600ExternalListExternal list–
1100IssueTrackingIssue tracking5

SharePoint also creates system lists and galleries behind the scenes. You will see these IDs when you list everything on a site:

IDEnum nameWhat it is
110DataSourcesData sources for a site
111WebTemplateCatalogSite template gallery
112UserInformationUser Information list
113WebPartCatalogWeb Part gallery
114ListTemplateCatalogList template gallery
116MasterPageCatalogMaster page gallery
121SolutionCatalogSolution gallery
123ThemeCatalogTheme gallery
140WorkflowHistoryWorkflow history
160AccessRequestAccess 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 false or your script will touch system lists like User Information (112).
  • Mixing up list and site templates. Site template IDs such as STS#3 are 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 1 when 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

What is the template ID of a SharePoint document library?

A standard document library uses template ID 101 (DocumentLibrary). Its base type is 1, which it shares with picture and form libraries.

What is template ID 100 in SharePoint?

Template ID 100 is GenericList, the custom list. Most lists that users create from scratch in SharePoint Online use it.

How do I find the template ID of an existing list?

Read the list’s BaseTemplate property. Use Get-PnPList in PnP PowerShell or open /_api/web/lists?$select=Title,BaseTemplate in the browser.

Is the calendar list template ID 106?

Yes. The calendar list is the Events template, ID 106, with base type 0.

Where is the official list of SharePoint list template IDs?

Microsoft documents every value in the ListTemplateType enumeration on Microsoft Learn.

Keep Learning

Need help with Microsoft 365 or Power Platform?

Our team builds AI agents, business apps, automated workflows and SharePoint intranets. Book a free 30-minute call and we’ll suggest a clear next step.