---
title: "Exact suppression-adjusted count without parcel-row delivery or allowance burn."
method: POST
path: "/v1/count"
tags: ["query"]
---

# Exact suppression-adjusted count without parcel-row delivery or allowance burn.

`POST /v1/count`

## Request

- Base URL: `https://api.premiumpin.com`
- URL: `https://api.premiumpin.com/v1/count`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `pp_session`

Counts rows through the same scope, filter, serving-policy, field-availability, owner-filter entitlement, and suppression boundaries as row search. It returns no parcel records and does not charge delivered-row allowance.

## Request body

- object
  - `filter` Filter: Structured filter contract accepted by the public query builder.
    - `filters` object[]
      - `field` string, required
      - `op` 'eq' | 'ne' | 'in' | 'contains' | 'starts_with' | 'gt' | 'gte' | 'lt' | 'lte' | 'between' | 'is_null' | 'is_not_null', required
      - `value` unknown
    - `logic` 'and'
    - `order_by` object
      - `dir` 'asc' | 'desc'
      - `field` string
  - `scope` union, required: REQUIRED. Exactly one of fips, state, or held bounds the search.
    - object
      - `fips` string[], required
      - `held` string[]
      - `state` string[]
    - object
      - `fips` string[]
      - `held` string[]
      - `state` string[], required
    - object
      - `fips` string[]
      - `held` string[], required
      - `state` string[]
  - `slots` object: Named closed-catalog slots combined with filter using AND.

## Response `200`

Exact count and explicit no-charge billing state.

- object
  - `billing` object, required
    - `allowance_charged` false, required
    - `rows_charged` 0, required
  - `count` integer, required
  - `scope_coverage` ScopeCoverage, required: Shared Engine availability for the effective existing filter and type rules. All FIPS arrays are sorted and deduplicated. For resolved supported filters, bindable/unavailable/field-unavailable are disjoint and exhaust requested_fips. Available means all requested counties bindable, partial a nonempty proper subset, unavailable none. Unknown means unresolved filter, with no certified bindable/unavailable/field-unavailable classification; it is never a fallback for missing or corrupt Census authority (generation binding fails). This does not promise visited counties, nonnull fields, distinct parcel totals, or legal access. Optional nullable projections retain existing binding rules.
    - `bindable_fips` string[], required: Eligible under existing required-field/type rules, not visited on this page.
    - `field_unavailable_fips` string[], required: Held geography lacking required capability.
    - `legacy_fips` string[], required: Loaded/requested historical codes outside pinned current authority; not successor-jurisdiction coverage.
    - `requested_fips` string[], required
    - `status` 'available' | 'partial' | 'unavailable' | 'unknown', required
    - `unavailable_fips` string[], required: Requested geography without a loaded table.
  - `store_version` string, required
  - `suppression_adjusted` true, required

## Other responses

- `400`: bad filter / no scope / unknown field or op / malformed cursor / county-not-held for wholly unloaded search or absent lookup table
- `401`: missing or invalid API key / session
- `403`: requested owner-PII fields but the plan/entitlement doesn't allow them
- `413`: scope would exceed the row/scan cap; narrow fips/state/held or add filters
- `429`: too many requests; retry after the window

---

[API](https://skmtc.dev/premiumpin/apis/premiumpin-property-records-api.md) · [All operations](https://skmtc.dev/premiumpin/apis/premiumpin-property-records-api/llms.txt) · [OpenAPI document](https://skmtc.dev/premiumpin/apis/premiumpin-property-records-api/revisions/18f5ec1c629c?raw)
