# Bulk Data API

## Bulk Data API with Latitude & Longitude

<mark style="color:green;">`POST`</mark> `https://dataserving-us.geoiq.io/production/v1.0/getvariablesbulk`

#### Headers

| Name                                           | Type   | Description        |
| ---------------------------------------------- | ------ | ------------------ |
| x-api-key<mark style="color:red;">\*</mark>    | String | Authentication key |
| Content-Type<mark style="color:red;">\*</mark> | String | application/json   |

#### Request Body

| Name                                        | Type    | Description                                                                                           |
| ------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------- |
| lat<mark style="color:red;">\*</mark>       | Float   | Latitude co-ordinates should be between -90 to 90                                                     |
| lng<mark style="color:red;">\*</mark>       | Float   | Longitude co-ordinates should be between -180 to 180                                                  |
| radius<mark style="color:red;">\*</mark>    | Integer | (in meters) should be between 100 to 2000                                                             |
| variables<mark style="color:red;">\*</mark> | String  | Comma separated list of variables to be fetched. Maximum 50 variables can be fetched in a single call |

{% tabs %}
{% tab title="200: OK Success" %}

```json
{
    "status": 200,
    "body": {
        "data": {
            "w_pop_tt": 27950,
            "p_health_hp_np": 0.25045,
            "p_restaurant_rt_np": 1.39535,
            "p_retail_gc_np": 0.93023
        },
        "status": 200
    }
}
```

{% endtab %}

{% tab title="400: Bad Request Invalid input, object invalid" %}

{% endtab %}

{% tab title="403: Forbidden Authorization Failure. Invalid key." %}

{% endtab %}
{% endtabs %}

#### Sample Request

```json
headers = {
    "x-api-key": "Authentication key",
    "Content-Type": "application/json"
}
```

```json
body = {  
  "lat":40.0300971,
  "lng":-75.648135,
  "variables": "cen_10_bk_demo_tot_pop_200,cen_10_bk_tot_urb_1000,acs5_19_pop_wht_blockgroup"
}
```

#### Sample Response

```json
{
    "data": {
        "cen_10_bk_demo_tot_pop_200": 3303,
        "cen_10_bk_tot_urb_1000": 46679,
        "acs5_19_pop_wht_blockgroup": 1565
    },
    "status": 200
}
```

```python
""" Sample Python Code """

import json
import requests

url = "https://dataserving-us.geoiq.io/production/v1.0/getvariablesbulk"

payload = json.dumps({
  "lat": 40.0300971,
  "lng": -75.648135,
  "variables": "cen_10_bk_demo_tot_pop_200,cen_10_bk_tot_urb_1000,acs5_19_pop_wht_blockgroup"
})

headers = {
  'x-api-key': '<Authentication key>',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```

## Bulk Data API with Address

<mark style="color:green;">`POST`</mark> `https://dataserving-us.geoiq.io/production/v1.0/getvariablesbulk`

#### Headers

| Name                                           | Type   | Description        |
| ---------------------------------------------- | ------ | ------------------ |
| x-api-key<mark style="color:red;">\*</mark>    | String | Authentication key |
| Content-Type<mark style="color:red;">\*</mark> | String | application/json   |

#### Request Body

| Name                                        | Type    | Description                                                                                           |
| ------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------- |
| address<mark style="color:red;">\*</mark>   | String  | address of the place                                                                                  |
| pincode                                     | String  | pincode of the place                                                                                  |
| radius<mark style="color:red;">\*</mark>    | Integer | (in meters) should be between 100 to 2000                                                             |
| variables<mark style="color:red;">\*</mark> | String  | Comma separated list of variables to be fetched. Maximum 50 variables can be fetched in a single call |

{% tabs %}
{% tab title="200: OK Success" %}

```javascript
{
    "status": 200,
    "body": {
        "data": {
            "w_pop_tt": 27950,
            "p_health_hp_np": 0.25045,
            "p_restaurant_rt_np": 1.39535,
            "p_retail_gc_np": 0.93023
        },
        "status": 200
    }
}
```

{% endtab %}

{% tab title="400: Bad Request Invalid input, object invalid." %}

```javascript
{
    // Response
}
```

{% endtab %}

{% tab title="403: Forbidden Authorization failure. Invalid key." %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

#### Sample Request

```json
headers = {
    "x-api-key": "Authentication key",
    "Content-Type": "application/json"
}
```

<pre class="language-json"><code class="lang-json"><strong>body = {
</strong>    "address":"Manhattan, New York, NY, USA",
    "variables": "cen_10_bk_demo_tot_pop_200,cen_10_bk_tot_urb_1000,acs5_19_pop_wht_blockgroup"
}
</code></pre>

#### Sample Response

```json
{
    "data": {
        "cen_10_bk_demo_tot_pop_200": 3303,
        "cen_10_bk_tot_urb_1000": 46679,
        "acs5_19_pop_wht_blockgroup": 1565
    },
    "status": 200
}
```

```python
""" Sample Python Code """

import json
import requests

url = "https://dataserving-us.geoiq.io/production/v1.0/getvariablesbulk"

payload = json.dumps({
  "address": "Manhattan, New York, NY, USA",
  "variables": "cen_10_bk_demo_tot_pop_200,cen_10_bk_tot_urb_1000,acs5_19_pop_wht_blockgroup"
})

headers = {
  'x-api-key': '<Authentication key>',
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
```
