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 18 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. | 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 |
propertyType | string (nullable) | — | Top-level land-use classification, e.g. residential. | All plans |
propertyTypeLabel | string (nullable) | — | Human-readable form of propertyType. | All plans |
status | string (nullable) | — | Where this project stands, as a stable machine token. | All plans |
statusLabel | string (nullable) | — | Human-readable form of status; identical to the CSV's Current Status cell. | All plans |
`standard` — adds
standard carries 57 fields in total. 39 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 |
createdAt | string (nullable) | — | When Boardwalk first recorded this project, RFC 3339 UTC. | 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, e.g. apartments. Blank means we do not have that level of detail — never a duplicated parent value. | All plans |
assetClassLabel | string (nullable) | — | Human-readable form of assetClass. | All plans |
statusDetail | string (nullable) | — | A sentence expanding on the current status. | 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 |
unitCount | 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 |
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 |
ownerType | string (nullable) | — | Whether the owner is public, private or institutional, as a stable machine token. | All plans |
ownerTypeLabel | string (nullable) | — | Human-readable form of ownerType. | All plans |
constructionDescription | string (nullable) | — | A short sourced description of the construction work, written for business development. | 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 |
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 |
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 |
`full` — adds
full carries 82 fields in total. 25 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 |
bedroomCount | integer (nullable) | count | Total bedrooms across the project. | All plans |
lotCount | integer (nullable) | count | Number of lots in the subdivision or plat. | All plans |
buildingCount | integer (nullable) | count | Number of buildings proposed. | All plans |
buildingStories | integer (nullable) | count | Number of storeys. | 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 |
densityPerAcre | number (nullable) | units_per_acre | Dwelling units per acre. Null where the filing's density unit is not units/acre. | 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 |
estimateEligible | boolean (nullable) | — | True when the filing carries enough detail to support a cost estimate. | All plans |
conditionsOfApproval | array | — | Verbatim conditions attached to an approval. | All plans |
summary | string (nullable) | — | A paragraph summarising the project. | All plans |
extendedSummary | string (nullable) | — | A longer narrative summary. | All plans |
decisions | array | — | Every recorded decision on this project, newest meeting first, with the named votes cast and a derived tally. | All plans |
documents | array | — | The public meeting documents this project was extracted from. Pass meetingDocumentId to GET /documents/{id} to fetch one. rawText is the document's transcribed text and is returned in the full representation only. | All plans |
Ready to make a call?
A free Boardwalk trial includes API access and a sandbox key. Counting, filtering, the location tree and the analytics plane cost nothing, so you can evaluate the data before you spend a credit.