addressBookPolicies
Address Book Policies. Control which address lists each user can see. The addressBookPolicies entity set lives under /exchange/v1.0/addressBookPolicies in the Address book category.
| Fact | Value |
|---|---|
| Path | /exchange/v1.0/addressBookPolicies |
| Category | Address book |
| Tier | Tier 3, Mail flow |
| Read role | MailFlow.Read.All (Community) |
| Write role | MailFlow.ReadWrite.All (Pro) |
| Backing cmdlets | Get-AddressBookPolicy, Set-AddressBookPolicy, New-AddressBookPolicy, Remove-AddressBookPolicy |
Routes
Section titled “Routes”| Method | Path | Synopsis | Role | Plan |
|---|---|---|---|---|
| GET | /exchange/v1.0/addressBookPolicies |
List addressBookPolicies entries. | MailFlow.Read |
Community |
| POST | /exchange/v1.0/addressBookPolicies |
Create a new addressBookPolicies entry. Body keys map 1:1 to the cmdlet’s parameter names (camelCased). Returns 201 + Location + the freshly-fetched entity. Use ?dryRun=true to map to -WhatIf without applying. | MailFlow.ReadWrite |
Pro |
| GET | /exchange/v1.0/addressBookPolicies/{key} |
Get a single addressBookPolicies entry by Identity. | MailFlow.Read |
Community |
| PATCH | /exchange/v1.0/addressBookPolicies/{key} |
Partial update of the addressBookPolicies at /addressBookPolicies/{key}. Only body fields present are passed to the cmdlet. Returns 200 + the post-Set entity (rename-aware re-fetch when name is in the body). |
MailFlow.ReadWrite |
Pro |
| DELETE | /exchange/v1.0/addressBookPolicies/{key} |
Remove the addressBookPolicies at /addressBookPolicies/{key}. Returns 204 with no body. | MailFlow.ReadWrite |
Pro |
GET /exchange/v1.0/addressBookPolicies
Section titled “GET /exchange/v1.0/addressBookPolicies”List addressBookPolicies entries.
Backing cmdlet: Get-AddressBookPolicy. Role: MailFlow.Read (Community).
List addressBookPolicies
Section titled “List addressBookPolicies”Stub auto-generated example for the addressBookPolicies collection. Backing cmdlet: Get-AddressBookPolicy. Live-verify with ?$top=3&$select=Id,Name and replace the synthetic body before promoting to Tier 1.
GET /exchange/v1.0/addressBookPolicies?$top=3 HTTP/1.1Authorization: Bearer {token}HTTP/1.1 200 OK
{ "@odata.context": "http://localhost:5043/exchange/v1.0/$metadata#addressBookPolicies", "value": []}Notes: Illustrative example derived from the cmdlet documentation, not a live capture: field names are real, values are placeholders.
Related: GET /exchange/v1.0/addressBookPolicies/{key}
POST /exchange/v1.0/addressBookPolicies
Section titled “POST /exchange/v1.0/addressBookPolicies”Create a new addressBookPolicies entry. Body keys map 1:1 to the cmdlet’s parameter names (camelCased). Returns 201 + Location + the freshly-fetched entity. Use ?dryRun=true to map to -WhatIf without applying.
Backing cmdlet: New-AddressBookPolicy. Role: MailFlow.ReadWrite (Pro).
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
addressLists |
body | yes | ||
globalAddressList |
body | yes | ||
name |
body | yes | ||
offlineAddressBook |
body | yes | ||
roomList |
body | yes | ||
dryRun |
query | bool (switch) |
Create fails when a required field is missing
Section titled “Create fails when a required field is missing”New-AddressBookPolicy requires name, addressLists, globalAddressList, offlineAddressBook, and roomList. Omitting any of them returns a 400 before the cmdlet is invoked.
POST /exchange/v1.0/addressBookPolicies HTTP/1.1Authorization: Bearer {token}Content-Type: application/json
{ "addressLists": [ "\\All Users" ], "globalAddressList": "\\Default Global Address List", "offlineAddressBook": "\\Default Offline Address Book", "roomList": [ "\\All Rooms" ]}HTTP/1.1 400 Bad RequestContent-Type: application/json
{ "error": { "code": "BadRequest", "message": "The required field 'name' is missing from the request body.", "target": "name" }, "correlationId": "0HN7K2C9PQ3RV"}Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.
Related: GET /exchange/v1.0/addressBookPolicies
Create an address book policy
Section titled “Create an address book policy”Creates a new GAL-segmentation address book policy via New-AddressBookPolicy. The policy bundles the address lists, GAL, offline address book, and room list a scoped set of users will see.
POST /exchange/v1.0/addressBookPolicies HTTP/1.1Authorization: Bearer {token}Content-Type: application/json
{ "name": "exonaut-sample-addressBookPolicies", "addressLists": [ "\\All Users", "\\All Contacts" ], "globalAddressList": "\\Default Global Address List", "offlineAddressBook": "\\Default Offline Address Book", "roomList": [ "\\All Rooms" ]}HTTP/1.1 201 CreatedLocation: /exchange/v1.0/addressBookPolicies/exonaut-sample-addressBookPolicies
{ "Id": "exonaut-sample-addressBookPolicies", "Identity": "exonaut-sample-addressBookPolicies", "Name": "exonaut-sample-addressBookPolicies", "AddressLists": [ "\\All Users", "\\All Contacts" ], "GlobalAddressList": "\\Default Global Address List", "OfflineAddressBook": "\\Default Offline Address Book", "RoomList": [ "\\All Rooms" ]}Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.
Related: GET /exchange/v1.0/addressBookPolicies
GET /exchange/v1.0/addressBookPolicies/{key}
Section titled “GET /exchange/v1.0/addressBookPolicies/{key}”Get a single addressBookPolicies entry by Identity.
Backing cmdlet: Get-AddressBookPolicy. Role: MailFlow.Read (Community).
Get a single addressBookPolicies entry
Section titled “Get a single addressBookPolicies entry”Stub auto-generated example for GET /addressBookPolicies/{key}. Backing cmdlet: Get-AddressBookPolicy with -Identity {key}. Returns the full entity body; 404 if the identity doesn’t resolve.
GET /exchange/v1.0/addressBookPolicies/{key} HTTP/1.1Authorization: Bearer {token}HTTP/1.1 200 OK
{ "@odata.context": "http://localhost:5043/exchange/v1.0/$metadata#addressBookPolicies/$entity"}Notes: Illustrative example derived from the cmdlet documentation, not a live capture: field names are real, values are placeholders.
Related: GET /exchange/v1.0/addressBookPolicies
PATCH /exchange/v1.0/addressBookPolicies/{key}
Section titled “PATCH /exchange/v1.0/addressBookPolicies/{key}”Partial update of the addressBookPolicies at /addressBookPolicies/{key}. Only body fields present are passed to the cmdlet. Returns 200 + the post-Set entity (rename-aware re-fetch when name is in the body).
Backing cmdlet: Set-AddressBookPolicy. Role: MailFlow.ReadWrite (Pro).
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
addressLists |
body | |||
globalAddressList |
body | |||
name |
body | |||
offlineAddressBook |
body | |||
roomList |
body | |||
dryRun |
query | bool (switch) |
Update an address book policy
Section titled “Update an address book policy”Sub-resource of the address book policy at GET /addressBookPolicies/{key} - applies a partial update via Set-AddressBookPolicy. Only the body fields present are passed to the cmdlet; the updated entity is re-fetched and returned.
PATCH /exchange/v1.0/addressBookPolicies/{key} HTTP/1.1Authorization: Bearer {token}Content-Type: application/json
{ "addressLists": [ "\\All Users", "\\All Contacts", "\\All Groups" ], "globalAddressList": "\\Default Global Address List"}HTTP/1.1 200 OKContent-Type: application/json
{ "Id": "exonaut-sample-addressBookPolicies", "Identity": "exonaut-sample-addressBookPolicies", "Name": "exonaut-sample-addressBookPolicies", "AddressLists": [ "\\All Users", "\\All Contacts", "\\All Groups" ], "GlobalAddressList": "\\Default Global Address List", "OfflineAddressBook": "\\Default Offline Address Book", "RoomList": [ "\\All Rooms" ]}Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.
Related: GET /exchange/v1.0/addressBookPolicies
DELETE /exchange/v1.0/addressBookPolicies/{key}
Section titled “DELETE /exchange/v1.0/addressBookPolicies/{key}”Remove the addressBookPolicies at /addressBookPolicies/{key}. Returns 204 with no body.
Backing cmdlet: Remove-AddressBookPolicy. Role: MailFlow.ReadWrite (Pro).
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
dryRun |
query | bool (switch) |
Delete an address book policy
Section titled “Delete an address book policy”Sub-resource of the address book policy at GET /addressBookPolicies/{key} - removes the policy via Remove-AddressBookPolicy. Returns 204 with no body.
DELETE /exchange/v1.0/addressBookPolicies/{key} HTTP/1.1Authorization: Bearer {token}Content-Type: application/jsonHTTP/1.1 204 No ContentNotes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.
Related: GET /exchange/v1.0/addressBookPolicies
?dryRun=true previews of any write stay on Community.

