4.1 KiB
4.1 KiB
Outlook Routing Reference
App name: outlook
Base URL proxied: graph.microsoft.com
API Path Pattern
/outlook/v1.0/me/{resource}
Common Endpoints
User Profile
GET /outlook/v1.0/me
Mail Folders
List Mail Folders
GET /outlook/v1.0/me/mailFolders
Well-known folder names: Inbox, Drafts, SentItems, DeletedItems, Archive, JunkEmail
Get Mail Folder
GET /outlook/v1.0/me/mailFolders/{folderId}
Create Mail Folder
POST /outlook/v1.0/me/mailFolders
Content-Type: application/json
{
"displayName": "My Folder"
}
Messages
List Messages
GET /outlook/v1.0/me/messages
From specific folder:
GET /outlook/v1.0/me/mailFolders/Inbox/messages
With filter:
GET /outlook/v1.0/me/messages?$filter=isRead eq false&$top=10
Get Message
GET /outlook/v1.0/me/messages/{messageId}
Send Message
POST /outlook/v1.0/me/sendMail
Content-Type: application/json
{
"message": {
"subject": "Hello",
"body": {
"contentType": "Text",
"content": "This is the email body."
},
"toRecipients": [
{
"emailAddress": {
"address": "recipient@example.com"
}
}
]
},
"saveToSentItems": true
}
Create Draft
POST /outlook/v1.0/me/messages
Content-Type: application/json
{
"subject": "Hello",
"body": {
"contentType": "Text",
"content": "This is the email body."
},
"toRecipients": [
{
"emailAddress": {
"address": "recipient@example.com"
}
}
]
}
Send Existing Draft
POST /outlook/v1.0/me/messages/{messageId}/send
Update Message (Mark as Read)
PATCH /outlook/v1.0/me/messages/{messageId}
Content-Type: application/json
{
"isRead": true
}
Delete Message
DELETE /outlook/v1.0/me/messages/{messageId}
Move Message
POST /outlook/v1.0/me/messages/{messageId}/move
Content-Type: application/json
{
"destinationId": "{folderId}"
}
Calendar
List Calendars
GET /outlook/v1.0/me/calendars
List Events
GET /outlook/v1.0/me/calendar/events
With filter:
GET /outlook/v1.0/me/calendar/events?$filter=start/dateTime ge '2024-01-01'&$top=10
Create Event
POST /outlook/v1.0/me/calendar/events
Content-Type: application/json
{
"subject": "Meeting",
"start": {
"dateTime": "2024-01-15T10:00:00",
"timeZone": "UTC"
},
"end": {
"dateTime": "2024-01-15T11:00:00",
"timeZone": "UTC"
},
"attendees": [
{
"emailAddress": {
"address": "attendee@example.com"
},
"type": "required"
}
]
}
Delete Event
DELETE /outlook/v1.0/me/events/{eventId}
Contacts
List Contacts
GET /outlook/v1.0/me/contacts
Create Contact
POST /outlook/v1.0/me/contacts
Content-Type: application/json
{
"givenName": "John",
"surname": "Doe",
"emailAddresses": [
{
"address": "john.doe@example.com"
}
]
}
Delete Contact
DELETE /outlook/v1.0/me/contacts/{contactId}
OData Query Parameters
$top=10- Limit results$skip=20- Skip results (pagination)$select=subject,from- Select specific fields$filter=isRead eq false- Filter results$orderby=receivedDateTime desc- Sort results$search="keyword"- Search content
Notes
- Use
meas the user identifier for the authenticated user - Message body content types:
TextorHTML - Well-known folder names work as folder IDs:
Inbox,Drafts,SentItems, etc. - Calendar events use ISO 8601 datetime format