Documentation
The MIDAS Catalog is a curated collection of resources (e.g. datasets, software) pertinent to the field of infectious disease modeling. The MIDAS Catalog web interface is available at: https://catalog.midasnetwork.us.
All of the metadata for the catalog entries in the MIDAS Catalog are accessible via the MIDAS Catalog API. This REST API is intended for use by developers that want to use the catalog entry metadata in their own software.
Note: API use is restricted to members of the MIDAS Research Network. All members are assigned a personal token, which we call an API key, which is required to be sent with API requests.
A brief explanation of searching for metadata via the API is as follows:
API location:
The API is hosted at members.midasnetwork.us/midascontacts. All requests should prepend https://members.midasnetwork.us/midascontacts/ to the URLs described below.
Search:
The most important function of the API is search. API users search the catalog by issuing one or more field-value pairs as query parameters in the url. The API will then return the JSON metadata of the matching catalog entries.
For example, a request to retrieve datasets about COVID-19:
/catalog/search?disease=covid_19&type_or_record=data_set&apiKey={key}
Building a field-value pair:
For the official documentation of the API, please see below.
Important: All Catalog API endpoints use the HTTP GET method.
The API Key is emailed to the specified email address used in the request. The provided email address must match the address used on the membership application. Use this link to apply to become a member of MIDAS.
API users retrieve their API Key by issuing the following request:
/catalog/apiKey/request?emailAddress={member_email_address}
https://members.midasnetwork.us/midascontacts/catalog/apikey/request?emailAddress=
import requests
url = "https://members.midascontacts.com/catalog/apikey/request?emailAddress=" + "member_email_address"
response = requests.get(url)
print(response.text)
curl -X GET "https://members.midascontacts.com/catalog/apikey/request?emailAddress=" + "member_email_address" -H "accept: application/json;charset=UTF-8"
/catalog/search?apiKey={apiKey}
https://members.midasnetwork.us/midascontacts/catalog/search?apikey=
import requests
url = "https://members.midascontacts.com/catalog/search?apiKey=" + "member_api_key"
response = requests.get(url)
print(response.text)
curl -X GET "https://members.midascontacts.com/catalog/search?apiKey=" + "member_api_key" -H "accept: application/json;charset=UTF-8"
Note: An extensive listing of available search fields and values as of 5/15/2023 is available in Appendix A.
/catalog/search/fields?apiKey={apiKey}
https://members.midasnetwork.us/midascontacts/catalog/search/fields?apikey=
import requests
url = "https://members.midascontacts.com/catalog/search/fields?apiKey=" + "member_api_key"
response = requests.get(url)
print(response.text)
curl -X GET "https://members.midascontacts.com/catalog/search/fields?apiKey=" + "member_api_key" -H "accept: application/json;charset=UTF-8"
/catalog/search/fields/value?apiKey={apiKey}&field={field_name}
https://members.midasnetwork.us/midascontacts/catalog/search/fields/value?apikey=&field=
import requests
url = "https://members.midascontacts.com/catalog/search/fields/values?apiKey=" + "member_api_key" + “&field=”
response = requests.get(url)
print(response.text)
curl -X GET "https://members.midascontacts.com/catalog/search/fields?apiKey=" + "member_api_key" + “&field=” -H "accept: application/json;charset=UTF-8"
https://members.midasnetwork.us/midascontacts/catalog/search?apikey=&disease=covid_19
import requests
url = "https://members.midascontacts.com/catalog/search?apiKey=" + "member_api_key" + "&disease=covid_19"
response = requests.get(url)
print(response.text)
curl -X GET "https://members.midascontacts.com/catalog/search?apiKey=" + "member_api_key" + "&disease=covid_19" -H "accept: application/json;charset=UTF-8"
Note: The GeonamesID for the United States is 6252001.
https://members.midasnetwork.us/midascontacts/catalog/search?apikey=&locationOption=include_sub_locations&location=6252001
import requests
url = "https://members.midascontacts.com/catalog/search?apiKey=" + "member_api_key" + "&locationOption=include_sub_locations&location=6252001"
response = requests.get(url)
print(response.text)
curl -X GET "https://members.midascontacts.com/catalog/search?apiKey=" + "member_api_key" + "&locationOption=include_sub_locations&location=6252001" -H "accept: application/json;charset=UTF-8"
Important: This is the first query that specifies a geographical location. Instead of the query using the name of a location, which will vary between languages, the API queries locations using numerical IDs from the Geonames Database.
https://members.midasnetwork.us/midascontacts
/catalog/search?apikey=&disease=mpox&type_or_record=data_set&location=6255149&location_option=include_sub_locations
import requests
url = "https://members.midascontacts.com/catalog/search?apiKey=" + "member_api_key" + "&disease=mpox&type_or_record=data_set&location=6255149&location_option=include_sub_locations"
response = requests.get(url)
print(response.text)
curl -X GET "https://members.midascontacts.com/catalog/search?apiKey=" + "member_api_key" -H "accept: application/json;charset=UTF-8"
Note: The GeonamesIds for Connecticut and New York, are 4831725 and 5128638, respectively.
https://members.midasnetwork.us/midascontacts/catalog/search?apikey=&location=4831725&location=5128638
import requests
url = "https://members.midascontacts.com/catalog/search?apiKey=" + "member_api_key" + "&location=4831725&location=5128638"
response = requests.get(url)
print(response.text)
curl -X GET "https://members.midascontacts.com/catalog/search?apiKey=" + "member_api_key" + "&location=4831725&location=5128638" -H "accept: application/json;charset=UTF-8"
https://members.midasnetwork.us/midascontacts/catalog/search?apikey=&type_or_record=data_set&topic=case_counts
import requests
url = "https://members.midascontacts.com/catalog/search?apiKey=" + "member_api_key" + "&type_or_record=data_set&topic=case_counts"
response = requests.get(url)
print(response.text)
curl -X GET "https://members.midascontacts.com/catalog/search?apiKey=" + "member_api_key" + "&type_or_record=data_set&topic=case_counts" -H "accept: application/json;charset=UTF-8"
Note: The MIDAS Curated Archive of Global Public Health Data is a centralized worldwide archive of official COVID-19 data from public health agencies, ministries of health, and other governmental websites.
https://members.midasnetwork.us/midascontacts/catalog/search?apikey=&collection=curated_archive_of_global_public_health_data
import requests
url = "https://members.midascontacts.com/catalog/search?apiKey=" + "member_api_key" + "&collection=curated_archive_of_global_public_health_data"
response = requests.get(url)
print(response.text)
curl -X GET "https://members.midascontacts.com/catalog/search?apiKey=" + "member_api_key" + "&collection=curated_archive_of_global_public_health_data" -H "accept: application/json;charset=UTF-8"
| Field | Accepted Values |
|---|---|
| biological_scale | population, molecular |
| collection | include_non_collection_specific_results, curated_archive_of_global_public_health_data |
| disease | include_non_disease_specific_results, covid_19, mpox |
| host_species | homo_sapiens, non_specific_host |
| pathogen_species | severe_acute_respiratory_syndrome_coronavirus_2, monkeypox_virus, non_specific_pathogen |
| language | albanian, arabic, armenian, azerbaijani, basque, bengali, bhojpuri, bosnian, bulgarian, burmese, central_khmer, chinese, croatian, czech, danish, dutch_flemish, english, estonian, finnish, french, georgian, german, greek_modern, gujarati, hausa, hebrew, hindi, hungarian, icelandic, igbo, indonesian, italian, japanese, javanese, kannada, kirghiz_kyrgyz, korean, lao, latvian, lithuanian, maithili, malay, malayalam, marathi, mongolian, montenegrin, norwegian, panjabi_punjabi, papiamento, persian, polish, portuguese, romanian_moldavian_moldovan, russian, serbian, sindhi, slovak, slovenian, somali, spanish_castilian, swedish, tajik, tamil, telugu, thai, turkish, ukrainian, urdu, uzbek, vietnamese, yoruba |
| location | geonames identifiers |
| location_option | include_non_location_specific_results, include_sub_locations, multi_continental |
| temporal_scope_begin_date | begin date in format yyyy/MM/dd |
| temporal_scope_end_date | end date in format yyyy/MM/dd |
Hierarchical. Values with children include all sub-values.
Sub-types for software records.
Hierarchical. The teaches field accepts the same values as topic.
These fields apply to records of type educational_resource.
| Field | Accepted Values |
|---|---|
| educational_level | Graduate, professional, general_public |
| educational_use | classroom_instruction, lecture_support, self_paced_learning, workshop_activity, simulation_exercise, case_study_analysis, data_analysis_activity, guided_practice, independent_practice, assessment, discussion_prompt, reference_material |
| educational_audience | researchers, students, public_health_professionals, general_public |
| educational_objective | understanding_sir_models, understanding_seir_models, interpreting_epidemic_curves, Understanding_r0_and_re, scenario_analysis, data_literacy, model_comparison, uncertainty_interpretation, public_health_decision_support, ethical considerations |
| educational_prerequisite | calculus, basic_statistics, programming_basics, python_fundamentals, r_fundamentals, basic_epidemiology, modeling_fundamentals, public_health_foundations |
| educational_format | online, interactive, slides, in_person, mooc, notebooks, textbook, lecture_notes, datasets, software, video |
| educational_data_requirements | synthetic_data, real_world_datasets, none |