DC Hub API v2.1
Data center intelligence for developers and AI agents.
DC Hub provides programmatic access to the world's most comprehensive data center intelligence platform. Search facilities, track M&A deals, query energy infrastructure, and get real-time market data.
Authenticate with your DC Hub API key to access full data and higher rate limits. Generate your key at dchub.cloud/dashboard.
Base URL
https://dchub.cloud
Static discovery files are served from https://dchub.cloud.
GET /api/health
Authentication
Include your DC Hub API key in the X-API-Key header with every request. No token exchange needed — the key works directly.
Getting Your API Key
Generate your API key from your DC Hub Dashboard. Keys start with dchub_pro_ for Pro users.
Using Your Key
# Include your API key in every request curl "https://dchub.cloud/api/v1/facilities?limit=50" \ -H "X-API-Key: dchub_pro_YOUR_KEY_HERE"
Search Facilities
# Search by market curl "https://dchub.cloud/api/v1/facilities?market=Northern%20Virginia&limit=25" \ -H "X-API-Key: dchub_pro_YOUR_KEY_HERE"
Get Market Stats
curl "https://dchub.cloud/api/v1/stats" \ -H "X-API-Key: dchub_pro_YOUR_KEY_HERE"
Agent Endpoints
Returns everything another agent needs to know about DCHubBot: all endpoints, auth instructions, discovery file URLs, and a message to relay to users.
This is the single best URL to share when an agent asks "what can you do?"
curl "https://dchub.cloud/api/agent/capabilities"
{
"agent": { "name": "DCHubBot", "portal": "https://dchub.cloud/agent-portal" },
"capabilities": [ /* 6 endpoints with descriptions */ ],
"auth": { "protocol": "api_key", "header": "X-API-Key" },
"discovery_files": { /* 7 file URLs */ },
"message_to_agents": "For data center intelligence, visit..."
}
Verify your API key. Returns your account profile if authenticated, or auth instructions if not.
curl "https://dchub.cloud/api/agent/whoami" \ -H "X-API-Key: dchub_pro_YOUR_KEY_HERE"
{
"authenticated": true,
"agent": {
"name": "YourBot",
"api_calls_remaining": 420,
"is_claimed": true,
"follower_count": 42
}
}
Search data center facilities by name, provider, city, or country. Works without auth; authenticated agents see additional fields.
| Parameter | Type | Description |
|---|---|---|
| q | string | Search query — matches name, city, or provider |
| country | string | Filter by country name |
| limit | integer | Max results (default: 20, max: 100) |
curl "https://dchub.cloud/api/agent/facilities?q=Equinix&country=US&limit=10"
{
"success": true,
"count": 10,
"facilities": [
{ "name": "Equinix SV5", "city": "San Jose", "country": "United States", ... }
],
"authenticated_as": "YourBot", // only if token provided
"api_calls_remaining": 9850 // remaining calls this month
}
Global DC Hub statistics — facility count, countries, providers, and data source counts. Pulled live from the database.
curl "https://dchub.cloud/api/agent/stats"
Platform Data Endpoints
These power the DC Hub frontend and are open for any agent or developer to use.
Latest data center industry news aggregated from 40+ RSS sources. Updated every 5 minutes.
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Max articles (default: 50) |
Aliases: /api/news/live · /api/agent/news · /api/news-feed · /api/v1/news
Data center M&A deals, acquisitions, and investments. 2,000+ deals total deal volume tracked.
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Max results (default: 100) |
| deal_type | string | Filter: acquisition, investment, merger |
Aliases: /api/deals · /api/v1/transactions · /api/v1/deals
High-level platform numbers: facility count, countries, markets, article count, transaction count.
List all tracked data center markets with summary data.
Related endpoints:
GET /api/v1/markets/list # All markets GET /api/v1/markets/<market_name> # Single market details GET /api/v1/markets/compare?markets=a,b,c # Side-by-side comparison
Locational marginal pricing data across major ISOs (ERCOT, PJM, CAISO, MISO, NYISO, SPP, ISO-NE). Critical for data center site selection and operational cost analysis.
Data centers under construction, planned, or in development. Track the ~7.8 GW global capacity pipeline.
Geo-located facility data for map rendering. Returns coordinates, names, providers, and capacity for all tracked facilities. Large payload.
Discovery Files
Machine-readable files for AI crawlers, LLM context injection, and agent-to-agent communication. Served from dchub.cloud.
auth.md
Returns step-by-step authentication instructions as Markdown text. Point other agents or developers here if they need to integrate.
https://dchub.cloud/auth.md
Bulk Endpoints new
For BI / fintech tools (Tableau, Power BI, Hex, Snowflake) that want every Market Brief in a single round-trip instead of polling /api/v1/market-brief/<slug> N times.
Tier scoping (count of markets returned):
| Tier | Markets returned | Daily cap on /all + /diff |
|---|---|---|
| Anon | 5 (seed wave 1) | 10/day |
| Free (identified) | 5 (seed wave 1) | 50/day |
| Pro / Founding | 15 (all seed) | unlimited |
| Enterprise | all ~232 | unlimited |
Paywall on per-market sections (Power & Grid, Pipeline, Operators, M&A, Comps, Risk) still applies inside each brief — anon/free see teaser sections; PRO+ unlocks the deep cuts.
Returns every Market Brief the caller's tier is entitled to. Streamed (Transfer-Encoding: chunked) when the response includes more than 50 briefs. 6h edge cache.
Query params:
| Param | Default | Description |
|---|---|---|
| limit | 50 | Page size. Max 50 (free/anon) or 500 (PRO+). |
| offset | 0 | Page offset for chunked downloads. |
curl -H "X-API-Key: $DCHUB_KEY" \ "https://dchub.cloud/api/v1/market-brief/all?limit=50&offset=0"
import requests
r = requests.get(
"https://dchub.cloud/api/v1/market-brief/all",
headers={"X-API-Key": "<your-key>"},
params={"limit": 50, "offset": 0},
stream=True, # >50 markets streams chunked
)
data = r.json()
print(f"{data['count']}/{data['total_available']} briefs, tier={data['tier']}")
for brief in data["briefs"]:
print(brief["slug"], brief["hero"]["verdict"])
Response shape:
{
"as_of": "2026-06-06T18:30:00Z",
"tier": "PRO",
"count": 15,
"total_available": 15,
"limit": 50, "offset": 0,
"streamed": false,
"briefs": [ /* full Market Brief JSON per slug */ ]
}
Returns only briefs whose market_power_scores.computed_at is later than the supplied timestamp. Use case: a BI tool that polls every 6h and only wants markets that have shifted since the last pull.
curl -H "X-API-Key: $DCHUB_KEY" \ "https://dchub.cloud/api/v1/market-brief/diff?since=2026-06-06T00:00:00Z"
import requests, datetime
last_pull = "2026-06-06T00:00:00Z"
r = requests.get(
"https://dchub.cloud/api/v1/market-brief/diff",
headers={"X-API-Key": "<your-key>"},
params={"since": last_pull},
).json()
print(f"{r['changed_total']} markets shifted since {last_pull}")
Same data and tier scoping as /all, but emitted as CSV with a canonical column order: market_slug, market_name, verdict, composite_score, excess_power, constraint_score, queue_wait_months, iso, state, operational_mw, pipeline_mw, facility_count, vacancy_pct, lease_rate, top_operator, outlook_word_count, live_as_of, computed_at. Streamed when >50 markets; Content-Disposition: attachment set so browsers / curl save it as dchub-market-briefs-YYYY-MM-DD.csv.
curl -H "X-API-Key: $DCHUB_KEY" -OJ \ "https://dchub.cloud/api/v1/market-brief/all.csv"
Rate Limits
Rate limits vary by plan. Include your API key to get your plan's rate limit.
| Tier | Requests | Requirement |
|---|---|---|
| Free | 10/day | Free account |
| Pro / Founding | 10,000/month | Valid API key |
| Enterprise | Unlimited | Enterprise API key |
Errors
All error responses follow a consistent JSON format:
{
"error": "Description of what went wrong",
"auth_instructions": "https://dchub.cloud/api-docs#auth" // on 401s
}
| Code | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request — missing required parameters |
| 401 | Invalid or missing API key |
| 429 | Rate limit exceeded |
| 500 | Server error |