# GET All Cities

{% tabs %}
{% tab title="Base URL" %}

```javascript
https://api.sportmonks.com/v3/core/cities
```

{% endtab %}

{% tab title="Example Response" %}

```json
{
  "data": {
    "id": 53253,
    "country_id": 32,
    "region_id": 428,
    "name": "Madrid",
    "latitude": "21.9",
    "longitude": "-78.0833333",
    "geonameid": 3117735
  },
```

{% endtab %}

{% tab title="Field Description" %}

| Field         | Description                          | Type    |
| ------------- | ------------------------------------ | ------- |
| id            | Refers to the id of the city         | integer |
| country\_id   | Refers to the country of the city    | integer |
| region        | Refers to the region of the city     | integer |
| name          | Displays the name of the city        | string  |
| latitude      | The official latitude of the city    | string  |
| longitude     | The official lonitude of the city    | string  |
| geonameid     | The official geo name id of the city | integer |
| {% endtab %}  |                                      |         |
| {% endtabs %} |                                      |         |

{% tabs %}
{% tab title="Query Parameters" %}

<table><thead><tr><th>Query Parameters</th><th width="164.33333333333331">Required?</th><th>Description</th></tr></thead><tbody><tr><td><code>api_token</code></td><td>YES</td><td>Your unique API token</td></tr><tr><td><code>include</code></td><td>NO</td><td>Enrich the API with more data by using includes</td></tr><tr><td><code>select</code></td><td>NO</td><td>Select specific fields on the <a href="broken-reference">base entity</a></td></tr><tr><td><code>filters</code></td><td>NO</td><td><p>Filter the API response on multiple related entities. There are static filters and dynamic filters.</p><p></p><p>Please find the possibilities in the Static and Dynamic Filter tab.</p></td></tr></tbody></table>
{% endtab %}

{% tab title="Static Filters" %}
**Static filters** are always the same and filter in one specific way without any custom options. Each static filter is listed below and has a description of how it filters. For more information, please look at our[ Filters page](https://docs.sportmonks.com/v3/core-api/endpoints/cities/broken-reference).

<table><thead><tr><th width="165">Static Filters</th><th width="168">Available on Entity</th><th width="197">Description</th><th width="274">Example</th></tr></thead><tbody><tr><td><code>IdAfter</code></td><td>GET All Cities</td><td>Filter all cities starting from a certain city ID. Handy if you're doing an import for all cities and want to continue from a certain ID.</td><td><code>&#x26;filters=IdAfter:cityID</code><br><br></td></tr></tbody></table>
{% endtab %}

{% tab title="Dynamic Filters" %}
Not applicable for this endpoint.
{% endtab %}
{% endtabs %}

#### Pagination

Yes

#### Include depth

You can use a total of `4` nested includes on this endpoint

#### Include options

[`region`](https://docs.sportmonks.com/v3/core-api/entities/core#region)

**Related Entities:**

Get an overview and explanation of all the fields returned in the API response. The related entities for the cities' endpoints are:

* [City](https://docs.sportmonks.com/v3/core-api/entities/core#city)

#### Code Example

{% tabs %}
{% tab title="Ruby" %}

```ruby
require "uri"
require "net/http"

url = URI("https://api.sportmonks.com/v3/core/cities?api_token={your_token}")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Get.new(url)

response = https.request(request)
puts response.read_body

```

{% endtab %}

{% tab title="Python" %}

```python
import http.client

conn = http.client.HTTPSConnection("api.sportmonks.com")
payload = ''
headers = {}
conn.request("GET", "/v3/core/cities?api_token={your_token}", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.sportmonks.com/v3/core/cities?api_token={your_token}',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
));

$response = curl_exec($curl);

curl_close($curl);
echo $respons
```

{% endtab %}

{% tab title="Java" %}

```java
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
Request request = new Request.Builder()
  .url("https://api.sportmonks.com/v3/core/cities?api_token={your_token}")
  .method("GET", null)
  .build();
Response response = client.newCall(request).execute();
```

{% endtab %}

{% tab title="Node.js" %}

```
var unirest = require('unirest');
var req = unirest('GET', 'https://api.sportmonks.com/v3/core/cities?api_token={your_token}')
  .end(function (res) { 
    if (res.error) throw new Error(res.error); 
    console.log(res.raw_body);
  });
```

{% endtab %}

{% tab title="Go" %}

```go
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://api.sportmonks.com/v3/core/cities?api_token={your_token}"
  method := "GET"

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, nil)

  if err != nil {
    fmt.Println(err)
    return
  }
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
```

{% endtab %}
{% endtabs %}
