Developers

The NetaGraph API.

JSON over HTTPS. Authenticated via X-API-KEY headers. Stable v1 surface, semver-versioned, with deprecation notices six months in advance. Served from India-region edge with TLS 1.3 and per-key audit logs.

Why developers ship on us

Four primitives, one API.

Authentication, surface, push, and quotas — each documented and instrumented.

Access

Scoped keys, instant rotation.

Per-environment keys with IP allowlists, scope masks, and one-click rotation. Every call is audit-logged with a stable key hash.

Get a key
curl https://api.netagraph.in/v1/ping \
  -H "X-API-KEY: $NETAGRAPH_KEY"
Resources

Everything you need to integrate.

Quickstart

From zero to your first signed response in under 60 seconds.

Read guide

API Reference

Every endpoint, every field, every status code.

Browse spec

Changelog

Versioned, semver-bumped, six-month deprecation windows.

See history

Status

Live latency, error rates, and incident history.

Open status
Quickstart

From zero to first response in 60 seconds.

# 1. Create a key in the workspace
#    https://netagraph.in/workspace/keys
#
# 2. Export it
export NETAGRAPH_KEY="ng_live_••••••••••••"

# 3. Make your first call
curl https://api.netagraph.in/v1/analytics/constituencies/blr-south \
  -H "X-API-KEY: $NETAGRAPH_KEY"

Authentication

Every request must carry an X-API-KEY header with a key generated from your workspace. Keys are scoped to an environment (production or staging) and can be rotated or revoked instantly.

Versioning & stability

The current major is v1. Breaking changes ship behind a new path prefix. Field deprecations are flagged in response headers (X-NG-Deprecated) at least six months before removal.

Pagination & filtering

List endpoints accept limit, cursor, and resource-specific filters (e.g. state, ulb). Default page size is 50; maximum is 500.

Webhooks

Subscribe to report.*, contractor.* and sentiment.* events. Payloads are signed with HMAC-SHA256 over the request body; verify using the X-NG-Signature header.

Endpoints

Core analytics surfaces.

13 of 13
Description
GET/v0/analytics/legacyAnalyticsLegacy v0 analytics — sunset 2026-12210msdeprecated
GET/v1/analytics/constituencies/:idAnalyticsSentiment, top issues, infra indicators38msstable
GET/v1/analytics/contractorsAnalyticsContractor SLAs and site status by ULB71msstable
GET/v1/analytics/sentiment/boothsAnalyticsBooth-level sentiment heatmap96msbeta
GET/v1/analytics/trendsAnalyticsTime-series by state, district or AC54msstable
POST/v1/auth/keys/rotateAuthRotate the current API key47msstable
GET/v1/geo/constituencies/:stateGeoAssembly + Lok Sabha boundaries110msstable
GET/v1/geo/wards/:stateGeoMunicipal ward GeoJSON polygons124msstable
POST/v1/reportsReportsSubmit a geo-tagged citizen report88msstable
GET/v1/reports/:idReportsFetch report with evidence trail42msstable
POST/v1/reports/:id/verifyReportsVolunteer verification action61msbeta
POST/v1/webhooksWebhooksSubscribe to event topics33msstable
DELETE/v1/webhooks/:idWebhooksRevoke an existing subscription29msstable
Errors

Standard codes, predictable bodies.

MeaningAction
400bad_requestClientMalformed request bodyValidate payload against schema
401invalid_keyAuthMissing or invalid X-API-KEYCheck X-API-KEY header
401key_revokedAuthKey was rotated or revokedRe-issue from /workspace/keys
403scope_deniedAuthKey not entitled to scopeUpgrade tier or request scope
404not_foundClientResource does not existVerify identifier
409conflictClientIdempotency key reuseGenerate a new key
429rate_limitedLimitPer-minute quota exceededHonour Retry-After header
429burst_limitedLimitPer-second burst exceededAdd exponential backoff
502upstream_failureServerUpstream data source downBackoff x5 then alert
504timeoutServerEdge timeout (>5s)Retry with smaller window
Rate limits

By tier.

GovTechNegotiatedStreaming + hooksYesNegotiated
Journalist10,00020 / sFree
Newsroom100,00050 / s5 topics₹35k / mo
Campaign1,000,000200 / sUnlimitedYes₹2.4L / mo
Consultancy5,000,000500 / sUnlimitedYes₹6.0L / mo