{
  "openapi": "3.1.0",
  "info": {
    "title": "AssessorSearch Property Data API",
    "version": "1.0.0",
    "description": "The AssessorSearch Property Data API resolves United States properties by address or APN plus county FIPS code and returns a core public-record property profile: ownership, assessed and market values, taxes, sales, building characteristics, and location detail.\n\n## Authentication\n\nEvery request requires an API key sent in the `X-API-Key` header:\n\n```\nX-API-Key: pda_live_your_key\n```\n\nKeys are created in the [AssessorSearch dashboard](https://assessorsearch.com/dashboard), are shown once at creation, and can be deleted at any time. Keep keys server-side; never ship them in browser or mobile code.\n\n## Credits\n\n- A returned core property record costs **1 credit**. That happens on `GET /v1/properties` when `status` is `matched`, and on every successful `GET /v1/properties/{property_id}`.\n- Mortgage/lien detail, deed/transaction history, permit history, comparable sales, and comparable rentals cost **3 credits** when one or more rows are returned. Empty detail responses cost **0 credits**.\n- Lookups that do not return a property record (`possible`, `needs_unit`, `needs_location`, `ambiguous`, `no_match`, `resolver_error`) spend **0 credits**.\n- Included credits reset monthly. Overage billing is enabled by default on paid API plans and continues at the plan's overage rate up to the account's monthly overage budget. You can lower that budget or turn overages off in the dashboard.\n- A request that would spend credits returns `402` with code `credit_limit_exceeded` when overages are off, unavailable, or out of budget.\n- Requests over the per-minute rate limit return `429` with a `Retry-After` header.\n\n## Match statuses\n\n| `status` | Property record | Credits | Meaning |\n| --- | --- | --- | --- |\n| `matched` | Returned | 1 | High-confidence match; the core property record is included. |\n| `possible` | Not returned | 0 | A candidate is close, but not close enough for automatic return. |\n| `needs_unit` | Not returned | 0 | The base address was found but requires a unit or suite. |\n| `needs_location` | Not returned | 0 | The submitted address lacks a house number or location. |\n| `ambiguous` | Not returned | 0 | Multiple close property records matched. |\n| `no_match` | Not returned | 0 | No sufficiently close indexed property record was found. |\n| `resolver_error` | Not returned | 0 | The matching service was temporarily unavailable. |\n\nFor unmatched lookups, `input.address` preserves the submitted text and `input.normalized_address` contains the normalized address when a retry occurred. The first `reason_codes` value describes the customer-facing outcome, such as `candidate_address_mismatch`, `property_not_found`, `multiple_close_candidates`, or `missing_location`; any following values are lower-level matching diagnostics.\n\n## Data limits and compliance\n\n- Responses are indexed public-record data, not official county records. Verify with the county assessor or recorder when certified records are required.\n- Records update on source and pipeline schedules; coverage and field availability vary by county.\n- Do not use API data for FCRA-governed decisions such as credit, employment, housing, or tenant screening.\n- The API is not a title search, legal opinion, tax service, or appraisal certification.\n",
    "contact": {
      "name": "AssessorSearch",
      "url": "https://assessorsearch.com/property-data-api"
    }
  },
  "servers": [
    {
      "url": "https://api.assessorsearch.com"
    }
  ],
  "tags": [
    {
      "name": "property-data-api",
      "x-displayName": "Properties",
      "description": "Resolve properties, retrieve core records, and fetch paid detail add-ons."
    }
  ],
  "paths": {
    "/v1/properties": {
      "get": {
        "tags": ["property-data-api"],
        "summary": "Look up a property",
        "description": "Resolve an address, or an APN plus county FIPS code, and return the core property record when match confidence is high.\n\nCharges **1 credit** only when `status` is `matched` and a property record is returned. All other statuses are free and include `reason_codes` and a human-readable `message` explaining what to fix.",
        "operationId": "lookup_property_v1_properties_get",
        "parameters": [
          {
            "name": "address",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1
                },
                {
                  "type": "null"
                }
              ],
              "description": "Free-form property address",
              "title": "Address"
            },
            "description": "Free-form property address"
          },
          {
            "name": "apn",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1
                },
                {
                  "type": "null"
                }
              ],
              "description": "Assessor parcel number",
              "title": "Apn"
            },
            "description": "Assessor parcel number"
          },
          {
            "name": "fips",
            "in": "query",
            "required": false,
            "schema": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 5,
                  "maxLength": 5
                },
                {
                  "type": "null"
                }
              ],
              "description": "County FIPS code",
              "title": "Fips"
            },
            "description": "County FIPS code"
          },
          {
            "name": "include_candidates",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "description": "Include non-accepted resolver candidates for review/debug workflows",
              "default": false,
              "title": "Include Candidates"
            },
            "description": "Include non-accepted resolver candidates for review/debug workflows"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropertyLookupResponse"
                },
                "examples": {
                  "matched": {
                    "summary": "Matched (1 credit)",
                    "value": {
                      "status": "matched",
                      "input": {
                        "address": "3352 Goldfinch Street, San Diego, CA 92103",
                        "apn": null,
                        "fips": null
                      },
                      "match": {
                        "property_id": "12276B6",
                        "address": "3352 Goldfinch St, San Diego, CA 92103",
                        "apn": "451-492-10-00",
                        "fips": "06073",
                        "county": "San Diego County, California",
                        "confidence": "high"
                      },
                      "property": {
                        "property_id": "12276B6",
                        "apn": "451-492-10-00",
                        "alternate_apn": "4514921000",
                        "fips": "06073",
                        "county": "San Diego County, California",
                        "property_address": "3352 Goldfinch St, San Diego, CA 92103",
                        "property_street": "3352 Goldfinch St",
                        "property_city": "San Diego",
                        "property_state": "CA",
                        "property_zipcode": "92103",
                        "latitude": 32.740421,
                        "longitude": -117.171596,
                        "source_last_updated": "2026-05-18",
                        "last_updated": "2026-06-27",
                        "owner_1_full_name": "Morgan Family Trust",
                        "owner_2_full_name": null,
                        "mailing_full_address": "PO Box 3352, San Diego, CA 92103",
                        "mailing_city": "San Diego",
                        "mailing_state": "CA",
                        "mailing_zip_code": "92103",
                        "occupancy": "Owner Occupied",
                        "land_market_value": 130000,
                        "structure_market_value": 375000,
                        "total_market_value": 505000,
                        "assessed_land_value": 112294,
                        "assessed_structure_value": 397517,
                        "assessed_value": 509811,
                        "tax_year": "2025",
                        "annual_tax_amount": 5735.48,
                        "tax_rate": 0.01125,
                        "is_tax_exemption": true,
                        "exemption_type": "Homeowner",
                        "delinquent_year": null,
                        "last_sale_date": "2018-05-01",
                        "last_sale_amount": 454000,
                        "is_listed": false,
                        "is_listed_date": null,
                        "is_pre_foreclosure": false,
                        "pre_foreclosure_status": null,
                        "pre_foreclosure_date": null,
                        "land_use_code": "1001",
                        "land_use_category": "Single Family Home",
                        "zoning": null,
                        "year_built": "2004",
                        "year_built_effective": "2004",
                        "beds": 4,
                        "bedrooms": 4,
                        "baths": 3.5,
                        "full_bathrooms": 3,
                        "half_bathrooms": 1,
                        "total_rooms": 8,
                        "sqft": 2594,
                        "living_area_sqft": 2594,
                        "lot_size_sqft": 10392,
                        "lot_size_acres": 0.239,
                        "basement_sqft": null,
                        "cooling_type": "Central",
                        "heating_type": "Central",
                        "fireplace_ind": true,
                        "exterior_wall_type": "Stucco",
                        "roof_type": "Composition Shingle",
                        "pool_ind": true,
                        "pool_type": "Pool & Spa (both)",
                        "sewer_type": "Public Sewer",
                        "water_type": "Public Water",
                        "garage_type": "Garage",
                        "garage_parking": 3,
                        "legal_description": "BLK 400 LOT K TR DB0013PG522",
                        "municipality": "CITY OF SAN DIEGO",
                        "subdivision": "HORTONS ADD LOCKLING",
                        "neighborhood": "HORTONS ADD LOCKLING",
                        "census_tract": "006100",
                        "census_block": "1003",
                        "tract_num": null,
                        "legal_lot": "28",
                        "legal_block": null,
                        "hoa_name": "PARK CENTRAL TOWERS OWNERS",
                        "hoa_type": "Mandatory",
                        "hoa_annual_fee": 420,
                        "estimated_market_value": 584205,
                        "avg_rent_estimate": 2685,
                        "gross_yield_percentage": 5.52,
                        "cap_rate_percentage": 3.03,
                        "combined_estimated_loan_balance": 320668,
                        "estimated_equity": 263537,
                        "estimated_ltv": 54.89
                      },
                      "credits": {
                        "charged": 1
                      },
                      "reason_codes": [],
                      "message": null
                    }
                  },
                  "possible": {
                    "summary": "Possible match (0 credits)",
                    "value": {
                      "status": "possible",
                      "input": {
                        "address": "503 second ave lebanon pa",
                        "normalized_address": "503 S 2nd Ave, Lebanon, PA 17042"
                      },
                      "match": {
                        "property_id": "6DEE911",
                        "address": "503 S 2nd Ave, Lebanon, PA 17042",
                        "apn": "123-456",
                        "fips": "42075",
                        "county": "Lebanon County, Pennsylvania",
                        "confidence": "possible",
                        "normalized_address": "503 S 2nd Ave, Lebanon, PA 17042"
                      },
                      "property": null,
                      "credits": {
                        "charged": 0
                      },
                      "reason_codes": ["zip_mismatch"],
                      "message": "A possible property record was found, but its address is not close enough for an automatic match. Verify the address or search by APN and county FIPS code."
                    }
                  },
                  "needs_location": {
                    "summary": "Needs more input (0 credits)",
                    "value": {
                      "status": "needs_location",
                      "input": {
                        "address": "Oakwood Cir 37055"
                      },
                      "match": null,
                      "property": null,
                      "credits": {
                        "charged": 0
                      },
                      "reason_codes": ["missing_location", "parse_weak"],
                      "message": "The address is missing a house number or location. Add a house number and city/state or ZIP code."
                    }
                  },
                  "no_match": {
                    "summary": "Address understood, no close record (0 credits)",
                    "value": {
                      "status": "no_match",
                      "input": {
                        "address": "6740 Rivercrest Dr, Riverside, CA 92509",
                        "normalized_address": "6740 Rivercrest Dr, Riverside, CA 92509"
                      },
                      "match": null,
                      "property": null,
                      "credits": {
                        "charged": 0
                      },
                      "reason_codes": [
                        "candidate_address_mismatch",
                        "street_name_low_sim"
                      ],
                      "message": "The closest indexed property records were not close enough to the submitted address. Verify the address or search by APN and county FIPS code. No credits were charged."
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or deleted API key.",
            "content": {
              "application/json": {
                "example": {
                  "detail": "Invalid API key"
                }
              }
            }
          },
          "402": {
            "description": "The request would exceed the account's available credits. This happens at the included allowance when overages are off or unavailable, and at the configured monthly overage budget when they are enabled. The response detail includes `code: credit_limit_exceeded`, current usage, and the included plan allowance in `monthly_credit_limit`.",
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "credit_limit_exceeded",
                    "message": "Monthly API credit limit reached",
                    "credits_used": 5000,
                    "monthly_credit_limit": 5000,
                    "required_credits": 1
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded. Retry after the number of seconds in the `Retry-After` header.",
            "content": {
              "application/json": {
                "example": {
                  "detail": "Rate limit exceeded"
                }
              }
            }
          }
        }
      }
    },
    "/v1/properties/{property_id}": {
      "get": {
        "tags": ["property-data-api"],
        "summary": "Get a property record by ID",
        "description": "Fetch the core property record for an AssessorSearch `property_id` you already hold from an earlier lookup response.\n\nCharges **1 credit** per successful response. Unlike the lookup and detail endpoints, the response body is the property record itself and does not include a `credits` object.",
        "operationId": "get_public_property_core_v1_properties__property_id__get",
        "parameters": [
          {
            "name": "property_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "AssessorSearch property ID",
              "title": "Property Id"
            },
            "description": "AssessorSearch property ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicPropertyCore"
                },
                "examples": {
                  "core_record": {
                    "summary": "Core property record (1 credit)",
                    "value": {
                      "property_id": "12276B6",
                      "apn": "451-492-10-00",
                      "alternate_apn": "4514921000",
                      "fips": "06073",
                      "county": "San Diego County, California",
                      "property_address": "3352 Goldfinch St, San Diego, CA 92103",
                      "property_street": "3352 Goldfinch St",
                      "property_city": "San Diego",
                      "property_state": "CA",
                      "property_zipcode": "92103",
                      "latitude": 32.740421,
                      "longitude": -117.171596,
                      "source_last_updated": "2026-05-18",
                      "last_updated": "2026-06-27",
                      "owner_1_full_name": "Morgan Family Trust",
                      "owner_2_full_name": null,
                      "mailing_full_address": "PO Box 3352, San Diego, CA 92103",
                      "mailing_city": "San Diego",
                      "mailing_state": "CA",
                      "mailing_zip_code": "92103",
                      "occupancy": "Owner Occupied",
                      "land_market_value": 130000,
                      "structure_market_value": 375000,
                      "total_market_value": 505000,
                      "assessed_land_value": 112294,
                      "assessed_structure_value": 397517,
                      "assessed_value": 509811,
                      "tax_year": "2025",
                      "annual_tax_amount": 5735.48,
                      "tax_rate": 0.01125,
                      "is_tax_exemption": true,
                      "exemption_type": "Homeowner",
                      "delinquent_year": null,
                      "last_sale_date": "2018-05-01",
                      "last_sale_amount": 454000,
                      "is_listed": false,
                      "is_listed_date": null,
                      "is_pre_foreclosure": false,
                      "pre_foreclosure_status": null,
                      "pre_foreclosure_date": null,
                      "land_use_code": "1001",
                      "land_use_category": "Single Family Home",
                      "zoning": null,
                      "year_built": "2004",
                      "year_built_effective": "2004",
                      "beds": 4,
                      "bedrooms": 4,
                      "baths": 3.5,
                      "full_bathrooms": 3,
                      "half_bathrooms": 1,
                      "total_rooms": 8,
                      "sqft": 2594,
                      "living_area_sqft": 2594,
                      "lot_size_sqft": 10392,
                      "lot_size_acres": 0.239,
                      "basement_sqft": null,
                      "cooling_type": "Central",
                      "heating_type": "Central",
                      "fireplace_ind": true,
                      "exterior_wall_type": "Stucco",
                      "roof_type": "Composition Shingle",
                      "pool_ind": true,
                      "pool_type": "Pool & Spa (both)",
                      "sewer_type": "Public Sewer",
                      "water_type": "Public Water",
                      "garage_type": "Garage",
                      "garage_parking": 3,
                      "legal_description": "BLK 400 LOT K TR DB0013PG522",
                      "municipality": "CITY OF SAN DIEGO",
                      "subdivision": "HORTONS ADD LOCKLING",
                      "neighborhood": "HORTONS ADD LOCKLING",
                      "census_tract": "006100",
                      "census_block": "1003",
                      "tract_num": null,
                      "legal_lot": "28",
                      "legal_block": null,
                      "hoa_name": "PARK CENTRAL TOWERS OWNERS",
                      "hoa_type": "Mandatory",
                      "hoa_annual_fee": 420,
                      "estimated_market_value": 584205,
                      "avg_rent_estimate": 2685,
                      "gross_yield_percentage": 5.52,
                      "cap_rate_percentage": 3.03,
                      "combined_estimated_loan_balance": 320668,
                      "estimated_equity": 263537,
                      "estimated_ltv": 54.89
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or deleted API key.",
            "content": {
              "application/json": {
                "example": {
                  "detail": "Invalid API key"
                }
              }
            }
          },
          "402": {
            "description": "The request would exceed the account's available credits. This happens at the included allowance when overages are off or unavailable, and at the configured monthly overage budget when they are enabled. The response detail includes `code: credit_limit_exceeded`, current usage, and the included plan allowance in `monthly_credit_limit`.",
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "credit_limit_exceeded",
                    "message": "Monthly API credit limit reached",
                    "credits_used": 5000,
                    "monthly_credit_limit": 5000,
                    "required_credits": 1
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded. Retry after the number of seconds in the `Retry-After` header.",
            "content": {
              "application/json": {
                "example": {
                  "detail": "Rate limit exceeded"
                }
              }
            }
          }
        }
      }
    },
    "/v1/properties/{property_id}/mortgages": {
      "get": {
        "tags": ["property-data-api"],
        "summary": "Get mortgage and lien detail",
        "description": "Fetch mortgage and lien rows for an AssessorSearch `property_id`.\n\nCharges **3 credits** only when one or more rows are returned. Empty `mortgages` responses return `credits.charged = 0`. Field availability varies by county and source coverage.",
        "operationId": "get_public_property_mortgages_v1_properties__property_id__mortgages_get",
        "parameters": [
          {
            "name": "property_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "AssessorSearch property ID",
              "title": "Property Id"
            },
            "description": "AssessorSearch property ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicMortgageLienResponse"
                },
                "examples": {
                  "mortgage_detail": {
                    "summary": "Mortgage/lien detail (3 credits)",
                    "value": {
                      "property_id": "12276B6",
                      "mortgages": [
                        {
                          "property_id": "12276B6",
                          "id": "mtg_20190509_1",
                          "amount": 350000,
                          "lender": "Sample National Bank",
                          "interest_rate": 7.03,
                          "recording_date": "2024-07-10",
                          "date": null,
                          "type": "conventional loan",
                          "payment": 2719.85,
                          "term": "30 years",
                          "loan_to_value": null,
                          "position": 1
                        }
                      ],
                      "credits": {
                        "charged": 3
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or deleted API key.",
            "content": {
              "application/json": {
                "example": {
                  "detail": "Invalid API key"
                }
              }
            }
          },
          "402": {
            "description": "The request would exceed the account's available credits. This happens at the included allowance when overages are off or unavailable, and at the configured monthly overage budget when they are enabled. The response detail includes `code: credit_limit_exceeded`, current usage, and the included plan allowance in `monthly_credit_limit`.",
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "credit_limit_exceeded",
                    "message": "Monthly API credit limit reached",
                    "credits_used": 5000,
                    "monthly_credit_limit": 5000,
                    "required_credits": 1
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded. Retry after the number of seconds in the `Retry-After` header.",
            "content": {
              "application/json": {
                "example": {
                  "detail": "Rate limit exceeded"
                }
              }
            }
          }
        }
      }
    },
    "/v1/properties/{property_id}/transactions": {
      "get": {
        "tags": ["property-data-api"],
        "summary": "Get deed and transaction history",
        "description": "Fetch recorded deed and transaction rows for an AssessorSearch `property_id`.\n\nCharges **3 credits** only when one or more rows are returned. Empty `deed_data` responses return `credits.charged = 0`. Field availability varies by county and source coverage.",
        "operationId": "get_public_property_transactions_v1_properties__property_id__transactions_get",
        "parameters": [
          {
            "name": "property_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "AssessorSearch property ID",
              "title": "Property Id"
            },
            "description": "AssessorSearch property ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicDeedTransactionResponse"
                },
                "examples": {
                  "transaction_history": {
                    "summary": "Deed/transaction history (3 credits)",
                    "value": {
                      "property_id": "12276B6",
                      "deed_data": [
                        {
                          "property_id": "12276B6",
                          "recording_date": "05/01/2018",
                          "sale_date": "05/01/2018",
                          "document_type": "Grant Deed",
                          "document_number": "2018.143821",
                          "transaction_type": "Arms Length",
                          "transaction_amount": 454000,
                          "buyer_name": "Morgan Family Trust",
                          "seller_name": "Park Place Homes LLC",
                          "buyer_is_corporate": false,
                          "seller_is_corporate": true,
                          "lender_name": "Valley Community Bank",
                          "title_company_name": "San Diego County Title Co.",
                          "sort_order": 1,
                          "transaction_details": null,
                          "formatted_date": "2018-05-01"
                        }
                      ],
                      "credits": {
                        "charged": 3
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or deleted API key.",
            "content": {
              "application/json": {
                "example": {
                  "detail": "Invalid API key"
                }
              }
            }
          },
          "402": {
            "description": "The request would exceed the account's available credits. This happens at the included allowance when overages are off or unavailable, and at the configured monthly overage budget when they are enabled. The response detail includes `code: credit_limit_exceeded`, current usage, and the included plan allowance in `monthly_credit_limit`.",
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "credit_limit_exceeded",
                    "message": "Monthly API credit limit reached",
                    "credits_used": 5000,
                    "monthly_credit_limit": 5000,
                    "required_credits": 1
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded. Retry after the number of seconds in the `Retry-After` header.",
            "content": {
              "application/json": {
                "example": {
                  "detail": "Rate limit exceeded"
                }
              }
            }
          }
        }
      }
    },
    "/v1/properties/{property_id}/permits": {
      "get": {
        "tags": ["property-data-api"],
        "summary": "Get permit history",
        "description": "Fetch permit rows for an AssessorSearch `property_id` where county coverage is available.\n\nCharges **3 credits** only when one or more rows are returned. Empty `permits_data` responses return `credits.charged = 0`. Field availability varies by county and source coverage.",
        "operationId": "get_public_property_permits_v1_properties__property_id__permits_get",
        "parameters": [
          {
            "name": "property_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "AssessorSearch property ID",
              "title": "Property Id"
            },
            "description": "AssessorSearch property ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicPermitResponse"
                },
                "examples": {
                  "permit_history": {
                    "summary": "Permit history (3 credits)",
                    "value": {
                      "property_id": "12276B6",
                      "permits_data": [
                        {
                          "property_id": "12276B6",
                          "contractor_name": "Central Valley Pools",
                          "description": "Install in-ground pool, spa, and code-compliant safety barrier.",
                          "estimated_fees": 1420,
                          "estimated_job_value": 65000,
                          "permit_date": "2021-06-14",
                          "permit_number": "BLD-21-00842",
                          "permit_type": "Residential pool and spa",
                          "sort_order": 1,
                          "status": "Final"
                        }
                      ],
                      "credits": {
                        "charged": 3
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or deleted API key.",
            "content": {
              "application/json": {
                "example": {
                  "detail": "Invalid API key"
                }
              }
            }
          },
          "402": {
            "description": "The request would exceed the account's available credits. This happens at the included allowance when overages are off or unavailable, and at the configured monthly overage budget when they are enabled. The response detail includes `code: credit_limit_exceeded`, current usage, and the included plan allowance in `monthly_credit_limit`.",
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "credit_limit_exceeded",
                    "message": "Monthly API credit limit reached",
                    "credits_used": 5000,
                    "monthly_credit_limit": 5000,
                    "required_credits": 1
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded. Retry after the number of seconds in the `Retry-After` header.",
            "content": {
              "application/json": {
                "example": {
                  "detail": "Rate limit exceeded"
                }
              }
            }
          }
        }
      }
    },
    "/v1/properties/{property_id}/comparable-sales": {
      "get": {
        "tags": ["property-data-api"],
        "summary": "Get comparable sales",
        "description": "Fetch sale comparable rows for an AssessorSearch `property_id`.\n\nCharges **3 credits** only when one or more rows are returned. Empty `sale_comps` responses return `credits.charged = 0`. Comparable coverage and ranking fields vary by county and source availability.",
        "operationId": "get_public_property_comparable_sales_v1_properties__property_id__comparable_sales_get",
        "parameters": [
          {
            "name": "property_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "AssessorSearch property ID",
              "title": "Property Id"
            },
            "description": "AssessorSearch property ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicSaleComparableResponse"
                },
                "examples": {
                  "comparable_sales": {
                    "summary": "Comparable sales (3 credits)",
                    "value": {
                      "property_id": "12276B6",
                      "sale_comps": [
                        {
                          "property_id": "12276B6",
                          "address": "1810 W Sample Ct, San Diego, CA 92103",
                          "sale_date": "2025-06-09",
                          "sale_price": 545000,
                          "beds": 4,
                          "baths": 3,
                          "sqft": 2388,
                          "year_built": 2005,
                          "price_per_sqft": 228.22,
                          "comparable_property_id": 2712968,
                          "distance_miles": 0.33,
                          "lot_acres": 0.46,
                          "comp_rank": 2,
                          "similarity_score": 3.25,
                          "formatted_comparable_property_id": "296588"
                        }
                      ],
                      "credits": {
                        "charged": 3
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or deleted API key.",
            "content": {
              "application/json": {
                "example": {
                  "detail": "Invalid API key"
                }
              }
            }
          },
          "402": {
            "description": "The request would exceed the account's available credits. This happens at the included allowance when overages are off or unavailable, and at the configured monthly overage budget when they are enabled. The response detail includes `code: credit_limit_exceeded`, current usage, and the included plan allowance in `monthly_credit_limit`.",
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "credit_limit_exceeded",
                    "message": "Monthly API credit limit reached",
                    "credits_used": 5000,
                    "monthly_credit_limit": 5000,
                    "required_credits": 1
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded. Retry after the number of seconds in the `Retry-After` header.",
            "content": {
              "application/json": {
                "example": {
                  "detail": "Rate limit exceeded"
                }
              }
            }
          }
        }
      }
    },
    "/v1/properties/{property_id}/comparable-rentals": {
      "get": {
        "tags": ["property-data-api"],
        "summary": "Get comparable rentals",
        "description": "Fetch rental comparable rows for an AssessorSearch `property_id`.\n\nCharges **3 credits** only when one or more rows are returned. Empty `rental_comps` responses return `credits.charged = 0`. Comparable coverage and ranking fields vary by county and source availability.",
        "operationId": "get_public_property_comparable_rentals_v1_properties__property_id__comparable_rentals_get",
        "parameters": [
          {
            "name": "property_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "description": "AssessorSearch property ID",
              "title": "Property Id"
            },
            "description": "AssessorSearch property ID"
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicRentalComparableResponse"
                },
                "examples": {
                  "comparable_rentals": {
                    "summary": "Comparable rentals (3 credits)",
                    "value": {
                      "property_id": "12276B6",
                      "rental_comps": [
                        {
                          "property_id": "12276B6",
                          "address": "1918 W Sample Ln, San Diego, CA 92103",
                          "rental_date": "2026-04-27 01:40:09.871",
                          "effective_date": null,
                          "rental_price": 2650,
                          "rent_price": null,
                          "beds": 4,
                          "baths": 3,
                          "sqft": 2400,
                          "year_built": 2008,
                          "comparable_property_id": 2674852,
                          "distance_miles": 1.92,
                          "lot_acres": 0.5,
                          "comp_rank": 1,
                          "rank": null,
                          "similarity_score": 15,
                          "adjusted_rent": 2685,
                          "avm_value": 552000,
                          "url": null,
                          "formatted_comparable_property_id": "28D0A4"
                        }
                      ],
                      "credits": {
                        "charged": 3
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, or deleted API key.",
            "content": {
              "application/json": {
                "example": {
                  "detail": "Invalid API key"
                }
              }
            }
          },
          "402": {
            "description": "The request would exceed the account's available credits. This happens at the included allowance when overages are off or unavailable, and at the configured monthly overage budget when they are enabled. The response detail includes `code: credit_limit_exceeded`, current usage, and the included plan allowance in `monthly_credit_limit`.",
            "content": {
              "application/json": {
                "example": {
                  "detail": {
                    "code": "credit_limit_exceeded",
                    "message": "Monthly API credit limit reached",
                    "credits_used": 5000,
                    "monthly_credit_limit": 5000,
                    "required_credits": 1
                  }
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HTTPValidationError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded. Retry after the number of seconds in the `Retry-After` header.",
            "content": {
              "application/json": {
                "example": {
                  "detail": "Rate limit exceeded"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "HTTPValidationError": {
        "properties": {
          "detail": {
            "items": {
              "$ref": "#/components/schemas/ValidationError"
            },
            "type": "array",
            "title": "Detail"
          }
        },
        "type": "object",
        "title": "HTTPValidationError"
      },
      "PropertyLookupCredits": {
        "properties": {
          "charged": {
            "type": "integer",
            "title": "Charged",
            "default": 0
          }
        },
        "type": "object",
        "title": "PropertyLookupCredits"
      },
      "PropertyLookupInput": {
        "properties": {
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Address"
          },
          "normalized_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Normalized Address"
          },
          "apn": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Apn"
          },
          "fips": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fips"
          }
        },
        "type": "object",
        "title": "PropertyLookupInput"
      },
      "PropertyLookupMatch": {
        "properties": {
          "property_id": {
            "type": "string",
            "title": "Property Id"
          },
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Address"
          },
          "apn": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Apn"
          },
          "fips": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fips"
          },
          "county": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "County"
          },
          "confidence": {
            "anyOf": [
              {
                "type": "string",
                "enum": ["high", "possible"]
              },
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Confidence"
          },
          "normalized_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Normalized Address"
          }
        },
        "type": "object",
        "required": ["property_id"],
        "title": "PropertyLookupMatch"
      },
      "PropertyLookupResponse": {
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "matched",
              "possible",
              "needs_unit",
              "needs_location",
              "ambiguous",
              "no_match",
              "resolver_error"
            ],
            "title": "Status",
            "example": "matched"
          },
          "input": {
            "$ref": "#/components/schemas/PropertyLookupInput",
            "example": {
              "address": "3352 Goldfinch Street, San Diego, CA 92103",
              "apn": null,
              "fips": null
            }
          },
          "match": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PropertyLookupMatch"
              },
              {
                "type": "null"
              }
            ],
            "example": {
              "property_id": "12276B6",
              "address": "3352 Goldfinch St, San Diego, CA 92103",
              "apn": "451-492-10-00",
              "fips": "06073",
              "county": "San Diego County, California",
              "confidence": "high"
            }
          },
          "property": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/PublicPropertyCore"
              },
              {
                "type": "null"
              }
            ],
            "example": {
              "property_id": "12276B6",
              "apn": "451-492-10-00",
              "alternate_apn": "4514921000",
              "fips": "06073",
              "county": "San Diego County, California",
              "property_address": "3352 Goldfinch St, San Diego, CA 92103",
              "property_street": "3352 Goldfinch St",
              "property_city": "San Diego",
              "property_state": "CA",
              "property_zipcode": "92103",
              "latitude": 32.740421,
              "longitude": -117.171596,
              "source_last_updated": "2026-05-18",
              "last_updated": "2026-06-27",
              "owner_1_full_name": "Morgan Family Trust",
              "owner_2_full_name": null,
              "mailing_full_address": "PO Box 3352, San Diego, CA 92103",
              "mailing_city": "San Diego",
              "mailing_state": "CA",
              "mailing_zip_code": "92103",
              "occupancy": "Owner Occupied",
              "land_market_value": 130000,
              "structure_market_value": 375000,
              "total_market_value": 505000,
              "assessed_land_value": 112294,
              "assessed_structure_value": 397517,
              "assessed_value": 509811,
              "tax_year": "2025",
              "annual_tax_amount": 5735.48,
              "tax_rate": 0.01125,
              "is_tax_exemption": true,
              "exemption_type": "Homeowner",
              "delinquent_year": null,
              "last_sale_date": "2018-05-01",
              "last_sale_amount": 454000,
              "is_listed": false,
              "is_listed_date": null,
              "is_pre_foreclosure": false,
              "pre_foreclosure_status": null,
              "pre_foreclosure_date": null,
              "land_use_code": "1001",
              "land_use_category": "Single Family Home",
              "zoning": null,
              "year_built": "2004",
              "year_built_effective": "2004",
              "beds": 4,
              "bedrooms": 4,
              "baths": 3.5,
              "full_bathrooms": 3,
              "half_bathrooms": 1,
              "total_rooms": 8,
              "sqft": 2594,
              "living_area_sqft": 2594,
              "lot_size_sqft": 10392,
              "lot_size_acres": 0.239,
              "basement_sqft": null,
              "cooling_type": "Central",
              "heating_type": "Central",
              "fireplace_ind": true,
              "exterior_wall_type": "Stucco",
              "roof_type": "Composition Shingle",
              "pool_ind": true,
              "pool_type": "Pool & Spa (both)",
              "sewer_type": "Public Sewer",
              "water_type": "Public Water",
              "garage_type": "Garage",
              "garage_parking": 3,
              "legal_description": "BLK 400 LOT K TR DB0013PG522",
              "municipality": "CITY OF SAN DIEGO",
              "subdivision": "HORTONS ADD LOCKLING",
              "neighborhood": "HORTONS ADD LOCKLING",
              "census_tract": "006100",
              "census_block": "1003",
              "tract_num": null,
              "legal_lot": "28",
              "legal_block": null,
              "hoa_name": "PARK CENTRAL TOWERS OWNERS",
              "hoa_type": "Mandatory",
              "hoa_annual_fee": 420,
              "estimated_market_value": 584205,
              "avg_rent_estimate": 2685,
              "gross_yield_percentage": 5.52,
              "cap_rate_percentage": 3.03,
              "combined_estimated_loan_balance": 320668,
              "estimated_equity": 263537,
              "estimated_ltv": 54.89
            }
          },
          "credits": {
            "$ref": "#/components/schemas/PropertyLookupCredits",
            "example": {
              "charged": 1
            }
          },
          "reason_codes": {
            "items": {
              "type": "string"
            },
            "type": "array",
            "title": "Reason Codes",
            "example": []
          },
          "message": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Message",
            "example": null
          }
        },
        "type": "object",
        "required": ["status", "input"],
        "title": "PropertyLookupResponse",
        "example": {
          "status": "matched",
          "input": {
            "address": "3352 Goldfinch Street, San Diego, CA 92103",
            "apn": null,
            "fips": null
          },
          "match": {
            "property_id": "12276B6",
            "address": "3352 Goldfinch St, San Diego, CA 92103",
            "apn": "451-492-10-00",
            "fips": "06073",
            "county": "San Diego County, California",
            "confidence": "high"
          },
          "property": {
            "property_id": "12276B6",
            "apn": "451-492-10-00",
            "alternate_apn": "4514921000",
            "fips": "06073",
            "county": "San Diego County, California",
            "property_address": "3352 Goldfinch St, San Diego, CA 92103",
            "property_street": "3352 Goldfinch St",
            "property_city": "San Diego",
            "property_state": "CA",
            "property_zipcode": "92103",
            "latitude": 32.740421,
            "longitude": -117.171596,
            "source_last_updated": "2026-05-18",
            "last_updated": "2026-06-27",
            "owner_1_full_name": "Morgan Family Trust",
            "owner_2_full_name": null,
            "mailing_full_address": "PO Box 3352, San Diego, CA 92103",
            "mailing_city": "San Diego",
            "mailing_state": "CA",
            "mailing_zip_code": "92103",
            "occupancy": "Owner Occupied",
            "land_market_value": 130000,
            "structure_market_value": 375000,
            "total_market_value": 505000,
            "assessed_land_value": 112294,
            "assessed_structure_value": 397517,
            "assessed_value": 509811,
            "tax_year": "2025",
            "annual_tax_amount": 5735.48,
            "tax_rate": 0.01125,
            "is_tax_exemption": true,
            "exemption_type": "Homeowner",
            "delinquent_year": null,
            "last_sale_date": "2018-05-01",
            "last_sale_amount": 454000,
            "is_listed": false,
            "is_listed_date": null,
            "is_pre_foreclosure": false,
            "pre_foreclosure_status": null,
            "pre_foreclosure_date": null,
            "land_use_code": "1001",
            "land_use_category": "Single Family Home",
            "zoning": null,
            "year_built": "2004",
            "year_built_effective": "2004",
            "beds": 4,
            "bedrooms": 4,
            "baths": 3.5,
            "full_bathrooms": 3,
            "half_bathrooms": 1,
            "total_rooms": 8,
            "sqft": 2594,
            "living_area_sqft": 2594,
            "lot_size_sqft": 10392,
            "lot_size_acres": 0.239,
            "basement_sqft": null,
            "cooling_type": "Central",
            "heating_type": "Central",
            "fireplace_ind": true,
            "exterior_wall_type": "Stucco",
            "roof_type": "Composition Shingle",
            "pool_ind": true,
            "pool_type": "Pool & Spa (both)",
            "sewer_type": "Public Sewer",
            "water_type": "Public Water",
            "garage_type": "Garage",
            "garage_parking": 3,
            "legal_description": "BLK 400 LOT K TR DB0013PG522",
            "municipality": "CITY OF SAN DIEGO",
            "subdivision": "HORTONS ADD LOCKLING",
            "neighborhood": "HORTONS ADD LOCKLING",
            "census_tract": "006100",
            "census_block": "1003",
            "tract_num": null,
            "legal_lot": "28",
            "legal_block": null,
            "hoa_name": "PARK CENTRAL TOWERS OWNERS",
            "hoa_type": "Mandatory",
            "hoa_annual_fee": 420,
            "estimated_market_value": 584205,
            "avg_rent_estimate": 2685,
            "gross_yield_percentage": 5.52,
            "cap_rate_percentage": 3.03,
            "combined_estimated_loan_balance": 320668,
            "estimated_equity": 263537,
            "estimated_ltv": 54.89
          },
          "credits": {
            "charged": 1
          },
          "reason_codes": [],
          "message": null
        }
      },
      "PublicDeedTransactionResponse": {
        "properties": {
          "property_id": {
            "type": "string",
            "title": "Property Id",
            "example": "12276B6"
          },
          "deed_data": {
            "items": {
              "$ref": "#/components/schemas/PublicDeedTransactionRow"
            },
            "type": "array",
            "title": "Deed Data",
            "example": [
              {
                "property_id": "12276B6",
                "recording_date": "05/01/2018",
                "sale_date": "05/01/2018",
                "document_type": "Grant Deed",
                "document_number": "2018.143821",
                "transaction_type": "Arms Length",
                "transaction_amount": 454000,
                "buyer_name": "Morgan Family Trust",
                "seller_name": "Park Place Homes LLC",
                "buyer_is_corporate": false,
                "seller_is_corporate": true,
                "lender_name": "Valley Community Bank",
                "title_company_name": "San Diego County Title Co.",
                "sort_order": 1,
                "transaction_details": null,
                "formatted_date": "2018-05-01"
              }
            ]
          },
          "credits": {
            "$ref": "#/components/schemas/PropertyLookupCredits",
            "example": {
              "charged": 3
            }
          }
        },
        "type": "object",
        "required": ["property_id"],
        "title": "PublicDeedTransactionResponse",
        "example": {
          "property_id": "12276B6",
          "deed_data": [
            {
              "property_id": "12276B6",
              "recording_date": "05/01/2018",
              "sale_date": "05/01/2018",
              "document_type": "Grant Deed",
              "document_number": "2018.143821",
              "transaction_type": "Arms Length",
              "transaction_amount": 454000,
              "buyer_name": "Morgan Family Trust",
              "seller_name": "Park Place Homes LLC",
              "buyer_is_corporate": false,
              "seller_is_corporate": true,
              "lender_name": "Valley Community Bank",
              "title_company_name": "San Diego County Title Co.",
              "sort_order": 1,
              "transaction_details": null,
              "formatted_date": "2018-05-01"
            }
          ],
          "credits": {
            "charged": 3
          }
        }
      },
      "PublicDeedTransactionRow": {
        "properties": {
          "property_id": {
            "type": "string",
            "title": "Property Id",
            "example": "12276B6",
            "description": "Subject property ID for joining this add-on row to the core property record."
          },
          "recording_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recording Date",
            "example": "05/01/2018",
            "description": "Recording date for the deed or transaction document."
          },
          "sale_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sale Date",
            "example": "05/01/2018",
            "description": "Sale date when reported separately from recording date."
          },
          "document_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Document Type",
            "example": "Grant Deed",
            "description": "Recorded document type."
          },
          "document_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Document Number",
            "example": "2018.143821",
            "description": "Recorder document number."
          },
          "transaction_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transaction Type",
            "example": "Arms Length",
            "description": "Normalized transaction type when available."
          },
          "transaction_amount": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transaction Amount",
            "example": 454000,
            "description": "Transaction amount from the recorded document."
          },
          "buyer_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Buyer Name",
            "example": "Morgan Family Trust",
            "description": "Buyer or grantee name."
          },
          "seller_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seller Name",
            "example": "Park Place Homes LLC",
            "description": "Seller or grantor name."
          },
          "buyer_is_corporate": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Buyer Is Corporate",
            "example": false,
            "description": "Corporate buyer indicator."
          },
          "seller_is_corporate": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Seller Is Corporate",
            "example": true,
            "description": "Corporate seller indicator."
          },
          "lender_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lender Name",
            "example": "Valley Community Bank",
            "description": "Lender named on the transaction when available."
          },
          "title_company_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Title Company Name",
            "example": "San Diego County Title Co.",
            "description": "Title company named on the transaction when available."
          },
          "sort_order": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sort Order",
            "example": 1,
            "description": "Sort order supplied by the transaction source."
          },
          "transaction_details": {
            "anyOf": [
              {
                "additionalProperties": true,
                "type": "object"
              },
              {
                "type": "null"
              }
            ],
            "title": "Transaction Details",
            "example": null,
            "description": "Source-specific transaction detail object."
          },
          "formatted_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Formatted Date",
            "example": "2018-05-01",
            "description": "Backend-computed display date when supplied."
          }
        },
        "type": "object",
        "required": ["property_id"],
        "title": "PublicDeedTransactionRow",
        "example": {
          "property_id": "12276B6",
          "recording_date": "05/01/2018",
          "sale_date": "05/01/2018",
          "document_type": "Grant Deed",
          "document_number": "2018.143821",
          "transaction_type": "Arms Length",
          "transaction_amount": 454000,
          "buyer_name": "Morgan Family Trust",
          "seller_name": "Park Place Homes LLC",
          "buyer_is_corporate": false,
          "seller_is_corporate": true,
          "lender_name": "Valley Community Bank",
          "title_company_name": "San Diego County Title Co.",
          "sort_order": 1,
          "transaction_details": null,
          "formatted_date": "2018-05-01"
        }
      },
      "PublicMortgageLienResponse": {
        "properties": {
          "property_id": {
            "type": "string",
            "title": "Property Id",
            "example": "12276B6"
          },
          "mortgages": {
            "items": {
              "$ref": "#/components/schemas/PublicMortgageLienRow"
            },
            "type": "array",
            "title": "Mortgages",
            "example": [
              {
                "property_id": "12276B6",
                "id": "mtg_20190509_1",
                "amount": 350000,
                "lender": "Sample National Bank",
                "interest_rate": 7.03,
                "recording_date": "2024-07-10",
                "date": null,
                "type": "conventional loan",
                "payment": 2719.85,
                "term": "30 years",
                "loan_to_value": null,
                "position": 1
              }
            ]
          },
          "credits": {
            "$ref": "#/components/schemas/PropertyLookupCredits",
            "example": {
              "charged": 3
            }
          }
        },
        "type": "object",
        "required": ["property_id"],
        "title": "PublicMortgageLienResponse",
        "example": {
          "property_id": "12276B6",
          "mortgages": [
            {
              "property_id": "12276B6",
              "id": "mtg_20190509_1",
              "amount": 350000,
              "lender": "Sample National Bank",
              "interest_rate": 7.03,
              "recording_date": "2024-07-10",
              "date": null,
              "type": "conventional loan",
              "payment": 2719.85,
              "term": "30 years",
              "loan_to_value": null,
              "position": 1
            }
          ],
          "credits": {
            "charged": 3
          }
        }
      },
      "PublicMortgageLienRow": {
        "properties": {
          "property_id": {
            "type": "string",
            "title": "Property Id",
            "example": "12276B6",
            "description": "Subject property ID for joining this add-on row to the core property record."
          },
          "id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Id",
            "example": "mtg_20190509_1",
            "description": "Mortgage or lien row identifier when available."
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Amount",
            "example": 350000,
            "description": "Mortgage or lien amount."
          },
          "lender": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lender",
            "example": "Sample National Bank",
            "description": "Mortgage lender."
          },
          "interest_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Interest Rate",
            "example": 7.03,
            "description": "Interest rate when available."
          },
          "recording_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Recording Date",
            "example": "2024-07-10",
            "description": "Mortgage or lien recording date."
          },
          "date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Date",
            "example": null,
            "description": "Alternate mortgage or lien date when supplied."
          },
          "type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Type",
            "example": "conventional loan",
            "description": "Mortgage or lien type."
          },
          "payment": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Payment",
            "example": 2719.85,
            "description": "Estimated or reported payment when available."
          },
          "term": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Term",
            "example": "30 years",
            "description": "Loan term."
          },
          "loan_to_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Loan To Value",
            "example": null,
            "description": "Loan-to-value ratio at origination when available."
          },
          "position": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Position",
            "example": 1,
            "description": "Lien position."
          }
        },
        "type": "object",
        "required": ["property_id"],
        "title": "PublicMortgageLienRow",
        "example": {
          "property_id": "12276B6",
          "id": "mtg_20190509_1",
          "amount": 350000,
          "lender": "Sample National Bank",
          "interest_rate": 7.03,
          "recording_date": "2024-07-10",
          "date": null,
          "type": "conventional loan",
          "payment": 2719.85,
          "term": "30 years",
          "loan_to_value": null,
          "position": 1
        }
      },
      "PublicPermitResponse": {
        "properties": {
          "property_id": {
            "type": "string",
            "title": "Property Id",
            "example": "12276B6"
          },
          "permits_data": {
            "items": {
              "$ref": "#/components/schemas/PublicPermitRow"
            },
            "type": "array",
            "title": "Permits Data",
            "example": [
              {
                "property_id": "12276B6",
                "contractor_name": "Central Valley Pools",
                "description": "Install in-ground pool, spa, and code-compliant safety barrier.",
                "estimated_fees": 1420,
                "estimated_job_value": 65000,
                "permit_date": "2021-06-14",
                "permit_number": "BLD-21-00842",
                "permit_type": "Residential pool and spa",
                "sort_order": 1,
                "status": "Final"
              }
            ]
          },
          "credits": {
            "$ref": "#/components/schemas/PropertyLookupCredits",
            "example": {
              "charged": 3
            }
          }
        },
        "type": "object",
        "required": ["property_id"],
        "title": "PublicPermitResponse",
        "example": {
          "property_id": "12276B6",
          "permits_data": [
            {
              "property_id": "12276B6",
              "contractor_name": "Central Valley Pools",
              "description": "Install in-ground pool, spa, and code-compliant safety barrier.",
              "estimated_fees": 1420,
              "estimated_job_value": 65000,
              "permit_date": "2021-06-14",
              "permit_number": "BLD-21-00842",
              "permit_type": "Residential pool and spa",
              "sort_order": 1,
              "status": "Final"
            }
          ],
          "credits": {
            "charged": 3
          }
        }
      },
      "PublicPermitRow": {
        "properties": {
          "property_id": {
            "type": "string",
            "title": "Property Id",
            "example": "12276B6",
            "description": "Subject property ID for joining this add-on row to the core property record."
          },
          "contractor_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Contractor Name",
            "example": "Central Valley Pools",
            "description": "Contractor name when reported."
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Description",
            "example": "Install in-ground pool, spa, and code-compliant safety barrier.",
            "description": "Permit work description."
          },
          "estimated_fees": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Fees",
            "example": 1420,
            "description": "Estimated permit fees."
          },
          "estimated_job_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Job Value",
            "example": 65000,
            "description": "Estimated project value."
          },
          "permit_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Permit Date",
            "example": "2021-06-14",
            "description": "Permit issue, application, or status date as reported."
          },
          "permit_number": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Permit Number",
            "example": "BLD-21-00842",
            "description": "Permit number from the permitting source."
          },
          "permit_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Permit Type",
            "example": "Residential pool and spa",
            "description": "Permit category or permit type."
          },
          "sort_order": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sort Order",
            "example": 1,
            "description": "Sort order supplied by the permitting source."
          },
          "status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Status",
            "example": "Final",
            "description": "Permit status."
          }
        },
        "type": "object",
        "required": ["property_id"],
        "title": "PublicPermitRow",
        "example": {
          "property_id": "12276B6",
          "contractor_name": "Central Valley Pools",
          "description": "Install in-ground pool, spa, and code-compliant safety barrier.",
          "estimated_fees": 1420,
          "estimated_job_value": 65000,
          "permit_date": "2021-06-14",
          "permit_number": "BLD-21-00842",
          "permit_type": "Residential pool and spa",
          "sort_order": 1,
          "status": "Final"
        }
      },
      "PublicPropertyCore": {
        "properties": {
          "property_id": {
            "type": "string",
            "title": "Property Id",
            "example": "12276B6",
            "description": "AssessorSearch property identifier."
          },
          "apn": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Apn",
            "example": "451-492-10-00",
            "description": "County parcel number or assessor parcel number."
          },
          "alternate_apn": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Alternate Apn",
            "example": "4514921000",
            "description": "Alternate parcel number format reported by the county."
          },
          "fips": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fips",
            "example": "06073",
            "description": "Five-digit county FIPS code."
          },
          "county": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "County",
            "example": "San Diego County, California",
            "description": "County name."
          },
          "property_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Property Address",
            "example": "3352 Goldfinch St, San Diego, CA 92103",
            "description": "Full situs address when available."
          },
          "property_street": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Property Street",
            "example": "3352 Goldfinch St",
            "description": "Street address portion of the situs address."
          },
          "property_city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Property City",
            "example": "San Diego",
            "description": "Situs city."
          },
          "property_state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Property State",
            "example": "CA",
            "description": "Situs state abbreviation."
          },
          "property_zipcode": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Property Zipcode",
            "example": "92103",
            "description": "Situs ZIP code."
          },
          "latitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Latitude",
            "example": 32.740421,
            "description": "Parcel or address latitude when geocoded."
          },
          "longitude": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Longitude",
            "example": -117.171596,
            "description": "Parcel or address longitude when geocoded."
          },
          "source_last_updated": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Source Last Updated",
            "example": "2026-05-18",
            "description": "Source-system update date shown on property detail."
          },
          "last_updated": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Updated",
            "example": "2026-06-27",
            "description": "AssessorSearch record update date when present."
          },
          "owner_1_full_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner 1 Full Name",
            "example": "Morgan Family Trust",
            "description": "Primary owner name from public property records."
          },
          "owner_2_full_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Owner 2 Full Name",
            "example": null,
            "description": "Secondary owner name when one is present."
          },
          "mailing_full_address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mailing Full Address",
            "example": "PO Box 3352, San Diego, CA 92103",
            "description": "Owner mailing address from public records."
          },
          "mailing_city": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mailing City",
            "example": "San Diego",
            "description": "Mailing city."
          },
          "mailing_state": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mailing State",
            "example": "CA",
            "description": "Mailing state abbreviation."
          },
          "mailing_zip_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Mailing Zip Code",
            "example": "92103",
            "description": "Mailing ZIP code."
          },
          "occupancy": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Occupancy",
            "example": "Owner Occupied",
            "description": "Owner-occupied or non-owner occupied signal."
          },
          "land_market_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Land Market Value",
            "example": 130000,
            "description": "Land market value reported or normalized from source records."
          },
          "structure_market_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Structure Market Value",
            "example": 375000,
            "description": "Improvement market value reported by the county."
          },
          "total_market_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Total Market Value",
            "example": 505000,
            "description": "Total market value reported or normalized from source records."
          },
          "assessed_land_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessed Land Value",
            "example": 112294,
            "description": "Land assessed value."
          },
          "assessed_structure_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessed Structure Value",
            "example": 397517,
            "description": "Improvement assessed value."
          },
          "assessed_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Assessed Value",
            "example": 509811,
            "description": "Total assessed value reported by the county."
          },
          "tax_year": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tax Year",
            "example": "2025",
            "description": "Tax year associated with the tax fields."
          },
          "annual_tax_amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Annual Tax Amount",
            "example": 5735.48,
            "description": "Annual property tax amount normalized to a number."
          },
          "tax_rate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tax Rate",
            "example": 0.01125,
            "description": "Effective or normalized tax-rate value when available."
          },
          "is_tax_exemption": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Tax Exemption",
            "example": true,
            "description": "Whether a tax exemption is indicated in the record."
          },
          "exemption_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exemption Type",
            "example": "Homeowner",
            "description": "Exemption type, if reported."
          },
          "delinquent_year": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Delinquent Year",
            "example": null,
            "description": "Tax delinquency year when reported by the source."
          },
          "last_sale_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Sale Date",
            "example": "2018-05-01",
            "description": "Most recent sale date available in the indexed record."
          },
          "last_sale_amount": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Last Sale Amount",
            "example": 454000,
            "description": "Most recent sale amount available in the indexed record."
          },
          "is_listed": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Listed",
            "example": false,
            "description": "Listing signal when available."
          },
          "is_listed_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Listed Date",
            "example": null,
            "description": "Date associated with the current listing signal."
          },
          "is_pre_foreclosure": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Is Pre Foreclosure",
            "example": false,
            "description": "Pre-foreclosure signal when available."
          },
          "pre_foreclosure_status": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pre Foreclosure Status",
            "example": null,
            "description": "Pre-foreclosure status text from the source."
          },
          "pre_foreclosure_date": {
            "anyOf": [
              {
                "type": "string",
                "format": "date"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pre Foreclosure Date",
            "example": null,
            "description": "Pre-foreclosure filing or status date when available."
          },
          "land_use_code": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Land Use Code",
            "example": "1001",
            "description": "Source land-use code."
          },
          "land_use_category": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Land Use Category",
            "example": "Single Family Home",
            "description": "Normalized land-use category."
          },
          "zoning": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Zoning",
            "example": null,
            "description": "Zoning code or zoning label when available."
          },
          "year_built": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Year Built",
            "example": "2004",
            "description": "Year built as reported by the source."
          },
          "year_built_effective": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Year Built Effective",
            "example": "2004",
            "description": "Effective year built or renovation year when reported."
          },
          "beds": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Beds",
            "example": 4,
            "description": "Bedroom count used in the property header."
          },
          "bedrooms": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Bedrooms",
            "example": 4,
            "description": "Alternate bedroom count field when supplied by the source."
          },
          "baths": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Baths",
            "example": 3.5,
            "description": "Bathroom count used in the property header."
          },
          "full_bathrooms": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Full Bathrooms",
            "example": 3,
            "description": "Full bathroom count."
          },
          "half_bathrooms": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Half Bathrooms",
            "example": 1,
            "description": "Half bathroom count."
          },
          "total_rooms": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Total Rooms",
            "example": 8,
            "description": "Total room count when reported."
          },
          "sqft": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sqft",
            "example": 2594,
            "description": "Building area in square feet."
          },
          "living_area_sqft": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Living Area Sqft",
            "example": 2594,
            "description": "Finished living area in square feet."
          },
          "lot_size_sqft": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lot Size Sqft",
            "example": 10392,
            "description": "Parcel area in square feet."
          },
          "lot_size_acres": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lot Size Acres",
            "example": 0.239,
            "description": "Parcel area in acres."
          },
          "basement_sqft": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Basement Sqft",
            "example": null,
            "description": "Basement area in square feet when reported."
          },
          "cooling_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cooling Type",
            "example": "Central",
            "description": "Cooling type."
          },
          "heating_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Heating Type",
            "example": "Central",
            "description": "Heating type."
          },
          "fireplace_ind": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Fireplace Ind",
            "example": true,
            "description": "Fireplace indicator."
          },
          "exterior_wall_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Exterior Wall Type",
            "example": "Stucco",
            "description": "Exterior wall material or type."
          },
          "roof_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Roof Type",
            "example": "Composition Shingle",
            "description": "Roof type."
          },
          "pool_ind": {
            "anyOf": [
              {
                "type": "boolean"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pool Ind",
            "example": true,
            "description": "Pool indicator."
          },
          "pool_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Pool Type",
            "example": "Pool & Spa (both)",
            "description": "Pool type when reported."
          },
          "sewer_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sewer Type",
            "example": "Public Sewer",
            "description": "Sewer utility type."
          },
          "water_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Water Type",
            "example": "Public Water",
            "description": "Water utility type."
          },
          "garage_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Garage Type",
            "example": "Garage",
            "description": "Garage type when present."
          },
          "garage_parking": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Garage Parking",
            "example": 3,
            "description": "Garage parking spaces when present."
          },
          "legal_description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Legal Description",
            "example": "BLK 400 LOT K TR DB0013PG522",
            "description": "Legal description from the county record."
          },
          "municipality": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Municipality",
            "example": "CITY OF SAN DIEGO",
            "description": "Municipality or local jurisdiction when available."
          },
          "subdivision": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Subdivision",
            "example": "HORTONS ADD LOCKLING",
            "description": "Subdivision name from the property record."
          },
          "neighborhood": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Neighborhood",
            "example": "HORTONS ADD LOCKLING",
            "description": "Neighborhood label when reported."
          },
          "census_tract": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Census Tract",
            "example": "006100",
            "description": "Census tract identifier when matched."
          },
          "census_block": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Census Block",
            "example": "1003",
            "description": "Census block identifier when matched."
          },
          "tract_num": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Tract Num",
            "example": null,
            "description": "Subdivision or legal tract number."
          },
          "legal_lot": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Legal Lot",
            "example": "28",
            "description": "Legal lot identifier."
          },
          "legal_block": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Legal Block",
            "example": null,
            "description": "Legal block identifier."
          },
          "hoa_name": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hoa Name",
            "example": "PARK CENTRAL TOWERS OWNERS",
            "description": "HOA name when reported."
          },
          "hoa_type": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hoa Type",
            "example": "Mandatory",
            "description": "HOA type when reported."
          },
          "hoa_annual_fee": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Hoa Annual Fee",
            "example": 420,
            "description": "Annual HOA fee when reported."
          },
          "estimated_market_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Market Value",
            "example": 584205,
            "description": "AssessorSearch estimated market value."
          },
          "avg_rent_estimate": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avg Rent Estimate",
            "example": 2685,
            "description": "Estimated monthly rent from comparable rental context."
          },
          "gross_yield_percentage": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Gross Yield Percentage",
            "example": 5.52,
            "description": "Estimated annual gross rental yield percentage."
          },
          "cap_rate_percentage": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Cap Rate Percentage",
            "example": 3.03,
            "description": "Estimated cap-rate percentage when available."
          },
          "combined_estimated_loan_balance": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Combined Estimated Loan Balance",
            "example": 320668,
            "description": "Estimated combined open mortgage balance."
          },
          "estimated_equity": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Equity",
            "example": 263537,
            "description": "Estimated owner equity derived from value and loan balance."
          },
          "estimated_ltv": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Estimated Ltv",
            "example": 54.89,
            "description": "Estimated loan-to-value ratio."
          }
        },
        "type": "object",
        "required": ["property_id"],
        "title": "PublicPropertyCore",
        "example": {
          "property_id": "12276B6",
          "apn": "451-492-10-00",
          "alternate_apn": "4514921000",
          "fips": "06073",
          "county": "San Diego County, California",
          "property_address": "3352 Goldfinch St, San Diego, CA 92103",
          "property_street": "3352 Goldfinch St",
          "property_city": "San Diego",
          "property_state": "CA",
          "property_zipcode": "92103",
          "latitude": 32.740421,
          "longitude": -117.171596,
          "source_last_updated": "2026-05-18",
          "last_updated": "2026-06-27",
          "owner_1_full_name": "Morgan Family Trust",
          "owner_2_full_name": null,
          "mailing_full_address": "PO Box 3352, San Diego, CA 92103",
          "mailing_city": "San Diego",
          "mailing_state": "CA",
          "mailing_zip_code": "92103",
          "occupancy": "Owner Occupied",
          "land_market_value": 130000,
          "structure_market_value": 375000,
          "total_market_value": 505000,
          "assessed_land_value": 112294,
          "assessed_structure_value": 397517,
          "assessed_value": 509811,
          "tax_year": "2025",
          "annual_tax_amount": 5735.48,
          "tax_rate": 0.01125,
          "is_tax_exemption": true,
          "exemption_type": "Homeowner",
          "delinquent_year": null,
          "last_sale_date": "2018-05-01",
          "last_sale_amount": 454000,
          "is_listed": false,
          "is_listed_date": null,
          "is_pre_foreclosure": false,
          "pre_foreclosure_status": null,
          "pre_foreclosure_date": null,
          "land_use_code": "1001",
          "land_use_category": "Single Family Home",
          "zoning": null,
          "year_built": "2004",
          "year_built_effective": "2004",
          "beds": 4,
          "bedrooms": 4,
          "baths": 3.5,
          "full_bathrooms": 3,
          "half_bathrooms": 1,
          "total_rooms": 8,
          "sqft": 2594,
          "living_area_sqft": 2594,
          "lot_size_sqft": 10392,
          "lot_size_acres": 0.239,
          "basement_sqft": null,
          "cooling_type": "Central",
          "heating_type": "Central",
          "fireplace_ind": true,
          "exterior_wall_type": "Stucco",
          "roof_type": "Composition Shingle",
          "pool_ind": true,
          "pool_type": "Pool & Spa (both)",
          "sewer_type": "Public Sewer",
          "water_type": "Public Water",
          "garage_type": "Garage",
          "garage_parking": 3,
          "legal_description": "BLK 400 LOT K TR DB0013PG522",
          "municipality": "CITY OF SAN DIEGO",
          "subdivision": "HORTONS ADD LOCKLING",
          "neighborhood": "HORTONS ADD LOCKLING",
          "census_tract": "006100",
          "census_block": "1003",
          "tract_num": null,
          "legal_lot": "28",
          "legal_block": null,
          "hoa_name": "PARK CENTRAL TOWERS OWNERS",
          "hoa_type": "Mandatory",
          "hoa_annual_fee": 420,
          "estimated_market_value": 584205,
          "avg_rent_estimate": 2685,
          "gross_yield_percentage": 5.52,
          "cap_rate_percentage": 3.03,
          "combined_estimated_loan_balance": 320668,
          "estimated_equity": 263537,
          "estimated_ltv": 54.89
        }
      },
      "PublicRentalComparableResponse": {
        "properties": {
          "property_id": {
            "type": "string",
            "title": "Property Id",
            "example": "12276B6"
          },
          "rental_comps": {
            "items": {
              "$ref": "#/components/schemas/PublicRentalComparableRow"
            },
            "type": "array",
            "title": "Rental Comps",
            "example": [
              {
                "property_id": "12276B6",
                "address": "1918 W Sample Ln, San Diego, CA 92103",
                "rental_date": "2026-04-27 01:40:09.871",
                "effective_date": null,
                "rental_price": 2650,
                "rent_price": null,
                "beds": 4,
                "baths": 3,
                "sqft": 2400,
                "year_built": 2008,
                "comparable_property_id": 2674852,
                "distance_miles": 1.92,
                "lot_acres": 0.5,
                "comp_rank": 1,
                "rank": null,
                "similarity_score": 15,
                "adjusted_rent": 2685,
                "avm_value": 552000,
                "url": null,
                "formatted_comparable_property_id": "28D0A4"
              }
            ]
          },
          "credits": {
            "$ref": "#/components/schemas/PropertyLookupCredits",
            "example": {
              "charged": 3
            }
          }
        },
        "type": "object",
        "required": ["property_id"],
        "title": "PublicRentalComparableResponse",
        "example": {
          "property_id": "12276B6",
          "rental_comps": [
            {
              "property_id": "12276B6",
              "address": "1918 W Sample Ln, San Diego, CA 92103",
              "rental_date": "2026-04-27 01:40:09.871",
              "effective_date": null,
              "rental_price": 2650,
              "rent_price": null,
              "beds": 4,
              "baths": 3,
              "sqft": 2400,
              "year_built": 2008,
              "comparable_property_id": 2674852,
              "distance_miles": 1.92,
              "lot_acres": 0.5,
              "comp_rank": 1,
              "rank": null,
              "similarity_score": 15,
              "adjusted_rent": 2685,
              "avm_value": 552000,
              "url": null,
              "formatted_comparable_property_id": "28D0A4"
            }
          ],
          "credits": {
            "charged": 3
          }
        }
      },
      "PublicRentalComparableRow": {
        "properties": {
          "property_id": {
            "type": "string",
            "title": "Property Id",
            "example": "12276B6",
            "description": "Subject property ID for joining this add-on row to the core property record."
          },
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Address",
            "example": "1918 W Sample Ln, San Diego, CA 92103",
            "description": "Comparable rental property address."
          },
          "rental_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rental Date",
            "example": "2026-04-27 01:40:09.871",
            "description": "Rental comp date."
          },
          "effective_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Effective Date",
            "example": null,
            "description": "Alternate rental effective date when supplied."
          },
          "rental_price": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rental Price",
            "example": 2650,
            "description": "Monthly rental price."
          },
          "rent_price": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rent Price",
            "example": null,
            "description": "Alternate monthly rent field when supplied."
          },
          "beds": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Beds",
            "example": 4,
            "description": "Comparable bedroom count."
          },
          "baths": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Baths",
            "example": 3,
            "description": "Comparable bathroom count."
          },
          "sqft": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sqft",
            "example": 2400,
            "description": "Comparable living area in square feet."
          },
          "year_built": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Year Built",
            "example": 2008,
            "description": "Comparable year built."
          },
          "comparable_property_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comparable Property Id",
            "example": 2674852,
            "description": "AssessorSearch property ID for the comparable property."
          },
          "distance_miles": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Distance Miles",
            "example": 1.92,
            "description": "Distance from the subject property in miles."
          },
          "lot_acres": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lot Acres",
            "example": 0.5,
            "description": "Comparable lot size in acres."
          },
          "comp_rank": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comp Rank",
            "example": 1,
            "description": "Comparable ranking returned by the matching model."
          },
          "rank": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Rank",
            "example": null,
            "description": "Alternate comparable ranking field when supplied."
          },
          "similarity_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Similarity Score",
            "example": 15,
            "description": "Similarity score returned by the matching model."
          },
          "adjusted_rent": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Adjusted Rent",
            "example": 2685,
            "description": "Adjusted monthly rent estimate when supplied."
          },
          "avm_value": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Avm Value",
            "example": 552000,
            "description": "AVM value associated with the rental comparable."
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Url",
            "example": null,
            "description": "Source URL when available."
          },
          "formatted_comparable_property_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Formatted Comparable Property Id",
            "example": "28D0A4",
            "description": "Display-ready comparable property ID when supplied."
          }
        },
        "type": "object",
        "required": ["property_id"],
        "title": "PublicRentalComparableRow",
        "example": {
          "property_id": "12276B6",
          "address": "1918 W Sample Ln, San Diego, CA 92103",
          "rental_date": "2026-04-27 01:40:09.871",
          "effective_date": null,
          "rental_price": 2650,
          "rent_price": null,
          "beds": 4,
          "baths": 3,
          "sqft": 2400,
          "year_built": 2008,
          "comparable_property_id": 2674852,
          "distance_miles": 1.92,
          "lot_acres": 0.5,
          "comp_rank": 1,
          "rank": null,
          "similarity_score": 15,
          "adjusted_rent": 2685,
          "avm_value": 552000,
          "url": null,
          "formatted_comparable_property_id": "28D0A4"
        }
      },
      "PublicSaleComparableResponse": {
        "properties": {
          "property_id": {
            "type": "string",
            "title": "Property Id",
            "example": "12276B6"
          },
          "sale_comps": {
            "items": {
              "$ref": "#/components/schemas/PublicSaleComparableRow"
            },
            "type": "array",
            "title": "Sale Comps",
            "example": [
              {
                "property_id": "12276B6",
                "address": "1810 W Sample Ct, San Diego, CA 92103",
                "sale_date": "2025-06-09",
                "sale_price": 545000,
                "beds": 4,
                "baths": 3,
                "sqft": 2388,
                "year_built": 2005,
                "price_per_sqft": 228.22,
                "comparable_property_id": 2712968,
                "distance_miles": 0.33,
                "lot_acres": 0.46,
                "comp_rank": 2,
                "similarity_score": 3.25,
                "formatted_comparable_property_id": "296588"
              }
            ]
          },
          "credits": {
            "$ref": "#/components/schemas/PropertyLookupCredits",
            "example": {
              "charged": 3
            }
          }
        },
        "type": "object",
        "required": ["property_id"],
        "title": "PublicSaleComparableResponse",
        "example": {
          "property_id": "12276B6",
          "sale_comps": [
            {
              "property_id": "12276B6",
              "address": "1810 W Sample Ct, San Diego, CA 92103",
              "sale_date": "2025-06-09",
              "sale_price": 545000,
              "beds": 4,
              "baths": 3,
              "sqft": 2388,
              "year_built": 2005,
              "price_per_sqft": 228.22,
              "comparable_property_id": 2712968,
              "distance_miles": 0.33,
              "lot_acres": 0.46,
              "comp_rank": 2,
              "similarity_score": 3.25,
              "formatted_comparable_property_id": "296588"
            }
          ],
          "credits": {
            "charged": 3
          }
        }
      },
      "PublicSaleComparableRow": {
        "properties": {
          "property_id": {
            "type": "string",
            "title": "Property Id",
            "example": "12276B6",
            "description": "Subject property ID for joining this add-on row to the core property record."
          },
          "address": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Address",
            "example": "1810 W Sample Ct, San Diego, CA 92103",
            "description": "Comparable sale property address."
          },
          "sale_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sale Date",
            "example": "2025-06-09",
            "description": "Comparable property sale date."
          },
          "sale_price": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sale Price",
            "example": 545000,
            "description": "Comparable property sale price."
          },
          "beds": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Beds",
            "example": 4,
            "description": "Comparable bedroom count."
          },
          "baths": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Baths",
            "example": 3,
            "description": "Comparable bathroom count."
          },
          "sqft": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Sqft",
            "example": 2388,
            "description": "Comparable living area in square feet."
          },
          "year_built": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Year Built",
            "example": 2005,
            "description": "Comparable year built."
          },
          "price_per_sqft": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Price Per Sqft",
            "example": 228.22,
            "description": "Comparable sale price per square foot."
          },
          "comparable_property_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comparable Property Id",
            "example": 2712968,
            "description": "AssessorSearch property ID for the comparable property."
          },
          "distance_miles": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Distance Miles",
            "example": 0.33,
            "description": "Distance from the subject property in miles."
          },
          "lot_acres": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Lot Acres",
            "example": 0.46,
            "description": "Comparable lot size in acres."
          },
          "comp_rank": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ],
            "title": "Comp Rank",
            "example": 2,
            "description": "Comparable ranking returned by the matching model."
          },
          "similarity_score": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ],
            "title": "Similarity Score",
            "example": 3.25,
            "description": "Similarity score returned by the matching model."
          },
          "formatted_comparable_property_id": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "title": "Formatted Comparable Property Id",
            "example": "296588",
            "description": "Display-ready comparable property ID when supplied."
          }
        },
        "type": "object",
        "required": ["property_id"],
        "title": "PublicSaleComparableRow",
        "example": {
          "property_id": "12276B6",
          "address": "1810 W Sample Ct, San Diego, CA 92103",
          "sale_date": "2025-06-09",
          "sale_price": 545000,
          "beds": 4,
          "baths": 3,
          "sqft": 2388,
          "year_built": 2005,
          "price_per_sqft": 228.22,
          "comparable_property_id": 2712968,
          "distance_miles": 0.33,
          "lot_acres": 0.46,
          "comp_rank": 2,
          "similarity_score": 3.25,
          "formatted_comparable_property_id": "296588"
        }
      },
      "ValidationError": {
        "properties": {
          "loc": {
            "items": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "type": "array",
            "title": "Location"
          },
          "msg": {
            "type": "string",
            "title": "Message"
          },
          "type": {
            "type": "string",
            "title": "Error Type"
          }
        },
        "type": "object",
        "required": ["loc", "msg", "type"],
        "title": "ValidationError"
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key",
        "description": "API key from the AssessorSearch dashboard."
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ]
}
