{
 "allowed_uses": {
  "permitted": [
   "b2b_sales_outreach",
   "b2b_marketing",
   "crm_enrichment",
   "market_research",
   "platform_integration"
  ],
  "refused": [
   "credit_eligibility",
   "employment_screening",
   "insurance_underwriting",
   "tenant_screening"
  ]
 },
 "definitions": {
  "billable_base": "sellable",
  "count_refresh": "Counts and quotes refresh once a day at 06:00 America/Denver with the overnight load; a quote holds until the next refresh.",
  "preview_rule": "Free preview shows what the state publishes; what GoodLeads adds is for key holders.",
  "speed": "Records appear the morning after the state posts them. Speed is measured from the state's publication, never from the date of filing.",
  "universe": "Every list starts from 'Just started' businesses — a brand-new business with no prior filing. Widen it by filtering filing_kind (or lead_class), or pass include_existing.",
  "universe_default_label": "Just started"
 },
 "doors": [
  {
   "for": "Clients that can add a remote MCP server",
   "how": "Paste the address where your client asks for a remote MCP server. You need no key and no account.",
   "id": "mcp",
   "name": "MCP address",
   "url": "https://mcp.goodleads.club/mcp",
   "who": "Claude, Cursor, VS Code, Gemini Spark, Perplexity and Grok accept the address directly. ChatGPT needs one more step. A person must turn on Developer mode in the ChatGPT settings. This takes about one minute and happens one time. An agent in a chat cannot do this step."
  },
  {
   "for": "Any agent that can fetch a web address",
   "how": "`GET /api/v1/counts` sizes a market. It takes states, filters as JSON, and `group_by` with up to two fields. `GET /api/v1/crosswalk?q=MCC%205812` translates an industry between code systems. You need no key. Contact details stay masked.",
   "id": "plain_url",
   "name": "Plain web addresses",
   "url": "https://app.goodleads.club/api/v1/counts",
   "who": "A ChatGPT chat without the connector, a script, a notebook, or any tool that can make a GET request."
  },
  {
   "for": "A person",
   "how": "Say who you sell to. See the count and the price. Pay on a hosted page.",
   "id": "buy_page",
   "name": "The buy page",
   "url": "https://app.goodleads.club/buy.html",
   "who": "Use this way if you want a list and prefer to click, not connect or code."
  }
 ],
 "endpoints": [
  {
   "calls_per_minute": 30,
   "door": "v1",
   "key_required": false,
   "method": "GET",
   "path": "/v1",
   "summary": "Describe the API"
  },
  {
   "calls_per_minute": 30,
   "door": "v1",
   "key_required": false,
   "method": "GET",
   "path": "/v1/answers",
   "summary": "Answer a buyer's intent, in plain words"
  },
  {
   "calls_per_minute": 120,
   "door": "v1",
   "key_required": true,
   "method": "GET",
   "path": "/v1/feedback",
   "summary": "Your reports, newest first"
  },
  {
   "calls_per_minute": 120,
   "door": "v1",
   "key_required": true,
   "method": "POST",
   "path": "/v1/feedback",
   "summary": "Report on a record you bought"
  },
  {
   "calls_per_minute": 120,
   "door": "v1",
   "key_required": true,
   "method": "GET",
   "path": "/v1/feedback/{feedback_id}",
   "summary": "One report"
  },
  {
   "calls_per_minute": 30,
   "door": "v1",
   "key_required": false,
   "method": "GET",
   "path": "/v1/fields",
   "summary": "Every field you can filter on"
  },
  {
   "calls_per_minute": 30,
   "door": "v1",
   "key_required": false,
   "method": "GET",
   "path": "/v1/jobs",
   "summary": "Buyer jobs: why GoodLeads fits, and ready filters"
  },
  {
   "calls_per_minute": 30,
   "door": "v1",
   "key_required": false,
   "method": "GET",
   "path": "/v1/jobs/{job_id}",
   "summary": "One buyer job"
  },
  {
   "calls_per_minute": 30,
   "door": "v1",
   "key_required": false,
   "method": "POST",
   "path": "/v1/keys",
   "summary": "Get API keys — we email you a one-time link"
  },
  {
   "calls_per_minute": 30,
   "door": "v1",
   "key_required": false,
   "method": "POST",
   "path": "/v1/keys/claim",
   "summary": "Exchange your key link for a test key and a live key (shown once)"
  },
  {
   "calls_per_minute": 30,
   "door": "v1",
   "key_required": false,
   "method": "GET",
   "path": "/v1/leads",
   "summary": "Find leads"
  },
  {
   "calls_per_minute": 30,
   "door": "v1",
   "key_required": false,
   "method": "GET",
   "path": "/v1/leads/new",
   "summary": "New leads — today's run, the last few days, or since your last poll"
  },
  {
   "calls_per_minute": 30,
   "door": "v1",
   "key_required": false,
   "method": "GET",
   "path": "/v1/leads/{lead_id}",
   "summary": "Get one lead by its Lead ID"
  },
  {
   "calls_per_minute": 120,
   "door": "v1",
   "key_required": true,
   "method": "GET",
   "path": "/v1/me",
   "summary": "The key you are calling with"
  },
  {
   "calls_per_minute": 120,
   "door": "v1",
   "key_required": true,
   "method": "POST",
   "path": "/v1/orders",
   "summary": "Order a list"
  },
  {
   "calls_per_minute": 120,
   "door": "v1",
   "key_required": true,
   "method": "GET",
   "path": "/v1/orders/{order_id}",
   "summary": "Get one of your orders"
  },
  {
   "calls_per_minute": 120,
   "door": "v1",
   "key_required": true,
   "method": "GET",
   "path": "/v1/orders/{order_id}/records",
   "summary": "The records an order bought"
  },
  {
   "calls_per_minute": 30,
   "door": "v1",
   "key_required": false,
   "method": "GET",
   "path": "/v1/pricing",
   "summary": "Current per-record prices"
  },
  {
   "calls_per_minute": 120,
   "door": "v1",
   "key_required": true,
   "method": "POST",
   "path": "/v1/quotes",
   "summary": "Price a list"
  },
  {
   "calls_per_minute": 30,
   "door": "v1",
   "key_required": false,
   "method": "GET",
   "path": "/v1/states",
   "summary": "The states we carry, and when each last loaded"
  },
  {
   "calls_per_minute": null,
   "door": "website_api",
   "key_required": false,
   "method": "GET",
   "path": "/api/v1/manifest",
   "summary": "This manifest: every field, limit, price, state and live feature"
  },
  {
   "calls_per_minute": null,
   "door": "website_api",
   "key_required": false,
   "method": "GET",
   "path": "/api/v1/schema/attributes",
   "summary": "Every filterable field, with operators and allowed values"
  },
  {
   "calls_per_minute": null,
   "door": "website_api",
   "key_required": false,
   "method": "GET",
   "path": "/api/v1/schema/concepts",
   "summary": "Map a buyer's own word to the fields we carry"
  },
  {
   "calls_per_minute": null,
   "door": "website_api",
   "key_required": false,
   "method": "GET",
   "path": "/api/v1/schema/recipes",
   "summary": "Buyer jobs: ready filters and what each score means for that job"
  },
  {
   "calls_per_minute": null,
   "door": "website_api",
   "key_required": false,
   "method": "GET",
   "path": "/api/v1/taxonomy",
   "summary": "The industry sectors and subsectors"
  },
  {
   "calls_per_minute": 30,
   "door": "website_api",
   "key_required": false,
   "method": "GET",
   "path": "/api/v1/crosswalk",
   "summary": "One industry in NAICS, SIC, Google category and MCC"
  },
  {
   "calls_per_minute": 30,
   "door": "website_api",
   "key_required": false,
   "method": "GET",
   "path": "/api/v1/counts",
   "summary": "Free counts for a filter, as one GET (optional group_by cross-tab)"
  },
  {
   "calls_per_minute": 30,
   "door": "website_api",
   "key_required": false,
   "method": "POST",
   "path": "/api/v1/leads/summary",
   "summary": "Free counts, facets, prices and a quote for a filter"
  },
  {
   "calls_per_minute": 30,
   "door": "website_api",
   "key_required": false,
   "method": "POST",
   "path": "/api/v1/lists/interpret",
   "summary": "Turn a buyer's words into filters"
  },
  {
   "calls_per_minute": 30,
   "door": "website_api",
   "key_required": false,
   "method": "GET",
   "path": "/api/v1/leads",
   "summary": "Browse leads (owner contact masked without a key)"
  },
  {
   "calls_per_minute": null,
   "door": "website_api",
   "key_required": false,
   "method": "GET",
   "path": "/api/v1/leads/states",
   "summary": "The live states"
  },
  {
   "calls_per_minute": 30,
   "door": "website_api",
   "key_required": false,
   "method": "POST",
   "path": "/api/v1/lists",
   "summary": "Save a filter as a shareable list"
  },
  {
   "calls_per_minute": 30,
   "door": "website_api",
   "key_required": false,
   "method": "GET",
   "path": "/api/v1/lists/{list_id}",
   "summary": "Read a saved list"
  },
  {
   "calls_per_minute": 30,
   "door": "website_api",
   "key_required": false,
   "method": "GET",
   "path": "/api/v1/lists/{list_id}/summary",
   "summary": "Counts for a saved list"
  },
  {
   "calls_per_minute": 5,
   "door": "website_api",
   "key_required": false,
   "method": "POST",
   "path": "/api/v1/commerce/checkout",
   "summary": "Open a hosted checkout for a list"
  }
 ],
 "features": {
  "autonomous_agent_purchase": "live",
  "billing_to_an_account": "coming_next",
  "forgiving_filter_values": "live",
  "notifications_to_your_server": "coming_next",
  "practice_orders": "coming_next",
  "standing_order_deliveries": "coming_next",
  "standing_orders_from_your_code": "coming_next",
  "standing_orders_on_the_website": "live"
 },
 "field_counts": {
  "export_columns": 64,
  "free_preview_fields": 50,
  "v1_filter_fields": 49,
  "v1_filter_fields_with_key": 52,
  "v1_filter_names": [
   "business_origin",
   "contact_confidence_tier",
   "contact_ref",
   "contact_relevance_tier",
   "county_fips",
   "email_deliverability_status",
   "entity_is_foreign",
   "entity_is_nonprofit",
   "entity_is_professional",
   "entity_is_public_benefit",
   "entity_name",
   "entity_type",
   "filing_kind",
   "formation_date",
   "gmb_category",
   "has_email",
   "has_federal_tax_id",
   "has_phone",
   "has_phone_or_email",
   "home_state",
   "industry_confidence_tier",
   "industry_name",
   "industry_sector",
   "lead_ref",
   "mcc",
   "msa_code",
   "msa_name",
   "naics_2_digit",
   "naics_3_digit",
   "naics_4_digit",
   "naics_5_digit",
   "naics_6_digit",
   "neighborhood",
   "phone_type",
   "principal_address",
   "principal_city",
   "principal_zip",
   "property_classification",
   "reachability_tier",
   "role_is_decision_maker",
   "role_title",
   "sic_2_digit",
   "sic_3_digit",
   "sic_4_digit",
   "state",
   "status",
   "time_zone",
   "tract_median_income",
   "trade_name"
  ],
  "v1_lead_response_fields": 71,
  "website_api_filter_fields": 85,
  "why_they_differ": "/v1/fields lists the fields that the public API lets you filter on. The owner's name, phone and email are never filterable. /api/v1/schema/attributes lists the full website schema. The website schema is wider. It also has fields that the public API does not filter on, and the owner contact fields (masked without a key). Where both list a field, the names, operators and values are the same."
 },
 "fields": [
  {
   "description": "Unique identifier (UUID) for the business entity record.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": true,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "entity_id",
   "label": "Entity ID",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "internal id",
    "row id"
   ],
   "type": "text"
  },
  {
   "description": "Persistent human-readable ID for this lead (e.g., GL-VA-04821). Assigned on first load, never changes. Use for CRM conversations, exports, and lookups.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": false,
    "website_api": true
   },
   "field": "lead_ref",
   "label": "Lead Reference",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "lead id",
    "glid",
    "record key",
    "permalink id",
    "lead number"
   ],
   "type": "text"
  },
  {
   "allowed_values": [
    "CO",
    "CT",
    "FL",
    "NY",
    "TX",
    "VA"
   ],
   "description": "Two-letter US state code where the business was formed (e.g., VA, CO, FL).",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "state",
   "label": "State",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "filing state",
    "formation state",
    "registration state",
    "state code"
   ],
   "type": "text"
  },
  {
   "description": "Legal name of the business as filed with the Secretary of State.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "entity_name",
   "label": "Entity Name",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "registered name",
    "corporate name",
    "organization name"
   ],
   "type": "text"
  },
  {
   "description": "Market-facing DBA/trade name registered with the state — the name a customer recognizes and searches for, distinct from the legal entity name. Additional registered names are preserved on the lead detail page.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "trade_name",
   "label": "Trade Name (DBA)",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "trading name",
    "dba name"
   ],
   "type": "text"
  },
  {
   "allowed_values": [
    "LLC",
    "PLLC",
    "CORP",
    "PC",
    "LP",
    "LLP",
    "LLLP",
    "NONPROFIT",
    "COOP",
    "PARTNERSHIP",
    "SOLE_PROP",
    "OTHER"
   ],
   "description": "Legal structure of the business, canonicalized across states — 'LLC' matches CO 'DLLC', FL 'FLAL', NY 'DOMESTIC LIMITED LIABILITY COMPANY' alike (Tenet #3). Values: LLC, PLLC, CORP, PC, LP, LLP, LLLP, NONPROFIT, COOP, PARTNERSHIP, SOLE_PROP, OTHER (case-insensitive; legacy raw codes are resolved too). Domestic/foreign, professional, nonprofit, and public-benefit facets filter separately via entity_is_foreign / entity_is_professional / entity_is_nonprofit / entity_is_public_benefit. The raw state-specific SOS string is entity_type_raw.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "entity_type",
   "label": "Entity Type",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "business structure",
    "company type",
    "entity form"
   ],
   "type": "text"
  },
  {
   "description": "Raw state-specific entity-type string exactly as filed with the Secretary of State (CO 'DLLC', FL 'FLAL', VA 'LLC'). Provenance vocabulary — filter entity_type (canonical) unless you specifically need a state's own codes.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "entity_type_raw",
   "label": "Entity Type (raw SOS)",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "original entity type",
    "raw filing type",
    "state's entity type"
   ],
   "type": "text"
  },
  {
   "description": "True when the entity registered from out of state (a 'foreign' filing — e.g. CO 'FLLC'). Domestic formations are the new-business buying-window cohort; foreign registrations are typically established companies expanding.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "entity_is_foreign",
   "label": "Foreign Entity",
   "masked": false,
   "operators": [
    "eq",
    "neq"
   ],
   "sortable": true,
   "synonyms": [
    "foreign registration",
    "non-domestic",
    "registered from elsewhere"
   ],
   "type": "boolean"
  },
  {
   "allowed_values": [
    "newly_formed",
    "new_location",
    "formed_out_of_state",
    "institutional"
   ],
   "description": "Why this business is on the list today: newly_formed (a formation — the Day-1 cohort), new_location (an existing business opening a location in this state), formed_out_of_state (a local owner who formed in another state and registered here to operate), institutional (a holding vehicle held at a custodian). Browse and every file default to newly_formed; the other three are sold as their own list.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "business_origin",
   "label": "Business Origin",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "opening a location here",
    "new location",
    "expanding into the state",
    "formed out of state",
    "registration vs formation",
    "why it is on the list"
   ],
   "type": "text"
  },
  {
   "allowed_values": [
    "formation",
    "registration",
    "conversion",
    "name_change",
    "reinstatement",
    "address_change",
    "dissolution"
   ],
   "description": "What the state filing did: formation (a business that did not exist before its filing — the default, so a plain call never returns an existing business the state gave a new document number), registration (a business registered here from another state — lead_class says whether it is a local owner's new business with home-state paperwork or an existing business new to this market, the same split business_origin makes), conversion (changed legal form), name_change (a new brand), reinstatement (reactivated), address_change (moved), dissolution (closed — hidden unless named). Naming any value replaces the Just-started default (include_existing=true widens to all five existing-business kinds at once); they are their own list, never mixed into a new-business order. lead_class on every row is the same fact in the buyer's words.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "filing_kind",
   "label": "Filing kind",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in"
   ],
   "sortable": false,
   "type": "text"
  },
  {
   "allowed_values": [
    "AL",
    "AK",
    "AZ",
    "AR",
    "CA",
    "CO",
    "CT",
    "DE",
    "DC",
    "FL",
    "GA",
    "HI",
    "ID",
    "IL",
    "IN",
    "IA",
    "KS",
    "KY",
    "LA",
    "ME",
    "MD",
    "MA",
    "MI",
    "MN",
    "MS",
    "MO",
    "MT",
    "NE",
    "NV",
    "NH",
    "NJ",
    "NM",
    "NY",
    "NC",
    "ND",
    "OH",
    "OK",
    "OR",
    "PA",
    "RI",
    "SC",
    "SD",
    "TN",
    "TX",
    "UT",
    "VT",
    "VA",
    "WA",
    "WV",
    "WI",
    "WY",
    "PR"
   ],
   "description": "The state the business was first formed in, when it is not this one — from the filing. Blank on every formation.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "home_state",
   "label": "Home State",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "state of origin",
    "formed in",
    "where it was first formed",
    "domestic state"
   ],
   "type": "text"
  },
  {
   "description": "True when the state filing lists a federal tax ID (the number itself ships in the file as federal_tax_id). An existing business usually has one before it registers; a brand-new one rarely does.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "has_federal_tax_id",
   "label": "Federal Tax ID on File",
   "masked": false,
   "operators": [
    "eq",
    "neq"
   ],
   "sortable": true,
   "synonyms": [
    "ein on file",
    "has an ein",
    "tax id present"
   ],
   "type": "boolean"
  },
  {
   "description": "True for licensed-professional structures (PLLC, PC) — medical, legal, accounting and similar practices that require a professional license.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "entity_is_professional",
   "label": "Professional Entity",
   "masked": false,
   "operators": [
    "eq",
    "neq"
   ],
   "sortable": true,
   "synonyms": [
    "professional entity",
    "pllc",
    "licensed professional entity",
    "professional corporation"
   ],
   "type": "boolean"
  },
  {
   "description": "True for not-for-profit entities. Most B2B buyers filter these OUT (entity_is_nonprofit=false).",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "entity_is_nonprofit",
   "label": "Nonprofit",
   "masked": false,
   "operators": [
    "eq",
    "neq"
   ],
   "sortable": true,
   "synonyms": [
    "non-commercial entity",
    "nonprofit flag"
   ],
   "type": "boolean"
  },
  {
   "description": "True for public-benefit corporations (PBC / benefit-corp filings).",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "entity_is_public_benefit",
   "label": "Public Benefit",
   "masked": false,
   "operators": [
    "eq",
    "neq"
   ],
   "sortable": true,
   "synonyms": [
    "benefit corporation",
    "b-corp",
    "public benefit corp",
    "social enterprise filing"
   ],
   "type": "boolean"
  },
  {
   "description": "Date the business was officially formed with the state. Recent formations indicate new businesses that may need services.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "formation_date",
   "label": "Formation Date",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "gt",
    "gte",
    "lt",
    "lte",
    "between",
    "in",
    "not_in",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "start date",
    "date of formation"
   ],
   "type": "date"
  },
  {
   "allowed_values": [
    "active",
    "dissolved",
    "withdrawn",
    "merged",
    "delinquent",
    "converted",
    "noncompliant",
    "unknown"
   ],
   "description": "Current filing status, canonicalized across states — 'active' matches FL 'A', CO 'Good Standing', TX 'In existence' alike (Tenet #3). Values: active, dissolved, withdrawn, merged, delinquent, converted, noncompliant, unknown (case-insensitive; legacy raw strings are resolved too). The raw state-specific SOS string is status_raw.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "status",
   "label": "Status",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "filing status",
    "standing",
    "registration status"
   ],
   "type": "text"
  },
  {
   "description": "Raw state-specific status string exactly as published by the Secretary of State (FL 'A', CO 'Good Standing'). Provenance vocabulary — filter status (canonical) unless you specifically need a state's own codes.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "status_raw",
   "label": "Status (raw SOS)",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "original status",
    "raw status",
    "state's status wording"
   ],
   "type": "text"
  },
  {
   "description": "When this record was first loaded into GoodLeads (ISO 8601 timestamp). The only-what's-new cohort key for delta syncs and subscriptions. Distinct from formation_date: a late-published filing is old by formation date but new by record-added time — filtering on created_at still catches it.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "created_at",
   "label": "Record Added",
   "masked": false,
   "operators": [
    "gt",
    "gte",
    "lt",
    "lte",
    "between"
   ],
   "sortable": false,
   "synonyms": [
    "record added date",
    "load date",
    "ingested at",
    "date added to database",
    "first seen in dataset"
   ],
   "type": "date"
  },
  {
   "description": "Full name of the primary contact (officer, owner, or registered agent) associated with the business.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": true,
    "website_api": true
   },
   "field": "contact_name",
   "label": "Contact Name",
   "masked": true,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "principal name",
    "key contact",
    "buyer name"
   ],
   "type": "text"
  },
  {
   "description": "Persistent human-readable ID for the contact (e.g., GLC-00087). Independent of any entity — the same contact may be linked to multiple businesses.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "contact_ref",
   "label": "Contact Reference",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "glc",
    "contact reference number"
   ],
   "type": "text"
  },
  {
   "description": "The primary contact's officer/agent role, canonicalized across state dialects — FL's packed code 'PSTD' and a spelled-out 'President' both read 'President, Secretary, Treasurer, Director' / 'President' (Tenet #3). Composite titles are comma-joined, so prefer `contains` ('president') over `eq` unless you want the exact composite. For 'can this person authorize a buy?' filter role_is_decision_maker instead — it answers the question directly.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "role_title",
   "label": "Role Title",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "designation",
    "officer designation",
    "capacity"
   ],
   "type": "text"
  },
  {
   "description": "True when the primary contact's filed role can bind the entity — owner, member/managing member, president/CEO, general partner, and similar (the CHOOSE signal). THE filter for 'contacts for new businesses' / 'decision-makers': it works identically across every state's title dialect. False/NULL = the filed role is clerical (secretary, registered agent) or unresolved.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "role_is_decision_maker",
   "label": "Decision Maker",
   "masked": false,
   "operators": [
    "eq",
    "neq"
   ],
   "sortable": true,
   "synonyms": [
    "decision maker flag",
    "authority flag",
    "signing authority",
    "owner-level role"
   ],
   "type": "boolean"
  },
  {
   "description": "Primary email address for the contact. Sourced from skip tracing or gap-fill enrichment.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": true,
    "website_api": true
   },
   "field": "email_primary",
   "label": "Email",
   "masked": true,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "primary email",
    "best email"
   ],
   "type": "text"
  },
  {
   "description": "Primary phone number for the contact. Sourced from skip tracing or gap-fill enrichment.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": true,
    "website_api": true
   },
   "field": "phone_primary",
   "label": "Phone",
   "masked": true,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "primary phone",
    "telephone",
    "dial number"
   ],
   "type": "text"
  },
  {
   "description": "Composite score (0-100) measuring how likely you are to reach this lead. Combines 7 signals: phone availability, email validity, contact quality, industry classification, self-representation, and more.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "reachability_score",
   "label": "Reachability Score",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "gt",
    "gte",
    "lt",
    "lte",
    "between",
    "in",
    "not_in",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "reach score",
    "contactability score",
    "connectivity score"
   ],
   "type": "number"
  },
  {
   "allowed_values": [
    "On Fire",
    "Very Hot",
    "Hot",
    "Warm",
    "Cold"
   ],
   "description": "Named tier derived from reachability score: On Fire (80-100), Very Hot (60-79), Hot (40-59), Warm (20-39), Cold (0-19). Higher tiers have stronger contact signals.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "reachability_tier",
   "label": "Reachability Tier",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "priority tier",
    "lead temperature",
    "reach band",
    "call priority"
   ],
   "type": "text"
  },
  {
   "description": "Composite score (0-100) measuring whether the contact is the RIGHT person to sell to. Combines 7 signals: self-representation, contact source, location uniqueness, contact exclusivity, name-in-entity match, RA tier, and entity type.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "contact_relevance_score",
   "label": "Contact Relevance Score",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "gt",
    "gte",
    "lt",
    "lte",
    "between",
    "in",
    "not_in",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "decision-maker score",
    "relevance score"
   ],
   "type": "number"
  },
  {
   "allowed_values": [
    "Decision Maker",
    "Likely Decision Maker",
    "Probable Contact",
    "Uncertain Contact",
    "Unlikely Decision Maker"
   ],
   "description": "Named tier from contact relevance score: Decision Maker (85-100), Likely Decision Maker (65-84), Probable Contact (45-64), Uncertain Contact (25-44), Unlikely Decision Maker (0-24).",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "contact_relevance_tier",
   "label": "Contact Relevance Tier",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "decision-maker tier",
    "relevance band",
    "person-fit tier"
   ],
   "type": "text"
  },
  {
   "description": "Composite score (0-100) measuring how confident we are this contact is a real, current, deliverable person — third dimension alongside Reachability and Contact Relevance. Combines the email deliverability verdict, cross-source name verification, and source corroboration. NULL when no enriched contact exists.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "contact_confidence_score",
   "label": "Contact Confidence Score",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "gt",
    "gte",
    "lt",
    "lte",
    "between",
    "in",
    "not_in",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "contact quality score",
    "realness score",
    "person confidence score"
   ],
   "type": "number"
  },
  {
   "allowed_values": [
    "Verified Contact",
    "Likely Contact",
    "Possible Contact",
    "Uncertain Contact"
   ],
   "description": "Named tier from contact confidence score: Verified Contact (75-100), Likely Contact (50-74), Possible Contact (25-49), Uncertain Contact (5-24). Higher tiers signal data we trust enough for premium outreach.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "contact_confidence_tier",
   "label": "Contact Confidence Tier",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "confidence band",
    "contact quality tier"
   ],
   "type": "text"
  },
  {
   "allowed_values": [
    "Confirmed new",
    "Likely new",
    "Uncertain",
    "Likely established",
    "Established"
   ],
   "description": "How sure we are this is a real, active business that is genuinely new — the confidence behind lead_class. Values, newest first: Confirmed new (80-100), Likely new (60-79), Uncertain (40-59), Likely established (20-39), Established (0-19). A business the state gave a new document number for an old operation (a conversion, a merger, a reinstatement) never scores above Established; a filing whose kind the state left unclear lands in Uncertain. Recomputed on every run, so a record can move down the day a structural fact appears.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "new_business_tier",
   "label": "New business tier",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in"
   ],
   "sortable": false,
   "synonyms": [
    "how new",
    "newness",
    "confirmed new",
    "genuinely new",
    "brand new business",
    "new business score tier"
   ],
   "type": "text"
  },
  {
   "allowed_values": [
    "healthcare",
    "legal",
    "accounting",
    "engineering",
    "construction",
    "real_estate",
    "food_and_beverage",
    "transportation",
    "technology",
    "retail",
    "finance_and_holdings",
    "consulting",
    "agriculture",
    "manufacturing",
    "unclassified"
   ],
   "description": "High-level industry classification (e.g., Technology, Real Estate, Professional Services). Derived from entity name and type using rule-based classification. Use `missing` to find unclassified records (no sector assigned) for re-running through an improved classifier.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "industry_sector",
   "label": "Industry Sector",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "market segment",
    "top-level industry"
   ],
   "type": "text"
  },
  {
   "description": "Specific industry within the sector (e.g., Software Development, Property Management). More granular than sector.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "industry_name",
   "label": "Industry",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "specific industry",
    "sub-industry",
    "detailed category",
    "specialty"
   ],
   "type": "text"
  },
  {
   "allowed_values": [
    "confirmed",
    "likely",
    "possible",
    "unknown"
   ],
   "description": "How sure the classifier is about the assigned industry: confirmed / likely / possible / unknown. 'possible' = classified but weakly (a candidate to re-run as the classifier improves); 'unknown' = no sector assigned.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "industry_confidence_tier",
   "label": "Industry Confidence Tier",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "classification confidence",
    "industry certainty"
   ],
   "type": "text"
  },
  {
   "description": "1987 SIC 2-digit major group (e.g. '17' = Construction Special Trade Contractors). Always populated for mapped industries — use for sector-level cohort queries.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "sic_2_digit",
   "label": "SIC Major Group",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "sic major group",
    "2-digit sic"
   ],
   "type": "text"
  },
  {
   "description": "1987 SIC 3-digit industry group (e.g. '176' = Roofing/Siding/Sheet Metal). May be NULL for ambiguous mappings.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "sic_3_digit",
   "label": "SIC Industry Group",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "3-digit sic",
    "sic industry group"
   ],
   "type": "text"
  },
  {
   "description": "1987 SIC 4-digit industry code (e.g. '1761' = Roofing, Siding, and Sheetmetal Work). The most-cited SIC depth for B2B buyers (insurance, finance, direct mail). May be NULL for ambiguous mappings (modern trades like cybersecurity, med spa).",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "sic_4_digit",
   "label": "SIC Code",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "sic industry code",
    "full sic code"
   ],
   "type": "text"
  },
  {
   "description": "2017 NAICS 2-digit sector (e.g. '23' = Construction). Always populated for mapped industries.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "naics_2_digit",
   "label": "NAICS Sector",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "naics sector",
    "2-digit naics"
   ],
   "type": "text"
  },
  {
   "description": "2017 NAICS 3-digit subsector (e.g. '238' = Specialty Trade Contractors). May be NULL for ambiguous mappings.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "naics_3_digit",
   "label": "NAICS Subsector",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "naics subsector",
    "3-digit naics"
   ],
   "type": "text"
  },
  {
   "description": "2017 NAICS 4-digit industry group (e.g. '2381' = Foundation/Structure/Building Exterior). May be NULL for ambiguous mappings.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "naics_4_digit",
   "label": "NAICS Industry Group",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "4-digit naics",
    "naics industry group"
   ],
   "type": "text"
  },
  {
   "description": "2017 NAICS 5-digit industry (e.g. '23816' = Roofing Contractors). May be NULL for ambiguous mappings.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "naics_5_digit",
   "label": "NAICS Industry",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "5-digit naics",
    "naics industry"
   ],
   "type": "text"
  },
  {
   "description": "2017 NAICS 6-digit national industry (e.g. '238160' = Roofing Contractors). The deepest official NAICS code; most specific filter for buyer cohorts.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "naics_6_digit",
   "label": "NAICS National Industry",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "national industry code",
    "full naics"
   ],
   "type": "text"
  },
  {
   "description": "The category this business would carry on its Google Business Profile / Google Maps listing. Stored as Google's stable identifier ('gcid:plumber', 'gcid:restaurant'); the display name ('Plumber', 'Restaurant') is accepted too. To see the identifier, and the NAICS / SIC / MCC that line up with it, ask explain_concept('google category plumber') or GET /api/v1/crosswalk.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "gmb_category",
   "label": "Google Business Category",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "google business profile category",
    "gbp category",
    "google maps category"
   ],
   "type": "text"
  },
  {
   "description": "The 4-digit category code payment processors use to underwrite a merchant — lets a payments seller filter to exactly the merchant types they can onboard. To find the MCC for a trade, or the NAICS / SIC / Google category for an MCC, ask explain_concept('MCC 5812') or GET /api/v1/crosswalk.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "mcc",
   "label": "Merchant Category Code",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "mcc code",
    "card network code",
    "payment processor category"
   ],
   "type": "text"
  },
  {
   "allowed_values": [
    "owner_operator",
    "budget_formation",
    "midmarket_formation",
    "premium_established",
    "suspicious_exclude",
    "unclassified"
   ],
   "description": "Which outreach lane this business falls into, based on who filed its paperwork — founders who filed themselves answer; national-service filings are shielded.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "gtm_segment",
   "label": "GTM Segment",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "buyer profile",
    "outreach segment",
    "sales segment"
   ],
   "type": "text"
  },
  {
   "description": "What kind of registered-agent provider the business chose — from 'the owner themselves' (most reachable) up to premium national services (most shielded).",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "ra_market_tier",
   "label": "RA Market Tier",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "filing service tier",
    "ra tier",
    "agent tier",
    "agent market segment"
   ],
   "type": "text"
  },
  {
   "description": "Whether the registered agent is a commercial service (true) vs. the business owner themselves (false). Commercial RA clients are harder to reach directly.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "ra_is_commercial",
   "label": "RA Is Commercial",
   "masked": false,
   "operators": [
    "eq",
    "neq"
   ],
   "sortable": true,
   "synonyms": [
    "commercial agent",
    "professional ra",
    "ra service",
    "third-party agent"
   ],
   "type": "boolean"
  },
  {
   "description": "Whether the business owner filed as their own registered agent, suggesting a bootstrapped operation where the founder is directly reachable.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "ra_self_represented",
   "label": "RA Self-Represented",
   "masked": false,
   "operators": [
    "eq",
    "neq"
   ],
   "sortable": true,
   "synonyms": [
    "own agent",
    "owner is agent",
    "acts as own agent"
   ],
   "type": "boolean"
  },
  {
   "description": "Whether the registered agent is an attorney or law firm. Attorney-RA entities typically signal a sophisticated/shielded structure where the law firm filters direct outreach to the owner. SMB-focused buyers usually want to filter these OUT (ra_is_attorney=false). Surfaced by migration 026.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "ra_is_attorney",
   "label": "RA Is Attorney",
   "masked": false,
   "operators": [
    "eq",
    "neq"
   ],
   "sortable": true,
   "synonyms": [
    "attorney agent",
    "lawyer as agent"
   ],
   "type": "boolean"
  },
  {
   "description": "Whether a phone number was found for the primary contact through skip tracing or gap-fill enrichment.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "has_phone",
   "label": "Has Phone",
   "masked": false,
   "operators": [
    "eq",
    "neq"
   ],
   "sortable": true,
   "synonyms": [
    "phone available",
    "phone found",
    "phone fill flag"
   ],
   "type": "boolean"
  },
  {
   "description": "Whether an email address was found for the primary contact through skip tracing or gap-fill enrichment.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "has_email",
   "label": "Has Email",
   "masked": false,
   "operators": [
    "eq",
    "neq"
   ],
   "sortable": true,
   "synonyms": [
    "email available",
    "email found",
    "email fill flag"
   ],
   "type": "boolean"
  },
  {
   "description": "Whether the primary contact has either a phone number or an email — the broadest sellable contact set (union of has_phone and has_email). Synthesized at query time from has_phone OR has_email; not stored on lead_browse.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": false,
    "website_api": true
   },
   "field": "has_phone_or_email",
   "label": "Has Phone or Email",
   "masked": false,
   "operators": [
    "eq"
   ],
   "sortable": false,
   "synonyms": [
    "any channel",
    "either channel present"
   ],
   "type": "boolean"
  },
  {
   "allowed_values": [
    "abuse",
    "catch-all",
    "do_not_mail",
    "invalid",
    "spamtrap",
    "unknown",
    "valid"
   ],
   "description": "Whether the email is safe to send to: 'valid' passed live verification; 'catch-all' means the domain accepts all mail (unproven mailbox); 'unknown' means unverified.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "zb_email_status",
   "label": "Email Status",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "email validation status",
    "bounce risk",
    "send safety",
    "deliverability verdict"
   ],
   "type": "text",
   "v1_name": "email_deliverability_status"
  },
  {
   "description": "How many times we have run the first owner phone-and-email lookup on this record, counting every attempt (match, no match, or a failed lookup) — not just successful ones. 0 = never attempted. Filter skip_trace_attempts = 0 to find records that haven't been through skip trace yet; skip_trace_attempts < 2 to exclude records already tried twice with no result.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "skip_trace_attempts",
   "label": "Skip Trace Attempts",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "gt",
    "gte",
    "lt",
    "lte",
    "between",
    "in",
    "not_in",
    "exists",
    "missing"
   ],
   "sortable": true,
   "type": "number"
  },
  {
   "description": "How many times we have run the second, gap-filling phone-and-email lookup on this record, counting every attempt (match, no match, or a failed lookup) — not just successful ones. 0 = never attempted. Filter gapfill_attempts = 0 to find records that haven't been gap-filled yet; gapfill_attempts < 2 to exclude records already tried twice with no result — e.g. `has_email = false AND gapfill_attempts < 2 AND skip_trace_attempts < 2` targets records genuinely worth another enrichment dip, not likely-dead ones.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "gapfill_attempts",
   "label": "Gap-fill Attempts",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "gt",
    "gte",
    "lt",
    "lte",
    "between",
    "in",
    "not_in",
    "exists",
    "missing"
   ],
   "sortable": true,
   "type": "number"
  },
  {
   "allowed_values": [
    "landline",
    "mobile",
    "unknown",
    "voip"
   ],
   "description": "Type of phone number: mobile (best for SMS/calls), landline, voip. Mobile numbers have highest outreach success.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "phone_type",
   "label": "Phone Type",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "mobile or landline",
    "phone kind",
    "number type"
   ],
   "type": "text"
  },
  {
   "allowed_values": [
    "RESIDENTIAL",
    "COMMERCIAL",
    "INDUSTRIAL",
    "AGRICULTURAL",
    "EXEMPT",
    "VACANT",
    "UNKNOWN"
   ],
   "description": "Type of property at the business address: RESIDENTIAL, COMMERCIAL, INDUSTRIAL, AGRICULTURAL, EXEMPT, VACANT, UNKNOWN. Residential addresses with a single entity suggest an owner-operator.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "property_classification",
   "label": "Property Classification",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "property type",
    "real estate type",
    "residential or commercial",
    "land use"
   ],
   "type": "text"
  },
  {
   "description": "Whether the business address is on vacant land. Vacant land entities may be shell companies or land holdings.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "property_is_vacant",
   "label": "Property Is Vacant",
   "masked": false,
   "operators": [
    "eq",
    "neq"
   ],
   "sortable": true,
   "synonyms": [
    "vacant land",
    "empty lot",
    "undeveloped parcel"
   ],
   "type": "boolean"
  },
  {
   "description": "Assessed/appraised value of the property in dollars. Higher values may indicate established businesses.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "property_assessed_value",
   "label": "Property Assessed Value",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "gt",
    "gte",
    "lt",
    "lte",
    "between",
    "in",
    "not_in",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "assessed value",
    "property value",
    "home value",
    "real estate value"
   ],
   "type": "number"
  },
  {
   "description": "Principal business address from the SOS filing. May be a home address for self-represented businesses.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "principal_address",
   "label": "Address",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "main address",
    "primary address"
   ],
   "type": "text"
  },
  {
   "description": "Federal county FIPS code from geocoding. Useful for geographic targeting and market analysis.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "county_fips",
   "label": "County FIPS",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "county code",
    "fips code",
    "county identifier"
   ],
   "type": "text"
  },
  {
   "description": "City from the principal business address, canonicalized by the address normalization brain to one customer-visible spelling per city (USPS primary city for the record's ZIP, Title Case — 'Fort Lauderdale', not 'FT. LAUDERDALE'). Filters are case- and spelling-variant tolerant: 'ft lauderdale' matches 'Fort Lauderdale'.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "principal_city",
   "label": "City",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "municipality",
    "business city"
   ],
   "type": "text"
  },
  {
   "description": "5-digit ZIP code from the principal business address.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "principal_zip",
   "label": "ZIP",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "five-digit zip",
    "postal code of record"
   ],
   "type": "text"
  },
  {
   "allowed_values": [
    "Mailing Address",
    "Officer of Record",
    "Organizer of Record",
    "Registered Agent (Self)",
    "State Filing"
   ],
   "description": "Where we verified and reached the owner: 'State Filing' (the principal address on the filing — the default), 'Officer of Record', 'Organizer of Record' (New York — the person who filed the Articles), 'Mailing Address', or 'Registered Agent (Self)'. Anything other than State Filing means we worked a better address from the same filing, chosen when the filing principal is a mail drop or formation suite. Browse displays that working address; every file and CRM push prints the filing address in principal_address and the working address beside it in working_address. The record's `state` is always the formation state.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "address_source",
   "label": "Address Source",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "address provenance",
    "which address we display",
    "working address origin",
    "address origin"
   ],
   "type": "text"
  },
  {
   "description": "Named neighborhood or unincorporated community the business address sits in (e.g. 'Capitol Hill', 'South Austin', 'Kendall') — the most specific public-gazetteer polygon containing the geocoded point: a Who's On First neighbourhood first, else a Census Designated Place. Finer than city, so pair it with state (and usually city or MSA). Null outside every named polygon or where the gazetteer is not loaded. GET /api/v1/schema/geo-words?state=XX lists every word and alias a state resolves.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "neighborhood",
   "label": "Neighborhood",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "neighbourhood",
    "district",
    "part of town",
    "side of town",
    "community",
    "area of the city",
    "barrio"
   ],
   "type": "text"
  },
  {
   "description": "Time zone of the business address, as an IANA zone name — 'America/New_York', 'America/Chicago', 'America/Denver', 'America/Los_Angeles', 'America/Phoenix'. Use it to call inside local business hours and to schedule a send. It is a NAME, not a fixed offset, because the offset depends on the date: America/New_York is UTC-5 in January and UTC-4 in July, and America/Phoenix never changes. Dialers, CRMs and schedulers take the name directly. Taken from the address (the statutory boundaries in 49 CFR Part 71), never from the area code — number portability means a phone's area code no longer says where anyone is. States split: Florida's panhandle is Central while Miami is Eastern, and El Paso is Mountain while the rest of Texas is Central. Null when the record has no coordinates.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "time_zone",
   "label": "Time Zone",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "type": "text"
  },
  {
   "description": "Standard government code for the metro area (e.g. Tampa metro) — use msa_name if you just want the metro's name.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "msa_code",
   "label": "MSA Code (CBSA)",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "cbsa code",
    "metro code"
   ],
   "type": "text"
  },
  {
   "description": "Canonical Metropolitan Statistical Area name (e.g. 'Tampa-St. Petersburg-Clearwater, FL'). Multi-select for territory sellers covering adjacent metros. Reflects where the business address sits, not the state it filed in — a company filed in New York with a Miami address counts under Miami, so metros outside our live states appear here without meaning we cover that state's filings.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "msa_name",
   "label": "MSA",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "metro name",
    "city region"
   ],
   "type": "text"
  },
  {
   "allowed_values": [
    "Under $50K",
    "$50K-$75K",
    "$75K-$100K",
    "$100K-$150K",
    "$150K+"
   ],
   "description": "Income band of the NEIGHBORHOOD around the business address — the census tract's median household income per the US Census Bureau's American Community Survey, banded: 'Under $50K', '$50K-$75K', '$75K-$100K', '$100K-$150K', '$150K+'. A days-old filing address is usually the owner's home, so this reads as the founder's neighborhood affluence — an area statistic for prioritization and offer-fit, never the contact's personal income.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": true,
    "website_api": true
   },
   "field": "tract_income_band",
   "label": "Neighborhood Income",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "income band",
    "household income",
    "neighborhood income",
    "affluence",
    "buying power",
    "wealth band"
   ],
   "type": "text"
  },
  {
   "description": "The raw median household income (dollars) of the census tract around the business address, from the US Census Bureau's ACS 5-year estimates. Numeric sibling of Neighborhood Income for range filters (e.g. gte 120000). An area statistic, not the contact's income.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": true,
    "v1_filter": true,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "tract_median_income",
   "label": "Neighborhood Median Income",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "gt",
    "gte",
    "lt",
    "lte",
    "between",
    "in",
    "not_in",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "median income",
    "median household income",
    "area income",
    "census income"
   ],
   "type": "number"
  },
  {
   "description": "First 3 digits of phone_primary — useful for territory-by-area-code targeting. Auto-syncs with the phone column (Postgres generated column).",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "area_code",
   "label": "Phone Area Code",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "phone prefix",
    "npa",
    "dialing code",
    "phone area"
   ],
   "type": "text"
  },
  {
   "allowed_values": [
    "Match",
    "No_Match",
    "Tie"
   ],
   "description": "Result of US Census geocoding: Match, No_Match, Tie. Match means the address was successfully geolocated.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "geocode_status",
   "label": "Geocode Status",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "geocoding result",
    "address match status",
    "geolocation status"
   ],
   "type": "text"
  },
  {
   "description": "ID of one processing run on our side — use it to retrieve exactly the records that run produced.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "run_manifest_id",
   "label": "Pipeline Run",
   "masked": false,
   "operators": [
    "eq"
   ],
   "sortable": false,
   "synonyms": [
    "run id",
    "cohort id",
    "pipeline run id",
    "processing run"
   ],
   "type": "text"
  },
  {
   "description": "Every business with the same owner (ADR-060): the group's reference (GLX-…) as stamped on each member. The record page's 'N businesses' link opens this cohort.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "cluster_ref",
   "label": "Same owner",
   "masked": false,
   "operators": [
    "eq"
   ],
   "sortable": false,
   "synonyms": [
    "same owner",
    "owner group",
    "same-owner group",
    "one owner"
   ],
   "type": "text"
  },
  {
   "description": "Records a pipeline brain has never processed — the value is a stage key (e.g. 'ra', 'classify', 'geocode'). These are the stage-coverage gaps the Data Quality scorecard counts; the same filter scopes a repair run on the pipeline trigger, so a gap cohort is one click from browse to fix.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "missing_stage",
   "label": "Missing pipeline stage",
   "masked": false,
   "operators": [
    "eq"
   ],
   "sortable": false,
   "synonyms": [
    "coverage gap",
    "never processed",
    "unstamped records",
    "stage never ran",
    "unprocessed by brain"
   ],
   "type": "text"
  },
  {
   "allowed_values": [
    "name_and_address",
    "address_only",
    "mailing_fallback",
    "name_with_state",
    "operating_business",
    "hold"
   ],
   "description": "How the platform decided to hunt for this record's contact info — or 'hold' when the entity looks non-operating and isn't worth spending on.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "enrichment_strategy",
   "label": "Sellability strategy",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "routing decision",
    "enrichment plan",
    "lookup strategy",
    "trace mode"
   ],
   "type": "text"
  },
  {
   "description": "How many of our records carry this same person-name — high counts mean a professional filer's name, not a real owner.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "name_density",
   "label": "Name density",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "gt",
    "gte",
    "lt",
    "lte",
    "between",
    "in",
    "not_in",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "shared-name count",
    "same-name entities in corpus",
    "name frequency in corpus"
   ],
   "type": "number"
  },
  {
   "allowed_values": [
    "very_common",
    "common",
    "uncommon",
    "rare"
   ],
   "description": "How rare the contact's last name is in the US population — rare names make identity matches much more certain.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "name_rarity",
   "label": "Name rarity",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "surname rarity",
    "rare last name",
    "how common is the last name in the us"
   ],
   "type": "text"
  },
  {
   "description": "How many businesses are registered at this exact spot — one means a real unique address; dozens mean a mail drop or filing-mill suite.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "address_density",
   "label": "Address density",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "gt",
    "gte",
    "lt",
    "lte",
    "between",
    "in",
    "not_in",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "same-address count",
    "shared address count",
    "address crowding",
    "entities at this address"
   ],
   "type": "number"
  },
  {
   "allowed_values": [
    "operating_business",
    "mail_drop_or_formation_suite",
    "asset_protection_holding",
    "single_asset_property_llc"
   ],
   "description": "Whether this is a real operating business worth calling — versus a mail-drop registration, an asset-protection shell, or a property-holding LLC.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "entity_archetype",
   "label": "Entity archetype",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "business kind",
    "operating vs holding",
    "entity category"
   ],
   "type": "text"
  },
  {
   "description": "How many businesses share this owner, counting this one. 2 or more means the same person filed more than one business, so one call reaches the set — a portfolio owner filing three LLCs this month is one relationship, not three cold calls. Blank for a business with no related filing, so a numeric filter never matches those.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "cluster_size",
   "label": "Owner group size",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "gt",
    "gte",
    "lt",
    "lte",
    "between",
    "in",
    "not_in",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "businesses under one owner",
    "portfolio owner",
    "serial founder",
    "related filings",
    "filed more than one"
   ],
   "type": "number"
  },
  {
   "allowed_values": [
    "XF-O",
    "XF-V",
    "XP-O",
    "XP-V",
    "XV-V",
    "XM-O",
    "XM-V"
   ],
   "description": "This record's place among the businesses under one owner, as a type and a role. The type: XF one operating business plus the holding companies built around it; XP several operating businesses under one owner; XV a structure (holding companies only, a deal being formed); XM the same across states. The role: O an operating business, V a holding company (a property LLC, a GP / LP). Filter the O roles to call the business the owner runs; the V roles name the operating business they serve in cluster_operating_name. Blank for a business with no related filing.",
   "doors": {
    "export": true,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": true,
    "v1_response": true,
    "website_api": true
   },
   "field": "cluster_code",
   "label": "Owner group role",
   "masked": false,
   "operators": [
    "eq",
    "neq",
    "in",
    "not_in",
    "contains",
    "does_not_contain",
    "exists",
    "missing"
   ],
   "sortable": true,
   "synonyms": [
    "owner group role",
    "holding company or operating business",
    "portfolio role",
    "group type"
   ],
   "type": "text"
  },
  {
   "description": "Territory boundary — matches leads whose geocoded location falls inside a polygon. Value is a ring of [longitude, latitude] vertex pairs, e.g. [[-80.3, 25.7], [-80.1, 25.7], [-80.1, 25.9], [-80.3, 25.9]] (auto-closed, max 500 vertices). Drawn on the Map View's territory tool; works on browse, geo, export, and pipeline scoping like any other filter. Leads without coordinates never match.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "geo_polygon",
   "label": "Map area",
   "masked": false,
   "operators": [
    "within"
   ],
   "sortable": false,
   "synonyms": [
    "territory boundary",
    "map area",
    "draw-to-select region",
    "custom territory",
    "polygon filter"
   ],
   "type": "geo"
  },
  {
   "description": "Radius territory — matches leads whose geocoded location is within N miles of a center. Value is an object: {\"zip\": \"80013\", \"miles\": 15} (the ZIP's Census ZCTA centroid), {\"city\": \"Aurora\", \"state\": \"CO\", \"miles\": 15} (the mean of the city's ZIP centroids), or {\"lat\": 39.66, \"lon\": -104.77, \"miles\": 15}. Miles > 0 and <= 300. Works on browse, summary, geo, export, and pipeline scoping like any other filter. Leads without coordinates never match.",
   "doors": {
    "export": false,
    "mcp": true,
    "preview": false,
    "v1_filter": false,
    "v1_filter_with_key": false,
    "v1_response": false,
    "website_api": true
   },
   "field": "geo_radius",
   "label": "Within miles of",
   "masked": false,
   "operators": [
    "within"
   ],
   "sortable": false,
   "synonyms": [
    "within miles of",
    "mile radius",
    "near a zip",
    "around a city",
    "radius filter",
    "service area radius"
   ],
   "type": "geo"
  }
 ],
 "generated_from": "tools/build_capability_manifest.py — never edit by hand; run --write",
 "glossary": {
  "Contact": "The person who can authorize a purchase for that business.",
  "Entity": "A business pulled from a Secretary of State filing.",
  "Lead": "A business plus its owner, scores and attributes. The unit you buy.",
  "Lead ID": "A permanent reference like GL-CO-00042 (GL-<STATE>-<number>); the lead_ref field. It never changes.",
  "matching": "Every record that fits your filter, named owner or not. Counts show it; you are never billed on it.",
  "sellable": "A matching record whose filing names a person. Only sellable records are ever billed or delivered."
 },
 "limits": {
  "checkout_calls_per_minute": 5,
  "first_party_calls_per_minute": {
   "no_key": 30
  },
  "first_party_page_size_max_no_key": 25,
  "rate_limit_response": "HTTP 429 with a Retry-After header (seconds to wait)",
  "summary_timeout_seconds": 8,
  "v1_calls_per_minute": {
   "live_key": 120,
   "no_key": 30,
   "test_key": 60
  },
  "v1_failed_key_attempts_per_minute": 20,
  "v1_filter": {
   "max_chars": 4000,
   "max_depth": 4,
   "max_leaves": 25
  },
  "v1_page_size": {
   "default": 25,
   "max": 100,
   "max_no_key": 25
  },
  "v1_read_timeout_seconds": 10
 },
 "manifest_schema": "2026-10.1",
 "mcp_tools": [
  "browse_leads",
  "checkout_list",
  "create_checkout",
  "data_quality_scorecard",
  "describe_surface",
  "explain_concept",
  "find_lead_by_glid",
  "interpret_list",
  "list_filterable_fields",
  "list_live_states",
  "list_products",
  "list_starters",
  "quote_list"
 ],
 "partner": {
  "contact": "hello@goodleads.club",
  "declared_use": "platform_integration",
  "terms_gist": "API access is for your own internal use. Do not resell or proxy API responses. Do not build a competing client. Do not exceed the rate limits.",
  "terms_section": "§10 API terms",
  "terms_url": "https://goodleads.club/terms.html"
 },
 "prices": {
  "both_cents": 70,
  "currency": "USD",
  "line": "name and address $0.25 per record · plus one verified phone or email $0.50 · plus both $0.70 (price rule v1; live prices always come from the summary call's `prices` block)",
  "live_source": "GET /v1/pricing (always current)",
  "name_address_cents": 25,
  "offer_code": null,
  "one_channel_cents": 50,
  "price_rule_version": 1
 },
 "states": [
  {
   "code": "CO",
   "name": "Colorado"
  },
  {
   "code": "CT",
   "name": "Connecticut"
  },
  {
   "code": "FL",
   "name": "Florida"
  },
  {
   "code": "NY",
   "name": "New York"
  },
  {
   "code": "TX",
   "name": "Texas"
  },
  {
   "code": "VA",
   "name": "Virginia"
  }
 ],
 "territory": {
  "code_systems": [
   "NAICS",
   "SIC",
   "Google category",
   "MCC"
  ],
  "geography": [
   "metro",
   "county",
   "city",
   "ZIP",
   "neighborhood",
   "time zone",
   "tract income"
  ],
  "group_by_max_fields": 2
 }
}
