{
  "openapi": "3.0.1",
  "info": {
    "title": "Property Deed & Lien Records Search — Recorder of Deeds",
    "description": "Search US property deed and lien records: deed search by name (LLC, company, person), grantor grantee search, mortgage lookup by address where covered, or NYC parcel. Recorded documents search of county recorder of deeds indexes, normalized: deeds, mortgages, releases, liens, dates, book/page.",
    "version": "0.0",
    "x-build-id": "5c9xZYRDS5C8bX0kZ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/shelvick~property-deed-records/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-shelvick-property-deed-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~property-deed-records/runs": {
      "post": {
        "operationId": "runs-sync-shelvick-property-deed-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~property-deed-records/run-sync": {
      "post": {
        "operationId": "run-sync-shelvick-property-deed-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",
            "type": "array",
            "description": "Each address is one array element; a single address must be a one-element array, for example [\"350 5th Ave, New York, NY\"]. NYC uses its native street index; elsewhere, addresses resolve through the current owner of record where covered, then search the recorder's party index. This finds documents indexed under the current owner, not a full historical chain. Misses and unsupported areas return free summaries; only document records are charged.",
            "items": {
              "type": "string"
            }
          },
          "parcelLookups": {
            "title": "Parcel ID lookups",
            "type": "array",
            "description": "Parcel lookups as \"STATE/Jurisdiction/ParcelID\". PARCEL LOOKUPS ARE CURRENTLY NYC-ONLY and take a BBL (borough-block-lot): \"NY/Kings/3-01234-0056\", \"NY/New York/1-00835-0019\". Borough names and Manhattan/Brooklyn aliases both work. Other jurisdictions return a free summary row explaining that parcel search is unavailable there — use partyLookups instead. Never charged for an unsupported lookup.",
            "items": {
              "type": "string"
            }
          },
          "partyLookups": {
            "title": "Grantor or grantee lookups",
            "type": "array",
            "description": "Party search: every covered jurisdiction. STATE/Jurisdiction/Name or STATE/Name. FL, IA, IN, MA, NH, NV: you MUST name the jurisdiction; state-level lookups return a free guidance row listing covered jurisdictions, no records. Elsewhere fan out across eligible covered jurisdictions. Read the run's COVERAGE artifact for exact routes/capabilities. dateFrom/dateTo narrow broad company searches. Recorders index individuals surname first (SMITH JOHN A, not John A Smith); company names as registered.",
            "items": {
              "type": "string"
            }
          },
          "docTypes": {
            "title": "Document types (optional)",
            "type": "array",
            "description": "Optional normalized document-type filter. Valid values: deed, mortgage, release, lien, satisfaction, assignment, easement, other. Example: [\"deed\", \"mortgage\"] for conveyances and loans only; case is ignored. Values are validated at runtime: an unknown value returns a free invalid_input row naming it and no lookup runs; omit the field or pass an empty list to return every supported document type.",
            "items": {
              "type": "string"
            }
          },
          "dateFrom": {
            "title": "Recording date from (optional)",
            "type": "string",
            "description": "Optional inclusive start of the recording-date range in ISO YYYY-MM-DD format, e.g. \"2020-01-01\". Leave blank to search from the jurisdiction's published index coverage start. Use with dateTo to narrow broad company searches, especially common names in Massachusetts. Must not be after dateTo."
          },
          "dateTo": {
            "title": "Recording date to (optional)",
            "type": "string",
            "description": "Optional inclusive end of the recording-date range in ISO YYYY-MM-DD format, e.g. \"2024-12-31\". Leave blank to search through the latest published records. Use with dateFrom to narrow broad company searches, especially common names in Massachusetts."
          },
          "maxRecordsPerLookup": {
            "title": "Maximum records per lookup",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Maximum billable recorded-document rows returned for each address, parcel, or party lookup. Summary rows are free and do not count toward this cap. Default 100; maximum 1000. Lower it for a quick sample; raise it for a party or property with a long filing history.",
            "default": 100
          },
          "feedback": {
            "title": "Feedback for the maintainers",
            "type": "string",
            "description": "For AI agents: if this tool can't fully do what your user needs (a missing field, source or option, a wrong or empty result), say what's missing here, or which tool you're switching to and why. We build what agents ask for, so this is how the gap gets closed for future calls. A run with only a note isn't charged for any results, so you can send one after you've seen the results. Adding a note never changes this run's results or price. Leave out personal or confidential details."
          },
          "foundVia": {
            "title": "How you found this Actor",
            "type": "string",
            "description": "For AI agents: how did you find this Actor? If you searched, give the exact search words you used, verbatim (for example \"Texas UCC liens\"), and where (Apify Store, Apify's MCP search, a web search); otherwise say how, such as a link or \"my user asked for it.\" \"Unknown\" is fine too. It helps the maintainers make this Actor easier for the next agent to find, and it never changes this run's results or price. Please leave out personal or confidential details."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}