Skip to content
API

The data center build-out, in your own systems.

Every U.S. data center project Spezia tracks, as JSON: status, size, developer, tenants, utilities, the companies on the job, readiness, and dated signals from FAA and EPA records, each with its source. Pull it into your CRM, warehouse or model.

Start in two minutes

  • Get the Ultra plan, then create a key on the Agents page. The key is shown once; keep it in an environment variable.
  • Send it as a Bearer token. Every answer is JSON.
List active projects in Virginia
curl -H "Authorization: Bearer $SPEZIA_API_KEY" \
  "https://spezia.ai/api/v1/projects?state=VA&status=active&limit=25"
One project, with every signal
curl -H "Authorization: Bearer $SPEZIA_API_KEY" \
  "https://spezia.ai/api/v1/projects/{key}"

Free sample, no account

Up to 15 active projects in Virginia, from the latest research run: name, city, size, stage, phase, the four readiness signs and the date each was last checked. The full data adds the developer, every company named, the estimated value, funding, filings and every source.

Download as CSV or for Excel.

List projects

GET /api/v1/projects returns one page of projects, active ones first, then the largest. Filters:

state
Two-letter codes or state names, comma separated. All states when left out. state=VA,TX
status
One of under_construction, approved, announced, operational, blocked_or_paused, unknown, active, all. "active" means under construction or approved. Default all. status=active
min_mw
Only projects of at least this many megawatts. min_mw=100
developer
Part of the owner or developer's name, any case. developer=aligned
updated_since
Only projects a source reported on this day or later, YYYY-MM-DD. Use it to sync changes. updated_since=2026-11-01
limit
Projects per page, 1 to 200. Default 50. limit=100
offset
Where the page starts. Use next_offset from the last page; it is null on the last one. offset=100

An unknown parameter or a bad value is refused with a message, so a typo never returns the whole dataset by mistake.

Answer (an illustrative project: the names and numbers are made up, the shape is real)
{
  "data": [
    {
      "key": "example-campus-loudoun-va",
      "name": "Example Campus, Building 1",
      "url": "https://spezia.ai/app/projects/example-campus-loudoun-va",
      "developer": "Example Developer LLC",
      "tenants": [
        "Example Cloud Inc."
      ],
      "utilities": [
        "Example Power Co."
      ],
      "city": "Ashburn",
      "state": "VA",
      "status": "under_construction",
      "status_label": "Under construction",
      "capacity_mw": 300,
      "estimated_value_usd": 2500000000,
      "phase": "Structure",
      "main_bottleneck": "Power",
      "readiness": {
        "utility_contract": {
          "stage": "signed",
          "label": "Agreement signed",
          "basis": "source",
          "date": "2026-06-02",
          "source": {
            "url": "https://example.com/filings/esa",
            "title": "Utility filing",
            "quote": "signed an electric service agreement",
            "published_at": "2026-06-02"
          }
        },
        "major_equipment": {
          "stage": "none",
          "label": "No public sign",
          "basis": "none",
          "date": null,
          "source": null
        },
        "grid_connection": {
          "stage": "queued",
          "label": "In queue or study",
          "basis": "likely",
          "date": null,
          "source": null
        },
        "local_approval": {
          "stage": "approved",
          "label": "Approved",
          "basis": "status",
          "date": null,
          "source": null
        }
      },
      "companies": [
        {
          "name": "Example Developer LLC",
          "key": "example-developer",
          "role": "developer",
          "role_label": "Developer or owner"
        },
        {
          "name": "Example Cloud Inc.",
          "key": "example-cloud",
          "role": "tenant",
          "role_label": "Tenant or end user"
        },
        {
          "name": "Example Power Co.",
          "key": "example-power",
          "role": "utility",
          "role_label": "Utility"
        },
        {
          "name": "Example Builders",
          "key": "example-builders",
          "role": "general_contractor",
          "role_label": "General contractor"
        }
      ],
      "source_count": 7,
      "last_reported_at": "2026-11-09T14:00:00.000Z"
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 50,
    "offset": 0,
    "next_offset": null
  },
  "meta": {
    "as_of": "2026-11-09",
    "attribution": "Data from Spezia, researched from public records and reports; each fact links to its source. FAA and EPA records are U.S. government works. Use under the Spezia data license."
  }
}

Fields

key
Spezia's id for the project. Use it to fetch the full file.
name
The project's name in the sources.
url
The project file in the Spezia app.
developer
The owner or developer named in the sources, or null.
tenants
Tenants or end users named in the sources.
utilities
Electric utilities named in the sources.
city
City or county seat, or null.
state
Two-letter state code.
status
One of: under_construction, approved, announced, operational, blocked_or_paused, unknown.
status_label
The status in plain words.
capacity_mw
Planned capacity in megawatts as the sources state it, or null.
estimated_value_usd
Reported investment in U.S. dollars, or null.
phase
Spezia's read of the construction phase now, or null.
main_bottleneck
Spezia's read of what holds the project back most, or null.
readiness
Four signs that the project is real and moving: utility contract, major equipment, grid connection, local approval. Each gives its stage, how it was decided and the quote behind it.
companies
Every company named on the project, with its role.
source_count
How many sources the project file rests on.
last_reported_at
When a source last reported on the project.

One project

GET /api/v1/projects/{key} returns the same fields plus everything Spezia has on the project. A signal Spezia has not matched to the project is null, never a guess.

sources
Every fact's quote and the page it came from.
funding
Who pays whom: equity, debt, contracts, leases and incentives, each with its source.
filings
Permits and public filings found for the project: zoning, site plans, air, water, utility.
facts
Design, power, cooling, schedule and workforce details, each with its source.
cranes
Cranes and tall structures filed with the FAA at the site: work dates, heights and builders. Null when none matched.
epa
EPA air permits (generators, turbines) and construction stormwater permits at the site. Null when none matched.
videos
Build progress read from public drone and news videos of the site, each linked. Null when none counted.
satellite
The latest satellite comparison of the site. Coordinates only for a site placed by hand.
Answer (illustrative)
{
  "data": {
    "key": "example-campus-loudoun-va",
    "name": "Example Campus, Building 1",
    "url": "https://spezia.ai/app/projects/example-campus-loudoun-va",
    "developer": "Example Developer LLC",
    "tenants": [
      "Example Cloud Inc."
    ],
    "utilities": [
      "Example Power Co."
    ],
    "city": "Ashburn",
    "state": "VA",
    "status": "under_construction",
    "status_label": "Under construction",
    "capacity_mw": 300,
    "estimated_value_usd": 2500000000,
    "phase": "Structure",
    "main_bottleneck": "Power",
    "readiness": {
      "utility_contract": {
        "stage": "signed",
        "label": "Agreement signed",
        "basis": "source",
        "date": "2026-06-02",
        "source": {
          "url": "https://example.com/filings/esa",
          "title": "Utility filing",
          "quote": "signed an electric service agreement",
          "published_at": "2026-06-02"
        }
      },
      "major_equipment": {
        "stage": "none",
        "label": "No public sign",
        "basis": "none",
        "date": null,
        "source": null
      },
      "grid_connection": {
        "stage": "queued",
        "label": "In queue or study",
        "basis": "likely",
        "date": null,
        "source": null
      },
      "local_approval": {
        "stage": "approved",
        "label": "Approved",
        "basis": "status",
        "date": null,
        "source": null
      }
    },
    "companies": [
      {
        "name": "Example Developer LLC",
        "key": "example-developer",
        "role": "developer",
        "role_label": "Developer or owner"
      },
      {
        "name": "Example Cloud Inc.",
        "key": "example-cloud",
        "role": "tenant",
        "role_label": "Tenant or end user"
      },
      {
        "name": "Example Power Co.",
        "key": "example-power",
        "role": "utility",
        "role_label": "Utility"
      },
      {
        "name": "Example Builders",
        "key": "example-builders",
        "role": "general_contractor",
        "role_label": "General contractor"
      }
    ],
    "source_count": 7,
    "last_reported_at": "2026-11-09T14:00:00.000Z",
    "sources": [
      {
        "field": "capacity_mw",
        "url": "https://example.com/news/example-campus",
        "title": "Example Campus breaks ground",
        "quote": "a 300-megawatt campus",
        "published_at": "2026-09-14"
      }
    ],
    "funding": [],
    "filings": [],
    "facts": [],
    "cranes": {
      "newest_faa_file": "2026-11-01",
      "summary": {
        "filings": 1,
        "cranes": 1,
        "active_now": 1,
        "first_start": "2026-10-01",
        "latest_start": "2026-10-01",
        "latest_end": "2027-03-31",
        "max_height_ft": 210,
        "builders": [
          "Example Builders"
        ]
      },
      "filings": [
        {
          "asn": "2026-AEA-0000-OE",
          "url": "https://oeaaa.faa.gov/",
          "type": "Crane",
          "height_ft": 210,
          "work_start": "2026-10-01",
          "work_end": "2027-03-31",
          "received": "2026-08-20",
          "status": "Determined",
          "builders": [
            "Example Builders"
          ]
        }
      ]
    },
    "epa": null,
    "videos": null,
    "satellite": null
  },
  "meta": {
    "as_of": "2026-11-09",
    "attribution": "Data from Spezia, researched from public records and reports; each fact links to its source. FAA and EPA records are U.S. government works. Use under the Spezia data license."
  }
}

How readiness is decided

Each readiness sign says how it was decided. source means a quote from a public record or report, linked. status follows from the project's tracked status. likely is Spezia's read of the reports with no quote to show. none means no public sign yet.

Limits

  • Each key may make 6,000 calls a day on Ultra and 30,000 on Enterprise, shared with the same key's calls from your AI agent. The count resets at midnight UTC.
  • Up to 60 requests a minute per key.
  • Every answer carries X-RateLimit-Limit and X-RateLimit-Remaining; a 429 carries Retry-After in seconds.
  • The research is re-run every week, so polling more than a few times a day returns the same data. Use updated_since to fetch only what changed.

Errors

Errors come back as JSON with a code and a plain message:

{
  "error": {
    "code": "bad_request",
    "message": "Unknown parameter \"stat\". Use: state, status, ..."
  }
}
400 bad_request
A parameter is unknown or has a bad value. The message says which.
401 unauthorized
No key, a revoked key, or an account that is not active.
403 forbidden
The key's account is not on a plan that includes the API.
404 not_found
No project with that key.
429 rate_limited
More than 60 requests in a minute. Wait for Retry-After.
429 daily_limit
The key's calls for the day are used up. They reset at midnight UTC.
503 unavailable
The data could not be read just now. Retry after a minute.

Spreadsheets without code

On Ultra, the Projects page in the app downloads whatever you have filtered, for Excel or as CSV. Same data, same columns, no key needed.

What you may do with the data

Use it inside your business, and share findings, charts and short extracts with credit to Spezia. Do not resell or republish the raw dataset. The full terms are in the data license.

What it does not have

  • Not every project has every field. Capacity, value and dates are what the sources state; null means no source said.
  • Site coordinates are shared only for sites Spezia placed by hand. Sites located with open map data keep their coordinates private, as that data's license asks.
  • No grid operator or planned operating year field yet: the sources rarely state them in a form Spezia can check.

Need the whole build-out?

Ultra is $299 a month and includes the API, the tracker, the map and the spreadsheet downloads. Start free and see the build-out first.