Skip to main content

Contacts and enrichment

Who is behind a project, how to turn on Find Contact Info, and what a paid request actually returns.

Lead generation and business development

Every record carries the parties named on the filing itself, split into two arrays that are governed by different rules.

ArrayWho is in itWhat ships
contactsExternal 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.
publicOfficialsGovernment 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.

HowWhat to sendWhat you get
Website CSVFind Contact Info on the export modalEmail when the file is ready, also on /exports
API CSVGET /projects/search?format=csv&include=contactsHTTP 202 export job; poll /exports/{id}
API JSON, live lookupPOST /projects/ai-search/jobs with "include": "contacts"Poll the job. Live lookup cannot run inside a GET.
API JSON, already heldGET /projects/search?include=contacts with contactOptions[cachedOnly]=trueContacts we already have, no new vendor lookup

The same search, with Find Contact Info switched on

bash
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

json
{
  "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.