Hi @Yash Tiwari ,
Welcome to the Microsoft Q&A Platform! Thank you for asking your question here.
The use of multiple hostnames (e.g., dev.azure.com, vssps, vsaex) in Azure DevOps REST APIs is a result of the platform's distributed microservices architecture.
Because Azure DevOps is composed of many independent services (like Build, Release, Identity, and Licensing) rather than a single monolithic application, different API sets are hosted on different subdomains to allow them to scale, update, and fail independently.
Here are the breakdown of the common hostnames and the "Resource Areas" system used to navigate them.
- Common Hostnames and Their Roles Each hostname corresponds to a specific "Service Area" or microservice.
| Hostname | Service Name | Purpose |
|---|---|---|
dev.azure.com |
Core / TFS | Handles the primary workloads: Work Items (Boards), Repos (Git/TFVC), and Build Pipelines. |
vssps.dev.azure.com |
Visual Studio Shared Platform Services | Handles Identity & Security. This includes Graph APIs (Users/Groups), Permissions, and Profile management. |
vsaex.dev.azure.com |
Visual Studio Account Extension | Handles Licensing & Entitlements. Used for managing User Entitlements, Access Levels (Stakeholder vs. Basic), and Billing. |
vsrm.dev.azure.com |
Visual Studio Release Management | Dedicated specifically to Classic Release Pipelines. (Note: YAML pipelines often run on the Core dev.azure.com service). |
feeds.dev.azure.com |
Azure Artifacts | Handles package management (NuGet, npm, Maven, etc.) feeds. |
- The Official Way to Handle This: "Resource Areas"
Microsoft advises against hardcoding these URLs because they can change (especially between Azure DevOps Services and Azure DevOps Server/On-Premise).
Instead, you should use the Resource Areas API to dynamically discover the correct endpoint for the service you need.
- API Endpoint:
GET https://dev.azure.com/{organization}/_apis/resourceAreas - How it works: You query this endpoint, and it returns a list of "Areas" (like Release, Build, git, etc.) along with the
locationUrlyou should use for that specific organization.{ "value": [ { "id": "efc2f575-36ef-48e9-b672-0c6fb4a48ac5", "name": "Release", "locationUrl": "https://vsrm.dev.azure.com/my-org/" }, { "id": "79134c72-4a58-4b42-976c-04e7115f32bf", "name": "core", "locationUrl": "https://dev.azure.com/my-org/" } ] }
- API Endpoint:
Reference: