Field dictionary
Every field the API can return, which representation carries it, and what it means.
This page is generated from the same registry the API serialises responses through, so a field that is not listed here cannot be returned, and a field that is returned cannot be missing from here.
Conventions
- Enums ship twice. A frozen machine token (
status) and a human label (statusLabel). Branch on the token; display the label. Rewording a label is not a breaking change; changing a token is. - The vocabulary is the CSV export's. A column in your CSV and a field in the API are the same concept under the same name, so reconciling the two is a join, not a mapping exercise.
- Ids are integers. Not numeric strings.
- Date-times are ISO-8601 with an offset.
meetingDateis a plain calendar date, because a meeting happened on a day. - `alertMatch` and `aiMatch` are absent, not null, when they do not apply. Every other declared field is present at its representation, so you can index without checking.
Contacts and personal data
| Party | Free trial | Paid plan |
|---|---|---|
| External parties — developers, applicants, consultants | Name, title, role, company. Contact channels withheld, with a stated reason. | Name, title, role, company, plus email, phone and LinkedIn where we have them, each with its own confidence and source. |
| Government staff — planners, clerks, commissioners | Name, title, organisation. Never a contact channel. | Name, title, organisation. Never a contact channel. |
| Anyone on the suppression list | Removed. | Removed. |
Government staff contact details are never returned on any tier. There is no plan that unlocks them. If your details appear in our data and you want them removed, ask us.
When a field can be empty
Any extracted attribute can be empty on a given record: minutes are not uniform, and where our current extraction standard produced no value, the field is empty rather than filled from a superseded reading. The full explanation, and what it means for filtering, is here.
`compact`
compact carries 21 fields in total.
| Field | Type | Unit | Description | Availability |
|---|---|---|---|---|
id | integer | — | Boardwalk's stable identifier for this project. | All plans |
recordType | string | — | What kind of record this is. Always "project" today; reserved for future record types. | All plans |
projectName | string | — | The project's display name. | All plans |
boardwalkLink | string | — | Deep link to this project in the Boardwalk map. | All plans |
mergedFrom | array | — | The project ids folded into this record as duplicates of the same development, including its own. You are billed once for the record, not once per id. | All plans |
lastUpdated | string (nullable) | — | When this project record last changed, RFC 3339 UTC. | All plans |
meetingDate | string (nullable) | — | The date of the most recent public meeting this project appeared at. For a merged development this is reconciled across the whole family — the newest hearing of any merged record, never later than today or than your meetingDateTo bound — so it matches the product map and your date filters. | All plans |
delivery | object (nullable) | — | What Boardwalk has already delivered to your credit pool for this record, and whether this delivery was billed. GET /projects/sync returns these same four keys plus a change payload (what moved, and which new filing caused it) — see the SyncDeliveryState schema. | All plans |
address | string (nullable) | — | The project's street address as stated in the public filing. | All plans |
city | string (nullable) | — | City the project is in. | All plans |
county | string (nullable) | — | County the project is in. | All plans |
state | string (nullable) | — | Two-letter state code. | All plans |
latitude | number (nullable) | — | Latitude of the project's mapped location. | All plans |
longitude | number (nullable) | — | Longitude of the project's mapped location. | All plans |
inOpportunityZone | boolean (nullable) | — | Whether the site is inside a federal Opportunity Zone (2018 designation). Null means membership has not been computed, never false. | All plans |
inFemaFloodZone | boolean (nullable) | — | Whether the site is inside a FEMA Special Flood Hazard Area — the 1%-annual-chance regulatory flood zone. Null means membership has not been computed, never false. | All plans |
propertyType | string (nullable) | — | Top-level land-use classification, e.g. residential. | All plans |
propertyTypeLabel | string (nullable) | — | Human-readable form of propertyType. | All plans |
landUses | array | — | Every land use on this project, to the deepest level we know for each — a mixed-use development lists all of them. assetClass is null on an entry where the record only told us the type and subtype; we never copy a parent value down. One use is listed once: where the source describes the same use twice and one description stops short of the other, only the fuller one is listed. matchedOn names which taxonomy levels of that use satisfied your filter — ["subtype"], ["subtype","assetClass"] — so you can see why the project is in your results; it is an empty list on uses that did not match and on every use when you filtered on no taxonomy at all. Procedural items such as rezones are not land uses and appear as requestType instead. | All plans |
status | string (nullable) | — | Where this project stands, as a stable machine token. On a merged development whose meetingDate was reconciled to a newer family hearing, this (with statusLabel and decisionBody) describes that same newest hearing, matching the product map. | All plans |
statusLabel | string (nullable) | — | Human-readable form of status; identical to the CSV's Current Status cell. | All plans |
`standard` — adds
standard carries 71 fields in total. 50 of them are added at this level; the rest are inherited from the smaller representation.
| Field | Type | Unit | Description | Availability |
|---|---|---|---|---|
projectHeadline | string (nullable) | — | A one-line description of the latest development on this project. | All plans |
postalCode | string (nullable) | — | Postal code of the project's primary address. | All plans |
locationPrecision | string (nullable) | — | How precisely this project is placed: address, parcel, location_description, city or county. | All plans |
locationPrecisionLabel | string (nullable) | — | Human-readable form of locationPrecision. | All plans |
isApproximate | boolean | — | True when the coordinates are inferred rather than taken from a street address. | All plans |
parcelApn | array | — | Assessor parcel numbers named in the filing. | All plans |
propertySubtype | string (nullable) | — | Second-level land-use classification, e.g. multifamily. | All plans |
propertySubtypeLabel | string (nullable) | — | Human-readable form of propertySubtype. | All plans |
assetClass | string (nullable) | — | Third-level land-use classification for the project's headline use, e.g. apartments — the first one we know where that use stops short of this level. Blank means the project has no asset class recorded at all; see landUses for every use it does have. Never a duplicated parent value. | All plans |
assetClassLabel | string (nullable) | — | Human-readable form of assetClass. | All plans |
leadType | string (nullable) | — | Boardwalk's read of the record as a lead: private (private development), public (roads, schools, utilities, public buildings), private_minor (a small private job: a single home, a tenant finish, a lot split) or public_minor. Search returns private by default; widen it with the leadTypes filter. Null while the record is awaiting review. | All plans |
leadTypeLabel | string (nullable) | — | Human-readable form of leadType. | All plans |
stage | string (nullable) | — | Where the project is in its life: concept_or_planning, entitlement, design, bidding, awarded, under_construction or complete. Independent of status, which is the latest hearing outcome. Null while the record is awaiting review, or when no stage applies to it. | All plans |
stageLabel | string (nullable) | — | Human-readable form of stage. | All plans |
statusSummary | string (nullable) | — | A sentence summarising where the project stands right now. | All plans |
requestType | string (nullable) | — | What the applicant asked the jurisdiction for, as a stable machine token. | All plans |
requestTypeLabel | string (nullable) | — | Human-readable form of requestType. | All plans |
decisionBody | string (nullable) | — | The body that heard or decided the request, e.g. Planning Commission. | All plans |
caseNumbers | array | — | Jurisdiction case numbers for this project. | All plans |
acreage | number (nullable) | acres | Total site area in acres. | All plans |
squareFootage | number (nullable) | sqft | Total gross building floor area explicitly stated across building or use rows. | All plans |
unitMix | array | count | Dwelling or space counts by type. Entry N's count always describes entry N's type. | All plans |
totalUnitCount | integer (nullable) | count | Total dwelling units across all unit types. | All plans |
bedroomCount | integer (nullable) | count | Total bedrooms across the project. | All plans |
buildingStories | integer (nullable) | count | Number of storeys. | All plans |
floorCount | integer (nullable) | count | Highest stated above-grade story count among explicit building rows. | All plans |
buildingHeightFeet | number (nullable) | feet | Building height in feet. Null where the filing stated a height whose unit we cannot resolve — we do not guess. | All plans |
parkingSpaces | integer (nullable) | count | Parking spaces proposed. | All plans |
existingZoning | string (nullable) | — | The site's zoning code before the request. | All plans |
proposedZoning | string (nullable) | — | The zoning code being requested. | All plans |
isRezone | boolean (nullable) | — | True when the request changes the site's zoning. Null means unknown, never false. | All plans |
constructionType | string (nullable) | — | The kind of construction work proposed, as a stable machine token. | All plans |
constructionTypeLabel | string (nullable) | — | Human-readable form of constructionType. | All plans |
projectSize | string (nullable) | — | How large the construction is, in the product's own vocabulary: large, medium or small. Null when the size could not be judged. | All plans |
projectSizeLabel | string (nullable) | — | Human-readable form of projectSize. | All plans |
developerCompany | string (nullable) | — | The external company developing or applying for this project. Government entities never appear here, even when the filing names one as the applicant. | All plans |
developerCompanyRole | string (nullable) | — | How the developer company is named in the filing: developer, builder or applicant. | All plans |
developerCompanyRoleLabel | string (nullable) | — | Human-readable form of developerCompanyRole. | All plans |
contacts | array | — | External parties on this project — developer, applicant, architect, engineer, contractor, owner. Contact channels are included on paid plans; on a free trial they are null and contactsWithheldReason says why. | All plans |
contactEnrichment | object | — | What happened when we tried to enrich this record's contacts. status is not_requested unless the request set include=contacts. Enrichment never changes what a record costs: every record is 1 credit whether enrichment found somebody, found nobody, or was never attempted — so a blank contact block always says which of those it was. | All plans |
companyEnrichment | array | — | Companies on this project resolved against Boardwalk's company registry: official name, website, LinkedIn page, archetype and main phone. Names and websites are included on every plan — they are corporate facts, not personal data. The remaining keys are null outside a paid plan, and the array is empty unless the request set include=contacts. | All plans |
publicOfficials | array | — | Government staff and elected officials named in the public record. Their names, roles and votes are public-record facts. Boardwalk never distributes their personal contact details, on any plan. | All plans |
contactSummary | object | — | externalCount is the number of entries in contacts[]; governmentCount the number in publicOfficials[]; unclassifiedCount the parties — people or companies — the filing did not identify clearly enough for us to place in either, which are therefore in neither. withheldCount and withheldReason say how many contact channels were withheld and why. lowConfidenceWithheld counts contacts we hold but do not publish because the evidence for them is only pattern-inferred or uncorroborated — a blank there is a decision, not a gap in coverage. | All plans |
keyFacts | array | — | Discrete facts extracted from the filing, each with the category it belongs to. | All plans |
evidence | string (nullable) | — | The passage of the public record that supports the current status. | All plans |
summary | string (nullable) | — | The project summary shown at the top of the product's project page: what is being built, by whom, and where the approval process stands. | All plans |
alertMatch | object (nullable) | — | Why this record matched the alert that delivered it. Absent on ordinary searches. | All plans |
aiMatch | object (nullable) | — | Why the AI search matched this record, and how strongly. Absent on structured searches, which do not rank. | All plans |
voteSummary | object (nullable) | — | The tally of the most recent recorded vote on this project: yes, no, abstain, absent, total, and whether it was unanimous. | All plans |
sourceDocumentUrl | string (nullable) | — | Direct link to the original public meeting document (usually a PDF) this record's latest extraction came from, on the jurisdiction's own site. | All plans |
`full` — adds
full carries 89 fields in total. 18 of them are added at this level; the rest are inherited from the smaller representation.
| Field | Type | Unit | Description | Availability |
|---|---|---|---|---|
stateId | integer (nullable) | — | Boardwalk id of the state, for use with /locations/*. | All plans |
countyId | integer (nullable) | — | Boardwalk id of the county, for use with /locations/*. | All plans |
cityId | integer (nullable) | — | Boardwalk id of the city, for use with /locations/*. | All plans |
additionalAddresses | array | — | Other addresses associated with this project. | All plans |
classifications | array | — | Every land-use classification on this project, primary and secondary. | All plans |
tags | array | — | Free-form tags attached to the project. | All plans |
isAppeal | boolean (nullable) | — | True when this proceeding is an appeal. Null means unknown, never false. | All plans |
nextHearingDate | string (nullable) | — | The next scheduled hearing date, where one was stated. | All plans |
affordableUnits | integer (nullable) | count | Units designated affordable. | All plans |
lotCount | integer (nullable) | count | Total lots in the subdivision or plat, summed across every stated lot group. Open-space and common-area rows are not lots and are not counted. | All plans |
buildingCount | integer (nullable) | count | Number of buildings proposed. | All plans |
amenities | array | — | Amenities named in the filing. | All plans |
variancesRequested | array | — | Variances or deviations the applicant asked for. | All plans |
likelyTrades | array | — | Trades this project is likely to need, with the evidence for each. | All plans |
conditionsOfApproval | array | — | Verbatim conditions attached to an approval. | All plans |
decisions | array | — | Every recorded decision on this project, newest meeting first, with the named votes cast and a derived tally. | All plans |
originalRawText | string (nullable) | — | The transcribed text of the portion of the public record this project was extracted from — the project's own agenda-item slice where the document covers many items, otherwise the full document text. | All plans |
originalRawTextTruncated | boolean (nullable) | — | True when originalRawText was cut at the per-record character cap. | All plans |
Ready to make a call?
A free Boardwalk trial includes API access, 50 record-export credits (search, CSV, MCP), and 5 Find Contact Info lookups. Counting, taxonomy, location lookups and the analytics plane cost nothing, so you can evaluate the data before you spend a credit.