API reference

Base URL: https://commonelements.com/api/v1

Authentication

All API requests must include an Authorization header with a bearer token. Generate an API key from your account settings.

Authorization: Bearer ce_live_your_key_here

Keys are prefixed with ce_live_ for production and ce_test_ for sandbox environments. Never expose keys in client-side code or commit them to version control.

Rate limits

Limits are enforced per API key on a rolling monthly window. When you exceed your limit, requests return 429 Too Many Requests until the window resets.

TierRequests/monthMax requests/second
Free1002
Builder2,50010
Growth15,00030
EnterpriseUnlimitedCustom

Response headers include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset (Unix timestamp) on every response.

Endpoints

POST/api/v1/compliance/scan

Submit a community association document for automated compliance analysis. Returns a structured assessment against Florida and multi-state statutory requirements, plus best-practice governance rules.

Request body

ParameterTypeDescription
text*stringThe full text of the governing document to analyze.
state*stringTwo-letter state code (e.g. "FL", "GA").
doc_typestringOptional. One of: "cc_rs", "bylaws", "rules_regs", "budget".

Example request

curl -X POST https://commonelements.com/api/v1/compliance/scan \
  -H "Authorization: Bearer ce_live_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Article I. Name. The name of this Association...",
    "state": "FL",
    "doc_type": "cc_rs"
  }'

Example response

{
  "scan_id": "scan_01JZB...",
  "health_score": 74,
  "rules_checked": 13,
  "rules_passed": 9,
  "rules_failed": 4,
  "findings": [
    {
      "rule_id": "FL_720_reserve_study",
      "status": "fail",
      "severity": "high",
      "summary": "No reserve study provision found in CC&Rs.",
      "citation": "F.S. 720.303(6)"
    }
  ],
  "created_at": "2026-06-14T12:00:00Z"
}

GET/api/v1/associations/lookup

Search for community associations by address, name, or registration number. Returns a list of matching records with basic contact and governance information.

Query parameters

ParameterTypeDescription
qstringFree-text name or address search.
statestringTwo-letter state filter, e.g. "FL".
registration_numberstringState registration or DBPR number.
limitnumberMax results to return (default 20, max 100).
offsetnumberPagination offset (default 0).

Example request

curl "https://commonelements.com/api/v1/associations/lookup?q=Pelican+Bay&state=FL" \
  -H "Authorization: Bearer ce_live_your_key_here"

Example response

{
  "total": 3,
  "results": [
    {
      "id": "org_01JZA...",
      "name": "Pelican Bay Community Association",
      "org_type": "association",
      "state": "FL",
      "county": "Collier",
      "registration_number": "HOA-FL-20041102",
      "verification_status": "verified",
      "unit_count": 742
    }
  ]
}

GET/api/v1/associations/{id}/risk

Retrieve flood zone, reserve-study health, and geographic risk signals for a specific association. Useful for underwriting, due diligence, and loan origination workflows.

Path parameters

ParameterTypeDescription
id*stringAssociation ID from the lookup endpoint.

Example request

curl "https://commonelements.com/api/v1/associations/org_01JZA.../risk" \
  -H "Authorization: Bearer ce_live_your_key_here"

Example response

{
  "association_id": "org_01JZA...",
  "flood_zone": "AE",
  "fema_firm_panel": "12021C0454H",
  "reserve_health": {
    "funded_percent": 62,
    "study_year": 2023,
    "next_study_due": 2028
  },
  "risk_signals": [
    { "type": "coastal_proximity", "value": "0.8mi", "severity": "medium" }
  ],
  "data_as_of": "2026-01-15"
}

Error codes

All errors follow a consistent JSON envelope with a machine-readable code and a human-readable message.

{
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Monthly request limit reached. Resets 2026-07-01T00:00:00Z.",
    "status": 429
  }
}
HTTP statusCodeDescription
400INVALID_REQUESTMissing or malformed request body or parameters.
401UNAUTHORIZEDMissing or invalid Authorization header.
403FORBIDDENValid key but insufficient tier for this endpoint.
404NOT_FOUNDThe requested resource does not exist.
422UNPROCESSABLERequest is valid but the document could not be processed.
429RATE_LIMIT_EXCEEDEDMonthly or per-second rate limit reached.
500INTERNAL_ERRORUnexpected server error. Retry with exponential backoff.
503SERVICE_UNAVAILABLETemporary outage. Check status.commonelements.com.

MCP integration

Common Elements exposes an MCP (Model Context Protocol) server that lets AI agents — including Claude — call the API directly as tools without writing HTTP client code.

{
  "mcpServers": {
    "common-elements": {
      "command": "npx",
      "args": ["-y", "@common-elements/mcp"],
      "env": {
        "CE_API_KEY": "ce_live_your_key_here"
      }
    }
  }
}

Once connected, your agent can call tools like compliance_scan and association_lookup conversationally, with structured responses automatically parsed. MCP server documentation and changelog live at commonelements.com/developers/mcp.

Ready to integrate?

Generate a free API key from your account settings and start building.

Get your API key