Contacts and enrichment
Who is behind a project, how to turn on Find Contact Info, and what a paid request actually returns.
Every record carries the parties named on the filing itself, split into two arrays that are governed by different rules.
| Array | Who is in it | What ships |
|---|---|---|
contacts | External parties — developers, applicants, architects, consultants. | Name, title, role, company. On a paid plan, also email, phone and LinkedIn where we already have them on the filing, each with its own confidence and source. |
publicOfficials | Government staff — planners, clerks, commissioners. | Name, title, organisation. Never a contact channel, on any tier. |
contactSummary counts both, plus how many contacts were withheld and why — so a record with no contact channels is distinguishable from a record where we withheld them.
Find Contact Info
Find Contact Info is 1 credit per project the first time this account receives email or phone. Searching for the project itself is free on County, State, and National. Empty lookups cost nothing. A project this pool has already unlocked is free to re-read.
| How | What to send | What you get |
|---|---|---|
| Website CSV | Find Contact Info on the export modal | Email when the file is ready, also on /exports |
| API CSV | GET /projects/search?format=csv&include=contacts | HTTP 202 export job; poll /exports/{id} |
| API JSON, live lookup | POST /projects/ai-search/jobs with "include": "contacts" | Poll the job. Live lookup cannot run inside a GET. |
| API JSON, already held | GET /projects/search?include=contacts with contactOptions[cachedOnly]=true | Contacts we already have, no new vendor lookup |
The same search, with Find Contact Info switched on
curl -X POST 'https://api.boardwalkai.com/api/v1/projects/ai-search/jobs' \
-H 'Authorization: Bearer bwk_live_YOUR_KEY' \
-H 'Content-Type: application/json' \
-d '{
"query": "multifamily projects that were continued for parking concerns",
"states": [
"UT"
],
"limit": 50,
"include": "contacts",
"contactOptions": {
"minConfidence": "high"
}
}'Response · HTTP 202
{
"requestId": 918509,
"status": "queued",
"pollUrl": "https://api.boardwalkai.com/api/v1/projects/ai-search/jobs/918509",
"meta": {
"creditsReserved": 50,
"limit": 50,
"trialTruncation": null,
"requestId": "req_01K1QF3M0000EXAMPLE0001"
}
}The response shape on this page is the one the endpoint builds — the keys, their nesting and their types are asserted against the shipping code by a test. The numbers inside it are the scenario being walked through, not a measurement of the corpus.
A synchronous JSON route that asks for a live lookup returns 400 enrichment_requires_async and names both the AI-search job and the CSV export. The full option list is on the contact enrichment recipe.
The limits we will not paper over
Opting out
If your contact details appear in Boardwalk and you want us to stop distributing them, tell us. Suppression applies everywhere, immediately, for every customer. Government staff contact details are never returned on any tier.
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.