Data dictionary
Field-by-field reference for every dataset described on the developer overview page. Every field name, type, and example below is read directly from the live route handler or data-access module, not written from memory. Where a marketed dataset has no live endpoint yet, this page says so plainly and documents the internal table instead of describing an endpoint that does not exist.
Conventions
Every live endpoint returns a JSON envelope with an ok boolean. Successful responses (ok: true) carry the payload under data, plus a few endpoint-specific fields at the top level (total, limit, and so on). Error responses (ok: false) carry an error code and a human-readable message. Full status codes are on the main API reference page.
Association, section, and organization IDs are plain UUIDs, not prefixed strings. Most fields are read straight off the underlying database column, so most fields are nullable in practice: absence of a value is normal, not an error, especially for data that is only ingested for some states today (Florida has the deepest coverage).
Field names are snake_case everywhere except the compliance-scan response, which serializes an internal camelCase object directly. That inconsistency is real and called out again in the statutes and compliance section below.
Community associations
Live endpointTwo endpoints cover this dataset: a search/list endpoint with a compact row shape, and a single-record endpoint with a few extra fields (geocode, contact info, registration status). Both require the associations scope.
GET/api/v1/associations/lookup
Response: { ok, data: [...], total, limit, offset }
| Field | Type | Nullable | Example | Description |
|---|---|---|---|---|
| id | string (uuid) | No | 3f2b1a4c-9e21-4a6b-8f11-2c9d7b6a1234 | Association record ID. Use it to call the single-association and sub-resource endpoints. |
| name | string | No | Pelican Bay Community Association, Inc. | Legal or registered name. |
| state | string | Yes | FL | Two-letter state code. |
| subtype | string | Yes | condo | One of hoa, condo, coop. Null when the association has not yet been classified. |
| unit_count | integer | Yes | 742 | Number of units or lots, when known. |
| address | string | Yes | 100 Pelican Bay Blvd | Street address line 1. |
| city | string | Yes | Naples | City. |
| zip | string | Yes | 34108 | ZIP code. |
| external_document_number | string | Yes | N04000001234 | State registry filing number (for example a Florida Sunbiz N-number). The join key used across Common Elements registry data. |
| created_at | string (ISO 8601) | No | 2026-04-20T14:03:11Z | When the record was created in Common Elements. |
| is_claimed | boolean | No | true | Whether a verified user has claimed this association on Common Elements. Derived from an internal claim reference, not a raw column. |
GET/api/v1/associations/{id}
Response: { ok, data: {...} }
| Field | Type | Nullable | Example | Description |
|---|---|---|---|---|
| id | string (uuid) | No | 3f2b1a4c-9e21-4a6b-8f11-2c9d7b6a1234 | Association record ID. |
| name | string | No | Pelican Bay Community Association, Inc. | Legal or registered name. |
| state | string | Yes | FL | Two-letter state code. |
| county | string | Yes | Collier | County name. |
| subtype | string | Yes | condo | One of hoa, condo, coop. |
| unit_count | integer | Yes | 742 | Number of units or lots, when known. |
| address | string | Yes | 100 Pelican Bay Blvd | Street address line 1. |
| city | string | Yes | Naples | City. |
| zip | string | Yes | 34108 | ZIP code. |
| lat | number | Yes | 26.2379 | Latitude, when the association has been geocoded. |
| lng | number | Yes | -81.8069 | Longitude, when the association has been geocoded. |
| website | string | Yes | https://pelicanbayfl.com | Association website, when on file. |
| phone | string | Yes | (239) 555-0142 | Association phone number, when on file. |
| is_claimed | boolean | No | true | Whether a verified user has claimed this association. |
| registration_status | string | Yes | active | State registry status. Populated for Florida associations today (read from Sunbiz); null elsewhere or when not yet ingested. |
| external_document_number | string | Yes | N04000001234 | State registry filing number. |
| management_firm | string | Yes | Sunstate Association Management Group | Best-known management company name, read from ingested registry metadata. For the full manager relationship set, call the management endpoint below. |
| created_at | string (ISO 8601) | No | 2026-04-20T14:03:11Z | When the record was created in Common Elements. |
| updated_at | string (ISO 8601) | No | 2026-07-01T09:12:44Z | When the record was last updated. |
Officer rosters
Live endpointGET/api/v1/associations/{id}/officers
Board officers and directors of record for one association, from state officer filings. Requires the associations scope. Response: { ok, data: [...], association_id }. Rows are ordered by officer title; there is no pagination, since a roster is always small.
| Field | Type | Nullable | Example | Description |
|---|---|---|---|---|
| officer_title | string | No | President | Officer role as filed. |
| first_name | string | No | Maria | Officer's first name. |
| middle_initial | string | Yes | A | Middle initial, when filed. |
| last_name | string | No | Gonzalez | Officer's last name. |
| suffix | string | Yes | Jr. | Name suffix, when filed. |
| city | string | Yes | Naples | Filed city. Street address is never included; individual officer contact details are internal-only and never appear in this or any Common Elements data product. |
| county | string | Yes | Collier | Filed county. |
| state | string | No | FL | Two-letter state code (defaults to FL for the current filing source). |
| directory_source | string | No | sunbiz | Source of this roster row: sunbiz or manual_directory. |
| source_snapshot_label | string | Yes | 11.14.25 | Import batch label, for tracking which filing snapshot this row came from. |
| is_resolved | boolean | No | false | Whether a real user has claimed and verified this officer listing. |
Management-company graph
Live endpointGET/api/v1/associations/{id}/management
Who manages this association, from two different signal sets. Requires the associations scope. Response: { ok, data: { managers: [...], confirmed_relationships: [...] }, association_id }.
data.managers[] — registry-derived manager signals
Priority-ordered union of registry signals (Florida DBPR condo registry and Sunbiz registered-agent classification). This is populated far more often than confirmed_relationships, since it needs no action from either party.
| Field | Type | Nullable | Example | Description |
|---|---|---|---|---|
| manager_name | string | Yes | Sunstate Association Management Group | Name of the management company or registered agent identified as managing this association. |
| source | string | No | fl_dbpr_registry | Signal source. Either fl_dbpr_registry (DBPR condo registry, association-reported) or sunbiz_ra (a Sunbiz registered agent classified as a management firm). |
| priority | integer | No | 1 | Rank among multiple signals for the same association. Lower is stronger; when several rows exist, the lowest-priority one is the best current answer. |
| provenance | string | No | FL DBPR condo registry (association-reported) | Human-readable description of where this manager fact came from. |
data.confirmed_relationships[] — platform-confirmed relationships
Management relationships both organizations have actively entered on Common Elements. Usually empty; most associations and management companies have not yet confirmed a relationship on the platform even when a registry signal exists above.
| Field | Type | Nullable | Example | Description |
|---|---|---|---|---|
| to_org_id | string (uuid) | No | 9c1e2f3a-6b2d-4e91-9a0c-1f5b7d3e8a02 | Organization ID of the management company. |
| relationship_type | string | No | managed_by | Always managed_by for this endpoint: a confirmed relationship between the association and its management firm, entered by both sides on Common Elements. |
| status | string | No | active | Relationship lifecycle status, for example active or ended. |
| start_date | string (date) | Yes | 2023-01-01 | Contract or relationship start date, when recorded. |
| end_date | string (date) | Yes | null | Contract or relationship end date, when recorded. |
| contract_value | number | Yes | 48000.00 | Confirmed annual contract value in dollars, when both parties have entered one. Absent for most relationships. |
Statutes and compliance
Live endpointFour endpoints make up this dataset: browse and full-text search over the statute reference library, a single-section detail lookup, and the document compliance scan. The statute endpoints accept either the statutes or associations scope; the scan endpoint requires compliance.
GET /api/v1/associations/{id}/buildings (the valuations scope), documented in the assessed valuations section further down this page.GET/api/v1/statutes/by-state
Browse active statute sections for a state, optionally scoped to a chapter or topic. Response: { ok, data: [...], state, total, limit, offset }.
| Field | Type | Nullable | Example | Description |
|---|---|---|---|---|
| id | string (uuid) | No | 7a1c2e4f-... | Statute section ID. |
| chapter_number | string | Yes | 720 | Statute chapter number, for example Florida Chapter 720 (homeowners associations) or 718 (condominiums). |
| chapter_title | string | Yes | Homeowners' Associations | Chapter short title. |
| section_number | string | No | 720.303 | Section number within the chapter. |
| subsection | string | Yes | (6) | Subsection reference, when this row is a subsection. |
| slug | string | No | 720-303-powers-and-duties | URL-safe identifier for this section. |
| title | string | No | Powers and duties of association; meetings of board... | Section title. |
| summary | string | Yes | Requires annual budget adoption and reserve funding disclosure... | Plain-language summary. |
| topics | string[] | No | ["reserves","meetings"] | Tagged topics for filtering. |
| citation | string | Yes | Fla. Stat. § 720.303 | Formatted legal citation, built from the chapter citation format. Null when the chapter has no citation format on file. |
| effective_date | string (date) | Yes | 2024-07-01 | Date this version of the section took effect. |
| source_url | string | Yes | https://www.leg.state.fl.us/statutes/... | Link to the official statute text. |
GET/api/v1/statutes/search
Full-text search over statute sections, ranked by relevance. Response: { ok, query, state, data: [...], count }.
| Field | Type | Nullable | Example | Description |
|---|---|---|---|---|
| section_id | string (uuid) | No | 7a1c2e4f-... | Statute section ID. |
| chapter_id | string (uuid) | No | 1b2c3d4e-... | Statute chapter ID. |
| chapter_slug | string | No | fl-720 | Chapter slug. |
| chapter_short_title | string | No | Homeowners' Associations | Chapter short title. |
| chapter_jurisdiction | string | No | FL | State the chapter belongs to. |
| chapter_number | string | No | 720 | Statute chapter number. |
| section_number | string | No | 720.303 | Section number. |
| subsection | string | Yes | (6) | Subsection reference, when applicable. |
| section_slug | string | No | 720-303-powers-and-duties | URL-safe identifier for this section. |
| title | string | No | Powers and duties of association... | Section title. |
| summary | string | Yes | Requires annual budget adoption... | Plain-language summary. |
| snippet | string | Yes | … reserve funds shall be used only for … | Full-text-search snippet from the matched section, with the match in context. |
| rank | number | No | 0.607 | Postgres full-text-search rank for this hit. Higher means a stronger match; results are ordered by it. |
GET/api/v1/statutes/sections/{id}
Full detail for a single statute section, including body text. Response: { ok, data: {...} }.
| Field | Type | Nullable | Example | Description |
|---|---|---|---|---|
| section_id | string (uuid) | No | 7a1c2e4f-... | Statute section ID. |
| section_number | string | No | 720.303 | Section number. |
| subsection | string | Yes | (6) | Subsection reference, when applicable. |
| title | string | No | Powers and duties of association... | Section title. |
| summary | string | Yes | Requires annual budget adoption... | Plain-language summary. |
| body_text | string | Yes | (6) RESERVE ACCOUNTS.—Reserve accounts... | Full statute section text. Left out of the list and search endpoints to keep those payloads light; present only here. |
| topics | string[] | No | ["reserves"] | Tagged topics. |
| effective_date | string (date) | Yes | 2024-07-01 | Date this version took effect. |
| source_url | string | Yes | https://www.leg.state.fl.us/statutes/... | Link to the official statute text. |
| chapter | object | No | { "id": "...", "chapter_number": "720", ... } | The parent chapter: id, slug, jurisdiction, chapter_number, short_title, citation_format. |
| citation | string | No | Fla. Stat. § 720.303(6) | Formatted legal citation, including the subsection when present. |
POST/api/v1/compliance/scan
Runs a submitted governing-document text against the statute rule set for one state and returns a coverage score plus findings. This is a keyword and pattern coverage check, not legal advice. Request body fields (text, state, doc_type) are on the main API reference page. Response: { ok, score: {...}, findings: [...], total_findings, total_applicable_rules, state, engine }.
score
| Field | Type | Nullable | Example | Description |
|---|---|---|---|---|
| score.score | integer (0-100) | No | 74 | Overall document coverage score. |
| score.grade | string (A-F) | No | B | Letter grade derived from the score. |
| score.label | string | No | Solid coverage, a few gaps | Plain-language summary of the grade. |
findings[]
These fields are camelCase, not snake_case like the rest of the API — the route serializes an internal scan object directly rather than mapping it to the snake_case convention used elsewhere. Worth knowing if you are generating a typed client.
| Field | Type | Nullable | Example | Description |
|---|---|---|---|---|
| ruleId | string | No | fl_720_reserve_disclosure | Stable identifier for the rule that matched. |
| title | string | No | Reserve funding disclosure | Short name of the rule. |
| category | string | No | financial | Rule category, for example financial, governance, insurance, or records. |
| severity | string (flag | info) | No | flag | How the rule is weighted in scoring. |
| statute | string | No | Fla. Stat. § 720.303(6) | Statute citation the rule is based on. |
| guidance | string | No | Governing documents should state how reserve funds may be used. | Plain-language explanation of the rule and why it matters. |
| excerpt | string | Yes | … the board shall not waive reserve funding without a membership vote … | Text window from the submitted document around the match. Not always present. |
| corpusVerified | boolean | No | true | Whether this rule's statute text has been verified against the source corpus. |
| chapterSlug | string | Yes | fl-720 | Slug of the related statute chapter, when linked. |
| sectionSlug | string | Yes | 720-303-powers-and-duties | Slug of the related statute section, when linked. |
| matchQuality | string (restrictive | mention | present) | No | restrictive | restrictive: an actual restrictive clause was found and is worth review. mention: the topic is named without operative language. present: a required provision is present, which is coverage, not a problem. |
Insurance licensees
No public endpoint yetThis dataset is marketed on the developer overview page but has no live /v1endpoint today. The data exists internally — state department-of-insurance producer rolls (Florida DFS, Massachusetts DOI) power the insurance agent directory in the product — but it is not yet reachable via a bearer-token API call. The tables below are the real internal shape, documented for reference; treat this section as a preview of a future endpoint, not a working one.
insurance_licensees — the producer or agency
| Field | Type | Nullable | Example | Description |
|---|---|---|---|---|
| id | string (uuid) | No | a4e2c1b0-... | Internal row ID. |
| license_number | string | No | W123456 | State-issued producer license number. |
| license_state | string | No | FL | State that issued the license. Forms a natural key with license_number. |
| full_name | string | No | Coastal Risk Insurance Agency LLC | Name as filed with the licensing authority. |
| npn | string | Yes | 19283746 | National Producer Number, when published. |
| license_type | string | Yes | 20-20 | Raw license type/class code. |
| license_type_desc | string | Yes | GENERAL LINES AGENT | Human-readable license class. |
| license_status | string | Yes | VALID | Filed status, for example VALID, Active, or VALID - PROBATION. |
| license_issue_date | string (date) | Yes | 2011-03-04 | Date the license was first issued. |
| residency_type | string | Yes | Resident | Resident or Non-Resident, relative to the licensing state. |
| city | string | Yes | Tampa | Mailing-address city. |
| state | string | Yes | FL | Mailing-address state. May differ from license_state for non-residents. |
| zip | string | Yes | 33602 | Mailing-address ZIP code. |
| county | string | Yes | Hillsborough | Mailing-address county. |
| entity_kind | string | Yes | business | individual or business. |
insurance_appointments — carrier appointments held by a producer
Joined to a licensee by license number and license state. One producer can hold many appointments.
| Field | Type | Nullable | Example | Description |
|---|---|---|---|---|
| id | string (uuid) | No | b7f3a9d2-... | Internal row ID. |
| appointing_entity_name | string | Yes | Citizens Property Insurance Corporation | The carrier, MGA, or warranty administrator the producer is appointed by. |
| appointing_entity_number | string | Yes | 10039 | Appointing entity's filing number. |
| appointment_type | string | Yes | 20 | Raw line-of-authority code. |
| appointment_type_desc | string | Yes | GENERAL LINES | Human-readable line of authority. |
| appointment_status | string | Yes | Active | Appointment status. |
| appointment_issue_date | string (date) | Yes | 2018-06-01 | When the appointment began. |
| appointment_expiration | string (date) | Yes | null | When the appointment expires, when set. |
| entity_kind | string | Yes | business | individual or business. |
Assessed valuations
Live endpointThe marketed description of this dataset is parcel-level assessed and market dollar values from county property-appraiser data. The live endpoint below (scope valuations) is real and returns building footprint, structural, and milestone-inspection signals for an association, but it does not return dollar assessed values. The dollar valuation data described in the marketing copy exists internally as a separate matview and is not yet exposed through any /v1 endpoint. Both are documented below so the gap is explicit rather than papered over.
GET/api/v1/associations/{id}/buildingsLive endpoint
Building footprint, structural, and milestone-inspection facts for one association. Response: { ok, data: {...} }. Footprint fields come from mapped Overture Maps building outlines (reference-only, not a survey); stories, year_built, and milestone_inspection_relevant come from the Florida DOR parcel roll and are recorded facts, not estimates.
| Field | Type | Nullable | Example | Description |
|---|---|---|---|---|
| organization_id | string (uuid) | No | 3f2b1a4c-... | Association record ID. |
| name | string | No | Pelican Bay Community Association, Inc. | Association name. |
| state | string | Yes | FL | Two-letter state code. |
| unit_count | integer | Yes | 742 | Number of units or lots, when known. |
| building_count | integer | No | 4 | Number of mapped buildings. 0 when no footprints are mapped for this association. |
| total_footprint_sqft | number | Yes | 182400 | Sum of mapped building footprint area, in square feet. |
| total_footprint_sqm | number | Yes | 16948 | Sum of mapped building footprint area, in square meters. |
| primary_building_sqft | number | Yes | 64800 | Footprint of the single largest mapped building. |
| avg_footprint_sqm | number | Yes | 4237 | Average footprint area per mapped building, in square meters. |
| roof_area_sqft_estimate | number | Yes | 182400 | Estimated roof area, roughly equal to footprint for flat or low-slope roofs. A sizing starting point, not a roof takeoff. |
| facade_area_sqft_estimate | number | Yes | 96500 | Estimated facade area (perimeter times height). A sizing starting point, not a facade survey. |
| floors_estimate | integer | Yes | 6 | Rough floor count derived from mapped building height. Not a milestone-inspection determination. |
| max_height_m | number | Yes | 19.8 | Measured maximum building height in meters, only when the underlying footprint height is considered reliable. Null when there is no measured height, or when the measurement is low-confidence. |
| height_confidence | string | Yes | medium | Confidence label for the height-derived estimates. Footprint heights cap around 34 meters and can mis-render towers, so this is never a hard stories count. |
| stories | integer | Yes | 8 | Measured story count from the Florida DOR parcel roll. Recorded data, not an estimate. Florida only today. |
| year_built | integer | Yes | 1998 | Earliest recorded year built across the association’s parcels (Florida DOR). |
| milestone_inspection_relevant | boolean | Yes | true | Whether the project includes a building 3 or more stories, the real trigger for Florida Ch. 553 milestone inspections. Reference only; confirm with a licensed engineer. |
| structural_source | string | Yes | FL DOR parcel roll (fl_association_characteristics) | Source of the stories/year_built/milestone fields, when present. |
| source | string | Yes | overture | Source of the footprint fields. |
| attribution | string | No | Overture Maps building footprints | Required attribution for the footprint data. |
| note | string | No | Building footprint data derived from mapped outlines... | Standing disclaimer: reference-only, not a survey or underwriting-grade valuation. |
association_property_metrics — parcel assessed/market value aggregate
No public endpoint yetPre-aggregated per-association rollup of the county property-appraiser parcel roll (just value, assessed value, sale prices, living area). This is the internal data model behind the marketed “assessed valuations” dataset. It is not yet reachable via any /v1 endpoint; documented here as the real shape for when that endpoint ships.
| Field | Type | Nullable | Example | Description |
|---|---|---|---|---|
| parcel_count | integer | Yes | 214 | Number of county parcels mapped to this association. |
| unit_parcel_count | integer | Yes | 210 | Number of parcels classified as individual units, as opposed to common-area parcels. |
| total_just_value | number | Yes | 148500000 | Sum of the county's 'just value' (market value) across mapped parcels, in dollars. |
| total_assessed_value | number | Yes | 112300000 | Sum of county assessed value (after caps and exemptions) across mapped parcels, in dollars. |
| median_parcel_just_value | number | Yes | 685000 | Median just value across mapped parcels, in dollars. |
| just_value_per_unit | number | Yes | 707142 | Total just value divided by unit parcel count, in dollars. |
| earliest_year_built | integer | Yes | 1998 | Earliest recorded year built across mapped parcels. |
| latest_year_built | integer | Yes | 2004 | Latest recorded year built across mapped parcels. |
| total_living_area_sqft | number | Yes | 860400 | Sum of recorded living area across mapped parcels, in square feet. |
| sales_since_2024 | integer | Yes | 18 | Count of recorded parcel sales since 2024. |
| median_recent_sale_price | number | Yes | 712500 | Median price of those recent sales, in dollars. |
Looking for authentication, rate limits, or error codes?
Those live on the main API reference page.
Back to API reference