Get all organizations in Azure DevOps using REST API Get all organizations in Azure DevOps using REST API azure azure

Get all organizations in Azure DevOps using REST API


If you load the current landing page, it displays all your organizations tied to your account. I assumed it had to get that information some way. I captured the network traffic and I believe you could get to the data you want using a system API call. However, it might change or might become unsupported without notice, so use at your own discretion.

You can get the information you want using this API:

Post https://dev.azure.com/{organization1}/_apis/Contribution/HierarchyQuery?api-version=5.0-preview.1

Body:

{    "contributionIds": ["ms.vss-features.my-organizations-data-provider"],    "dataProviderContext":        {            "properties":{}        }}

Response:

{    "dataProviderSharedData": {},    "dataProviders": {        "ms.vss-web.component-data": {},        "ms.vss-web.shared-data": null,        "ms.vss-features.my-organizations-data-provider": {            "organizations": [                {                    "id": "{redacted id}",                    "name": "{organization1}",                    "url": "https://{organization1}.visualstudio.com/"                },                {                    "id": "{redacted id}",                    "name": "{organization2}",                    "url": "https://dev.azure.com/{organization2}/"                }            ],            "createNewOrgUrl": "https://app.vsaex.visualstudio.com/go/signup?account=true"        }    } }


you can do it simply by making a call to get all the account you are member/ owner of. However for that you need your id, which can be easily fetched by making get profile call. Here are steps below:

  1. Make a VSTS API call to get profile details using Bearer token or PAT

https://app.vssps.visualstudio.com/_apis/profile/profiles/me?api-version=5.1

This will return you, your Id:

{    "displayName": "xxxx",    "publicAlias": "xxx",    "emailAddress": "xxx",    "coreRevision": xxx,    "timeStamp": "2019-06-17T09:29:11.1917804+00:00",    "id": "{{We need this}}",    "revision": 298459751}
  1. Next, make a call to get all the accounts you are member of or owner of:

https://app.vssps.visualstudio.com/_apis/accounts?api-version=5.1&memberId={{Your Id}}

Response:

{    "count": 1,    "value": [        {            "accountId": "xxx",            "accountUri": "xxx",            "accountName": "xxx",            "properties": {}        }    ]}

It will return list of accounts you are associated with.


A REST API request/response pair can be separated into five components:

The request URI, in the following form:

VERB https://{instance}[/{team-project}]/_apis[/{area}]/{resource}?api-version={version}

instance: The Azure DevOps Services organization or TFS server you're sending the request to.

They are structured as follows:Azure DevOps Services: dev.azure.com/{organization}

The REST API's are organization specific. This is not documented at present. You could submit a feature request here: https://developercommunity.visualstudio.com/spaces/21/index.html

Our PM and product team will kindly review your suggestion. Sorry for any inconvenience.

As a workaround, you could use the API which captured from network traffic just as Matt mentioned.