Skip to content
Live · 12 cities · 67 signal types

The Data Intelligence Layer
of Bharat.

First-party Indian geospatial, civic, environment, POI and transit intelligence — keyed to H3 hexes, cached at the edge, and shaped for both humans and autonomous LLM agents. 30-second signup. No credit card.

# 1. Get a key
$ curl -X POST https://api.gridrock.ai/oauth/register \
       -H 'Content-Type: application/json' \
       -d '{"client_name":"my-bot","tos_accepted":true,"intended_use":"product","contact_email":"me@example.com"}'

# 2. Make a call (60 req/min as an agent)
$ curl https://free.gridrock.ai/v1/intel/hex/892a100c87ffff \
       -H 'Authorization: Bearer agtok_…' \
       -H 'Accept: application/vnd.gridrock.agent+json'

Four suites. One substrate.

Each suite ships its own caching, attribution, and rate-limit profile, but they all share the same tier matrix, error shape, and agent response contract — so what you learn in one, you know in all.

Hex cells under management
142M
Bharat-only res-9 land cells
Signals per hex
17
AQI, weather, transit, POI, LULC, gw, slope, …
Onboarded cities
12
expanding monthly
Median edge p50
38ms
CloudFront ap-south-1
Free tier
5/min · 1k/day
humans
Agent free tier
60/min · 5k/day
self-onboarded via RFC 7591
Agent-native

We don't tolerate agents.
We design for them.

Every endpoint exposes a token-efficient application/vnd.gridrock.agent+json shape (~42% smaller). Every error has a next_action enum so an LLM can recover without a human. Every route advertises its rough cost in LLM tokens via X-Cost-Per-Call-Tokens. Self-onboarding is one POST.

Reference MCP server (npm)
# Add to ~/.claude/claude_desktop_config.json
{
  "mcpServers": {
    "gridrock": {
      "command": "npx",
      "args": ["@gridrock/mcp-server"]
    }
  }
}

# First run handles RFC 7591 registration, persists creds,
# auto-refreshes the agtok_* JWT, and exposes 14 tools.

Built for India, on India infrastructure.

Every byte stored in ap-south-1. Every cache POP that serves you sits in Bharat. Every dataset is licensed CC-BY-SA so the public good stays in the public good. We exist because Bharat's spatial intelligence shouldn't have to round-trip through California.

Data residency
ap-south-1 (Mumbai) only
Identity
RS256 JWT + RFC 7591
Attribution
Per-response _meta
License
CC-BY-SA on public datasets

Why a layer, not just an API?

Bharat-grade decisions need Bharat-grade context: a Bandra cell knows it's in BMC ward H West, that the BEST 33-Ltd halts 90m away, that the CGWB well 1.2km north is rated saline, that the AQI was 142 at 3pm, that the 24-hour forecast says rain at 0700. We give you all of that in one HTTP call: /v1/intel/hex/<h3>. That's a layer.

See it in action