Map other organization IDs to ROR IDs

Many ROR records contain equivalent organization IDs of other types in the external_ids section. This allows you to find the equivalent ROR ID for several other organization ID types.

Organization ID types you'll find in ROR records include:

  • Crossref Funder ID (formerly FundRef)
  • GRID
  • ISNI
  • Wikidata

Not all records contain all of the ID types above in external_ids. In some cases, an equivalent ID may not exist in that identifier type.

📘

Migrating from GRID to ROR

GRID published its final public release on 16 Sep 2021 (see GRID/ROR Transition FAQ)

If you're migrating to ROR from GRID, the good news is that ROR's JSON data structure is identical to GRID's and every GRID ID has a one-to-one match to a ROR ID!

The latest ROR data is available from Zenodo rather than Figshare, however, so if you've been using the Figshare API to import GRID data, you'll need to switch to downloading the ROR data dump using the Zenodo API.

You can also find a list of ROR IDs and their equivalent GRID IDs from the Sep 2021 ROR data dump as a CSV file at https://doi.org/10.5281/zenodo.5534785

Map other IDs to ROR using the API

📘

This guide provides tips for implementing the ROR API for this specific use case. See the REST API guide for full information about the ROR API.

Map a single ID to ROR

Search for a ROR record containing an equivalent ID of another type in external_ids by using quotes around the ID in a query.

The query parameter search approach includes the external_ids field and so can be used to search for ROR records that match an external identifier. Use URL-encoded quotation marks before and after the identifier search string for best results.

Because the query parameter search does not search relationships fields, only the record with the searched-for identifier in the external_ids field will be returned.

curl https://api.ror.org/organizations?query=%22grid.14003.36%22 | json_pp -json_opt pretty,utf8

If a match is found, the response will contain 1 or more full ROR records. You'll find the corresponding ROR ID(s) in items[n].id.

{
   "items" : [
      {
         "acronyms" : [
            "UW"
         ],
         "addresses" : [
            {
               "city" : "Madison",
               "country_geonames_id" : 6252001,
               "geonames_city" : {
                  "city" : "Madison",
                  "geonames_admin1" : {
                     "ascii_name" : "Wisconsin",
                     "code" : "US.WI",
                     "id" : 5279468,
                     "name" : "Wisconsin"
                  },
                  "geonames_admin2" : {
                     "ascii_name" : "Dane",
                     "code" : "US.WI.025",
                     "id" : 5250074,
                     "name" : "Dane"
                  },
                  "id" : 5261457,
                  "license" : {
                     "attribution" : "Data from geonames.org under a CC-BY 3.0 license",
                     "license" : "http://creativecommons.org/licenses/by/3.0/"
                  },
                  "nuts_level1" : {
                     "code" : null,
                     "name" : null
                  },
                  "nuts_level2" : {
                     "code" : null,
                     "name" : null
                  },
                  "nuts_level3" : {
                     "code" : null,
                     "name" : null
                  }
               },
               "lat" : 43.07305,
               "line" : null,
               "lng" : -89.40123,
               "postcode" : null,
               "primary" : false,
               "state" : null,
               "state_code" : null
            }
         ],
         "aliases" : [
            "UW–Madison"
         ],
         "country" : {
            "country_code" : "US",
            "country_name" : "United States"
         },
         "email_address" : "",
         "established" : 1848,
         "external_ids" : {
            "FundRef" : {
               "all" : [
                  "100007015",
                  "100008959",
                  "100005996",
                  "100007870",
                  "100008301",
                  "100008028",
                  "100008237",
                  "100008161",
                  "100010495",
                  "100009627",
                  "100010284",
                  "100005911",
                  "100007925",
                  "100005902"
               ],
               "preferred" : "100007015"
            },
            "GRID" : {
               "all" : "grid.14003.36",
               "preferred" : "grid.14003.36"
            },
            "ISNI" : {
               "all" : [
                  "0000 0001 2167 3675"
               ],
               "preferred" : null
            },
            "OrgRef" : {
               "all" : [
                  "23536538",
                  "2429663",
                  "10260206"
               ],
               "preferred" : "23536538"
            },
            "Wikidata" : {
               "all" : [
                  "Q838330",
                  "Q33122195",
                  "Q7662222"
               ],
               "preferred" : "Q838330"
            }
         },
         "id" : "https://ror.org/01y2jtd41",
         "ip_addresses" : [],
         "labels" : [
            {
               "iso639" : "fr",
               "label" : "Université du Wisconsin à Madison"
            },
            {
               "iso639" : "es",
               "label" : "Universidad de Wisconsin-Madison"
            }
         ],
         "links" : [
            "http://www.wisc.edu/"
         ],
         "name" : "University of Wisconsin–Madison",
         "relationships" : [
            {
               "id" : "https://ror.org/03ydkyb10",
               "label" : "University of Wisconsin System",
               "type" : "Parent"
            },
            {
               "id" : "https://ror.org/05cb4rb43",
               "label" : "Morgridge Institute for Research",
               "type" : "Child"
            },
            {
               "id" : "https://ror.org/03b8vas82",
               "label" : "National Atmospheric Deposition Program",
               "type" : "Related"
            },
            {
               "id" : "https://ror.org/04gq8q482",
               "label" : "North Temperate Lakes Long Term Ecological Research",
               "type" : "Child"
            }
         ],
         "status" : "active",
         "types" : [
            "Education"
         ],
         "wikipedia_url" : "http://en.wikipedia.org/wiki/University_of_Wisconsin%E2%80%93Madison"
      }
   ],
   "meta" : {
      "countries" : [
         {
            "count" : 1,
            "id" : "us",
            "title" : "United States"
         }
      ],
      "statuses" : [
         {
            "count" : 1,
            "id" : "active",
            "title" : "active"
         }
      ],
      "types" : [
         {
            "count" : 1,
            "id" : "education",
            "title" : "Education"
         }
      ]
   },
   "number_of_results" : 1,
   "time_taken" : 7
}

Map a list of IDs to ROR

If you have a list of other IDs you'd like to map to ROR, automate this search with a script. See our ror-utilities GitHub repository for an example Python script that accepts a list of other IDs as a CSV file and returns a CSV file with corresponding ROR IDs.

Mapping tips

  • In external_ids, each ID type has 2 fields: "all" and "preferred". For many external IDs, "preferred" is null even when "all" has only 1 value, so we recommend that you don't limit your mapping to only external IDs designated as preferred.
  • Mapping many thousands of organizations using a script that calls the ROR API can take many hours. If you require a faster approach, you may want to use the data dump, or an incremental approach, such as "just in time" mapping to ROR when organization data is read from or written to your system.

Map other IDs to ROR using the data dump

You can also use the ROR data dump to match other IDs to their equivalent ROR IDs using your own scripts or processing tools. Advantages of this approach include:

  • Fine-grained control over matching criteria
  • Faster processing in cases where you have many IDs to map
  • No chance of error responses due to network interruptions or API outages

Mapping Ringgold IDs to ROR

Since Ringgold is a proprietary identifier system, we're currently not able to include Ringgold IDs in ROR records. In the meantime, these approaches are available:

  • If you have access to the Ringgold Identify database/API, you can map Ringgold IDs to ROR IDs using ISNI as an intermediary, as ISNI IDs are included in both ROR and Ringgold records.
  • If you do not have access to the Ringgold Identify database/API, you may be able to map some Ringgold IDs to ROR IDs using Wikidata as an intermediary, as many ROR records contain Wikidata IDs and some Wikidata records contain Ringgold IDs that were derived from the 2019 ORCID public data file and published in http://doi.org/10.5281/zenodo.3241717. See the script at https://github.com/ror-community/ror-utilities/blob/main/general-scripts/map-ringgold-via-wikidata.py for a Python script that performs this matching.

Other resources you might find helpful