COVID-19 GraphQL API
API Endpoint: covid19-graphql.herokuapp.com
This GraphQL API provides real-time, updated information on the COVID-19 cases across the world caused by the Coronavirus SARS-CoV-2.
Data is sourced from the Github repository and the OPS dashboard from Johns Hopkins university.
Features
-
Provides current, up-to-date statistics per country, subregion and region.
-
Provides timelines per country, subregion and region
-
Lightning fast due to smart caching and aggregation
-
Easy to run locally:
npx covid19-graphql
Example GraphQL queries
Following are some example GraphQL queries:
Latest statistics
{
latest {
confirmed
deceased
recovered
lastUpdated
}
}
Global timeline since March 2020, excluding China
{
timeline(excludeCountries: "CN", from: "2020-03-01") {
date
confirmed
}
}
Latest statistics for each country in Southern Europe:
{
subRegion(name: "Southern Europe") {
countries(count: 20) {
count
totalCount
hasNext
results {
name
latest {
lastUpdated
deceased
}
}
}
}
}
List all countries with confirmed cases, by region and subregion
{
regions {
name
subRegions {
name
countries(count: 100, filter: { hasCases: true }) {
results {
name
}
}
}
}
}
Running it yourself
In order to be in control of your own API endpoint instead of relying on someone else's, you can spin up a COVID19 GraphQL server locally with npx
:
npx covid19-graphql
Or install it globally:
npm install -g covid19-graphql
Then you can start the GraphQL server by entering:
covid19-graphql
Environment variables
The following environment variables affect the configuration of the server:
-
NODE_ENV
: When set toproduction
, will disable tracing, playground and various other debugging settings. It will enable various performance optimizations. -
PORT
: Determines the HTTP port on which the server will run (defaults to port 12000) -
ENABLE_TRACING
: Overrides the default GraphQL tracing setting (on for development, off for production). Use1
to turn on0
to turn off. -
ENABLE_PLAYGROUND
: Overrides the default GraphQL playground flag (on for development, off for production). Use1
to turn on0
to turn off.
Example:
PORT=8080 covid19-graphql
Development
After cloning this repo, enter npm install
to install the dependencies (btw Node >= 10 is required).
The following commands are most useful:
-
npm run dev
: Starts a development server -
npm run build
: Creates a build -
npm start
: Starts the server