Civasure API · v1
Readiness data, built into your stack.
A read-only REST API and MCP server for the anonymous disaster-readiness data in your organization's area. Pull submission counts, per-ZIP coverage, and aggregate readiness — into a dashboard, a report, or an AI agent.
# Every response is scoped to your organization's area. curl https://api.civasure.com/v1/stats \ -H "Authorization: Bearer civ_live_…" → 200 OK { "scope": { "type": "geographic", "zipsInArea": 1461 }, "submissions": { "total": 429, "households": 1072 }, "coverage": { "zipsWithData": 84 }, "lastSubmissionAt": "2026-06-29T17:49:52Z" }
Why integrate
- Your data, where you work. Surface readiness numbers in the tools your team already uses — BI dashboards, GIS, internal reports.
- Agent-ready. The MCP server lets Claude and other AI agents query your area's data directly, in natural language.
- Always scoped, always anonymous. A key only ever sees aggregates for your organization's geography — never another org's data, never an individual.
Authentication
API keys
The API is available on the Regional and Government plans. Create and revoke keys from the dashboard under Settings → API. A key is shown once at creation — store it somewhere safe.
Send it as a bearer token on every request:
Authorization: Bearer civ_live_njuLI63But89cQaG…
A key inherits its organization's geographic scope. There is nothing to configure — the area your dashboard shows is exactly the area the API returns.
Quickstart
Make your first request
Three read endpoints cover the essentials. Each accepts optional startDate and endDate (ISO 8601) query parameters.
curl "https://api.civasure.com/v1/coverage?startDate=2026-06-01T00:00:00Z" \ -H "Authorization: Bearer $CIVASURE_KEY" { "scope": { "type": "geographic", "zipsInArea": 1461 }, "total": { "submissions": 429, "households": 1072 }, "zips": [ { "zip": "32163", "submissions": 34, "households": 85 } ] }
That's it — no SDK required. For the complete schema of every field, see the API Reference.
Reference
Endpoints
All endpoints are read-only and return aggregates only.
GET/v1/statsTotals & coverage for your area GET/v1/coveragePer-ZIP submission counts GET/v1/readinessQuestion-level distributions POST/mcpMCP server (JSON-RPC)For AI agents
Connect via MCP
Civasure runs a remote Model Context Protocol
server at https://api.civasure.com/mcp. Point any MCP-capable
client — Claude, an agent framework, your own tooling — at it with your API key, and your
readiness data becomes a set of tools the agent can call.
Claude Desktop & other config-file clients
Desktop clients configure MCP servers as a local command, so a remote server is
reached through the mcp-remote bridge (requires
Node.js). Add this to your
claude_desktop_config.json, then fully quit and reopen the app:
{
"mcpServers": {
"civasure": {
"command": "npx",
"args": [
"-y", "mcp-remote",
"https://api.civasure.com/mcp",
"--header",
"Authorization: Bearer civ_live_…"
]
}
}
}
Clients with native remote MCP support
If your client connects to remote (Streamable HTTP) servers directly, point it at the URL with a bearer header:
{
"url": "https://api.civasure.com/mcp",
"headers": { "Authorization": "Bearer civ_live_…" }
}
Available tools
| Tool | Returns |
|---|---|
| get_stats | Submission totals, households, ZIPs with data, last submission time |
| get_coverage | Per-ZIP submission & household counts |
| get_readiness | Aggregate readiness question distributions |
Then ask in plain language — "How many households have we reached, and which ZIPs are lagging?" The same scope and privacy rules as the REST API apply to every tool call.
Operations
Rate limits
Requests are limited per key, per minute. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset; over the limit returns 429 with Retry-After.
| Plan | Requests / minute |
|---|---|
| Regional | 120 |
| Government | 600 |
Privacy
Anonymous by design
Civasure survey responses are anonymous, and the API keeps them that way.
The API only returns counts and distributions. It never exposes an individual response, a device identifier, or any personally identifying information — and a key can only read aggregates inside its own organization's area.