globe # Countries GraphQL API [![Build Status](https://travis-ci.com/trevorblades/countries.svg?branch=master)](https://travis-ci.com/trevorblades/countries) [![Donate](https://img.shields.io/beerpay/trevorblades/countries.svg)](https://beerpay.io/trevorblades/countries) A public GraphQL API for information about countries, continents, and languages. This project uses [Countries List](https://annexare.github.io/Countries/) as a data source, so the schema follows the shape of that data, with a few exceptions: 1. The codes used to key the objects in the original data are available as a `code` property on each item returned from the API. 2. The `continent` and `languages` properties are now objects and arrays of objects, respectively. ## Writing queries ```graphql { country(code: "BR") { name native emoji currency languages { code name } } } ``` The above GraphQL query will produce the following JSON response: ```json { "data": { "country": { "name": "Brazil", "native": "Brasil", "emoji": "🇧🇷", "currency": "BRL", "languages": [ { "code": "pt", "name": "Portuguese" } ] } } } ``` Check out [the playground](https://countries.trevorblades.com) to explore the schema and test out some queries. ## Examples - [React](./examples/react) - [React Native](https://github.com/muhzi4u/country-directory-app) - [ReasonML](https://medium.com/@idkjs/reasonml-and-graphql-without-graphql-part-1-192c2e9e349c) - [Country quiz app](https://github.com/byrichardpowell/Country-Quiz) (React, TypeScript) ## License [MIT](./LICENSE)