Strata Intel API

Reinforcement Probability Index — GB grid constraint screening for developer land acquisition · v1.4

Authentication

All /api/* requests require an API key passed as the X-API-Key header. Per-client rate limits are configured at key issuance.

curl -H "X-API-Key: YOUR_KEY" "https://strata-intel.uk/api/score?postcode=SW1A+1AA"

Endpoints

GET /api/score?postcode={postcode} or /api/score?session={token}

Score a GB postcode or polygon session for grid reinforcement probability. Returns JSON.

GET /api/report?postcode={postcode} or /api/report?session={token}

Branded 4-page A4 PDF report (cover with site map · network context · constraint detail with DFES chart · methodology). Returns application/pdf.

POST /api/session

Create a polygon-based scoring session. Body must be JSON with a polygon key containing a GeoJSON Polygon geometry (or Feature wrapping one). Optional: postcode (display label only), source (free-form, e.g. "upload").

curl -H "X-API-Key: YOUR_KEY" -H "Content-Type: application/json" \
  -d '{"polygon": {"type":"Polygon","coordinates":[[[-1.5,52.4],[-1.49,52.4],[-1.49,52.41],[-1.5,52.41],[-1.5,52.4]]]}}' \
  https://strata-intel.uk/api/session

Returns {session_token, polygon_area_m2, centroid_lon, centroid_lat, expires_at}. Sessions expire after 24h. Pass the token to /api/score or /api/report as ?session=TOKEN.

GET /health

Health check. No authentication. Returns {"status":"ok","version":"v1.4"}

Response schema (/api/score)

FieldTypeDescription
statusstring"ok", "not_yet_covered", "geocode_failed", "no_substation"
postcodestringFormatted postcode (display label only for session-based requests)
lon, latfloatSite coordinates (centroid for polygon sessions)
dnoobjectparent_group, licence_area, dno_code, description
substationobjectname, level, key, match_method, distance_m
ragstringGREEN AMBER RED
rag_reasonstringHuman-readable explanation
schemeobject|nullDNOA constraint scheme details if matched
dfesobjectDFES forecast (matched: bool, scenarios, sample, peak_demand)
confidencestring"high" (polygon + DNOA), "moderate" (nearest + data), "indicative"
data_vintageobjectPublication dates and sources per data type
constraint_methodologystringHow the constraint was derived for this DNO
disclaimerstringLegal disclaimer
sessionobject(only when ?session= was used) token, polygon_area_m2, centroid_lon, centroid_lat

RAG classification

RAGCanonical decisionMeaning
REDASSET_SOLUTIONSubstation requires reinforcement; new connections likely delayed or expensive
AMBERMANAGE_WITH_FLEX / REINFORCE_WITH_FLEXConstraint exists; managed via flexibility or reinforcement planned
GREENOPERATIONAL_ONLYNo active constraint; connections expected to proceed normally

Coverage

DNOSubstationsMatchDNOADFES
SPEN (SPD+SPM)992Polygon49 published681K rows
NGED (4 regions)1,153Nearest142 published104K rows
UKPN (EPN+LPN+SPN)982Nearest982 headroom-derived177K rows
NPg668Nearest668 utilisation-derived884K rows
SSEN (SEPD+SHEPD)753Polygon+Nearest686 headroom-derived41K rows
ENWL402Nearest360 demand-derived62K rows

Pricing

Contact rod.adkins@terradatum.io for pricing and API key provisioning.

Rate limits

Per-client, configured at key issuance. Default 30 requests/minute. Session creation limited to 10/minute/IP on the UI endpoint. Higher limits available on request.