Gridstate

Screen a site with public evidence

Resolve a location, create a site, and run an assessment that abstains when the public record is insufficient.

Use Gridstate to resolve a location, collect relevant public evidence, and measure screening friction for a proposed large load.

Before you begin

Complete the API quickstart, then keep GRIDSTATE_API_BASE and GRIDSTATE_API_KEY available in your shell.

A screening result is not a capacity result

The assessment never reports available capacity, deliverable megawatts, engineering feasibility, upgrade cost, schedule, or tariff eligibility. Only a serving utility can establish those facts.

Resolve the location

Start with a GeoJSON point. Coordinates use longitude first:

curl -X POST "$GRIDSTATE_API_BASE/v1/service-territory-resolutions" \
  -H "Authorization: Bearer $GRIDSTATE_API_KEY" \
  -H "Gridstate-Version: 2026-08-24" \
  -H "Content-Type: application/json" \
  -d '{"location":{"type":"Point","coordinates":[-97.0412,32.9014]}}'

The response contains serving-utility candidates. Boundary locations and coarse geometry can return multiple candidates instead of one unsupported conclusion.

Create a tenant-scoped site

Describe the location and proposed load:

curl -X POST "$GRIDSTATE_API_BASE/v1/sites" \
  -H "Authorization: Bearer $GRIDSTATE_API_KEY" \
  -H "Gridstate-Version: 2026-08-24" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "location": {"latitude": 32.9014, "longitude": -97.0412},
    "requestedPeakLoadMw": 120,
    "targetInServiceDate": "2029-06-01",
    "loadProfile": "flat",
    "redundancy": "n_plus_1"
  }'

You can also provide a ramp profile, on-site generation, energy storage, and custom load characteristics. See the site endpoint reference for the complete schema.

Start and poll the assessment

Assessments run asynchronously. Reusing an idempotency key with a different request returns 409 Conflict.

curl -X POST \
  "$GRIDSTATE_API_BASE/v1/sites/$SITE_ID/assessments" \
  -H "Authorization: Bearer $GRIDSTATE_API_KEY" \
  -H "Gridstate-Version: 2026-08-24" \
  -H "Idempotency-Key: $(uuidgen)"

The API returns 202 Accepted with an operation ID. Poll the operation until it completes:

curl "$GRIDSTATE_API_BASE/v1/operations/$OPERATION_ID" \
  -H "Authorization: Bearer $GRIDSTATE_API_KEY" \
  -H "Gridstate-Version: 2026-08-24"

Read the result and its abstention state

Fetch the completed assessment:

curl "$GRIDSTATE_API_BASE/v1/assessments/$ASSESSMENT_ID" \
  -H "Authorization: Bearer $GRIDSTATE_API_KEY" \
  -H "Gridstate-Version: 2026-08-24"

Read abstained before score:

{
  "readiness": {
    "score": 0,
    "classification": "high_friction",
    "metric": "non_capacity_screening_friction",
    "abstained": true,
    "abstentionReason": "Required public evidence did not resolve."
  }
}

An abstained score of zero is not a good score

When abstained is true, the assessment declined to score the site. The zero does not mean low friction or high readiness.

Interpret the evidence bundle

The assessment groups evidence by decision surface:

FieldWhat it contains
utilityCandidatesUtilities that may serve the location
relevantQueueRecordsNearby or jurisdiction-relevant queue evidence
relevantTransmissionProjectsReported transmission work with source locators
tariffCandidatesPublic tariff evidence that may apply
marketSignalsPublished market and operating context
risks and nextActionsEvidence-backed follow-up work, not utility conclusions

Each queue and transmission record retains its source locator and quality flags.

Check whether the geography is supported

Site-level evidence is currently a Texas pilot. It includes ERCOT queue and transmission tracking, PUCT service-territory and docket evidence, and the Oncor retail delivery tariff.

Call /v1/data-coverage before screening another geography. The assessment abstains when required evidence is missing.

On this page