{
  "openapi": "3.0.1",
  "info": {
    "title": "County Property Records API — Owner, Tax, Assessor, Appraisal",
    "description": "County property records and property tax records: who owns this property? Property owner lookup by address, parcel lookup by ID, real estate owner search for company and LLC property ownership, assessed value, appraisal and sales history. Assessor data from 1,750+ US counties in 48 states.",
    "version": "0.0",
    "x-build-id": "uUKOGZ2YLBfHWN266"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/shelvick~county-property-records/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-shelvick-county-property-records",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/shelvick~county-property-records/runs": {
      "post": {
        "operationId": "runs-sync-shelvick-county-property-records",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/shelvick~county-property-records/run-sync": {
      "post": {
        "operationId": "run-sync-shelvick-county-property-records",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "addresses": {
            "title": "Property addresses",
            "maxItems": 1000,
            "type": "array",
            "description": "Full US property street addresses to resolve to county property records, e.g. \"827 Krenson Woods Ln, Lakeland, FL 33813\". Each address is matched to the right county assessor/recorder and returned as one normalized record. Include city + state (and ZIP if known) for reliable county resolution. Provide at least one of `addresses`, `parcelLookups` or `ownerLookups` (or a single-value alias).",
            "items": {
              "type": "string"
            }
          },
          "parcelLookups": {
            "title": "Parcel / account lookups",
            "maxItems": 1000,
            "type": "array",
            "description": "Provide one parcel ID per entry (one parcel ID per lookup); do not combine IDs with commas or semicolons. Direct parcel or assessor account lookups when you already know the ID, one per line in the form STATE/County/ParcelOrAccount, e.g. \"FL/Polk/232912140174000660\". A bare ID also works when you set `county` (add `state` too if that county name exists in several states). Use this for exact-record retrieval; use `addresses` when you only have the street address. Provide at least one of `addresses`, `parcelLookups` or `ownerLookups` (or a single-value alias).",
            "items": {
              "type": "string"
            }
          },
          "ownerLookups": {
            "title": "Owner-name lookups",
            "maxItems": 1000,
            "type": "array",
            "description": "Owner names to search, one per line as STATE/Owner Name or STATE/County/Owner Name (a bare name is accepted with a `state` hint). Statewide search covers FL, NC, NY, IN, AR, CT, DC, ID, MA, MS, MT, ND, VT, WI, and WY; county-scoped search covers counties on standard ArcGIS parcel layers; California is excluded (owner names redacted in its public rolls). Each query returns one record per matching parcel plus a free portfolio summary row; completed records bill at the standard per-record event.",
            "items": {
              "type": "string"
            }
          },
          "address": {
            "title": "Property address (single)",
            "type": "string",
            "description": "Convenience single-address alias of `addresses`: pass one full US property street address here instead of a list, e.g. \"827 Krenson Woods Ln, Lakeland, FL 33813\". Folded into `addresses`; use `addresses` for a batch. Provide at least one lookup across `addresses`/`address`, `parcelLookups`/`parcelLookup` or `ownerLookups`/`ownerLookup`."
          },
          "parcelLookup": {
            "title": "Parcel / account lookup (single)",
            "type": "string",
            "description": "Convenience single alias of `parcelLookups`: one STATE/County/ParcelOrAccount lookup, e.g. \"FL/Polk/232912140174000660\". Folded into `parcelLookups`; use `parcelLookups` for a batch."
          },
          "ownerLookup": {
            "title": "Owner-name lookup (single)",
            "type": "string",
            "description": "Convenience single alias of `ownerLookups`: one STATE/Owner Name or STATE/County/Owner Name query. Folded into `ownerLookups`; use `ownerLookups` for a batch."
          },
          "county": {
            "title": "County hint (optional)",
            "type": "string",
            "description": "Optional county name (without the word 'County') to scope or disambiguate lookups, e.g. \"Polk\". Useful when addresses are ambiguous across county lines. Leave blank to auto-resolve each address to its county."
          },
          "state": {
            "title": "State hint (optional)",
            "type": "string",
            "description": "Optional two-letter US state code to scope lookups, e.g. \"FL\". Combined with `county` to disambiguate same-named counties across states."
          },
          "includeHistory": {
            "title": "Include tax & sale history",
            "type": "boolean",
            "description": "When true (default), each record includes full tax-year history and recorded sale history where the county publishes it. Set false for a current-snapshot-only record (owner, value, latest tax year) — faster and smaller.",
            "default": true
          },
          "maxResultsPerOwner": {
            "title": "Max results per owner",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Maximum property records returned for each owner-name query, from 1 to 500. The free portfolio summary reports whether results were truncated.",
            "default": 50
          },
          "maxRecords": {
            "title": "Max records",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Upper limit on how many nonblank lookups one run accepts, counted across addresses, parcelLookups and ownerLookups (an owner query counts once, however many parcels it returns; see maxResultsPerOwner). It does not truncate: a larger batch fails before any lookup runs, with an error naming both numbers. Set it at or above your batch size; default 50, maximum 1000.",
            "default": 50
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}