cURL Python Go R PHP

Introduction

Hi there—welcome to Atlan Grid! Make yourself at home :)

A little bit about us: we give you access to curated, updated, granular data sets and help you enrich your understanding of your customers. In a world where a single source of data doesn’t capture the entire picture, we curate data from over 600+ sources—from satellite imagery, statistical sources, to geospatial data and more—to give you a holistic view of your customer or business.

Atlan Grid’s data has been proven in the field—we have powered national auto manufacturers, banks and NBFCs, leading FMCG companies and more. In fact, in a declining auto sales environment, our data (used for sales planning) helped a customer generate an incremental revenue of $14 million across 3 states, in just 3 months!

You can check out this blog to learn more about why and how we created Atlan Grid.

Now, let’s get to business! We currently offer 3 types of APIs:

Ready to start exploring? Take our APIs for a spin—get access to all our data packs for an entire city for upto 90 days! Run as many experiments as you want to understand how external, previously unknown variables are affecting your business.

For information on how to get access, please read the next section below.

Authentication

To authorize, use this code:

# You can just pass the correct header with each request
curl "https://api-grid.atlan.com/api/{endpoint}" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

response = requests.get('https://api-grid.atlan.com/api/{endpoint}', headers=headers)
package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/{endpoint}
", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/{endpoint}', httr::add_headers(.headers=headers))
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/{endpoint}
', $headers);

Grid API uses API keys to allow access. You can request a Grid API key here.

Grid API expects the API key to be included in all requests to the server in a header that looks like the following:

X-API-KEY: secretweapon

A call will be considered valid if data is returned by our API. In the case of bulk or batch enrichment, every latitude-longitude for which data is returned is considered a Valid Call. If the system determines that there is no data to return for a latitude-longitude, the call is not valid.

Customer Enrichment APIs

Use these APIs to enrich your customer’s home or work location (latitude-longitude) with variables that help explain their behavior and preferences, including their affluence and income profile, the demography and lifestyle of the world around them, and the movement patterns of people in their immediate vicinity.

All data has been updated to reflect 2019 figures.

Affluence & Income Profile

curl -X GET "https://api-grid.atlan.com/api/profile/v1/india/affluence_income?latlong=12.9716,77.5946&radius=100" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '100')
)

response = requests.get('https://api-grid.atlan.com/api/profile/v1/india/affluence_income', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/profile/v1/india/affluence_income?latlong=12.9716,77.5946&radius=100", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '100'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/profile/v1/india/affluence_income', httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/profile/v1/india/affluence_income?latlong=12.9716,77.5946&radius=100', $headers);

The above command returns JSON output:

{
  "data": [
    {
      "state_name": "Karnataka",
      "town_name": "Bangalore",
      "town_code": "803162",
      "affluence_index": 47.94,
      "household_income": 285835.52,
    }
  ]
}

For rural, i.e. when granularity is set to village:

{
  "data": [
    {
      "state_name": "Uttar Pradesh",
      "district_name": "Saharanpur",
      "subdistrict_name": "Behat",
      "village_name": "Sunehti",
      "village_subdistrict_code": "S295710106611857",
      "affluence_index": 78.2
    }
  ]
}

Measure the economic well-being or prosperity of your customer as reflected by their lifestyle using an affluence score ranging from 0 to 100. This measure is built on two types of data: satellite imagery-based variables (such as the size and density of buildings, quality of infrastructure, and the amount of green cover in an area) and statistical variables such as asset and amenity data, cost of living estimates and more.

Affluence is a relative measure which is localized by geography - every input parameter is treated differently based on the region we're considering - for example, building height is treated differently in Mumbai than in Delhi! In order to interpret the score correctly, use the household income parameter and geography returned in the output.

HTTP Request

GET https://api-grid.atlan.com/api/profile/v1/india/affluence_income

Query Parameters

For this endpoint, you can query data using a latitude-longitude or by inputting a village code.

For urban data, use the latitude-longitude and radius input:

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 50m true 50

For rural data, you can input a latitude-longitude or a village code to return data for that village:

Parameter Description Required Sample
latlong The latitude-longitude to be considered false 12.9716,77.5946
village_subdistrict_code The unique Census 2011 village code for which you would like to query data, created by concatenating S, state code (2 digits), district code (3 digits), subdistrict code (4 digits), and village code (6 digits) false S295710106611857
granularity Parameter required if output is needed at a village level (rural); If data is required for metros, please ignore this parameter false village

Output Parameters

Output in case of urban data queried:

Parameter Description Sample
state_name Name of the state in which the latlong lies Karnataka
town_name Name of the town in which the latlong lies Bangalore
town_code Code of the town in which the latlong lies 803162
affluence_index Affluence score of the customer (0-100) 47.94
household_income Average annual household income (in Rs.) of the people with this affluence score 285835.52

Output in case of rural data queried:

Parameter Description Sample
state_name Name of the state in which the latlong lies Karnataka
district_name Name of the district in which the latlong lies Saharanpur
subdistrict_name Name of the subdistrict in which the latlong lies Behat
village_name Name of the village in which the latlong lies Sunehti
village_subdistrict_code The unique Census 2011 village code for which you queried data S295710106611857
affluence_index Affluence score of the customer (0-100) 78.2

Demographic Profile

curl -X GET "https://api-grid.atlan.com/api/profile/v1/india/demography?latlong=12.9716,77.5946&radius=200" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '200')
)

response = requests.get('https://api-grid.atlan.com/api/profile/v1/india/demography', headers=headers, params=params)
package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/profile/v1/india/demography?latlong=12.9716,77.5946&radius=200", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '200'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/profile/v1/india/demography', httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/profile/v1/india/demography?latlong=12.9716,77.5946&radius=200', $headers);

The above command returns JSON output:

{
  "data": [
    {
      "state_name": "Karnataka",
      "town_name": "Bangalore",
      "town_code": 803162,
      "residential_population": 3401,
      "age_0_5_f": 3.0828,
      "age_0_5_m": 3.24049,
      "age_10_15_f": 7.1991,
      "age_10_15_m": 7.5845,
      "age_15_20_f": 9.4412,
      "age_15_20_m": 10.0192,
      "age_20_25_f": 1.4538,
      "age_20_25_m": 2.8901,
      "age_25_30_f": 1.9793,
      "age_25_30_m": 2.7325,
      "age_30_35_f": 1.7691,
      "age_30_35_m": 1.9968,
      "age_35_40_f": 1.8567,
      "age_35_40_m": 1.9968,
      "age_40_45_f": 1.5239,
      "age_40_45_m": 1.6640,
      "age_45_50_f": 2.0319,
      "age_45_50_m": 2.2420,
      "age_50_55_f": 1.5589,
      "age_50_55_m": 1.8742,
      "age_55_60_f": 1.5239,
      "age_55_60_m": 1.8917,
      "age_5_10_f": 8.7230,
      "age_5_10_m": 9.4062,
      "age_60_plus_f": 5.5526,
      "age_60_plus_m": 4.7468
    }
  ]
}

Understand more about your customer based on the demographics of the region they reside in. This API includes:

HTTP Request

GET https://api-grid.atlan.com/api/profile/v1/india/demography

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude of the customer's location true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 200m true 250

Output Parameters

Parameter Description Sample
state_name Name of the state in which the latlong lies Karnataka
town_name Name of the town in which the latlong lies Bangalore
town_code Code of the town in which the latlong lies 803162
residential_population Residential population count in the region 4350
age_gender Percent of individuals in an age and gender bracket in the region. For example, age_0_5_m means the percent of males from the age of 0 until the age of 5 (not included) 6.32

Movement Patterns

curl -X GET "https://api-grid.atlan.com/api/profile/v1/india/movement?latlong=12.9716,77.5946&radius=200" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '200'),
)

response = requests.get('https://api-grid.atlan.com/api/profile/v1/india/movement', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/profile/v1/india/movement?latlong=12.9716,77.5946"&radius=200, nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '200'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/profile/v1/india/movement', httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/profile/v1/india/movement?latlong=12.9716,77.5946&radius=200', $headers);

The above command returns JSON structured like this:

{
  "data": [
    {
      "state_name": "Karnataka",
      "town_name": "Bangalore",
      "town_code": 803162,
      "ambient_population": 17689,
      "road_density": 0.208600511087296,
      "railway_connectivity_index": 47.8,
      "railway_distance": 518.86136618
    }
  ]
}

Understand your customer better by analyzing the movement patterns of people in the region where their home or workplace is located. This API includes:

HTTP Request

GET https://api-grid.atlan.com/api/profile/v1/india/movement

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude of the customer's location true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 200m true 250

Output Parameters

Parameter Description Sample
state_name Name of the state in which the latlong lies Karnataka
town_name Name of the town in which the latlong lies Bangalore
town_code Code of the town in which the latlong lies 803162
ambient_population Count of ambient population in the region 5634
road_density Total area of road (sq. m.) in the region 1.2
railway_connectivity_index Score (0-100) to capture the connectivity of the nearest railway station 47.8
railway_distance Distance (in meters) to the nearest railway station 518.861

Lifestyle Profile

curl -X GET "https://api-grid.atlan.com/api/profile/v1/india/lifestyle?latlong=12.9716,77.5946" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '200'),
)

response = requests.get('https://api-grid.atlan.com/api/profile/v1/india/lifestyle', headers=headers, params=params)
package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/profile/v1/india/lifestyle?latlong=12.9716,77.5946&radius=200", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '200'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/profile/v1/india/lifestyle', httr::add_headers(.headers=headers), query = params)
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/profile/v1/india/lifestyle?latlong=12.9716,77.5946&radius=200', $headers);

The above command returns JSON output:

{
  "data": [
    {
      "state_name": "Karnataka",
      "town_name": "Bangalore",
      "town_code": 803162,
      "building_area": 33.12,
      "general_store": 10,
      "cell_tower": 42,
      "atm": 7,
      "restaurant": 2,
      "school": 0,
      "clinic": 6,
      "gym": 9,
      "bank": 7,
      "pincode": "400001",
      "total_companies": 6349,
      "median_company_age": 5,
      "companies_last_5_years": 1069,
      "private_companies": 5147,
      "private_opc_companies": 4,
      "public_companies": 722,
      "median_authorized_capital": 1000000,
      "median_paidup_capital": 101500,
      "agriculture_and_allied_activities": 152,
      "business_services": 1248,
      "community_personal_social_services": 235,
      "computer_and_related_activities": 2,
      "construction": 457,
      "education": 0,
      "electricity_gas_water_companies": 38,
      "finance": 897,
      "manufacturing_food_stuffs": 97,
      "insurance": 32,
      "manufacturing_leather_products": 15,
      "manufacturing_machinery_equipments": 245,
      "manufacturing_metals_chemicals": 403,
      "manufacturing_paper_publishing": 100,
      "manufacturing_textiles": 127,
      "manufacturing_wood_products": 8,
      "mining_quarrying": 40,
      "real_estate_and_renting": 365,
      "trading": 904,
      "transport_storage_communications": 466,
      "manufacturing_others": 43
    }
  ]
}

Understand your customer better by looking at the type of infrastructure and amenities to which they have access. This API includes:

HTTP Request

GET https://api-grid.atlan.com/api/profile/v1/india/lifestyle

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude of the customer's location true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 200m true 250

Output Parameters

Parameter Description Sample
pincode Pincode in which the latlong lies 400001
state_name Name of the state in which the latlong lies Karnataka
town_name Name of the town in which the latlong lies Bangalore
town_code Code of the town in which the latlong lies 803162
building_area Average area of the building(s) (in sq. m.) in the radius around the latlong 130.86
general_store Count of departmental stores, general stores, super markets, and kinara stores in the radius around the latlong 2
cell_tower Count of cell towers in the radius around the latlong 3
atm Count of ATMs in the radius around the latlong 5
restaurant Count of restaurants in the radius around the latlong 8
school Count of schools in the radius around the latlong 2
clinic Count of clinics in the radius around the latlong 334.20
gym Count of gyms in the radius around the latlong 230.11
bank Count of bank branches in the radius around the latlong 54.12
total_companies Total number of companies in the pincode 6349
median_company_age Median age of the company in the pincode in years 5
companies_last_5_years Number of new companies registered in the last 5 years in the pincode 1069
private_companies Number of private companies in the pincode 5147
private_opc_companies Number of one person private companies in the pincode 4
public_companies Number of public companies in the pincodes 722
median_authorized_capital Median authorized capital in the pincode 1000000
median_paidup_capital Median paidup capital in the pincode 101500
agriculture_and_allied_activities Number of companies in Agriculture and Allied Activities in the pincode 152
business_services Number of companies in Business Services in the pincode 1248
community_personal_social_services Number of companies in Community, Personal & Social Services in the pincode 235
computer_and_related_activities Number of companies in Computer and related activities in the pincode 2
construction Number of companies in Construction in the pincode 457
education Number of companies in Education in the pincode 0
electricity_gas_water_companies Number of companies in Electricity, Gas & Water in the pincode 38
finance Number of companies in Finance in the pincode 897
manufacturing_food_stuffs Number of companies in Food & Food Stuffs in the pincode 97
insurance Number of companies in Insurance in the pincode 32
manufacturing_leather_products Number of companies in manufacturing of Leather and Related Products in the pincode 15
manufacturing_machinery_equipments Number of companies in manufacturing of Machinery and Equipment in the pincode 245
manufacturing_metals_chemicals Number of companies in manufacturing of Metals, Chemicals, and products thereof in the pincode 403
manufacturing_paper_publishing Number of companies in manufacturing of Paper & Paper Products, Publishing, Printing, and Reproduction of Recorded Media in the pincode 100
manufacturing_textiles Number of companies in manufacturing of Textiles in the pincode 127
manufacturing_wood_products Number of companies in manufacturing of Wood Products in the pincode 8
mining_quarrying Number of companies in Mining and Quarrying in the pincode 40
real_estate_and_renting Number of companies in Real Estate activities in the pincode 365
trading Number of companies in Trading in the pincode 904
transport_storage_communications Number of companies in Transport, Storage, and Communications in the pincode 466
manufacturing_others Number of companies in manufacturing of other products in the pincode 43

Super-Bundle

curl -X GET "https://api-grid.atlan.com/api/profile/v1/india/super_bundle?latlong=12.9716,77.5946" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon'
}

params = (
    ('latlong', '12.9716,77.5946'),
)

response = requests.get('https://api-grid.atlan.com/api/profile/v1/india/super_bundle', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/profile/v1/india/super_bundle?latlong=12.9716,77.5946", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/profile/v1/india/super_bundle',
                    httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/profile/v1/india/super_bundle?latlong=12.9716,77.5946', $headers);

The above command returns JSON output:

For metros, i.e. when granularity is not specified

{
  "data": [
    {
      "state_name": "Karnataka",
      "town_name": "Bangalore",
      "town_code": 803162,
      "affluence_income_100m": 47.94,
      "household_income_100m": 285835.52,
      "residential_population_100m": 3401,
      "age_0_5_f_200m": 3.08285,
      "age_0_5_m_200m": 3.2405,
      "age_10_15_f_200m": 7.1991,
      "age_10_15_m_200m": 7.5845,
      "age_15_20_f_200m": 9.4412,
      "age_15_20_m_200m": 10.0192,
      "age_20_25_f_200m": 1.4538,
      "age_20_25_m_200m": 2.8901,
      "age_25_30_f_200m": 1.9793,
      "age_25_30_m_200m": 2.7325,
      "age_30_35_f_200m": 1.7691,
      "age_30_35_m_200m": 1.9968,
      "age_35_40_f_200m": 1.8567,
      "age_35_40_m_200m": 1.9968,
      "age_40_45_f_200m": 1.5239,
      "age_40_45_m_200m": 1.6640,
      "age_45_50_f_200m": 2.0318,
      "age_45_50_m_200m": 2.2420,
      "age_50_55_f_200m": 1.5589,
      "age_50_55_m_200m": 1.8742,
      "age_55_60_f_200m": 1.5239,
      "age_55_60_m_200m": 1.8917,
      "age_5_10_f_200m": 8.7230,
      "age_5_10_m_200m": 9.4062,
      "age_60_plus_f_200m": 5.5526,
      "age_60_plus_m_200m": 4.7469,
      "ambient_population_200m": 17689,
      "road_density_100m": 10722.2086,
      "building_area_100m": 344.5676,
      "general_store_500m": 10,
      "cell_tower_500m": 42,
      "atm_500m": 7,
      "restaurant_500m": 2,
      "school_500m": 0,
      "clinic_500m": 6,
      "gym_500m": 9,
      "bank_500m": 7,
      "general_store_2000m": 10,
      "cell_tower_2000m": 42,
      "atm_2000m": 7,
      "restaurant_2000m": 2,
      "school_2000m": 0,
      "clinic_2000m": 6,
      "gym_2000m": 9,
      "bank_2000m": 7,
      "railway_connectivity_index": 47.8,
      "railway_distance": 518.861,
      "pincode": "560001",
      "total_companies": 6349,
      "median_company_age": 22,
      "companies_last_5_years": 1069,
      "private_companies": 5147,
      "private_opc_companies": 4,
      "public_companies": 722,
      "median_authorized_capital": 1000000,
      "median_paidup_capital": 101500,
      "agriculture_and_allied_activities": 152,
      "business_services": 1248,
      "community_personal_social_services": 235,
      "computer_and_related_activities": 2,
      "construction": 457,
      "education": 0,
      "electricity_gas_water_companies": 38,
      "finance": 897,
      "manufacturing_food_stuffs": 97,
      "insurance": 32,
      "manufacturing_leather_products": 15,
      "manufacturing_machinery_equipments": 245,
      "manufacturing_metals_chemicals": 403,
      "manufacturing_paper_publishing": 100,
      "manufacturing_textiles": 127,
      "manufacturing_wood_products": 8,
      "mining_quarrying": 40,
      "real_estate_and_renting": 365,
      "trading": 904,
      "transport_storage_communications": 466,
      "manufacturing_others": 43
    }
  ]
}

If granularity is set to pincode

{
    "data": [
        {
            "affluence_index": 71.0207,
            "household_income": 3660000.0,
            "residential_population": 45923.0,
            "age_0_5_f": 3.8315,
            "age_0_5_m": 3.4697,
            "age_10_15_f": 3.6444,
            "age_10_15_m": 3.8818,
            "age_15_20_f": 3.7370,
            "age_15_20_m": 3.0915,
            "age_20_25_f": 2.6131,
            "age_20_25_m": 2.8379,
            "age_25_30_f": 4.0377,
            "age_25_30_m": 4.8665,
            "age_30_35_f": 4.6973,
            "age_30_35_m": 5.5470,
            "age_35_40_f": 4.0937,
            "age_35_40_m": 5.2328,
            "age_40_45_f": 3.7436,
            "age_40_45_m": 4.0065,
            "age_45_50_f": 3.3477,
            "age_45_50_m": 3.7900,
            "age_50_55_f": 2.6625,
            "age_50_55_m": 2.8679,
            "age_55_60_f": 2.2108,
            "age_55_60_m": 2.6741,
            "age_5_10_f": 4.1671,
            "age_5_10_m": 3.8994,
            "age_60_plus_f": 5.5843,
            "age_60_plus_m": 5.4629,
            "ambient_population": 200362,
            "road_density": 956192.0349,
            "building_area": 120.2281,
            "general_store": 57,
            "cell_tower": 540,
            "atm": 97,
            "restaurant": 365,
            "school": 35,
            "clinic": 151,
            "gym": 15,
            "bank": 93,
            "railway_connectivity_index": 36.0131,
            "railway_distance": 1644.0,
            "pincode": "560001",
            "total_companies": 2825,
            "median_company_age": 10,
            "companies_last_5_years": 958,
            "private_companies": 2402,
            "private_opc_companies": 17,
            "public_companies": 144,
            "median_authorized_capital": 1000000,
            "median_paidup_capital": 215116,
            "agriculture_and_allied_activities": 61,
            "business_services": 982,
            "community_personal_social_services": 288,
            "computer_and_related_activities": 7,
            "construction": 274,
            "education": 1,
            "electricity_gas_water_companies": 95,
            "finance": 121,
            "manufacturing_food_stuffs": 43,
            "insurance": 6,
            "manufacturing_leather_products": 3,
            "manufacturing_machinery_equipments": 90,
            "manufacturing_metals_chemicals": 92,
            "manufacturing_paper_publishing": 21,
            "manufacturing_textiles": 27,
            "manufacturing_wood_products": 5,
            "mining_quarrying": 25,
            "real_estate_and_renting": 255,
            "trading": 244,
            "transport_storage_communications": 90,
            "manufacturing_others": 18,
            "pincode_area": 7.0896
        }
    ]
}

Don't want to deal with multiple end-points? You can query all our data through a single end-point! Minimum hassle, maximum data.

HTTP Request

GET https://api-grid.atlan.com/api/profile/v1/india/super_bundle

Query Parameters

For this endpoint, you can query data using a latitude-longitude or by inputting a pincode.

To query using a latitude-longitude:

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946

To query using a pincode:

Parameter Description Required Sample
granularity Parameter required if output is needed at a pincode level; If data is required for a latitude-longitude, please ignore this parameter true pincode
pincode The pincode for which data is required true 110065

Output Parameters

Parameter Description Sample
pincode Pincode in which the latlong lies 560001
state_name Name of the state in which the latlong lies Karnataka
town_name Name of the city in which the latlong lies Bangalore
town_code Code of the city in which the latlong lies 803162
affluence_income_100m Affluence score of the customer (0-100) 47.94
household_income_100m Average annual household income (in Rs.) of the people with this affluence score 285835.52
residential_population_100m Residential population count in the region 4350
age_gender_200m Percent of individuals in an age and gender bracket in the region. For example, age_0_5_m means males from the age of 0 until the age of 5 (not included) 6.32
ambient_population_200m Count of ambient population in the region 5634
road_density_100m Total area of road (sq. m.) in the region 1.2
building_area_100m Average area of the building(s) (in m sq) 344.5676
general_store_500m Count of departmental stores, general stores, super markets, and kinara stores in a 500m radius around the latlong 2
cell_tower_500m Count of cell towers in a 500m radius around the latlong 3
atm_500m Count of ATMs in a 500m radius around the latlong 5
restaurant_500m Count of restaurants in a 500m radius around the latlong 8
school_500m Count of schools in a 500m radius around the latlong 2
clinic_500m Count of clinics in a 500m radius around the latlong 334.20
gym_500m Count of gyms in a 500m radius around the latlong 230.11
bank_500m Count of bank branches in a 500m radius around the latlong 54.12
general_store_2000m Count of departmental stores, general stores, super markets, and kinara stores in a 2000m radius of the latlong 2
cell_tower_2000m Count of cell towers in a 2000m radius of the latlong 3
atm_2000m Count of ATMs in a 2000m radius of the latlong 5
restaurant_2000m Count of restaurants in a 2000m radius of the latlong 8
school_2000m Count of schools in a 2000m radius of the latlong 2
clinic_2000m Count of clinics in a 2000m radius of the latlong 334.20
gym_2000m Count of gyms in a 2000m radius of the latlong 230.11
bank_2000m Count of bank branches in a 2000m radius of the latlong 54.12
railway_connectivity_index Score (0-100) to capture the connectivity of the nearest railway station 47.8
railway_distance Distance (in meters) to the nearest railway station 518.861
total_companies Total number of companies in the pincode 6349
median_company_age Median age of the company in the pincode in years 5
companies_last_5_years Number of new companies registered in the last 5 years in the pincode 1069
private_companies Number of private companies in the pincode 5147
private_opc_companies Number of one person private companies in the pincode 4
public_companies Number of public companies in the pincodes 722
median_authorized_capital Median authorized capital in the pincode 1000000
median_paidup_capital Median paidup capital in the pincode 101500
agriculture_and_allied_activities Number of companies in Agriculture and Allied Activities in the pincode 152
business_services Number of companies in Business Services in the pincode 1248
community_personal_social_services Number of companies in Community, Personal & Social Services in the pincode 235
computer_and_related_activities Number of companies in Computer and related activities in the pincode 2
construction Number of companies in Construction in the pincode 457
education Number of companies in Education in the pincode 0
electricity_gas_water_companies Number of companies in Electricity, Gas & Water in the pincode 38
finance Number of companies in Finance in the pincode 897
manufacturing_food_stuffs Number of companies in Food & Food Stuffs in the pincode 97
insurance Number of companies in Insurance in the pincode 32
manufacturing_leather_products Number of companies in manufacturing of Leather and Related Products in the pincode 15
manufacturing_machinery_equipments Number of companies in manufacturing of Machinery and Equipment in the pincode 245
manufacturing_metals_chemicals Number of companies in manufacturing of Metals, Chemicals, and products thereof in the pincode 403
manufacturing_paper_publishing Number of companies in manufacturing of Paper & Paper Products, Publishing, Printing, and Reproduction of Recorded Media in the pincode 100
manufacturing_textiles Number of companies in manufacturing of Textiles in the pincode 127
manufacturing_wood_products Number of companies in manufacturing of Wood Products in the pincode 8
mining_quarrying Number of companies in Mining and Quarrying in the pincode 40
real_estate_and_renting Number of companies in Real Estate activities in the pincode 365
trading Number of companies in Trading in the pincode 904
transport_storage_communications Number of companies in Transport, Storage, and Communications in the pincode 466
manufacturing_others Number of companies in manufacturing of other products in the pincode 43
pincode_area The area of the pincode in sq. km. This is returned only when granularity is set to pincode 7.0896

Geography Enrichment APIs

Businesses are expanding rapidly today, with customers across geographies—metros, towns and villages. Identifying where your customer is based can be challenging with changing geographic boundaries and fast-growing cities.

Use this API to learn about the geographic parameters associated with any latitude-longitude. Segregate urban and rural customers or identify the pincodes, districts, Census 2011 towns or villages associated with your location.

Bonus: For our latitude-longitude to Urban-Rural API, we go beyond Census data and use satellite imagery so you get the latest information! 😎

Our API covers latitude-longitudes in 20,000 pincodes, 640+ districts, 7,000+ Census 2011 towns, and 640,000+ Census 2011 villages.

Lat-Long to Urban-Rural

curl -X GET "https://api-grid.atlan.com/api/geography/v1/india/urban_rural?latlong=12.9652263,77.3988805" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9652263,77.3988805'),
)

response = requests.get('https://api-grid.atlan.com/api/geography/v1/india/urban_rural', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/geography/v1/india/urban_rural?latlong=12.9652263,77.3988805", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9652263,77.3988805'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/geography/v1/india/urban_rural',
                  httr::add_headers(.headers=headers), query = params)
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/geography/v1/india/urban_rural?latlong=12.9652263,77.3988805', $headers);

The above command returns JSON output

{
  "data": [
    {
      "class": "urban"
    }
  ]
}

Understand whether a particular latitude-longitude lies in an urban area or a rural area. Urban-Rural boundaries updated as of 2019.

HTTP Request

GET https://api-grid.atlan.com/api/geography/v1/india/urban_rural

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be enriched true 12.9716,77.5946

Output Parameters

Parameter Description Sample
class Region (urban or rural) in which the latlong lies urban

Lat-Long to Pincode

curl -X GET "https://api-grid.atlan.com/api/geography/v1/india/pincode?latlong=12.9652263,77.3988805" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9652263,77.3988805'),
)

response = requests.get('https://api-grid.atlan.com/api/geography/v1/india/pincode', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/geography/v1/india/pincode?latlong=12.9652263,77.3988805", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9652263,77.3988805'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/geography/v1/india/pincode',
                  httr::add_headers(.headers=headers), query = params)
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/geography/v1/india/pincode?latlong=12.9652263,77.3988805', $headers);

The above command returns JSON output

{
  "data": [
    {
      "state_name": "Karnataka",
      "pincode": "562130"
    }
  ]
}

Identify the pincode associated with a particular latitude-longitude.

HTTP Request

GET https://api-grid.atlan.com/api/geography/v1/india/pincode

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be enriched true 12.9716,77.5946

Output Parameters

Parameter Description Sample
state_name Name of the state in which the latlong lies Karnataka
pincode The pincode in which the latlong lies 562130

Lat-Long to Census District

curl -X GET "https://api-grid.atlan.com/api/geography/v1/india/district?latlong=12.9652263,77.3988805" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9652263,77.3988805'),
)

response = requests.get('https://api-grid.atlan.com/api/geography/v1/india/district', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/geography/v1/india/district?latlong=12.9652263,77.3988805", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9652263,77.3988805'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/geography/v1/india/district',
                  httr::add_headers(.headers=headers), query = params)
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/geography/v1/india/district?latlong=12.9652263,77.3988805', $headers);

The above command returns JSON output

{
  "data": [
    {
      "state_name": "Karnataka",
      "state_code": 29,
      "district_name": "Bangalore",
      "district_code": 572
    }
  ]
}

Identify the district associated with a particular latitude-longitude.

HTTP Request

GET https://api-grid.atlan.com/api/geography/v1/india/district

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be enriched true 12.9716,77.5946

Output Parameters

Parameter Description Sample
state_name Name of the state in which the latlong lies Karnataka
state_code Census 2011 state ID for the state in which the latlong lies 29
district_name Name of the district in which the latlong lies Bangalore
district_code Census 2011 district ID for the district in which the latlong lies 572

Lat-Long to Census Village

curl -X GET "https://api-grid.atlan.com/api/geography/v1/india/village?latlong=13.2102549,76.9641751" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '13.2102549,76.9641751'),
)

response = requests.get('https://api-grid.atlan.com/api/geography/v1/india/village', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/geography/v1/india/village?latlong=13.2102549,76.9641751", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '13.2102549,76.9641751'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/geography/v1/india/village',
                  httr::add_headers(.headers=headers), query = params)
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/geography/v1/india/village?latlong=13.2102549,76.9641751', $headers);

The above command returns JSON output

{
  "data": [
    {
      "state_name": "Karnataka",
      "state_code": 29,
      "district_name": "Tumkur",
      "district_code": 571,
      "subdistrict_code": "5538",
      "subdistrict_name": "Gubbi",
      "village_name": "Voddarahalli",
      "village_subdistrict_code": "S295710106611857"
    }
  ]
}

Identify the Census 2011 village associated with a particular latitude-longitude.

HTTP Request

GET https://api-grid.atlan.com/api/geography/v1/india/village

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be enriched true 12.9716,77.5946

Output Parameters

Parameter Description Sample
state_name Name of the state in which the latlong lies Karnataka
state_code Census 2011 state ID for the state in which the latlong lies 29
district_name Name of the district in which the latlong lies Tumkur
district_code Census 2011 district ID for the village in which the latlong lies 571
subdistrict_name Name of the subdistrict in which the latlong lies Gubbi
subdistrict_code Census 2011 subdistrict ID for the village in which the latlong lies 5538
village_name Name of the village in which the latlong lies Voddarahalli
village_subdistrict_code Census 2011 village ID for the village in which the latlong lies S295710106611857

Lat-Long to Census Town

curl -X GET "https://api-grid.atlan.com/api/geography/v1/india/town?latlong=12.9652263,77.3988805" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9652263,77.3988805'),
)

response = requests.get('https://api-grid.atlan.com/api/geography/v1/india/town', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/geography/v1/india/town?latlong=12.9652263,77.3988805", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9652263,77.3988805'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/geography/v1/india/town',
                  httr::add_headers(.headers=headers), query = params)
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/geography/v1/india/town?latlong=12.9652263,77.3988805', $headers);

The above command returns JSON output

{
  "data": [
    {
      "state_name": "Karnataka",
      "state_code": 29,
      "district_name": "Bangalore",
      "district_code": 572,
      "town_name": "Arasinakunte",
      "town_code": "624949"
    }
  ]
}

Identify the Census 2011 town associated with a particular latitude-longitude.

HTTP Request

GET https://api-grid.atlan.com/api/geography/v1/india/town

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be enriched true 12.9716,77.5946

Output Parameters

Parameter Description Sample
state_name Name of the state in which the latlong lies Karnataka
state_code Census 2011 state ID for the state in which the latlong lies 29
district_name Name of the district in which the latlong lies Bangalore
district_code Census 2011 district ID for the district in which the latlong lies 572
town_name Name of the town in which the latlong lies Arasinakunte
town_code Census 2011 town ID for the town in which the latlong lies 624949

Unbundled Data APIs

Our unbundled APIs give you the flexibility to choose the data you need and discover what moves your business. Use our APIs to understand more about the region where your customer or store is based, or the profile of an area you're considering expanding into.

All our data has been updated to reflect 2019 figures.

Affluence & Income

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/affluence_index?latlong=12.9716,77.5946&radius=100" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '100'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/affluence_index', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/affluence_index?latlong=12.9716,77.5946&radius=100", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '100'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/affluence_index',
                  httr::add_headers(.headers=headers), query = params)
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/affluence_index?latlong=12.9716,77.5946&radius=100', $headers);

The above command returns JSON output:

{
    "data": [
        {
            "state_name": "Karnataka",
            "town_name": "Bangalore",
            "town_code": "803162",
            "affluence_index": 57.77430,
            "household_income": 3431040
        }
    ]
}

For rural, i.e. when granularity is set to village

{
  "data": [
    {
      "state_name": "Uttar Pradesh",
      "district_name": "Saharanpur",
      "subdistrict_name": "Behat",
      "village_name": "Sunehti",
      "village_subdistrict_code": "S295710106611857",
      "affluence_index": 78.2
    }
  ]
}

Measure the economic well-being or prosperity of your customer as reflected by their lifestyle using an affluence score ranging from 0 to 100. This measure is built on two types of data: satellite imagery-based variables (such as the size and density of buildings, quality of infrastructure, and the amount of green cover in an area) and statistical variables such as asset and amenity data, cost of living estimates and more.

Affluence is a relative measure which is localized by geography - every input parameter is treated differently based on the region we're considering - for example, building height is treated differently in Mumbai than in Delhi! In order to interpret the score correctly, use the household income parameter and geography returned in the output.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/affluence_index

Query Parameters

For this endpoint, you can query data using a latitude-longitude or by inputting a village code.

For urban data, use the latitude-longitude and radius input:

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 50m true 50

For rural data, you can input a latitude-longitude or a village code to return data for that village:

Parameter Description Required Sample
latlong The latitude-longitude to be considered false 12.9716,77.5946
village_subdistrict_code The unique Census 2011 village code for which you would like to query data, created by concatenating S, state code (2 digits), district code (3 digits), subdistrict code (4 digits), and village code (6 digits) false S295710106611857
granularity Parameter required if output is needed at a village level (rural); If data is required for metros, please ignore this parameter true village

Output Parameters

Parameter Description Sample
state_name Name of the state in which the latlong lies Karnataka
town_name Name of the town in which the latlong lies Bangalore
town_code Code of the town in which the latlong lies 803162
affluence_index Affluence score of the customer (0-100) 47.94
household_income Average annual household income (in Rs.) of the people with this affluence score 285835.52

Residential Population

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/population?latlong=12.9716,77.5946&radius=300" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '300'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/population', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/population?latlong=12.9716,77.5946&radius=300", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '300'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/population',
                    httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/population?latlong=12.9716,77.5946&radius=300', $headers);

The above command returns JSON output:

For metros, i.e. when granularity is not specified

{
  "data": [
    {
      "residential_population": 793
    }
  ]
}

For rural, i.e. when granularity is set to village

{
  "data": [
    {
      "state_name": "Uttar Pradesh",
      "district_name": "Saharanpur",
      "subdistrict_name": "Behat",
      "village_name": "Sunehti",
      "village_subdistrict_code": "S295710106611857",
      "residential_population": 384
    }
  ]
}

Get an estimate of the number of people who live in the area where your customer resides.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/population

Query Parameters

For this endpoint, you can query data using a latitude-longitude or by inputting a village code.

For urban data, use the latitude-longitude and radius input:

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 50m true 50

For rural data, you can input a latitude-longitude or a village code to return data for that village:

Parameter Description Required Sample
latlong The latitude-longitude to be considered false 12.9716,77.5946
village_subdistrict_code The unique Census 2011 village code for which you would like to query data, created by concatenating S, state code (2 digits), district code (3 digits), subdistrict code (4 digits), and village code (6 digits) false S295710106611857
granularity Parameter required if output is needed at a village level (rural); If data is required for metros, please ignore this parameter true village

Output Parameters

Parameter Description Sample
residential_population Residential population count in the region where the latlong lies 793

Age & Gender Profile

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/population_age_gender?latlong=12.9716,77.594&radius=500" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '500'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/population_age_gender', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/population_age_gender?latlong=12.9716,77.594&radius=500", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}

require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '500'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/population_age_gender',
                    httr::add_headers(.headers=headers), query = params)
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/population_age_gender?latlong=12.9716,77.5946&radius=500', $headers);

The above command returns a JSON output:

{
  "data": [
    {
      "age_0_5_f": 3.0828,
      "age_0_5_m": 3.24049,
      "age_10_15_f": 7.1991,
      "age_10_15_m": 7.5845,
      "age_15_20_f": 9.4412,
      "age_15_20_m": 10.0192,
      "age_20_25_f": 1.4538,
      "age_20_25_m": 2.8901,
      "age_25_30_f": 1.9793,
      "age_25_30_m": 2.7325,
      "age_30_35_f": 1.7691,
      "age_30_35_m": 1.9968,
      "age_35_40_f": 1.8567,
      "age_35_40_m": 1.9968,
      "age_40_45_f": 1.5239,
      "age_40_45_m": 1.6640,
      "age_45_50_f": 2.0319,
      "age_45_50_m": 2.2420,
      "age_50_55_f": 1.5589,
      "age_50_55_m": 1.8742,
      "age_55_60_f": 1.5239,
      "age_55_60_m": 1.8917,
      "age_5_10_f": 8.7230,
      "age_5_10_m": 9.4062,
      "age_60_plus_f": 5.5526,
      "age_60_plus_m": 4.7468
    }
  ]
}

Understand the percent of population in different age and gender groups, segmented into 5-year brackets from the age of 0 to 60+ in the area where your customer resides.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/population_age_gender

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 200m true 250

Output Parameters

Parameter Description Sample
age_gender Percent of individuals in an age and gender bracket in the region. For example, age_0_5_m means males from the age of 0 until the age of 5 (not included) 6.23

Ambient Population for Footfall

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/ambient_population?latlong=12.9716,77.5946&radius=500" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '500'),
)


response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/ambient_population', headers=headers, params=params)
package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/ambient_population?latlong=12.9716,77.5946&radius=500", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}

require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '500'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/ambient_population',
                  httr::add_headers(.headers=headers), query = params)
<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/ambient_population?latlong=12.9716,77.5946&radius=500', $headers);

The above command returns JSON output:

{
  "data": [
    {
      "ambient_population": 17689
    }
  ]
}

Ambient population captures the average expected population in an area, in a day—in other words, where people spend their time during the day. In commercial areas, ambient population is a great representation of expected footfall.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/ambient_population

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 200m true 250

Output Parameters

Parameter Description Sample
ambient_population Count of ambient population in the region 5634

Road Density

  curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/road_density?latlong=12.9716,77.5946&radius=300" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),,
    ('radius', '300'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/road_density', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/road_density?latlong=12.9716,77.5946&radius=300", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}

require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '300'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/road_density',
                    httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/road_density?latlong=12.9716,77.5946&radius=300', $headers);

The above command returns a JSON output

{
  "data": [
    {
      "road_density": 1.2313
    }
  ]
}

Measure the density of road network in the area where your customer lives or works.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/road_density

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 100m true 300

Output Parameters

Parameter Description Sample
road_density Total area of road (sq. m.) in the region 1.2

Railway Connectivity

  curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/railway?latlong=12.9716,77.5946" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/railway', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/railway?latlong=12.9716,77.5946", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/railway',
                    httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/railway?latlong=12.9716,77.5946', $headers);

The above command returns a JSON output

{
  "data": [
    {
      "railway_connectivity_index": 47.8,
      "railway_distance": 518.86136618
    }
  ]
}

Learn about the railway connectivity of any region in the country. Measure the distance of your input point to the nearest railway station and the railway connectivity score of this station, built on indicators like the volume of trains, whether it services "special" trains, whether the station is a start or end-point of a train journey, and more.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/railway

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946

Output Parameters

Parameter Description Sample
railway_connectivity_index Score (0-100) to capture the connectivity of the nearest railway station 47.8
railway_distance Distance (in meters) to the nearest railway station 518.861

Building Profile

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/building?latlong=12.9716,77.5946&radius=50" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '50'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/building', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/building?latlong=12.9716,77.5946&radius=50", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '50'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/building', 
                  httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/building?latlong=12.9716,77.5946&radius=50', $headers);

The above command returns a JSON output

{
    "data": [
        {
          "building_area": 344.5676
        }
    ]
}

Get the average area of a building or a number of buildings in a region.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/building

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude of the building true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 100m true 100

Output Parameters

Parameter Description Sample
building_area Average area of the building(s) (in sq. m.) 344.5676

Company Profile

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/company_profile?latlong=12.9716,77.5946" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/company_profile', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/company_profile?latlong=12.9716,77.5946", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/company_profile',
                  httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/company_profile?latlong=12.9716,77.5946', $headers);

The above command returns JSON output:

{
  "data": [
    {
      "pincode":400001,
      "total_companies": 6349,
      "median_company_age": 22,
      "companies_last_5_years": 1069,
      "private_companies": 5147,
      "private_opc_companies": 4,
      "public_companies": 722,
      "median_authorized_capital": 1000000,
      "median_paidup_capital": 101500,
      "agriculture_and_allied_activities": 152,
      "business_services": 1248,
      "community_personal_social_services": 235,
      "computer_and_related_activities": 2,
      "construction": 457,
      "education": 0,
      "electricity_gas_water_companies": 38,
      "finance": 897,
      "manufacturing_food_stuffs": 97,
      "insurance": 32,
      "manufacturing_leather_products": 15,
      "manufacturing_machinery_equipments": 245,
      "manufacturing_metals_chemicals": 403,
      "manufacturing_paper_publishing": 100,
      "manufacturing_textiles": 127,
      "manufacturing_wood_products": 8,
      "mining_quarrying": 40,
      "real_estate_and_renting": 365,
      "trading": 904,
      "transport_storage_communications": 466,
      "manufacturing_others": 43
    }
  ]
}

Learn about the business activity and development in your region of interest based on the number of registered companies in that pincode.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/company_profile

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946

Output Parameters

Parameter Description Sample
pincode Pincode in which the latlong lies 400001
total_companies Total number of companies in the pincode 6349
median_company_age Median age of the company in the pincode in years 5
companies_last_5_years Number of new companies registered in the last 5 years in the pincode 1069
private_companies Number of private companies in the pincode 5147
private_opc_companies Number of one person private companies in the pincode 4
public_companies Number of public companies in the pincodes 722
median_authorized_capital Median authorized capital in the pincode 1000000
median_paidup_capital Median paidup capital in the pincode 101500
agriculture_and_allied_activities Number of companies in Agriculture and Allied Activities in the pincode 152
business_services Number of companies in Business Services in the pincode 1248
community_personal_social_services Number of companies in Community, Personal & Social Services in the pincode 235
computer_and_related_activities Number of companies in Computer and related activities in the pincode 2
construction Number of companies in Construction in the pincode 457
education Number of companies in Education in the pincode 0
electricity_gas_water_companies Number of companies in Electricity, Gas & Water in the pincode 38
finance Number of companies in Finance in the pincode 897
manufacturing_food_stuffs Number of companies in Food & Food Stuffs in the pincode 97
insurance Number of companies in Insurance in the pincode 32
manufacturing_leather_products Number of companies in manufacturing of Leather and Related Products in the pincode 15
manufacturing_machinery_equipments Number of companies in manufacturing of Machinery and Equipment in the pincode 245
manufacturing_metals_chemicals Number of companies in manufacturing of Metals, Chemicals, and products thereof in the pincode 403
manufacturing_paper_publishing Number of companies in manufacturing of Paper & Paper Products, Publishing, Printing, and Reproduction of Recorded Media in the pincode 100
manufacturing_textiles Number of companies in manufacturing of Textiles in the pincode 127
manufacturing_wood_products Number of companies in manufacturing of Wood Products in the pincode 8
mining_quarrying Number of companies in Mining and Quarrying in the pincode 40
real_estate_and_renting Number of companies in Real Estate activities in the pincode 365
trading Number of companies in Trading in the pincode 904
transport_storage_communications Number of companies in Transport, Storage, and Communications in the pincode 466
manufacturing_others Number of companies in manufacturing of other products in the pincode 43

Location of Gyms

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/gym?latlong=12.9716,77.5946&radius=200" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '200'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/gym', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/gym?latlong=12.9716,77.5946&radius=200", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '200'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/gym',
                  httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/gym?latlong=12.9716,77.5946&radius=200', $headers);

The above command returns a JSON:

{
  "data": [
    {
      "gym": 10
    }
  ]
}

Identify the locations of gyms in an area! Use this endpoint to measure the count of gyms within a customizable radius of your input latitude-longitude.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/gym

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 200m true 200

Output Parameters

Parameter Description Sample
gym Count of gyms in the radius provided 10

Location of Cell Towers

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/cell_tower?latlong=12.9716,77.5946&radius=200" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '200'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/cell_tower', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/cell_tower?latlong=12.9716,77.5946&radius=200", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '200'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/cell_tower',
                  httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/cell_tower?latlong=12.9716,77.5946&radius=200', $headers);

The above command returns a JSON:

{
  "data": [
    {
      "cell_tower": 14
    }
  ]
}

Identify the locations of cell towers in an area! Use this endpoint to measure the count of cell towers within a customizable radius of your input latitude-longitude.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/cell_tower

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 200m true 200

Output Parameters

Parameter Description Sample
cell_tower Count of cell towers in the radius provided 14

Location of Restaurants

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/restaurant?latlong=12.9716,77.5946&radius=200" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '200'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/restaurant', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/restaurant?latlong=12.9716,77.5946&radius=200", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '200'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/restaurant',
                  httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/restaurant?latlong=12.9716,77.5946&radius=200', $headers);

The above command returns a JSON:

{
  "data": [
    {
      "restaurant": 14
    }
  ]
}

Identify the locations of restaurants in an area! Use this endpoint to measure the count of restaurants within a customizable radius of your input latitude-longitude.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/restaurant

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 200m true 200

Output Parameters

Parameter Description Sample
restaurant Count of restaurants in the radius provided 4

Location of General Stores

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/general_store?latlong=12.9716,77.5946&radius=200" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '200'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/general_store', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/general_store?latlong=12.9716,77.5946&radius=200", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '200'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/general_store',
                  httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/general_store?latlong=12.9716,77.5946&radius=200', $headers);

The above command returns a JSON:

{
  "data": [
    {
      "general_store": 2
    }
  ]
}

Identify the locations of departmental stores, general stores, super markets, and kinara stores in an area! Use this endpoint to measure the count of stores within a customizable radius of your input latitude-longitude.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/general_store

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 200m true 200

Output Parameters

Parameter Description Sample
general_store Count of departmental stores, general stores, super markets, and kinara stores in the radius provided 2

Location of Clinics

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/clinic?latlong=12.9716,77.5946&radius=200" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '200'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/clinic', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/clinic?latlong=12.9716,77.5946&radius=200", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '200'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/clinic',
                  httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/clinic?latlong=12.9716,77.5946&radius=200', $headers);

The above command returns a JSON:

{
  "data": [
    {
      "clinic": 4
    }
  ]
}

Identify the locations of clinics in an area! Use this endpoint to measure the count of clinics within a customizable radius of your input latitude-longitude.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/clinic

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 200m true 200

Output Parameters

Parameter Description Sample
clinic Count of clinics in theradius provided 4

Location of Schools

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/school?latlong=12.9716,77.5946&radius=200" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '200'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/school', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/school?latlong=12.9716,77.5946&radius=200", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '200'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/school',
                  httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/school?latlong=12.9716,77.5946&radius=200', $headers);

The above command returns a JSON:

{
  "data": [
    {
      "school": 2
    }
  ]
}

Identify the locations of schools in an area! Use this endpoint to measure the count of schools within a customizable radius of your input latitude-longitude.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/school

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 200m true 200

Output Parameters

Parameter Description Sample
school Count of schools in the radius provided 2

Location of Bank Branches

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/bank?latlong=12.9716,77.5946&radius=200" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '200'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/bank', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/bank?latlong=12.9716,77.5946&radius=200", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '200'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/bank',
                  httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/bank?latlong=12.9716,77.5946&radius=200', $headers);

The above command returns a JSON:

{
  "data": [
    {
      "bank": 12
    }
  ]
}

Identify the locations of bank branches in an area! Use this endpoint to measure the count of bank branches within a customizable radius of your input latitude-longitude.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/bank

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 200m true 200

Output Parameters

Parameter Description Sample
bank Count of banks in the radius provided 12

Location of ATMs

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/atm?latlong=12.9716,77.5946&radius=200" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
    ('radius', '200'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/atm', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/atm?latlong=12.9716,77.5946&radius=200", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946',
  `radius` = '200'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/atm',
                  httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/atm?latlong=12.9716,77.5946&radius=200', $headers);

The above command returns a JSON:

{
  "data": [
    {
      "atm": 17
    }
  ]
}

Identify the locations of ATMs in an area! Use this endpoint to measure the count of atms within a customizable radius of your input latitude-longitude.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/atm

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946
radius The radius (in meters) around the latitude-longitude for which data is required. Recommended minimum: 200m true 200

Output Parameters

Parameter Description Sample
atm Count of atms in the radius provided 17

Economic Growth Index

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/economic_growth_index?latlong=12.9716,77.5946" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/economic_growth_index', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/economic_growth_index?latlong=12.9716,77.5946", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/economic_growth_index',
                    httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/economic_growth_index?latlong=12.9716,77.5946', $headers);

The above command returns JSON output:

{
  "data": [
    {
      "state_name": "Karnataka",
      "state_code": 29,
      "district_name": "Bangalore",
      "district_code": 572,
      "city": "Bangalore",
      "economic_index": 44.0128543958237
    }
  ]
}

Spot the growth trend before your competitor does! With this index, you can measure the economic growth of the area where your customer lives on a scale of 0 to 100. The index is built on the variables that directly correlate with GDP growth such as electricity consumption and construction activity.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/economic_growth_index

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946

Output Parameters

Parameter Description Sample
state_name Name of the state in which the latlong lies Karnataka
state_code Census 2011 state ID for the state in which the latlong lies 29
district_name Name of the district in which the latlong lies Bangalore
district_code Census 2011 district ID for the district in which the latlong lies 572
city Name of the city in which the latlong lies Bangalore
economic_index Economic growth score (0-100) of the region where the latlong lies 54.12

Family Profile

curl -X GET "https://api-grid.atlan.com/api/insightpack/v1/india/family_profile?latlong=12.9716,77.5946" -H "X-API-KEY: secretweapon"
import requests

headers = {
    'X-API-KEY': 'secretweapon',
}

params = (
    ('latlong', '12.9716,77.5946'),
)

response = requests.get('https://api-grid.atlan.com/api/insightpack/v1/india/family_profile', headers=headers, params=params)

package main

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

func main() {
  client := &http.Client{}
  req, err := http.NewRequest("GET", "https://api-grid.atlan.com/api/insightpack/v1/india/family_profile?latlong=12.9716,77.5946", nil)
  if err != nil {
    log.Fatal(err)
  }
  req.Header.Set("X-API-KEY", "secretweapon")
  resp, err := client.Do(req)
  if err != nil {
    log.Fatal(err)
  }
  bodyText, err := ioutil.ReadAll(resp.Body)
  if err != nil {
    log.Fatal(err)
  }
  fmt.Printf("%s\n", bodyText)
}
require(httr)

headers = c(
  `X-API-KEY` = 'secretweapon'
)

params = list(
  `latlong` = '12.9716,77.5946'
)

res <- httr::GET(url = 'https://api-grid.atlan.com/api/insightpack/v1/india/family_profile',
                  httr::add_headers(.headers=headers), query = params)

<?php
include('vendor/rmccue/requests/library/Requests.php');
Requests::register_autoloader();
$headers = array(
    'X-API-KEY' => 'secretweapon'
);
$response = Requests::get('https://api-grid.atlan.com/api/insightpack/v1/india/family_profile?latlong=12.9716,77.5946', $headers);

The above command returns JSON output:

{
  "data": [
    {
      "state_name": "Karnataka",
      "state_code": 29,
      "district_name": "Bangalore",
      "district_code": 572,
      "city": "Bangalore",
      "family_size": 5,
      "percent_nuclear": 30.0431801032538
    }
  ]
}

Understand the average family size and percent of nuclear families in the area where your customer resides. For us, a nuclear family consists of either a couple, or a couple and their dependent children.

HTTP Request

GET https://api-grid.atlan.com/api/insightpack/v1/india/family_profile

Query Parameters

Parameter Description Required Sample
latlong The latitude-longitude to be considered true 12.9716,77.5946

Output Parameters

Parameter Description Sample
state_name Name of the state in which the latlong lies Karnataka
state_code Census 2011 state ID for the state in which the latlong lies 29
district_name Name of the district in which the latlong lies Bangalore
district_code Census 2011 district ID for the district in which the latlong lies 572
city Name of the city in which the latlong lies Bangalore
family_size Average family size in the region 5
percent_nuclear Percent of nuclear families in the region 30.0431801032538

Response & Error Codes

If the request is successful and data is available :

{
    "data": [
        {
            "indicator": "value"
        }
    ]
}

If the status code is not 2xx :

{
    "message": "Error details"
}

If no data is available for the input parameters:

{
  "data": [ ]
}

Not sure what your response code means? Refer to the table provided below.

Code Message Description
200 Response was sent back to the user Success - all went well! If data is available in this geography, it has been returned. Otherwise, you'll see an empty json (doesn't count as a valid call)
400 Input parameters missing Oops! Looks like you forgot an input param. Read through the documentation and try again
401 User is not authorized to access this data Your key doesn't fit this lock! Get in touch to receive a new one
403 API key not provided We don't see your key. Get in touch if you don't have one!
404 Requested resource was not found This dataset does not exist - have you input the right endpoint?
422 Error in input parameters Oops! The inputs don't seem right. Check again?
429 API limit exceeded Woah, you've used all the available calls! Get in touch to request more data
500 Internal server error Please notify us if you receive this code at grid@atlan.com