Skip to main content

Analysis without buying records

Where is apartment development concentrated? Answer it with aggregates, for zero credits, and buy only the records you act on.

AI-native analysts and MCP clientsHomebuilders and developers

Who this is for

Analysts and agents answering questions about a market rather than assembling a list from it. The boundary is simple: insight is free, records cost credits.

Ask the question

Ask where apartment development concentrates — for zero credits

bash
curl -X POST 'https://api.boardwalkai.com/api/v1/analytics/aggregate' \
  -H 'Authorization: Bearer bwk_live_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "dataset": "projects",
    "groupBy": [
        "city"
    ],
    "metrics": [
        "count",
        "unitCountSum"
    ],
    "filters": {
        "states": [
            "UT"
        ],
        "assetClasses": [
            "Apartment Building"
        ]
    }
}'

Response · HTTP 200

json
{
  "data": {
    "dataset": "projects",
    "groupBy": [
      "city"
    ],
    "groups": [
      {
        "keys": {
          "city": "Salt Lake City"
        },
        "metrics": {
          "count": 142,
          "unitCountSum": 18240
        },
        "coverage": {
          "count": 1,
          "unitCountSum": 0.9718
        }
      },
      {
        "keys": {
          "city": "Provo"
        },
        "metrics": {
          "count": 64,
          "unitCountSum": 7112
        },
        "coverage": {
          "count": 1,
          "unitCountSum": 0.9531
        }
      }
    ],
    "totals": {
      "count": 412,
      "unitCountSum": 51230
    },
    "suppressed": {
      "groups": 3,
      "records": 9,
      "floorK": 5
    }
  },
  "meta": {
    "schemaVersion": "2026-08-02",
    "suppressionFloorK": 5,
    "credits": {
      "charged": 0
    },
    "requestId": "req_01K1QF3M0000EXAMPLE0001"
  }
}

We were not able to execute this call while writing the page, so treat the body as indicative of the shape rather than as a captured response. If it disagrees with what you receive, what you receive is correct — please tell us.

Credit costFree — 0 creditsFree. Returns counts and group keys, never a project id, name, address, contact or document.

The analytics plane returns counts and group keys. It never returns a project id, name, address, contact or document — that is what makes it safe to give away, and it is enforced at runtime rather than intended.

Start by asking what it can answer

GET /analytics/datasets describes itself: which fields you can group by, which metrics exist, which ones can be ranked, the ceilings, and — usefully — a notAnswerable list, so you do not spend a rate-limit slot rediscovering a question we cannot answer.

Credit costFree — 0 creditsFree. What the analytics plane can and cannot answer, self-described.

Small groups are suppressed

For rankings specifically, use /analytics/rankings rather than assembling one from /aggregate. A ranking carries a minimum denominator and a comparison baseline; a hand-rolled leaderboard has neither, and the single most common way a leaderboard lies is a top row with one observation behind it.

Credit costFree — 0 creditsFree, and subject to the same small-group suppression floor as /aggregate.

Then buy only what you act on

  1. 1Aggregate to find the three cities worth attention. Free.
  2. 2Count the records in those three cities. Free.
  3. 3Search — and pay for — only those. 1 credit each.

For a market-shape question this is often the difference between zero credits and ten thousand.

Named votes

When you do buy records, voteSummary gives you the tally on the most recent decision, and the full representation carries the individual named votes under decisions. That is where "who voted against this" is answered.

One record in full, including decisions, documents and rawText

bash
curl 'https://api.boardwalkai.com/api/v1/projects/184203?representation=full' \
  -H 'Authorization: Bearer bwk_live_YOUR_KEY'

Response · HTTP 200

json
{
  "data": {
    "id": 184203,
    "recordType": "project",
    "projectName": "Alta Ridge Phase II",
    "projectHeadline": "Planning Commission approved 240 apartments with conditions",
    "boardwalkLink": "https://boardwalkai.com/map/#project=184203",
    "mergedFrom": [
      184203,
      184987
    ],
    "createdAt": "2026-05-04T00:00:00Z",
    "lastUpdated": "2026-06-18T09:22:41Z",
    "meetingDate": "2026-06-17",
    "delivery": {
      "alreadyExported": false,
      "updatedSinceExport": null,
      "lastExportedAt": null,
      "billed": true
    },
    "address": "3600 S Constitution Blvd, West Valley City, UT",
    "city": "West Valley City",
    "county": "Salt Lake",
    "state": "UT",
    "postalCode": "84119",
    "latitude": 40.6916,
    "longitude": -112.0011,
    "locationPrecision": "address",
    "locationPrecisionLabel": "Address",
    "isApproximate": false,
    "parcelApn": [
      "15-27-301-004"
    ],
    "stateId": 44,
    "countyId": 2917,
    "cityId": 31688,
    "additionalAddresses": [],
    "propertyType": "residential",
    "propertyTypeLabel": "Residential",
    "propertySubtype": "multifamily",
    "propertySubtypeLabel": "Multifamily",
    "assetClass": "Apartment Building",
    "assetClassLabel": "Apartment Building",
    "classifications": [
      {
        "role": "primary",
        "type": "residential",
        "typeLabel": "Residential",
        "subtype": "multifamily",
        "subtypeLabel": "Multifamily",
        "assetClass": "Apartment Building",
        "assetClassLabel": "Apartment Building"
      }
    ],
    "tags": [
      "multifamily",
      "phase-ii"
    ],
    "status": "approved_with_conditions",
    "statusLabel": "Approved with Conditions",
    "statusDetail": "The commission approved the preliminary plat subject to eight conditions.",
    "requestType": "final_plat",
    "requestTypeLabel": "Final Plat",
    "decisionBody": "Planning Commission",
    "caseNumbers": [
      "PLAT-2026-0142"
    ],
    "isAppeal": false,
    "nextHearingDate": "2026-07-15",
    "acreage": 9.8,
    "unitCount": [
      {
        "count": 240,
        "type": "apartment",
        "typeLabel": "Apartment"
      }
    ],
    "totalUnitCount": 240,
    "affordableUnits": null,
    "bedroomCount": null,
    "lotCount": null,
    "buildingCount": 6,
    "buildingStories": 4,
    "buildingHeightFeet": 48,
    "parkingSpaces": 372,
    "densityPerAcre": 24.5,
    "amenities": [
      "Pool",
      "Clubhouse",
      "Dog run"
    ],
    "existingZoning": "A-1",
    "proposedZoning": "RM-16",
    "isRezone": true,
    "variancesRequested": [
      "setback"
    ],
    "constructionType": "new_building",
    "constructionTypeLabel": "New Building",
    "ownerType": "private",
    "ownerTypeLabel": "Private",
    "constructionDescription": "A 240-unit garden-style apartment community on 9.8 acres.",
    "likelyTrades": [
      {
        "trade": "site_work",
        "tradeLabel": "Site Work",
        "basis": "Grading plan referenced"
      }
    ],
    "estimateEligible": true,
    "developerCompany": "Alta Ridge Development LLC",
    "developerCompanyRole": "developer",
    "developerCompanyRoleLabel": "Developer",
    "contacts": [
      {
        "name": "Rachel Okafor",
        "title": "Director of Development",
        "role": "developer",
        "roleLabel": "Developer",
        "partyClass": "external",
        "partyClassLabel": "External Party",
        "entityType": "person",
        "company": "Alta Ridge Development LLC",
        "email": "r.okafor@example.com",
        "emailConfidence": "high",
        "emailSource": "filing",
        "phone": "+1-555-0142",
        "phoneConfidence": "high",
        "phoneSource": "filing",
        "linkedinUrl": null,
        "linkedinConfidence": null,
        "linkedinSource": null,
        "contactProvenance": "filing",
        "enrichmentSource": null,
        "enrichedAt": null,
        "enrichmentStatus": "not_requested",
        "contactsWithheldReason": null
      }
    ],
    "contactEnrichment": {
      "status": "not_requested",
      "statusLabel": "Not Requested",
      "attemptedAt": null,
      "contactsFound": 0,
      "source": "registry"
    },
    "publicOfficials": [
      {
        "name": "Dana Whitfield",
        "title": "Senior Planner",
        "role": "city_planner",
        "roleLabel": "City Planner",
        "partyClass": "government",
        "organization": "West Valley City"
      }
    ],
    "contactSummary": {
      "externalCount": 1,
      "governmentCount": 1,
      "unclassifiedCount": 0,
      "withEmail": 1,
      "withPhone": 1,
      "withLinkedin": 0,
      "enrichedCount": 0,
      "lowConfidenceWithheld": 0,
      "withheldCount": 0,
      "withheldReason": null
    },
    "keyFacts": [
      {
        "fact": "240 apartment units across six buildings",
        "category": "unit_mix",
        "categoryLabel": "Unit Mix"
      }
    ],
    "evidence": "Commissioner Reyes moved to approve subject to conditions 1-8.",
    "conditionsOfApproval": [
      "1. Landscaping per the approved plan."
    ],
    "summary": "A 240-unit garden-style apartment community on 9.8 acres, approved with conditions.",
    "extendedSummary": "The applicant sought preliminary plat approval for a 240-unit garden-style apartment community across six four-storey buildings, with 372 parking stalls.",
    "decisions": [
      {
        "meetingDate": "2026-06-17",
        "decisionBody": "Planning Commission",
        "actionType": "preliminary_plat",
        "actionTypeLabel": "Preliminary Plat",
        "requestType": "final_plat",
        "requestTypeLabel": "Final Plat",
        "outcome": "approved_with_conditions",
        "outcomeLabel": "Approved with Conditions",
        "motionType": "approve_with_conditions",
        "motionOutcome": "passed",
        "evidenceBasis": null,
        "evidenceBasisLabel": null,
        "isConsentAgenda": null,
        "caseNumber": "PLAT-2026-0142",
        "evidence": "Commissioner Reyes moved to approve subject to conditions 1-8.",
        "conditions": "Landscaping per the approved plan.",
        "voteTally": {
          "yes": 2,
          "no": 1,
          "abstain": 0,
          "absent": 1,
          "total": 4,
          "isUnanimous": false
        },
        "votes": [
          {
            "name": "Maria Reyes",
            "role": "Commissioner",
            "vote": "yes",
            "voteLabel": "Yes"
          },
          {
            "name": "Tom Alder",
            "role": "Commissioner",
            "vote": "yes",
            "voteLabel": "Yes"
          },
          {
            "name": "Priya Raman",
            "role": "Commissioner",
            "vote": "no",
            "voteLabel": "No"
          },
          {
            "name": "Ben Cole",
            "role": "Commissioner",
            "vote": "absent",
            "voteLabel": "Absent"
          }
        ]
      }
    ],
    "voteSummary": {
      "yes": 2,
      "no": 1,
      "abstain": 0,
      "absent": 1,
      "total": 4,
      "isUnanimous": false,
      "meetingDate": "2026-06-17"
    },
    "documents": [
      {
        "meetingDocumentId": 902551,
        "title": "Planning Commission Minutes",
        "meetingDate": "2026-06-17",
        "documentType": "meeting_minutes",
        "documentTypeLabel": "Meeting Minutes",
        "rawText": "PLANNING COMMISSION MINUTES — June 17, 2026\n\nITEM 4. PLAT-2026-0142 — Alta Ridge Phase II, preliminary plat, 3600 S Constitution Blvd.\nStaff presented the report and recommended approval subject to eight conditions. Commissioner Reyes moved to approve subject to conditions 1-8. Motion carried 2-1, Commissioner Cole absent.\n\n[This excerpt is shortened for the documentation. A live response carries the complete document text.]",
        "rawTextTruncated": false
      }
    ]
  },
  "meta": {
    "schemaVersion": "2026-08-02",
    "representation": "full",
    "creditsUsed": 1,
    "creditsRemaining": 295
  }
}

Record bodies on this page were produced by running Boardwalk's production response mapper over a documented sample project, so the field set, the labels and the empty fields are exactly what the API emits. The project itself is a sample, not a real filing.

Next

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.