Soil Type and Bearing Capacity API for Chennai
Yes. The LandLens soil type API takes a latitude and longitude in the Chennai Metropolitan Area and returns the soil class the metropolitan master plan soil map gives for that point (sand, clay, clay and shale, shale, laterite and sandstone, or hard rock), with what the class is like, what it suits, construction notes, an indicative bearing capacity range in kg per sq.cm, kN per sq.m and tonnes per sq.m, permeability, drainage, ease of excavation and the foundation type the class suggests. It costs nothing.
https://verified.realestate/api/v1/tools/soil_type- Price
- Free
- Source
- Metropolitan master plan soil map
- Coverage
- Chennai Metropolitan Area only
- Answers in
- Usually under a second
Example
curl -X POST https://verified.realestate/api/v1/tools/soil_type \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":12.901,"lng":80.2279}'
{
"ok": true,
"status": "ok",
"data": {
"found": true,
"status": "mapped",
"lat": 12.901,
"lng": 80.2279,
"soil_type": "SAND",
"soil_code": "SA",
"description": "Granular soil consisting of rock and mineral particles. Non-cohesive with good drainage properties but prone to settlement under load.",
"characteristics": [
"Moderate bearing capacity",
"Good drainage properties",
"Prone to erosion and scour",
"May liquefy during earthquakes",
"Requires stabilization for slopes"
],
"advantages": [
"Excellent drainage reduces water problems",
"Easy excavation and handling",
"Good for backfill material",
"Suitable for septic systems",
"Quick construction possible"
],
"disadvantages": [
"Settlement under heavy loads",
"Erosion prone",
"Requires deep foundations",
"Cave-in risk during excavation",
"Liquefaction risk in seismic zones"
],
"suitable_for": [
"Residential buildings with pile foundations",
"Drainage systems",
"Recreational beaches",
"Filtration systems",
"Lightweight structures"
],
"construction_notes": [
"Compact in layers during filling",
"Provide erosion protection",
"Use geotextiles for separation",
"Design for seismic liquefaction if applicable",
"Dewater excavations properly"
],
"bearing_capacity": {
"min": 1.5,
"max": 5,
"unit": "kg/sq.cm"
},
"bearing_capacity_kn_per_sqm": {
"min": 147,
"max": 490
},
"bearing_capacity_t_per_sqm": {
"min": 15,
"max": 50
},
"bearing_capacity_note": "Published range for this soil class, not a measurement at this plot.",
"permeability": "0.1",
"drainage_quality": "Excellent",
"excavation_difficulty": "Low",
"foundation_type": "Deep foundations for heavy loads",
"caveat": "Indicative only: this is the metropolitan master plan soil map read at a point, and the bearing capacity is a published range for the soil class, not a measurement at the plot. A foundation design needs a site soil investigation."
},
"credits_charged": 0
}
A real answer from the API (22 Oct 2026).
What it returns
One call, one point. Read data.status: mapped, not_covered or error. found is false (status not_found) for not_covered and error.
| Field | What it holds |
|---|---|
status | mapped (the soil class here is known), not_covered (the soil map does not reach this point, so nothing is said either way) or error (the layer could not be read). |
soil_type, soil_code | The soil class and its code: SAND (SA), CLAY (CL), CLAY AND SHALE (CS), SHALE (SH), LATERITE AND SANDSTONE (LS) or HARD ROCK (HR). |
description, characteristics[] | What the class is like. |
advantages[], disadvantages[], suitable_for[] | What the class is good and bad for. |
construction_notes[] | What building on it usually needs. |
bearing_capacity, bearing_capacity_kn_per_sqm, bearing_capacity_t_per_sqm | The published bearing capacity range for the class, in kg per sq.cm, and the same in kN per sq.m and tonnes per sq.m. |
permeability, drainage_quality, excavation_difficulty, foundation_type | Published properties of the class. |
caveat, bearing_capacity_note | The plain warning that this is a planning map and a class range, not a soil test at the plot. |
nearest_mapped_soil_type, distance_to_mapped_area_m | When not_covered: the nearest mapped class and how far away it is. |
Inputs
The JSON body of the POST is the arguments. Both are required.
| Argument | Type | What to send |
|---|---|---|
latrequired |
number | Latitude in decimal degrees. |
lngrequired |
number | Longitude in decimal degrees. |
Code
Set LANDLENS_KEY to your key. In an AI app, connect https://verified.realestate/mcp once and ask in plain words instead. In Postman, download this API's collection, import it (File, Import) and set apiKey.
curl -X POST https://verified.realestate/api/v1/tools/soil_type \
-H "Authorization: Bearer $LANDLENS_KEY" \
-H "Content-Type: application/json" \
-d '{"lat":12.901,"lng":80.2279}'
import os, requests
r = requests.post(
"https://verified.realestate/api/v1/tools/soil_type",
headers={"Authorization": f"Bearer {os.environ['LANDLENS_KEY']}"},
json={
"lat": 12.901,
"lng": 80.2279
},
timeout=20,
)
body = r.json()
print(body["status"], body["credits_charged"], body["data"])
const res = await fetch("https://verified.realestate/api/v1/tools/soil_type", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LANDLENS_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"lat": 12.901,
"lng": 80.2279
}),
});
const body = await res.json();
console.log(body.status, body.credits_charged, body.data);
What soil is my plot at 12.9010, 80.2279 on, and will it take a normal foundation?
Your AI reads the mapped soil class and its bearing capacity, and reminds you a soil test is still needed. It is free.
Responses
Every answer has the same envelope. What status can say for this call:
| status | What it means |
|---|---|
ok | The point is on the soil map (data.status mapped). |
not_found | The soil map does not reach the point (data.status not_covered), or the layer could not be read (data.status error). Neither says anything about the soil. |
invalid_args | lat or lng is missing. |
free_limit_reached | The account has used its free calls for the hour or the day. retry_after says how many seconds to wait; paid calls keep working. |
Where the data comes from
The soil map of the Chennai Metropolitan Area master plan, which divides the area into six soil classes, with published engineering properties for each class.
The Chennai Metropolitan Area. A point outside the map is answered as not assessed, never as fine.
Read from our copy of the master plan soil map, a planning map rather than a survey that is repeated.
The point is placed in the soil class area that contains it. The bearing capacity, permeability and the rest are the published figures for that class, not readings at the plot. Outside the map, the nearest mapped class and its distance are given for context.
Who uses it
Builders and engineers
Know the soil class before a site investigation, so the soil test and the foundation budget start from the right assumption.
Buyers
Understand why one plot needs piles and another does not, before comparing prices.
Analysts
Tag every site in a Chennai study with its mapped soil class at no cost.
Limits and good practice
- This is a planning map read at a point, and the figures are a published range for the class. A foundation design still needs a soil investigation at the plot.
- Coverage is the Chennai Metropolitan Area only. not_covered means not assessed, never that the soil is fine.
Pricing
The soil type API costs nothing. Free calls have their own allowance per hour and per day. Credits come from the same LandLens wallet as the chat and the minis. How billing works.
Free calls have an hourly and daily allowance. For more than that, or a platform built on these registers, we set up limits and a plan to match.
Questions
Is there an API for soil type in Chennai?
Yes, this one. Send a point in the Chennai Metropolitan Area and you get the mapped soil class with its bearing capacity, drainage and foundation notes.
Is the bearing capacity a test result?
No. It is the published range for the soil class, not a measurement at the plot. A structural design needs a site soil investigation.
Does it cover all of Tamil Nadu?
No. The soil map covers the Chennai Metropolitan Area. Elsewhere the answer is not_covered, which means not assessed.
What does it cost?
It costs nothing, within the account's free call allowance.
Updated 22 Oct 2026 · OpenAPI description