If you’ve ever used SharePoint and Power Automate, you’ve probably noticed that the built-in SharePoint actions (like Get Items, Create Item, or Update File Properties) are great — but they don’t cover everything.
When you need advanced functionality, there’s one powerful tool to rely on:
The SharePoint REST API.
The REST API lets you talk directly to SharePoint’s backend, giving you full control over data, files, metadata, and even user information.
This post gives you a Top 10 SharePoint REST API Endpoints Cheat Sheet, complete with examples, use cases, and Power Automate tips — perfect for developers, business analysts, or automation specialists.
💡 What Is the SharePoint REST API?
The SharePoint REST API provides a standard HTTP-based way to interact with SharePoint data — whether you’re reading list items, creating folders, uploading files, or running site searches.
You can call it using:
- Power Automate → “Send an HTTP Request to SharePoint”
- Postman or API clients
- Power Apps custom connectors
- Browser-based testing tools
Every REST call follows this pattern:
https://yourtenant.sharepoint.com/sites/YourSite/_api/<endpoint>
🧩 Top 10 REST API Endpoints
Let’s explore the most useful endpoints you’ll use daily.
1️⃣ Get All Lists in a Site
Purpose: Retrieve all lists and libraries from your site.
GET _api/web/lists
Common Filters:
GET _api/web/lists?$filter=Hidden eq false
✅ Use Case: When you’re building a dynamic app that needs to list all available SharePoint lists or verify if a list exists.
2️⃣ Get List Details by Name
Purpose: Fetch metadata for a specific list (including its GUID).
GET _api/web/lists/getbytitle('Projects')
Key Fields: Title, ID, ItemCount, Created, BaseTemplate
✅ Use Case: Before inserting or updating data, use this to get the internal list name or schema.
3️⃣ Get List Items (Read Data)
Purpose: Retrieve data (rows) from a list.
GET _api/web/lists/getbytitle('Projects')/items?$top=100
With Filter:
GET _api/web/lists/getbytitle('Projects')/items?$filter=Status eq 'Active'
✅ Supports: $filter, $select, $expand, $orderby
✅ Use Case: Perfect for data reporting, exporting, or flow condition checks in Power Automate.
4️⃣ Create a List Item
Purpose: Add a new record into a SharePoint list.
POST _api/web/lists/getbytitle('Projects')/items
Headers:
Accept: application/json;odata=nometadata
Content-Type: application/json;odata=nometadata
Body:
{
"__metadata": { "type": "SP.Data.ProjectsListItem" },
"Title": "New Project Alpha",
"Status": "Active"
}
✅ Use Case: Automate project or task creation when a form is submitted or a record is created in another system.
5️⃣ Update a List Item
Purpose: Edit specific columns of a list item.
PATCH _api/web/lists/getbytitle('Projects')/items(12)
Headers:
IF-MATCH: *
X-HTTP-Method: MERGE
Content-Type: application/json;odata=nometadata
Body:
{
"__metadata": { "type": "SP.Data.ProjectsListItem" },
"Status": "Completed"
}
✅ Use Case: Automatically mark items as “Completed” after workflow approval.
6️⃣ Delete a List Item
Purpose: Remove a specific record from a list.
POST _api/web/lists/getbytitle('Projects')/items(12)
Headers:
IF-MATCH: *
X-HTTP-Method: DELETE
✅ Use Case: Clean up old or invalid records as part of maintenance workflows.
7️⃣ Upload a File to a Document Library
Purpose: Upload documents programmatically into a library.
POST _api/web/GetFolderByServerRelativeUrl('/sites/Docs/Shared Documents')/Files/add(url='Report2025.xlsx',overwrite=true)
Body: Binary file content
✅ Use Case: Save files from Power Automate (e.g., email attachments, reports, invoices).
8️⃣ Get or Update File Properties
Purpose: Read or write file metadata (columns).
GET _api/web/GetFileByServerRelativeUrl('/sites/Docs/Shared Documents/Report2025.xlsx')/ListItemAllFields
Update Example:
PATCH _api/web/GetFileByServerRelativeUrl('/sites/Docs/Shared Documents/Report2025.xlsx')/ListItemAllFields
Body:
{
"__metadata": { "type": "SP.Data.Shared_x0020_DocumentsItem" },
"Category": "Finance"
}
✅ Use Case: Automatically categorize uploaded files based on their type or origin.
9️⃣ Get User Information
Purpose: Fetch the current user or another user’s details.
GET _api/web/currentuser
Or a specific user:
GET _api/web/getuserbyid(5)
✅ Use Case: Show user-specific data in dashboards or validate access in automated workflows.
🔟 Search Across Site or Tenant
Purpose: Run full-text search using the SharePoint index.
GET _api/search/query?querytext='project plan'&rowlimit=10&selectproperties='Title,Path,Author,LastModifiedTime'
Supports:
refiners→ e.g.filetype,authortrimduplicates=falsesortlist='LastModifiedTime:descending'
✅ Use Case: Build custom “Search” flows, document finders, or reporting dashboards.
⚙️ Bonus Utility Endpoints
| Use Case | Endpoint |
|---|---|
| Get Site Info | _api/site |
| Get Current Site Info | _api/web |
| Get Subsites | _api/web/webs |
| Get Current User Groups | _api/web/currentuser/groups |
| Get Folder Contents | _api/web/GetFolderByServerRelativeUrl('/sites/Docs/Shared Documents')/Files |
| Get Recycle Bin Items | _api/web/recyclebin |
🧰 Power Automate Tips
- Use JSON outputs smartly: Always include
Accept: application/json;odata=nometadatain headers for smaller, cleaner responses. - Avoid Authorization headers: The SharePoint connector automatically handles authentication.
- Parse JSON carefully: Use the built-in Parse JSON action after each API call.
- Error handling: Use
Configure Run Afterto manage failed requests gracefully. - Combine
$selectand$filter: Fetch only the columns and rows you need — improves performance drastically.
🚀 Why Learn REST API for SharePoint?
Even though Power Automate gives you many drag-and-drop actions, understanding the REST API unlocks 100% of SharePoint’s capabilities, including:
- Access to hidden properties not exposed in UI
- Control over site-level metadata
- Faster bulk operations
- Integration with external systems or custom apps
In short — REST is your superpower in Power Automate