Hercules property data
Server Details
NYC and US property records: owners, LLC officers, mortgages, pre-foreclosures and investors.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 21 tools
The quote/run pairs are explicitly paired by name and description (e.g., quote_national_property_search and run_national_property_search), and NYC-specific tools are clearly distinguished from national ones. Free discovery tools (find, get, search) are distinct from paid unlock tools (unlock_nyc_property_report, unlock_nyc_owner_contacts).
Consistent snake_case verb_noun pattern throughout: find_, get_, search_, quote_, run_, unlock_, buy_. Every tool follows this convention without exception.
21 tools is at the upper end of reasonable for a rich property data domain with multiple workflows (free search, quote/run paid searches, unlocks, credits). However, the quote/run pairs inflate the count and create a two-step process for every paid workflow. A more unified search tool with a confirmation step could reduce count without losing functionality.
Covers the full lifecycle: discover (overview, find, search, quote), execute (run, unlock), and account management (buy_credits, get_credit_balance). Minor gaps: no direct CSV export or saved search feature, and while NYC owner portfolios are covered, national owner portfolio lookup is less explicit.
Available Tools
21 toolsbuy_creditsBuy credits with a machine paymentAInspect
Buy a credit pack with a machine payment (Stripe MPP: card through a shared payment token, or stablecoin). No account or sign-in needed. Packs: starter_80 = 80 credits for $9.99; pack_200 = 200 credits for $24.99; pack_550 = 550 credits for $59.99; pack_1500 = 1500 credits for $149.99. Pay by card (Stripe Link shared payment token, the default) or by stablecoin (USDC on Tempo): set method. The first call returns a payment challenge (JSON-RPC error -32042). Pay it and call again with the credential in _meta. With no API key, a new workspace is created and its API key is returned once: store it and send it as Authorization: Bearer . With an API key or a signed-in account, the credits are added to that workspace. The first card or Link purchase from each payer gets 50% bonus credits.
| Name | Required | Description | Default |
|---|---|---|---|
| pack | Yes | Which pack to buy: starter_80 (80 credits, $9.99), pack_200 (200 credits, $24.99), pack_550 (550 credits, $59.99), pack_1500 (1500 credits, $149.99). | |
| method | No | How to pay: card (Stripe Link shared payment token, the default) or stablecoin (USDC on Tempo). | card |
Output Schema
| Name | Required | Description |
|---|---|---|
| apiKey | Yes | |
| status | Yes | |
| balance | Yes | |
| serverUrl | Yes | |
| bonusCredits | Yes | |
| creditsAdded | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations it discloses the two-step payment handshake (first call returns JSON-RPC error -32042, then re-call with the credential in _meta), the one-time return of an API key that must be stored and replayed as a Bearer token, and a 50% first-purchase bonus. These are exactly the operational traits an agent cannot infer from readOnlyHint=false / idempotentHint=false / openWorldHint=true.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded correctly (purpose, then packs, then method, then flow, then bonus) and each sentence carries real information. The pack pricing table is repeated in both the description and the pack parameter schema, which is mild redundancy in an otherwise dense block.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paid, non-idempotent, open-world purchase tool with an output schema, the description covers auth requirements, the payment challenge/retry cycle, workspace-key semantics, and the bonus condition. Nothing an agent needs before invoking is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema already documents pack, its pricing, the method enum, and the default. The description restates the pack tiers and the card/stablecoin meanings almost verbatim, adding negligible meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('Buy a credit pack') and even qualifies the payment channel ('machine payment'). It is trivially distinguishable from every sibling, most of which are read/quote/search tools, and pairs naturally with get_credit_balance as the read counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives strong procedural context: no account or sign-in needed, credits land in the workspace tied to the API key, and card vs stablecoin selection. It never explicitly names an alternative (e.g. check get_credit_balance first) or states when-not to buy, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_nyc_propertyFind an NYC propertyARead-onlyIdempotentInspect
Free. Finds New York City tax lots by address, e.g. "40 Water Street Manhattan". Returns each match's BBL for get_nyc_property. NYC only; for other US properties use the national property tools.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | An NYC street address. |
Output Schema
| Name | Required | Description |
|---|---|---|
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, non-destructive and closed-world, so the safety profile is settled. The description adds value they don't carry: the operation is free (meaningful next to quote_*/buy_credits siblings), the result feeds a specific follow-up tool, and the coverage boundary is NYC-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler; the free/NYC scope constraint is front-loaded and the chaining hint comes last. Every sentence carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, yet the description still names the key output (BBL) for chaining. For a one-parameter, read-only lookup, an agent has everything needed to select and call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single param is already described as 'An NYC street address,' so the baseline is 3. The description adds a concrete format example ('40 Water Street Manhattan') that shows street-then-borough ordering without a comma, which is real guidance beyond the schema's generic phrasing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Finds New York City tax lots by address') and pins the geographic scope to NYC. It also distinguishes itself from the national property siblings in the same breath, so an agent can separate it from run_national_property_search without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-not ('NYC only; for other US properties use the national property tools') and a downstream usage hint ('Returns each match's BBL for get_nyc_property'). The alternative is named as a class rather than the concrete sibling (run_national_property_search), which is the only gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_credit_balanceGet credit balanceARead-onlyIdempotentInspect
Shows the credit balance of the user's workspace, credits spent today, and recent charges. Free; never spends credits. Use it when the user asks about credits, or before a search that would cost more than the balance.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| balance | Yes | |
| spentToday | Yes | |
| recentCharges | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent and non-destructive, so the remaining burden is cost/latency behavior. The description usefully adds that the call is free and never spends credits, which is real decision-relevant context for a credit-gated toolset.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with what is returned, then the cost profile, then the trigger condition. No filler and nothing repeated from annotations or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the parameter list is empty, so the description need only cover selection context, which it does fully. Nothing an agent needs to invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the description to disambiguate or compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Shows) and resource (credit balance) and enumerates the exact payload: balance, credits spent today, recent charges. The 'never spends credits' phrasing implicitly contrasts it with the buy_credits and run_* search siblings, so an agent can place it without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two explicit triggering conditions: when the user asks about credits, and before a search that would cost more than the balance. It does not name an alternative tool such as buy_credits or state a when-not, so it stops just short of the 5 bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hercules_overviewGet the Hercules overviewARead-onlyIdempotentInspect
Free, no sign-in. Describes Hercules: what it covers (every NYC tax lot, NYC pre-foreclosures, nationwide US property records, LLC owners and investors), every tool and whether it spends credits, plan and credit prices, and how to connect an account. Call it first when the user asks what Hercules can do or what it costs.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| links | Yes | |
| plans | Yes | |
| tools | Yes | |
| coverage | Yes | |
| serverUrl | Yes | |
| creditPacks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint, idempotentHint, non-destructive, closed-world), so the bar is lower. The description adds genuinely new context beyond them: 'Free, no sign-in' discloses that no authentication or credit spend is required, and it warns that other tools may spend credits. It does not describe response shape, but the output schema covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the most decision-relevant fact ('Free, no sign-in') and then packs the coverage list, credit behavior, pricing, and account connection into one efficient sentence, closing with the routing instruction. No sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only overview tool with an existing output schema, everything an agent needs is present: what it returns, that it is free and requires no sign-in, and when to call it. Nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline of 4 applies. The description adds nothing about parameters because there are none to describe, which is appropriate for a no-argument overview tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Describes Hercules') and enumerates exactly what it covers: coverage areas, per-tool credit behavior, plan and credit pricing, and account connection. This is clearly distinguishable from every sibling, which are all functional search/lookup/quote tools rather than a meta-overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Call it first when the user asks what Hercules can do or what it costs' gives an explicit trigger condition and ordering instruction. It stops short of naming when-not to use it (e.g., for actual property lookups, use the search/quote siblings), but the routing intent is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nyc_owner_portfolioGet an NYC owner's buildingsARead-onlyIdempotentInspect
Free. Lists the NYC buildings linked to a person from search_nyc_owners, and whether each is held as the owner of record or through a company. The full list is on the Platinum plan; other plans see the first few buildings.
| Name | Required | Description | Default |
|---|---|---|---|
| cursor | No | ||
| personKey | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| full | Yes | |
| total | Yes | |
| buildings | Yes | |
| nextCursor | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely non-obvious behavior: the tool is free, and results are plan-gated (Platinum gets the full list, other plans see only the first few buildings). It does not explain how that truncation interacts with the cursor, which is the one remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler; the key constraint (ownership type) is front-loaded before the plan limitation. The one-word 'Free.' opener is a fragment but functions as a useful up-front qualifier rather than waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is not required, and the description covers the prerequisite, the ownership-type distinction, and plan gating. However, for a tool whose results are truncated by plan, the pagination contract (what cursor does, whether it recovers the hidden buildings) is left entirely unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden, yet it only vaguely indicates that personKey comes from search_nyc_owners. It says nothing about personKey's required pipe-delimited format, its length bounds, or the existence and purpose of the cursor parameter for paginating beyond the truncated result set.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (lists) and resource (NYC buildings linked to a person) plus the added dimension it returns — ownership type (owner of record vs. through a company). It explicitly ties itself to the sibling search_nyc_owners, which is exactly the tool an agent would otherwise confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'linked to a person from search_nyc_owners' tells the agent this is a follow-on lookup whose input comes from that search tool, which is clear routing context. There is no explicit when-not guidance or statement of what to do if the portfolio is empty, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nyc_preforeclosure_detailGet NYC preforeclosure recordAInspect
Spends 1 credit, unless this workspace already pulled the record, then free. Returns the full record for one NYC preforeclosure: case and index number, stage, lender, amounts owed and due, mortgage, owner of record and building facts. NYC preforeclosures only; take the id from search_nyc_preforeclosures. Tell the user it costs 1 credit before calling.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id of a row from search_nyc_preforeclosures. |
Output Schema
| Name | Required | Description |
|---|---|---|
| balance | Yes | |
| property | Yes | |
| alreadyOwned | Yes | |
| creditsCharged | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real behavioral context the annotations cannot express: it spends 1 credit, is free when the workspace already pulled the record, and requires informing the user first. This also explains why readOnlyHint=false despite being a retrieval, resolving what would otherwise look like an odd annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, each doing distinct work: cost, payload, scope, and provenance/consent. Cost and payload are front-loaded so an agent reading only the first line still knows the essentials.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. Cost, caching, scope, id provenance, and the user-notification requirement are all covered, leaving nothing an agent needs missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single id parameter is documented in the schema itself ('The id of a row from search_nyc_preforeclosures'). The description repeats the same provenance hint rather than adding format, length, or validity details, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns the full record for one NYC preforeclosure') and enumerates the payload (case/index number, stage, lender, amounts, mortgage, owner, building facts). It is clearly separable from the sibling search_nyc_preforeclosures, which produces the id this tool consumes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent to the correct source of input ('take the id from search_nyc_preforeclosures') and scopes the tool ('NYC preforeclosures only'). It also adds a consent precondition ('Tell the user it costs 1 credit before calling'), but gives no guidance on when this tool should be preferred over other per-record siblings such as get_nyc_property or unlock_nyc_property_report.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nyc_propertyGet an NYC propertyRead-onlyIdempotentInspect
Free. Returns the public facts for one NYC lot (building, lot, units, year built, city market value, last sale) and the owner of record from the city lot file. Also says whether the full report is already unlocked for this workspace and what unlock_nyc_property_report and unlock_nyc_owner_contacts cost. When the report is already unlocked it is returned in full.
| Name | Required | Description | Default |
|---|---|---|---|
| bbl | Yes | The 10-digit NYC borough-block-lot id, e.g. "1000300034". Get it from find_nyc_property. |
Output Schema
| Name | Required | Description |
|---|---|---|
| facts | Yes | |
| report | Yes | |
| balance | Yes | |
| recordOwner | Yes | |
| reportPrice | Yes | |
| contactsPrice | Yes | |
| contactsState | Yes | |
| reportUnlocked | Yes |
get_property_detailGet a property recordAInspect
Spends 2 credits, unless this workspace pulled the same property in the last 7 days, then free. Returns the full record for one property from a national search: owners of record, building and lot, value and equity, open mortgages and lenders, foreclosure filings and last sale. Take property_id (it starts with "prop_") from run_national_property_search or run_active_investor_search. Tell the user it costs 2 credits and get their go-ahead before calling. For NYC preforeclosures use get_nyc_preforeclosure_detail instead.
| Name | Required | Description | Default |
|---|---|---|---|
| property_id | Yes | A property id from a national search result, e.g. prop_123456. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| apn | Yes | |
| owners | Yes | |
| vacant | Yes | |
| zoning | Yes | |
| address | Yes | |
| balance | Yes | |
| bedrooms | Yes | |
| bathrooms | Yes | |
| mortgages | Yes | |
| yearBuilt | Yes | |
| highEquity | Yes | |
| propertyUse | Yes | |
| alreadyOwned | Yes | |
| foreclosures | Yes | |
| lastSaleDate | Yes | |
| absenteeOwner | Yes | |
| equityPercent | Yes | |
| lotSquareFeet | Yes | |
| ownerOccupied | Yes | |
| creditsCharged | Yes | |
| estimatedValue | Yes | |
| lastSaleAmount | Yes | |
| mailingAddress | Yes | |
| preForeclosure | Yes | |
| estimatedEquity | Yes | |
| livingSquareFeet | Yes | |
| openMortgageBalance | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and destructiveHint=false, but the description adds critical pricing behavior (2 credits unless pulled in last 7 days, then free) and a required user-confirmation step — neither of which is in the annotations. This is exactly the kind of context that structured fields cannot capture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the cost model, then the return contents, then the parameter source, then the confirmation requirement, then the alternative. Dense but every sentence contributes. Slightly long, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the description correctly focuses on cost, sourcing, and routing. It covers all the decision-relevant information an agent needs before calling. Minor gap: does not mention authentication or rate-limit properties, though the credit model covers the main constraint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents property_id with an example (prop_123456). The description adds that it starts with 'prop_' and where to source it, which is mildly useful but largely redundant. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Returns the full record for one property') and enumerates exactly what the record contains (owners, building/lot, value/equity, mortgages, foreclosure filings, last sale). It distinguishes itself from siblings by naming get_nyc_preforeclosure_detail as the alternative for NYC preforeclosures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names where to get the property_id (run_national_property_search or run_active_investor_search), states a confirmation requirement ('Tell the user it costs 2 credits and get their go-ahead before calling'), and routes NYC preforeclosure queries to get_nyc_preforeclosure_detail. Covers when-to-use, prerequisites, and the sibling alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_active_investor_searchQuote an active investor searchARead-onlyIdempotentInspect
Finds who is actively buying in an area: properties in a zip, city or county owned by investors, grouped by owner when run. By default it looks for owners of 2+ properties who bought in this area in the last 12 months. Options: minPurchasesLast12Months keeps owners who bought at least N properties in the last 12 months. That count covers the owner's whole portfolio, not only this area, so it is the closest available measure of 'bought N+ here'; boughtWithinMonths keeps it to owners who bought here recently. corporateOnly keeps companies and LLCs. cashInvestorOnly keeps properties bought with cash by an absentee investor. outOfStateOnly keeps owners who live in another state. Each property record costs credits, the same as a national property search. Never spends credits: it counts the matches and prices one batch. Always quote first. Then tell the user the credit cost, the batch size and their balance after. Records this workspace already pulled in the last 24 hours are free. For large searches, prefer a smaller batch (limit) or narrower filters, such as a zip instead of a county. One run returns at most 250 records; page with offset. Quotes expire after 10 minutes. Call run_active_investor_search with the quote_id only after the user agrees to the credit cost.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | Five-digit zip code. The narrowest and cheapest place filter. | |
| city | No | City name. | |
| limit | No | Records to price in this batch (max 250). Leave empty to let the quote pick a safe batch size. | |
| state | Yes | Two-letter state code, e.g. TX. Required. | |
| county | No | County name, without the word County. | |
| offset | No | Skip this many matches. Use it to quote the next page. | |
| propertyType | No | SFR single family, MFR multifamily, CONDO, LAND, MOBILE or OTHER. | |
| corporateOnly | No | Only companies and LLCs. | |
| outOfStateOnly | No | Only owners whose mailing address is in another state. | |
| cashInvestorOnly | No | Only properties bought with cash by an absentee investor. | |
| boughtWithinMonths | No | Only properties in this area bought in the last N months. Default 12. Null means any time. | |
| minPropertiesOwned | No | Only owners with at least this many properties. Default 2. | |
| minPurchasesLast12Months | No | Only owners who bought at least this many properties in the last 12 months, counted across their whole portfolio. |
Output Schema
| Name | Required | Description |
|---|---|---|
| offset | Yes | |
| balance | Yes | |
| credits | Yes | |
| quoteId | Yes | |
| runTool | Yes | |
| expiresAt | Yes | |
| affordable | Yes | |
| suggestions | Yes | |
| balanceAfter | Yes | |
| ownedInBatch | Yes | |
| totalMatches | Yes | |
| recommendation | Yes | |
| recordsInBatch | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare safety (readOnly, idempotent, non-destructive), but the description discloses the credit-cost model, that the quote never spends credits, that records pulled in the last 24h are free, the 250-record cap, offset paging, and the 10-minute quote expiry — behavioral context the structured fields do not carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose and the credit-cost workflow, and every sentence carries actionable content. It is dense and fairly long, but not padded — the length is justified by the credit/expiry/paging constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-param credit-consuming quote tool with an output schema, the description covers the cost model, safety of quoting, batching, pagination, expiry and the handoff to run_active_investor_search. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so baseline is 3. The description goes beyond by clarifying semantics the schema cannot: minPurchasesLast12Months counts the owner's whole portfolio rather than only this area, and it explains boughtWithinMonths, corporateOnly, cashInvestorOnly and outOfStateOnly in behavioral terms.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — finds actively-buying investors, defined as properties in a zip/city/county owned by investors, grouped by owner. It implicitly distinguishes itself from quote_national_property_search (investor-focused rather than all properties) and explicitly names run_active_investor_search as the follow-on action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit workflow: 'Always quote first,' then report credit cost/batch size/balance, and only call run_active_investor_search with the quote_id after user agreement. It also gives a when-not/narrower guidance: prefer a smaller batch (limit) or narrower filters like a zip instead of a county for large searches.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_investor_firm_searchQuote an investor firm searchARead-onlyIdempotentInspect
Use to find real estate investor and lender firms in a state or city: hard-money lenders, private money lenders, note buyers, fix-and-flip investors, investment funds, cash home buyers and wholesalers. Returns firms with business phones, business emails, website and key people (name and title only). Free: this tool only returns a quote and never spends credits. The quote states the cost per firm returned; firms not found cost nothing. Tell the user the cost and ask. Only after the user agrees, call run_investor_firm_search with the quote_id. To find who is actively buying properties in an area, use quote_active_investor_search instead.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City to search in. Leave out to search the whole state. | |
| state | Yes | Two-letter US state, e.g. TX. | |
| maxResults | No | Most firms to return, 1-25. Default 10. | |
| investorType | Yes | The kind of firm: hard_money_lender (hard-money lenders), private_lender (private money lenders), note_buyer (mortgage note buyers), fix_and_flip (fix-and-flip investors), real_estate_fund (real estate investment funds), cash_home_buyer (cash home buyers), wholesaler (real estate wholesalers). |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| balance | Yes | |
| credits | Yes | |
| quoteId | Yes | |
| runTool | Yes | |
| coverage | Yes | |
| expiresAt | Yes | |
| affordable | Yes | |
| maxResults | Yes | |
| alreadyOwned | Yes | |
| balanceAfter | Yes | |
| coverageNote | Yes | |
| creditsPerResult | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, but the description adds the crucial billing behavior: free, quote-only, never spends credits, and firms not found cost nothing. That is exactly the kind of behavioral fact annotations cannot express and is essential for a credit-based tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose, then output content, then the free/quote workflow, then the alternative. Slightly long with some repetition of the firm-type list already in the schema, but every sentence carries routing or billing weight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a quote-then-run two-step flow, four params with full schema coverage, and an output schema, the description supplies everything needed: what it returns (phones, emails, website, names/titles), the credit-safety guarantee, and the required next-step handoff to run_investor_firm_search with quote_id.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and enums already spell out investorType values and state codes, so the description adds little parameter detail. Baseline 3 is appropriate since the schema does the heavy lifting; the firm-type list in the description is largely redundant with the enum descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('find real estate investor and lender firms') with an explicit enumeration of the firm types covered, which maps to the investorType enum. It also names the sibling tool that serves a different intent (quote_active_investor_search), so an agent can route without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a complete workflow: tell the user the cost, ask, and only then call run_investor_firm_search with the quote_id. It also names the alternative (quote_active_investor_search) for the distinct job of finding active buyers, covering both when-to-use and when-to-use-something-else.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_llc_owner_lookupQuote an LLC owner lookupARead-onlyIdempotentInspect
Use to find who is behind an LLC or company, for example the LLC that owns a property: its officers or managers, registered agent and formation details from public business records. Free: this tool only returns a quote and never spends credits. The quote states the credit cost (charged only if the company is found) and what that state's public records show; some states list the company but not its officers. Tell the user the cost and that note, and ask. Only after the user agrees, call run_llc_owner_lookup with the quote_id. Pass the company's exact registered name and the state where it is registered.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Two-letter US state where the company is registered, e.g. FL. Often the state of the property. | |
| entityName | Yes | The company's registered name, as on the deed or tax record, e.g. "Sunrise Holdings LLC". |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| balance | Yes | |
| credits | Yes | |
| quoteId | Yes | |
| runTool | Yes | |
| coverage | Yes | |
| expiresAt | Yes | |
| affordable | Yes | |
| maxResults | Yes | |
| alreadyOwned | Yes | |
| balanceAfter | Yes | |
| coverageNote | Yes | |
| creditsPerResult | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds substantive context they do not: it never spends credits, the cost is charged only if the company is found, and some states list the company without its officers. Those are exactly the caveats an agent needs to relay before committing the user to a paid action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then the free/credit model, then the two-step workflow, then the parameter guidance. Every sentence carries information, but the single dense paragraph runs long enough that the user-consent step could be visually separated for easier scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation; the description instead supplies the workflow, cost semantics, and data-availability caveats. For a two-parameter quoting tool that gates a paid sibling call, nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, and the description earns a bump by stressing that the exact registered name must be passed and clarifying the state is the one where the company is registered (the schema hedges with 'often the state of the property'). It adds real precision beyond the field descriptions, though it introduces no new fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('find who is behind an LLC or company') and enumerates exactly what it returns: officers/managers, registered agent, and formation details from public business records. It is clearly distinguishable from its sibling run_llc_owner_lookup, which it explicitly positions as the follow-up step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when-to-use (finding LLC ownership, e.g. the LLC behind a property) and a hard precondition: only call run_llc_owner_lookup with the quote_id after the user agrees to the stated cost. The quote-then-run pattern and the requirement to relay the cost to the user are spelled out rather than implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quote_national_property_searchQuote a national property searchARead-onlyIdempotentInspect
Quotes a search of national property data: any US property, including NYC properties that are not in preforeclosure. Filters: place (state plus zip, city or county), property type, beds, baths, value, equity, year built, distress flags (preforeclosure, foreclosure, auction, bank-owned, vacant, absentee owner, high equity, free and clear, inherited) and owner filters (company-owned, out-of-state owner, cash buyer, owners of N+ properties, last sale dates). Never spends credits: it counts the matches and prices one batch. Always quote first. Then tell the user the credit cost, the batch size and their balance after. Records this workspace already pulled in the last 24 hours are free. For large searches, prefer a smaller batch (limit) or narrower filters, such as a zip instead of a county. One run returns at most 250 records; page with offset. Quotes expire after 10 minutes. Call run_national_property_search with the quote_id only after the user agrees to the credit cost.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | Five-digit zip code. The narrowest and cheapest place filter. | |
| city | No | City name. | |
| flags | No | Only properties with all of these: pre_foreclosure, foreclosure, auction, reo (bank-owned), vacant, absentee_owner, high_equity, free_clear (no mortgage), inherited. | |
| limit | No | Records to price in this batch (max 250). Leave empty to let the quote pick a safe batch size. | |
| state | Yes | Two-letter state code, e.g. TX. Required. | |
| county | No | County name, without the word County. | |
| offset | No | Skip this many matches. Use it to quote the next page. | |
| bedsMin | No | ||
| bathsMin | No | ||
| valueMax | No | ||
| valueMin | No | ||
| cashBuyer | No | Only properties bought with cash. | |
| propertyType | No | SFR single family, MFR multifamily, CONDO, LAND, MOBILE or OTHER. | |
| yearBuiltMax | No | ||
| yearBuiltMin | No | ||
| lastSoldAfter | No | Last sale on or after this date. | |
| corporateOwned | No | Only properties owned by a company or LLC. | |
| lastSoldBefore | No | Last sale on or before this date. | |
| outOfStateOwner | No | Only owners whose mailing address is in another state. | |
| equityPercentMin | No | Minimum estimated equity, in percent. | |
| ownerPropertiesMin | No | Only owners who own at least this many properties. |
Output Schema
| Name | Required | Description |
|---|---|---|
| offset | Yes | |
| balance | Yes | |
| credits | Yes | |
| quoteId | Yes | |
| runTool | Yes | |
| expiresAt | Yes | |
| affordable | Yes | |
| suggestions | Yes | |
| balanceAfter | Yes | |
| ownedInBatch | Yes | |
| totalMatches | Yes | |
| recommendation | Yes | |
| recordsInBatch | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnly, idempotent, openWorld, non-destructive); the description adds the behavior that matters: it never spends credits, counts matches and prices one batch, 24-hour free re-pulls, a 250-record cap, offset pagination, and a 10-minute quote expiry. These are non-obvious operational traits an agent must know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads purpose, then cost behavior, workflow, pagination and expiry in a logical order, and every sentence carries a constraint or instruction. It is on the longer side, but the length is justified by the amount of distinct behavioral information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 21-parameter, credit-consuming search tool this covers cost model, required workflow sequencing, batch sizing, pagination, expiry, and free re-pull behavior; return values are handled by the output schema, so nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 71% schema coverage the baseline is 3, and the description goes further by grouping the 21 filters into place, type, beds/baths, value/equity, year built, distress flags and owner filters, and by flagging zip as the 'narrowest and cheapest' place filter. It stops short of adding syntax detail beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('quotes') and resource ('a search of national property data'), then bounds the scope ('any US property, including NYC properties that are not in preforeclosure'). This lets an agent separate it from the NYC-only and investor/LLC quote siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Always quote first,' names the downstream tool (run_national_property_search) and the exact condition for calling it ('only after the user agrees to the credit cost'). It also advises narrowing filters or batch size for large searches, covering when-not to run broad queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_active_investor_searchRun a quoted active investor searchAInspect
Returns the investors and their properties from a quote made by quote_active_investor_search, grouped by owner with portfolio size and purchases in the last 12 months. Spends credits. Takes only a quote_id. Charges for the records returned, never more than the quote, and releases the rest. Before calling, the user must have agreed to the quoted credit cost. A quote runs once and expires after 10 minutes.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | The quoteId returned by quote_active_investor_search. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | Yes | |
| balance | Yes | |
| charged | Yes | |
| quoteId | Yes | |
| released | Yes | |
| investors | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark this as a non-readOnly, non-idempotent operation, and the description goes well beyond them: it discloses that credits are spent, that billing is for records returned and capped at the quote, that unused credits are released, that a quote is single-use, and that it expires in 10 minutes. These are exactly the mutation/cost behaviors an agent needs and that annotations alone do not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the return shape, then the cost model, then the preconditions. Every sentence carries distinct, non-redundant information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be spelled out, yet the description still summarizes the payload usefully. Combined with the cost, single-use, and expiry details, nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is fully documented in the schema, so the baseline is 3. The description restates that it 'takes only a quote_id' and ties it to the quote step but adds no format or validation detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it returns investors and their properties from a quote, and specifies the grouping (by owner) plus the payload (portfolio size, purchases in last 12 months). It explicitly names the sibling that produces its input (quote_active_investor_search), so an agent can distinguish the run step from the quote step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives the prerequisite sibling (must follow quote_active_investor_search), a user precondition (must have agreed to the quoted cost), and lifecycle constraints (runs once, expires after 10 minutes). These conditions leave little to inference about when this tool is callable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_investor_firm_searchRun an investor firm searchAInspect
Spends credits. Runs a quote from quote_investor_firm_search and returns the firms with business phones, business emails, website and key people (name and title only). Charges per firm returned, never more than the quote. No firms found costs nothing. Call only after the user agreed to the quoted cost. A quote runs once and expires after 10 minutes.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | The quoteId from quote_investor_firm_search. |
Output Schema
| Name | Required | Description |
|---|---|---|
| firms | Yes | |
| balance | Yes | |
| quoteId | Yes | |
| alreadyOwned | Yes | |
| creditsCharged | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations (readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=true) by disclosing the billing model (spends credits, charged per firm returned, capped at the quote), the zero-result cost ('No firms found costs nothing'), and the quote lifecycle (single-use, expires after 10 minutes). These are exactly the operational facts an agent needs before committing the user to spend.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five short sentences, front-loaded with the cost implication ('Spends credits'), and every sentence carries distinct information — cost model, return payload, failure cost, precondition, quote expiry. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one required parameter, output schema present), so return-format detail is not needed from the description. Combined with the annotations and 100% schema coverage, the description covers cost, precondition, expiry, and result shape — nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single quote_id parameter is already documented in the schema, so the baseline is 3. The description adds real meaning on top by explaining where the quote comes from, that it is single-use, and that it expires in 10 minutes — semantics the schema does not convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Runs a quote from quote_investor_firm_search') and enumerates exactly what is returned (business phones, emails, website, key people). It names the sibling tool that produces the quote, so an agent can distinguish it from quote_investor_firm_search and the other run_* tools without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear gating condition — 'Call only after the user agreed to the quoted cost' — plus the implicit prerequisite that a quote from quote_investor_firm_search must exist first. It stops short of explicitly ruling out the parallel run_active_investor_search / run_national_property_search siblings, so it is clear context rather than a full when/when-not routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_llc_owner_lookupRun an LLC owner lookupAInspect
Spends credits. Runs a quote from quote_llc_owner_lookup and returns the company's officers or managers, registered agent and formation details. Charges only if the company is found, never more than the quote. A company that is not found costs nothing. Call only after the user agreed to the quoted cost. A quote runs once and expires after 10 minutes.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | The quoteId from quote_llc_owner_lookup. |
Output Schema
| Name | Required | Description |
|---|---|---|
| balance | Yes | |
| company | Yes | |
| quoteId | Yes | |
| alreadyOwned | Yes | |
| creditsCharged | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only flag readOnlyHint=false and idempotentHint=false; the description goes well beyond them by disclosing the credit model, the charge-if-found-only rule, the quote ceiling, the zero cost on miss, and the 10-minute one-shot expiry. These are exactly the behavioral facts an agent needs before spending the user's credits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Opens with the highest-salience fact ('Spends credits'), then layers cost rules, consent gate and expiry. Five short sentences, none redundant, all front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need not be spelled out, yet the description still summarizes the payload. For a single-parameter credit-spending tool, every decision-relevant fact (cost, precondition, expiry, failure cost) is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and quote_id is self-documented there, so baseline is 3. The description adds lifecycle meaning the schema lacks — the quote runs once and expires after 10 minutes — which materially affects how the parameter should be used, lifting it to 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific action (runs a quote) and the concrete payload it returns: officers/managers, registered agent, formation details. It is clearly distinguishable from its near-twin sibling quote_llc_owner_lookup, which only produces the quote this tool consumes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the ordering prerequisite (a quote from quote_llc_owner_lookup) and the consent precondition (call only after the user agreed to the quoted cost). No alternative tool performs this lookup, so no when-not-to-use clause is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_national_property_searchRun a quoted national property searchAInspect
Returns the property records from a quote made by quote_national_property_search. Spends credits. Takes only a quote_id. Charges for the records returned, never more than the quote, and releases the rest. Before calling, the user must have agreed to the quoted credit cost. A quote runs once and expires after 10 minutes. Use get_property_detail on a record id for the full record.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | The quoteId returned by quote_national_property_search. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | Yes | |
| balance | Yes | |
| charged | Yes | |
| quoteId | Yes | |
| released | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only flag it as a non-read-only, non-idempotent, non-destructive open-world call; the description adds the economically critical behavior an agent cannot infer: credits are spent, the charge is capped at the quote, unused credits are released, the quote is single-use and time-boxed. It does not contradict the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with what it returns and that it costs credits, then preconditions, then the expiry caveat, then the follow-up pointer. No filler and nothing repeated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and the annotations carry the safety profile; the description fills the remaining gaps (cost, one-shot semantics, expiry, user-consent gate, follow-up tool) that an agent needs to invoke this safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter exists and schema description coverage is 100%, with the schema itself explaining that quote_id comes from quote_national_property_search. The description's 'takes only a quote_id' adds emphasis but no syntax, format, or constraint beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (returns property records for a quote) and ties itself directly to its sibling quote_national_property_search as the producer of the required input. It also distinguishes itself from get_property_detail by scope (record list vs full record), so an agent can route correctly without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit preconditions ('the user must have agreed to the quoted credit cost'), lifecycle constraints (runs once, expires after 10 minutes), and names the alternative to use for follow-up detail (get_property_detail). This is when-to-use, when-not, and alternative all in one compact block.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_nyc_preforeclosure_searchGet quoted NYC preforeclosure rowsAInspect
Spends credits. Returns the NYC preforeclosure rows from a quote made by search_nyc_preforeclosures and charges the quoted credits (never more). Before calling, tell the user how many credits it costs and get their go-ahead. Quotes expire after 10 minutes and run once.
| Name | Required | Description | Default |
|---|---|---|---|
| quote_id | Yes | The quote.quoteId from search_nyc_preforeclosures. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | Yes | |
| offset | Yes | |
| balance | Yes | |
| quoteId | Yes | |
| totalMatches | Yes | |
| creditsCharged | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only flag readOnlyHint=false and idempotentHint=false; the description goes well beyond by disclosing cost behavior ('spends credits', 'charges the quoted credits (never more)'), a 10-minute expiry, and single-use semantics ('run once'). These are exactly the traits an agent needs before invoking a billable operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the most decision-relevant fact ('Spends credits'), then the precondition, then the expiry/one-shot behavior. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. Cost, consent requirement, quote dependency, expiry and single-use behavior are all covered, leaving nothing an agent needs in order to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single quote_id parameter is already documented as coming from search_nyc_preforeclosures quote.quoteId. The description restates that provenance but adds no format or constraint detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (returns rows) and resource (NYC preforeclosure rows) and anchors it to the quote produced by search_nyc_preforeclosures. This distinguishes it cleanly from the sibling quote_* tools that create the quote and the search_* tools that don't spend credits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear precondition (must have a quote from search_nyc_preforeclosures) and an explicit consent step ('tell the user how many credits it costs and get their go-ahead'). It doesn't spell out when to prefer the national counterpart, but the routing context is otherwise unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_nyc_ownersSearch NYC owners by nameARead-onlyIdempotentInspect
Free. Finds people who own or control NYC buildings, by name, directly or through companies. Returns each person's key, building count and boroughs. Use get_nyc_owner_portfolio with the key to list their buildings.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| includeManagers | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| people | Yes | |
| approximate | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnly, idempotent, non-destructive), so the description only needs to add context. It does: 'Free' is meaningful cost disclosure given credit-consuming siblings like buy_credits and get_credit_balance, and it sketches the returned fields. It says nothing about rate limits or match breadth, but the bar is lower with full annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the cost qualifier, then purpose, then the routing handoff. No filler and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be restated, and the tool is simple with only two parameters. However, the undocumented `includeManagers` flag and the unstated name-matching behavior are real gaps an agent cannot resolve from any structured field.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden and does not meet it. It never explains how `name` is matched (partial vs exact, despite the 2-80 length constraints) and never mentions `includeManagers` at all, leaving a whole parameter's semantics undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (finds) and resource (people who own or control NYC buildings) with the matching dimension (by name, directly or through companies) made explicit. This clearly separates it from property-oriented siblings like find_nyc_property and get_nyc_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the concrete follow-up tool and the condition that selects it: 'Use get_nyc_owner_portfolio with the key to list their buildings.' That is a clear next-step route, but there is no statement of when NOT to use this tool or how it relates to unlock_nyc_owner_contacts, so it stops short of full alternative coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_nyc_preforeclosuresSearch NYC preforeclosuresARead-onlyIdempotentInspect
Searches NYC properties in preforeclosure only: lis pendens foreclosure filings in Manhattan, Brooklyn, Queens, the Bronx and Staten Island. For one NYC property by address use find_nyc_property; for filtered searches or properties outside NYC use the national property search tools. Filters: borough, foreclosure stage, equity, case age, recently added, market value and amount owed. Returns summary rows, newest first, up to 25 per call (default 10); page with offset. Never spends credits. On Elite, Platinum or the Pre-foreclosure add-on the first 25 summary rows each day are free; other workspaces pay for every row. Rows the workspace already pulled are free again. Past the free rows, rows cost 1 credit per 10, and this tool returns them as a quote instead: tell the user the credit cost and ask before calling run_nyc_preforeclosure_search with the quote_id.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Rows to return, 1 to 25. Defaults to 10. | |
| stage | No | Foreclosure stages to include. Empty means every stage. | |
| equity | No | Estimated equity: positive (value above the debt) or negative. Empty means any. | |
| offset | No | Rows to skip, for the next page. | |
| borough | No | NYC boroughs to include. Empty means all five. | |
| filingAge | No | Case age by filing year: fresh (under 2 years), seasoned (2 to 5), long_running (5 or more). | |
| amountOwedMax | No | ||
| amountOwedMin | No | ||
| marketValueMax | No | ||
| marketValueMin | No | ||
| addedWithinDays | No | Only filings added in the last N days. Use for 'new this week'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| rows | Yes | |
| quote | Yes | |
| offset | Yes | |
| totalMatches | Yes | |
| creditsCharged | Yes | |
| freeRowsPerDay | Yes | |
| freeRowsUsedToday | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, non-destructive), but the description adds substantial behavioral context beyond them: credit cost model per workspace tier, free rows and re-pulls, that this tool never spends credits, and that it returns a quote instead of charged rows past the free allowance, with an instruction to ask the user before the paid run. This is exactly the kind of context annotations cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads scope, then alternatives, then filters, then paging and pricing. Efficient and well-ordered. The pricing/credit paragraph is long but earns its place given the quote workflow; minor density cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and the description still gives the essential result shape ('summary rows, newest first, up to 25'). For an 11-param read tool with a non-trivial credit/quote workflow, everything an agent needs to call it correctly and safely is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 64%, so the description carries some burden. It enumerates filter categories (borough, foreclosure stage, equity, case age, recently added, market value, amount owed) and documents return paging (up to 25 per call, default 10, page with offset), which maps to several params. It doesn't add units/format details for amountOwedMin/Max or marketValueMin/Max, leaving those param descriptions thin, so not a full 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope ('Searches NYC properties in preforeclosure only: lis pendens foreclosure filings in Manhattan, Brooklyn, Queens, the Bronx and Staten Island'), and explicitly distinguishes from siblings find_nyc_property and the national search tools. An agent can route correctly without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use and when-not-to-use: use find_nyc_property for a single NYC address, use national search tools for filtered or non-NYC searches. The pricing/quote workflow also tells the agent exactly when to call run_nyc_preforeclosure_search with the quote_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unlock_nyc_owner_contactsUnlock NYC owner contactsAInspect
Spends credits: the contacts price from get_nyc_property (usually 3 credits). Returns the phone numbers (with line type and do-not-call flag) and emails of the person behind the owner of record, including the people behind an owner LLC. Needs the full report unlocked first (unlock_nyc_property_report). Free if already unlocked for this workspace. Tell the user the cost and get their go-ahead before calling. Respect do-not-call flags.
| Name | Required | Description | Default |
|---|---|---|---|
| bbl | Yes | The 10-digit NYC borough-block-lot id, e.g. "1000300034". Get it from find_nyc_property. |
Output Schema
| Name | Required | Description |
|---|---|---|
| state | Yes | |
| emails | Yes | |
| person | Yes | |
| phones | Yes | |
| balance | Yes | |
| creditsCharged | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false, destructiveHint=false, idempotentHint=false; the description adds substantial context the annotations cannot convey: it spends credits, the price comes from get_nyc_property and is usually 3, it is free if already unlocked, it requires prior report unlock, and it demands explicit user confirmation plus honoring do-not-call flags. This is exactly the behavioral load a mutation-with-cost tool needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the cost consequence, then returns, then prerequisites, then the confirmation workflow. Every sentence carries operational information, though the description is on the longer side and could tighten slightly without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single required param, full schema coverage, an output schema, and non-read-only annotations, the description covers the remaining burden completely: cost model, prerequisite chain, idempotency-adjacent 'free if unlocked' note, and the consent/DNC constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter (bbl) at 100% schema coverage, so the schema already documents format and an example. The description adds no parameter-level meaning beyond the schema, which is the expected baseline when coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('unlock ... owner contacts') and precisely enumerates the payload: phone numbers with line type and do-not-call flag, emails of the person behind the owner of record, including owner-LLC people. This clearly separates it from get_nyc_property (which supplies the price) and unlock_nyc_property_report (the prerequisite).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives strong preconditions and workflow: the full report must be unlocked first (naming unlock_nyc_property_report), it is free if already unlocked for the workspace, and the agent must quote cost and get user go-ahead before calling. It does not name alternative sibling tools (e.g. search_nyc_owners) for cases where a cheaper path would do, so it stops short of explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unlock_nyc_property_reportUnlock an NYC property reportInspect
Spends credits: the report price from get_nyc_property (usually 1 credit). Free if this workspace unlocked the same lot in the last year. Returns the full NYC property report: owners and mailing address, deed and mortgage history, sales, DOB permits, HPD/DOB/ECB violations, tax bills and assessments, zoning and FAR with unused air rights, HPD registration contacts, pre-foreclosure case and tax-lien flags. Tell the user the cost and get their go-ahead before calling.
| Name | Required | Description | Default |
|---|---|---|---|
| bbl | Yes | The 10-digit NYC borough-block-lot id, e.g. "1000300034". Get it from find_nyc_property. |
Output Schema
| Name | Required | Description |
|---|---|---|
| facts | Yes | |
| report | Yes | |
| balance | Yes | |
| creditsCharged | Yes |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- Changed
get_nyc_property1 field changed- changed
Output schema / properties / report / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "contacts": { - "additionalProperties": false, - "properties": { - "hpd": { - "items": { - "additionalProperties": false, - "properties": { - "address": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "company": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "phone": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "role": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "date", - "role", - "name", - "company", - "address", - "phone" - ], - "type": "object" - }, - "type": "array" - }, - "permits": { - "items": { - "additionalProperties": false, - "properties": { - "address": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "company": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "phone": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "role": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "date", - "role", - "name", - "company", - "address", - "phone" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "hpd", - "permits" - ], - "type": "object" - }, - "development": { - "additionalProperties": false, - "properties": { - "affordableResidentialFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "buildableArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "buildingDepth": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "buildingFront": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "builtFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "commercialArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "commercialFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "currentBuiltArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "eDesignation": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "facilityFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "floodZone2007": { - "type": "boolean" - }, - "floodZone2015": { - "type": "boolean" - }, - "inclusionaryHousing": { - "items": { - "type": "string" - }, - "type": "array" - }, - "landUse": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "limitedHeight": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "lotType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "manufacturingFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "maxBuildableArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "officeArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "overlays": { - "items": { - "type": "string" - }, - "type": "array" - }, - "residentialArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "residentialFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "retailArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "sanbornMap": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "specialDistricts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "splitZone": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "taxMap": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "transitZone": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "zoningApplications": { - "items": { - "additionalProperties": false, - "properties": { - "actions": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "brief": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "completed": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "filed": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "projectId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ulurpNumbers": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "projectId", - "name", - "brief", - "status", - "ulurpNumbers", - "actions", - "filed", - "completed" - ], - "type": "object" - }, - "type": "array" - }, - "zoningDistricts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "zoningMap": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "buildingFront", - "buildingDepth", - "lotType", - "zoningDistricts", - "specialDistricts", - "overlays", - "landUse", - "residentialFar", - "commercialFar", - "facilityFar", - "builtFar", - "maxBuildableArea", - "currentBuiltArea", - "buildableArea", - "residentialArea", - "commercialArea", - "retailArea", - "officeArea", - "zoningMap", - "taxMap", - "sanbornMap", - "limitedHeight", - "splitZone", - "eDesignation", - "inclusionaryHousing", - "transitZone", - "floodZone2007", - "floodZone2015", - "affordableResidentialFar", - "manufacturingFar", - "zoningApplications" - ], - "type": "object" - }, - "distress": { - "additionalProperties": false, - "properties": { - "permits24Months": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "preForeclosure": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "taxLienLastList": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "taxLienOnLatestList": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "preForeclosure", - "taxLienOnLatestList", - "taxLienLastList", - "permits24Months" - ], - "type": "object" - }, - "financials": { - "additionalProperties": false, - "properties": { - "mortgages": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "documentType": { - "type": "string" - }, - "holder": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "lender": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "recordedDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "enum": [ - "open", - "satisfied", - "consolidated", - "unclear" - ], - "type": "string" - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "documentType", - "lender", - "holder", - "amount", - "recordedDate", - "status", - "statusDate" - ], - "type": "object" - }, - "type": "array" - }, - "recordsCovered": { - "type": "boolean" - } - }, - "required": [ - "recordsCovered", - "mortgages" - ], - "type": "object" - }, - "owner": { - "additionalProperties": false, - "properties": { - "absenteeOwner": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "lastTransfer": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "amount": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "documentType": { - "type": "string" - }, - "recordedDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "sellers": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "recordedDate", - "amount", - "documentType", - "sellers" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "mailingAddress": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ownerOccupied": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "owners": { - "items": { - "type": "string" - }, - "type": "array" - }, - "recordOwner": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "recordOwner", - "owners", - "mailingAddress", - "ownerOccupied", - "absenteeOwner", - "lastTransfer" - ], - "type": "object" - }, - "permits": { - "items": { - "additionalProperties": false, - "properties": { - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "estimatedCost": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "filingDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "issuedDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "jobNumber": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "jobType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source": { - "enum": [ - "DOB BIS", - "DOB NOW" - ], - "type": "string" - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "workType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "filingDate", - "issuedDate", - "jobNumber", - "jobType", - "status", - "workType", - "estimatedCost", - "description", - "source" - ], - "type": "object" - }, - "type": "array" - }, - "preForeclosure": { - "additionalProperties": false, - "properties": { - "addOn": { - "type": "boolean" - }, - "cases": { - "items": { - "additionalProperties": false, - "properties": { - "caseType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "county": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "courtStatus": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "depth": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "amountOwed": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "amountOwedAsOf": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "defaultDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "documents": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "servicer": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stageDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "stage", - "stageDate", - "amountOwed", - "amountOwedAsOf", - "defaultDate", - "servicer", - "documents" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "filed": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "indexNumber": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "plaintiff": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "indexNumber", - "county", - "filed", - "plaintiff", - "caseType", - "courtStatus", - "depth" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "addOn", - "cases" - ], - "type": "object" - }, - "registration": { - "additionalProperties": false, - "properties": { - "hpdRegistrationDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "hpdRegistrationId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "managingAgent": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "hpdRegistrationId", - "hpdRegistrationDate", - "managingAgent" - ], - "type": "object" - }, - "sales": { - "items": { - "additionalProperties": false, - "properties": { - "apartment": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "buildingClass": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "grossSquareFeet": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "units": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "date", - "price", - "buildingClass", - "units", - "grossSquareFeet", - "apartment" - ], - "type": "object" - }, - "type": "array" - }, - "tax": { - "additionalProperties": false, - "properties": { - "assessedValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxAmount": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxBillYear": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxClass": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "valuations": { - "items": { - "additionalProperties": false, - "properties": { - "assessedValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "marketValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxClass": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "taxableValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "year": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "year", - "marketValue", - "assessedValue", - "taxableValue", - "taxClass" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "taxAmount", - "taxBillYear", - "taxClass", - "assessedValue", - "valuations" - ], - "type": "object" - }, - "violations": { - "additionalProperties": false, - "properties": { - "dob": { - "items": { - "additionalProperties": false, - "properties": { - "balanceDue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "severity": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "date", - "kind", - "severity", - "status", - "statusDate", - "description", - "balanceDue" - ], - "type": "object" - }, - "type": "array" - }, - "ecb": { - "items": { - "additionalProperties": false, - "properties": { - "balanceDue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "severity": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "date", - "kind", - "severity", - "status", - "statusDate", - "description", - "balanceDue" - ], - "type": "object" - }, - "type": "array" - }, - "hpd": { - "items": { - "additionalProperties": false, - "properties": { - "balanceDue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "severity": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "date", - "kind", - "severity", - "status", - "statusDate", - "description", - "balanceDue" - ], - "type": "object" - }, - "type": "array" - }, - "openDob": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "openEcb": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "openHpd": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "hpd", - "dob", - "ecb", - "openHpd", - "openDob", - "openEcb" - ], - "type": "object" - } - }, - "required": [ - "owner", - "development", - "financials", - "tax", - "contacts", - "sales", - "permits", - "violations", - "preForeclosure", - "distress", - "registration" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "contacts": { + "additionalProperties": false, + "properties": { + "hpd": { + "items": { + "additionalProperties": false, + "properties": { + "address": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "company": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "phone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "date", + "role", + "name", + "company", + "address", + "phone" + ], + "type": "object" + }, + "type": "array" + }, + "permits": { + "items": { + "additionalProperties": false, + "properties": { + "address": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "company": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "phone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "date", + "role", + "name", + "company", + "address", + "phone" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "hpd", + "permits" + ], + "type": "object" + }, + "development": { + "additionalProperties": false, + "properties": { + "affordableResidentialFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "buildableArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "buildingDepth": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "buildingFront": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "builtFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "commercialArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "commercialFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "currentBuiltArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "eDesignation": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "facilityFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "floodZone2007": { + "type": "boolean" + }, + "floodZone2015": { + "type": "boolean" + }, + "inclusionaryHousing": { + "items": { + "type": "string" + }, + "type": "array" + }, + "landUse": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "limitedHeight": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "lotType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "manufacturingFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "maxBuildableArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "officeArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "overlays": { + "items": { + "type": "string" + }, + "type": "array" + }, + "residentialArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "residentialFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "retailArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "sanbornMap": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "specialDistricts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "splitZone": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "taxMap": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "transitZone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "zoningApplications": { + "items": { + "additionalProperties": false, + "properties": { + "actions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "brief": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "completed": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "filed": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "projectId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ulurpNumbers": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "projectId", + "name", + "brief", + "status", + "ulurpNumbers", + "actions", + "filed", + "completed" + ], + "type": "object" + }, + "type": "array" + }, + "zoningDistricts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "zoningMap": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "buildingFront", + "buildingDepth", + "lotType", + "zoningDistricts", + "specialDistricts", + "overlays", + "landUse", + "residentialFar", + "commercialFar", + "facilityFar", + "builtFar", + "maxBuildableArea", + "currentBuiltArea", + "buildableArea", + "residentialArea", + "commercialArea", + "retailArea", + "officeArea", + "zoningMap", + "taxMap", + "sanbornMap", + "limitedHeight", + "splitZone", + "eDesignation", + "inclusionaryHousing", + "transitZone", + "floodZone2007", + "floodZone2015", + "affordableResidentialFar", + "manufacturingFar", + "zoningApplications" + ], + "type": "object" + }, + "distress": { + "additionalProperties": false, + "properties": { + "permits24Months": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "preForeclosure": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "taxLienLastList": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taxLienOnLatestList": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "preForeclosure", + "taxLienOnLatestList", + "taxLienLastList", + "permits24Months" + ], + "type": "object" + }, + "financials": { + "additionalProperties": false, + "properties": { + "mortgages": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "documentType": { + "type": "string" + }, + "holder": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "lender": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "recordedDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "enum": [ + "open", + "satisfied", + "consolidated", + "unclear" + ], + "type": "string" + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "documentType", + "lender", + "holder", + "amount", + "recordedDate", + "status", + "statusDate" + ], + "type": "object" + }, + "type": "array" + }, + "recordsCovered": { + "type": "boolean" + } + }, + "required": [ + "recordsCovered", + "mortgages" + ], + "type": "object" + }, + "owner": { + "additionalProperties": false, + "properties": { + "absenteeOwner": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "lastTransfer": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "documentType": { + "type": "string" + }, + "recordedDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "sellers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "recordedDate", + "amount", + "documentType", + "sellers" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "mailingAddress": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ownerOccupied": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "owners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "people": { + "items": { + "additionalProperties": false, + "properties": { + "evidenceDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "type": "string" + }, + "personKey": { + "type": "string" + }, + "source": { + "type": "string" + }, + "viaCompany": { + "type": "string" + } + }, + "required": [ + "personKey", + "name", + "source", + "viaCompany", + "evidenceDate" + ], + "type": "object" + }, + "type": "array" + }, + "recordOwner": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "recordOwner", + "owners", + "mailingAddress", + "ownerOccupied", + "absenteeOwner", + "lastTransfer" + ], + "type": "object" + }, + "permits": { + "items": { + "additionalProperties": false, + "properties": { + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "estimatedCost": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "filingDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "issuedDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "jobNumber": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "jobType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source": { + "enum": [ + "DOB BIS", + "DOB NOW" + ], + "type": "string" + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "workType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "filingDate", + "issuedDate", + "jobNumber", + "jobType", + "status", + "workType", + "estimatedCost", + "description", + "source" + ], + "type": "object" + }, + "type": "array" + }, + "preForeclosure": { + "additionalProperties": false, + "properties": { + "addOn": { + "type": "boolean" + }, + "cases": { + "items": { + "additionalProperties": false, + "properties": { + "caseType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "county": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "courtStatus": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "depth": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amountOwed": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "amountOwedAsOf": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "defaultDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "documents": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "servicer": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stageDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "stage", + "stageDate", + "amountOwed", + "amountOwedAsOf", + "defaultDate", + "servicer", + "documents" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "filed": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "indexNumber": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "plaintiff": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "indexNumber", + "county", + "filed", + "plaintiff", + "caseType", + "courtStatus", + "depth" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "addOn", + "cases" + ], + "type": "object" + }, + "registration": { + "additionalProperties": false, + "properties": { + "hpdRegistrationDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "hpdRegistrationId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "managingAgent": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "hpdRegistrationId", + "hpdRegistrationDate", + "managingAgent" + ], + "type": "object" + }, + "sales": { + "items": { + "additionalProperties": false, + "properties": { + "apartment": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "buildingClass": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "grossSquareFeet": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "units": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "date", + "price", + "buildingClass", + "units", + "grossSquareFeet", + "apartment" + ], + "type": "object" + }, + "type": "array" + }, + "tax": { + "additionalProperties": false, + "properties": { + "assessedValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxAmount": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxBillYear": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxClass": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "valuations": { + "items": { + "additionalProperties": false, + "properties": { + "assessedValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "marketValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxClass": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taxableValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "year": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "year", + "marketValue", + "assessedValue", + "taxableValue", + "taxClass" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "taxAmount", + "taxBillYear", + "taxClass", + "assessedValue", + "valuations" + ], + "type": "object" + }, + "violations": { + "additionalProperties": false, + "properties": { + "dob": { + "items": { + "additionalProperties": false, + "properties": { + "balanceDue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "severity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "date", + "kind", + "severity", + "status", + "statusDate", + "description", + "balanceDue" + ], + "type": "object" + }, + "type": "array" + }, + "ecb": { + "items": { + "additionalProperties": false, + "properties": { + "balanceDue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "severity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "date", + "kind", + "severity", + "status", + "statusDate", + "description", + "balanceDue" + ], + "type": "object" + }, + "type": "array" + }, + "hpd": { + "items": { + "additionalProperties": false, + "properties": { + "balanceDue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "severity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "date", + "kind", + "severity", + "status", + "statusDate", + "description", + "balanceDue" + ], + "type": "object" + }, + "type": "array" + }, + "openDob": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "openEcb": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "openHpd": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "hpd", + "dob", + "ecb", + "openHpd", + "openDob", + "openEcb" + ], + "type": "object" + } + }, + "required": [ + "owner", + "development", + "financials", + "tax", + "contacts", + "sales", + "permits", + "violations", + "preForeclosure", + "distress", + "registration" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
unlock_nyc_property_report1 field changed- changed
Output schema / properties / report / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "contacts": { - "additionalProperties": false, - "properties": { - "hpd": { - "items": { - "additionalProperties": false, - "properties": { - "address": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "company": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "phone": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "role": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "date", - "role", - "name", - "company", - "address", - "phone" - ], - "type": "object" - }, - "type": "array" - }, - "permits": { - "items": { - "additionalProperties": false, - "properties": { - "address": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "company": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "phone": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "role": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "date", - "role", - "name", - "company", - "address", - "phone" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "hpd", - "permits" - ], - "type": "object" - }, - "development": { - "additionalProperties": false, - "properties": { - "affordableResidentialFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "buildableArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "buildingDepth": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "buildingFront": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "builtFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "commercialArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "commercialFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "currentBuiltArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "eDesignation": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "facilityFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "floodZone2007": { - "type": "boolean" - }, - "floodZone2015": { - "type": "boolean" - }, - "inclusionaryHousing": { - "items": { - "type": "string" - }, - "type": "array" - }, - "landUse": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "limitedHeight": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "lotType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "manufacturingFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "maxBuildableArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "officeArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "overlays": { - "items": { - "type": "string" - }, - "type": "array" - }, - "residentialArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "residentialFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "retailArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "sanbornMap": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "specialDistricts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "splitZone": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "taxMap": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "transitZone": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "zoningApplications": { - "items": { - "additionalProperties": false, - "properties": { - "actions": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "brief": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "completed": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "filed": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "projectId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ulurpNumbers": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "projectId", - "name", - "brief", - "status", - "ulurpNumbers", - "actions", - "filed", - "completed" - ], - "type": "object" - }, - "type": "array" - }, - "zoningDistricts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "zoningMap": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "buildingFront", - "buildingDepth", - "lotType", - "zoningDistricts", - "specialDistricts", - "overlays", - "landUse", - "residentialFar", - "commercialFar", - "facilityFar", - "builtFar", - "maxBuildableArea", - "currentBuiltArea", - "buildableArea", - "residentialArea", - "commercialArea", - "retailArea", - "officeArea", - "zoningMap", - "taxMap", - "sanbornMap", - "limitedHeight", - "splitZone", - "eDesignation", - "inclusionaryHousing", - "transitZone", - "floodZone2007", - "floodZone2015", - "affordableResidentialFar", - "manufacturingFar", - "zoningApplications" - ], - "type": "object" - }, - "distress": { - "additionalProperties": false, - "properties": { - "permits24Months": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "preForeclosure": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "taxLienLastList": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "taxLienOnLatestList": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "preForeclosure", - "taxLienOnLatestList", - "taxLienLastList", - "permits24Months" - ], - "type": "object" - }, - "financials": { - "additionalProperties": false, - "properties": { - "mortgages": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "documentType": { - "type": "string" - }, - "holder": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "lender": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "recordedDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "enum": [ - "open", - "satisfied", - "consolidated", - "unclear" - ], - "type": "string" - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "documentType", - "lender", - "holder", - "amount", - "recordedDate", - "status", - "statusDate" - ], - "type": "object" - }, - "type": "array" - }, - "recordsCovered": { - "type": "boolean" - } - }, - "required": [ - "recordsCovered", - "mortgages" - ], - "type": "object" - }, - "owner": { - "additionalProperties": false, - "properties": { - "absenteeOwner": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "lastTransfer": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "amount": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "documentType": { - "type": "string" - }, - "recordedDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "sellers": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "recordedDate", - "amount", - "documentType", - "sellers" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "mailingAddress": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ownerOccupied": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "owners": { - "items": { - "type": "string" - }, - "type": "array" - }, - "recordOwner": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "recordOwner", - "owners", - "mailingAddress", - "ownerOccupied", - "absenteeOwner", - "lastTransfer" - ], - "type": "object" - }, - "permits": { - "items": { - "additionalProperties": false, - "properties": { - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "estimatedCost": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "filingDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "issuedDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "jobNumber": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "jobType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source": { - "enum": [ - "DOB BIS", - "DOB NOW" - ], - "type": "string" - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "workType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "filingDate", - "issuedDate", - "jobNumber", - "jobType", - "status", - "workType", - "estimatedCost", - "description", - "source" - ], - "type": "object" - }, - "type": "array" - }, - "preForeclosure": { - "additionalProperties": false, - "properties": { - "addOn": { - "type": "boolean" - }, - "cases": { - "items": { - "additionalProperties": false, - "properties": { - "caseType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "county": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "courtStatus": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "depth": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "amountOwed": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "amountOwedAsOf": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "defaultDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "documents": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "servicer": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stageDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "stage", - "stageDate", - "amountOwed", - "amountOwedAsOf", - "defaultDate", - "servicer", - "documents" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "filed": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "indexNumber": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "plaintiff": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "indexNumber", - "county", - "filed", - "plaintiff", - "caseType", - "courtStatus", - "depth" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "addOn", - "cases" - ], - "type": "object" - }, - "registration": { - "additionalProperties": false, - "properties": { - "hpdRegistrationDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "hpdRegistrationId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "managingAgent": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "hpdRegistrationId", - "hpdRegistrationDate", - "managingAgent" - ], - "type": "object" - }, - "sales": { - "items": { - "additionalProperties": false, - "properties": { - "apartment": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "buildingClass": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "grossSquareFeet": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "units": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "date", - "price", - "buildingClass", - "units", - "grossSquareFeet", - "apartment" - ], - "type": "object" - }, - "type": "array" - }, - "tax": { - "additionalProperties": false, - "properties": { - "assessedValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxAmount": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxBillYear": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxClass": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "valuations": { - "items": { - "additionalProperties": false, - "properties": { - "assessedValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "marketValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxClass": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "taxableValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "year": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "year", - "marketValue", - "assessedValue", - "taxableValue", - "taxClass" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "taxAmount", - "taxBillYear", - "taxClass", - "assessedValue", - "valuations" - ], - "type": "object" - }, - "violations": { - "additionalProperties": false, - "properties": { - "dob": { - "items": { - "additionalProperties": false, - "properties": { - "balanceDue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "severity": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "date", - "kind", - "severity", - "status", - "statusDate", - "description", - "balanceDue" - ], - "type": "object" - }, - "type": "array" - }, - "ecb": { - "items": { - "additionalProperties": false, - "properties": { - "balanceDue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "severity": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "date", - "kind", - "severity", - "status", - "statusDate", - "description", - "balanceDue" - ], - "type": "object" - }, - "type": "array" - }, - "hpd": { - "items": { - "additionalProperties": false, - "properties": { - "balanceDue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "severity": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "date", - "kind", - "severity", - "status", - "statusDate", - "description", - "balanceDue" - ], - "type": "object" - }, - "type": "array" - }, - "openDob": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "openEcb": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "openHpd": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "hpd", - "dob", - "ecb", - "openHpd", - "openDob", - "openEcb" - ], - "type": "object" - } - }, - "required": [ - "owner", - "development", - "financials", - "tax", - "contacts", - "sales", - "permits", - "violations", - "preForeclosure", - "distress", - "registration" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "contacts": { + "additionalProperties": false, + "properties": { + "hpd": { + "items": { + "additionalProperties": false, + "properties": { + "address": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "company": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "phone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "date", + "role", + "name", + "company", + "address", + "phone" + ], + "type": "object" + }, + "type": "array" + }, + "permits": { + "items": { + "additionalProperties": false, + "properties": { + "address": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "company": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "phone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "date", + "role", + "name", + "company", + "address", + "phone" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "hpd", + "permits" + ], + "type": "object" + }, + "development": { + "additionalProperties": false, + "properties": { + "affordableResidentialFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "buildableArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "buildingDepth": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "buildingFront": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "builtFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "commercialArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "commercialFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "currentBuiltArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "eDesignation": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "facilityFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "floodZone2007": { + "type": "boolean" + }, + "floodZone2015": { + "type": "boolean" + }, + "inclusionaryHousing": { + "items": { + "type": "string" + }, + "type": "array" + }, + "landUse": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "limitedHeight": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "lotType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "manufacturingFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "maxBuildableArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "officeArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "overlays": { + "items": { + "type": "string" + }, + "type": "array" + }, + "residentialArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "residentialFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "retailArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "sanbornMap": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "specialDistricts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "splitZone": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "taxMap": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "transitZone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "zoningApplications": { + "items": { + "additionalProperties": false, + "properties": { + "actions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "brief": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "completed": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "filed": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "projectId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ulurpNumbers": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "projectId", + "name", + "brief", + "status", + "ulurpNumbers", + "actions", + "filed", + "completed" + ], + "type": "object" + }, + "type": "array" + }, + "zoningDistricts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "zoningMap": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "buildingFront", + "buildingDepth", + "lotType", + "zoningDistricts", + "specialDistricts", + "overlays", + "landUse", + "residentialFar", + "commercialFar", + "facilityFar", + "builtFar", + "maxBuildableArea", + "currentBuiltArea", + "buildableArea", + "residentialArea", + "commercialArea", + "retailArea", + "officeArea", + "zoningMap", + "taxMap", + "sanbornMap", + "limitedHeight", + "splitZone", + "eDesignation", + "inclusionaryHousing", + "transitZone", + "floodZone2007", + "floodZone2015", + "affordableResidentialFar", + "manufacturingFar", + "zoningApplications" + ], + "type": "object" + }, + "distress": { + "additionalProperties": false, + "properties": { + "permits24Months": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "preForeclosure": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "taxLienLastList": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taxLienOnLatestList": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "preForeclosure", + "taxLienOnLatestList", + "taxLienLastList", + "permits24Months" + ], + "type": "object" + }, + "financials": { + "additionalProperties": false, + "properties": { + "mortgages": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "documentType": { + "type": "string" + }, + "holder": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "lender": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "recordedDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "enum": [ + "open", + "satisfied", + "consolidated", + "unclear" + ], + "type": "string" + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "documentType", + "lender", + "holder", + "amount", + "recordedDate", + "status", + "statusDate" + ], + "type": "object" + }, + "type": "array" + }, + "recordsCovered": { + "type": "boolean" + } + }, + "required": [ + "recordsCovered", + "mortgages" + ], + "type": "object" + }, + "owner": { + "additionalProperties": false, + "properties": { + "absenteeOwner": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "lastTransfer": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "documentType": { + "type": "string" + }, + "recordedDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "sellers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "recordedDate", + "amount", + "documentType", + "sellers" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "mailingAddress": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ownerOccupied": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "owners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "people": { + "items": { + "additionalProperties": false, + "properties": { + "evidenceDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "type": "string" + }, + "personKey": { + "type": "string" + }, + "source": { + "type": "string" + }, + "viaCompany": { + "type": "string" + } + }, + "required": [ + "personKey", + "name", + "source", + "viaCompany", + "evidenceDate" + ], + "type": "object" + }, + "type": "array" + }, + "recordOwner": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "recordOwner", + "owners", + "mailingAddress", + "ownerOccupied", + "absenteeOwner", + "lastTransfer" + ], + "type": "object" + }, + "permits": { + "items": { + "additionalProperties": false, + "properties": { + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "estimatedCost": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "filingDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "issuedDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "jobNumber": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "jobType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source": { + "enum": [ + "DOB BIS", + "DOB NOW" + ], + "type": "string" + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "workType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "filingDate", + "issuedDate", + "jobNumber", + "jobType", + "status", + "workType", + "estimatedCost", + "description", + "source" + ], + "type": "object" + }, + "type": "array" + }, + "preForeclosure": { + "additionalProperties": false, + "properties": { + "addOn": { + "type": "boolean" + }, + "cases": { + "items": { + "additionalProperties": false, + "properties": { + "caseType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "county": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "courtStatus": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "depth": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amountOwed": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "amountOwedAsOf": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "defaultDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "documents": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "servicer": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stageDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "stage", + "stageDate", + "amountOwed", + "amountOwedAsOf", + "defaultDate", + "servicer", + "documents" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "filed": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "indexNumber": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "plaintiff": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "indexNumber", + "county", + "filed", + "plaintiff", + "caseType", + "courtStatus", + "depth" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "addOn", + "cases" + ], + "type": "object" + }, + "registration": { + "additionalProperties": false, + "properties": { + "hpdRegistrationDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "hpdRegistrationId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "managingAgent": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "hpdRegistrationId", + "hpdRegistrationDate", + "managingAgent" + ], + "type": "object" + }, + "sales": { + "items": { + "additionalProperties": false, + "properties": { + "apartment": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "buildingClass": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "grossSquareFeet": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "units": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "date", + "price", + "buildingClass", + "units", + "grossSquareFeet", + "apartment" + ], + "type": "object" + }, + "type": "array" + }, + "tax": { + "additionalProperties": false, + "properties": { + "assessedValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxAmount": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxBillYear": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxClass": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "valuations": { + "items": { + "additionalProperties": false, + "properties": { + "assessedValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "marketValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxClass": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taxableValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "year": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "year", + "marketValue", + "assessedValue", + "taxableValue", + "taxClass" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "taxAmount", + "taxBillYear", + "taxClass", + "assessedValue", + "valuations" + ], + "type": "object" + }, + "violations": { + "additionalProperties": false, + "properties": { + "dob": { + "items": { + "additionalProperties": false, + "properties": { + "balanceDue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "severity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "date", + "kind", + "severity", + "status", + "statusDate", + "description", + "balanceDue" + ], + "type": "object" + }, + "type": "array" + }, + "ecb": { + "items": { + "additionalProperties": false, + "properties": { + "balanceDue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "severity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "date", + "kind", + "severity", + "status", + "statusDate", + "description", + "balanceDue" + ], + "type": "object" + }, + "type": "array" + }, + "hpd": { + "items": { + "additionalProperties": false, + "properties": { + "balanceDue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "severity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "date", + "kind", + "severity", + "status", + "statusDate", + "description", + "balanceDue" + ], + "type": "object" + }, + "type": "array" + }, + "openDob": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "openEcb": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "openHpd": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "hpd", + "dob", + "ecb", + "openHpd", + "openDob", + "openEcb" + ], + "type": "object" + } + }, + "required": [ + "owner", + "development", + "financials", + "tax", + "contacts", + "sales", + "permits", + "violations", + "preForeclosure", + "distress", + "registration" + ], + "type": "object" + }, + { + "type": "null" + } +]
2 tool updates
- Changed
get_nyc_property1 field changed- changed
Output schema / properties / report / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "contacts": { - "additionalProperties": false, - "properties": { - "hpd": { - "items": { - "additionalProperties": false, - "properties": { - "address": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "company": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "phone": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "role": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "date", - "role", - "name", - "company", - "address", - "phone" - ], - "type": "object" - }, - "type": "array" - }, - "permits": { - "items": { - "additionalProperties": false, - "properties": { - "address": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "company": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "phone": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "role": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "date", - "role", - "name", - "company", - "address", - "phone" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "hpd", - "permits" - ], - "type": "object" - }, - "development": { - "additionalProperties": false, - "properties": { - "buildableArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "buildingDepth": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "buildingFront": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "builtFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "commercialArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "commercialFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "currentBuiltArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "facilityFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "landUse": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "lotType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "maxBuildableArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "officeArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "overlays": { - "items": { - "type": "string" - }, - "type": "array" - }, - "residentialArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "residentialFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "retailArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "sanbornMap": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "specialDistricts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "taxMap": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "zoningDistricts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "zoningMap": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "buildingFront", - "buildingDepth", - "lotType", - "zoningDistricts", - "specialDistricts", - "overlays", - "landUse", - "residentialFar", - "commercialFar", - "facilityFar", - "builtFar", - "maxBuildableArea", - "currentBuiltArea", - "buildableArea", - "residentialArea", - "commercialArea", - "retailArea", - "officeArea", - "zoningMap", - "taxMap", - "sanbornMap" - ], - "type": "object" - }, - "distress": { - "additionalProperties": false, - "properties": { - "permits24Months": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "preForeclosure": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "taxLienLastList": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "taxLienOnLatestList": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "preForeclosure", - "taxLienOnLatestList", - "taxLienLastList", - "permits24Months" - ], - "type": "object" - }, - "financials": { - "additionalProperties": false, - "properties": { - "mortgages": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "documentType": { - "type": "string" - }, - "holder": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "lender": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "recordedDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "enum": [ - "open", - "satisfied", - "consolidated", - "unclear" - ], - "type": "string" - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "documentType", - "lender", - "holder", - "amount", - "recordedDate", - "status", - "statusDate" - ], - "type": "object" - }, - "type": "array" - }, - "recordsCovered": { - "type": "boolean" - } - }, - "required": [ - "recordsCovered", - "mortgages" - ], - "type": "object" - }, - "owner": { - "additionalProperties": false, - "properties": { - "absenteeOwner": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "lastTransfer": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "amount": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "documentType": { - "type": "string" - }, - "recordedDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "sellers": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "recordedDate", - "amount", - "documentType", - "sellers" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "mailingAddress": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ownerOccupied": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "owners": { - "items": { - "type": "string" - }, - "type": "array" - }, - "recordOwner": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "recordOwner", - "owners", - "mailingAddress", - "ownerOccupied", - "absenteeOwner", - "lastTransfer" - ], - "type": "object" - }, - "permits": { - "items": { - "additionalProperties": false, - "properties": { - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "estimatedCost": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "filingDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "issuedDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "jobNumber": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "jobType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source": { - "enum": [ - "DOB BIS", - "DOB NOW" - ], - "type": "string" - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "workType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "filingDate", - "issuedDate", - "jobNumber", - "jobType", - "status", - "workType", - "estimatedCost", - "description", - "source" - ], - "type": "object" - }, - "type": "array" - }, - "preForeclosure": { - "additionalProperties": false, - "properties": { - "addOn": { - "type": "boolean" - }, - "cases": { - "items": { - "additionalProperties": false, - "properties": { - "caseType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "county": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "courtStatus": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "depth": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "amountOwed": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "amountOwedAsOf": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "defaultDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "documents": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "servicer": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stageDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "stage", - "stageDate", - "amountOwed", - "amountOwedAsOf", - "defaultDate", - "servicer", - "documents" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "filed": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "indexNumber": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "plaintiff": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "indexNumber", - "county", - "filed", - "plaintiff", - "caseType", - "courtStatus", - "depth" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "addOn", - "cases" - ], - "type": "object" - }, - "registration": { - "additionalProperties": false, - "properties": { - "hpdRegistrationDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "hpdRegistrationId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "managingAgent": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "hpdRegistrationId", - "hpdRegistrationDate", - "managingAgent" - ], - "type": "object" - }, - "sales": { - "items": { - "additionalProperties": false, - "properties": { - "apartment": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "buildingClass": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "grossSquareFeet": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "units": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "date", - "price", - "buildingClass", - "units", - "grossSquareFeet", - "apartment" - ], - "type": "object" - }, - "type": "array" - }, - "tax": { - "additionalProperties": false, - "properties": { - "assessedValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxAmount": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxBillYear": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxClass": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "valuations": { - "items": { - "additionalProperties": false, - "properties": { - "assessedValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "marketValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxClass": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "taxableValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "year": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "year", - "marketValue", - "assessedValue", - "taxableValue", - "taxClass" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "taxAmount", - "taxBillYear", - "taxClass", - "assessedValue", - "valuations" - ], - "type": "object" - }, - "violations": { - "additionalProperties": false, - "properties": { - "dob": { - "items": { - "additionalProperties": false, - "properties": { - "balanceDue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "severity": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "date", - "kind", - "severity", - "status", - "statusDate", - "description", - "balanceDue" - ], - "type": "object" - }, - "type": "array" - }, - "ecb": { - "items": { - "additionalProperties": false, - "properties": { - "balanceDue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "severity": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "date", - "kind", - "severity", - "status", - "statusDate", - "description", - "balanceDue" - ], - "type": "object" - }, - "type": "array" - }, - "hpd": { - "items": { - "additionalProperties": false, - "properties": { - "balanceDue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "severity": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "date", - "kind", - "severity", - "status", - "statusDate", - "description", - "balanceDue" - ], - "type": "object" - }, - "type": "array" - }, - "openDob": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "openEcb": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "openHpd": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "hpd", - "dob", - "ecb", - "openHpd", - "openDob", - "openEcb" - ], - "type": "object" - } - }, - "required": [ - "owner", - "development", - "financials", - "tax", - "contacts", - "sales", - "permits", - "violations", - "preForeclosure", - "distress", - "registration" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "contacts": { + "additionalProperties": false, + "properties": { + "hpd": { + "items": { + "additionalProperties": false, + "properties": { + "address": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "company": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "phone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "date", + "role", + "name", + "company", + "address", + "phone" + ], + "type": "object" + }, + "type": "array" + }, + "permits": { + "items": { + "additionalProperties": false, + "properties": { + "address": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "company": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "phone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "date", + "role", + "name", + "company", + "address", + "phone" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "hpd", + "permits" + ], + "type": "object" + }, + "development": { + "additionalProperties": false, + "properties": { + "affordableResidentialFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "buildableArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "buildingDepth": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "buildingFront": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "builtFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "commercialArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "commercialFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "currentBuiltArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "eDesignation": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "facilityFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "floodZone2007": { + "type": "boolean" + }, + "floodZone2015": { + "type": "boolean" + }, + "inclusionaryHousing": { + "items": { + "type": "string" + }, + "type": "array" + }, + "landUse": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "limitedHeight": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "lotType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "manufacturingFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "maxBuildableArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "officeArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "overlays": { + "items": { + "type": "string" + }, + "type": "array" + }, + "residentialArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "residentialFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "retailArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "sanbornMap": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "specialDistricts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "splitZone": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "taxMap": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "transitZone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "zoningApplications": { + "items": { + "additionalProperties": false, + "properties": { + "actions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "brief": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "completed": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "filed": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "projectId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ulurpNumbers": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "projectId", + "name", + "brief", + "status", + "ulurpNumbers", + "actions", + "filed", + "completed" + ], + "type": "object" + }, + "type": "array" + }, + "zoningDistricts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "zoningMap": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "buildingFront", + "buildingDepth", + "lotType", + "zoningDistricts", + "specialDistricts", + "overlays", + "landUse", + "residentialFar", + "commercialFar", + "facilityFar", + "builtFar", + "maxBuildableArea", + "currentBuiltArea", + "buildableArea", + "residentialArea", + "commercialArea", + "retailArea", + "officeArea", + "zoningMap", + "taxMap", + "sanbornMap", + "limitedHeight", + "splitZone", + "eDesignation", + "inclusionaryHousing", + "transitZone", + "floodZone2007", + "floodZone2015", + "affordableResidentialFar", + "manufacturingFar", + "zoningApplications" + ], + "type": "object" + }, + "distress": { + "additionalProperties": false, + "properties": { + "permits24Months": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "preForeclosure": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "taxLienLastList": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taxLienOnLatestList": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "preForeclosure", + "taxLienOnLatestList", + "taxLienLastList", + "permits24Months" + ], + "type": "object" + }, + "financials": { + "additionalProperties": false, + "properties": { + "mortgages": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "documentType": { + "type": "string" + }, + "holder": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "lender": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "recordedDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "enum": [ + "open", + "satisfied", + "consolidated", + "unclear" + ], + "type": "string" + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "documentType", + "lender", + "holder", + "amount", + "recordedDate", + "status", + "statusDate" + ], + "type": "object" + }, + "type": "array" + }, + "recordsCovered": { + "type": "boolean" + } + }, + "required": [ + "recordsCovered", + "mortgages" + ], + "type": "object" + }, + "owner": { + "additionalProperties": false, + "properties": { + "absenteeOwner": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "lastTransfer": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "documentType": { + "type": "string" + }, + "recordedDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "sellers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "recordedDate", + "amount", + "documentType", + "sellers" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "mailingAddress": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ownerOccupied": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "owners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recordOwner": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "recordOwner", + "owners", + "mailingAddress", + "ownerOccupied", + "absenteeOwner", + "lastTransfer" + ], + "type": "object" + }, + "permits": { + "items": { + "additionalProperties": false, + "properties": { + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "estimatedCost": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "filingDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "issuedDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "jobNumber": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "jobType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source": { + "enum": [ + "DOB BIS", + "DOB NOW" + ], + "type": "string" + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "workType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "filingDate", + "issuedDate", + "jobNumber", + "jobType", + "status", + "workType", + "estimatedCost", + "description", + "source" + ], + "type": "object" + }, + "type": "array" + }, + "preForeclosure": { + "additionalProperties": false, + "properties": { + "addOn": { + "type": "boolean" + }, + "cases": { + "items": { + "additionalProperties": false, + "properties": { + "caseType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "county": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "courtStatus": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "depth": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amountOwed": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "amountOwedAsOf": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "defaultDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "documents": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "servicer": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stageDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "stage", + "stageDate", + "amountOwed", + "amountOwedAsOf", + "defaultDate", + "servicer", + "documents" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "filed": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "indexNumber": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "plaintiff": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "indexNumber", + "county", + "filed", + "plaintiff", + "caseType", + "courtStatus", + "depth" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "addOn", + "cases" + ], + "type": "object" + }, + "registration": { + "additionalProperties": false, + "properties": { + "hpdRegistrationDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "hpdRegistrationId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "managingAgent": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "hpdRegistrationId", + "hpdRegistrationDate", + "managingAgent" + ], + "type": "object" + }, + "sales": { + "items": { + "additionalProperties": false, + "properties": { + "apartment": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "buildingClass": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "grossSquareFeet": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "units": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "date", + "price", + "buildingClass", + "units", + "grossSquareFeet", + "apartment" + ], + "type": "object" + }, + "type": "array" + }, + "tax": { + "additionalProperties": false, + "properties": { + "assessedValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxAmount": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxBillYear": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxClass": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "valuations": { + "items": { + "additionalProperties": false, + "properties": { + "assessedValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "marketValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxClass": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taxableValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "year": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "year", + "marketValue", + "assessedValue", + "taxableValue", + "taxClass" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "taxAmount", + "taxBillYear", + "taxClass", + "assessedValue", + "valuations" + ], + "type": "object" + }, + "violations": { + "additionalProperties": false, + "properties": { + "dob": { + "items": { + "additionalProperties": false, + "properties": { + "balanceDue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "severity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "date", + "kind", + "severity", + "status", + "statusDate", + "description", + "balanceDue" + ], + "type": "object" + }, + "type": "array" + }, + "ecb": { + "items": { + "additionalProperties": false, + "properties": { + "balanceDue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "severity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "date", + "kind", + "severity", + "status", + "statusDate", + "description", + "balanceDue" + ], + "type": "object" + }, + "type": "array" + }, + "hpd": { + "items": { + "additionalProperties": false, + "properties": { + "balanceDue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "severity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "date", + "kind", + "severity", + "status", + "statusDate", + "description", + "balanceDue" + ], + "type": "object" + }, + "type": "array" + }, + "openDob": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "openEcb": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "openHpd": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "hpd", + "dob", + "ecb", + "openHpd", + "openDob", + "openEcb" + ], + "type": "object" + } + }, + "required": [ + "owner", + "development", + "financials", + "tax", + "contacts", + "sales", + "permits", + "violations", + "preForeclosure", + "distress", + "registration" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
unlock_nyc_property_report1 field changed- changed
Output schema / properties / report / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "contacts": { - "additionalProperties": false, - "properties": { - "hpd": { - "items": { - "additionalProperties": false, - "properties": { - "address": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "company": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "phone": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "role": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "date", - "role", - "name", - "company", - "address", - "phone" - ], - "type": "object" - }, - "type": "array" - }, - "permits": { - "items": { - "additionalProperties": false, - "properties": { - "address": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "company": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "phone": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "role": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "date", - "role", - "name", - "company", - "address", - "phone" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "hpd", - "permits" - ], - "type": "object" - }, - "development": { - "additionalProperties": false, - "properties": { - "buildableArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "buildingDepth": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "buildingFront": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "builtFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "commercialArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "commercialFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "currentBuiltArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "facilityFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "landUse": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "lotType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "maxBuildableArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "officeArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "overlays": { - "items": { - "type": "string" - }, - "type": "array" - }, - "residentialArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "residentialFar": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "retailArea": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "sanbornMap": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "specialDistricts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "taxMap": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "zoningDistricts": { - "items": { - "type": "string" - }, - "type": "array" - }, - "zoningMap": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "buildingFront", - "buildingDepth", - "lotType", - "zoningDistricts", - "specialDistricts", - "overlays", - "landUse", - "residentialFar", - "commercialFar", - "facilityFar", - "builtFar", - "maxBuildableArea", - "currentBuiltArea", - "buildableArea", - "residentialArea", - "commercialArea", - "retailArea", - "officeArea", - "zoningMap", - "taxMap", - "sanbornMap" - ], - "type": "object" - }, - "distress": { - "additionalProperties": false, - "properties": { - "permits24Months": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "preForeclosure": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "taxLienLastList": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "taxLienOnLatestList": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "preForeclosure", - "taxLienOnLatestList", - "taxLienLastList", - "permits24Months" - ], - "type": "object" - }, - "financials": { - "additionalProperties": false, - "properties": { - "mortgages": { - "items": { - "additionalProperties": false, - "properties": { - "amount": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "documentType": { - "type": "string" - }, - "holder": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "lender": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "recordedDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "enum": [ - "open", - "satisfied", - "consolidated", - "unclear" - ], - "type": "string" - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "documentType", - "lender", - "holder", - "amount", - "recordedDate", - "status", - "statusDate" - ], - "type": "object" - }, - "type": "array" - }, - "recordsCovered": { - "type": "boolean" - } - }, - "required": [ - "recordsCovered", - "mortgages" - ], - "type": "object" - }, - "owner": { - "additionalProperties": false, - "properties": { - "absenteeOwner": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "lastTransfer": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "amount": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "documentType": { - "type": "string" - }, - "recordedDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "sellers": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "recordedDate", - "amount", - "documentType", - "sellers" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "mailingAddress": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ownerOccupied": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "owners": { - "items": { - "type": "string" - }, - "type": "array" - }, - "recordOwner": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "recordOwner", - "owners", - "mailingAddress", - "ownerOccupied", - "absenteeOwner", - "lastTransfer" - ], - "type": "object" - }, - "permits": { - "items": { - "additionalProperties": false, - "properties": { - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "estimatedCost": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "filingDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "issuedDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "jobNumber": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "jobType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source": { - "enum": [ - "DOB BIS", - "DOB NOW" - ], - "type": "string" - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "workType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "filingDate", - "issuedDate", - "jobNumber", - "jobType", - "status", - "workType", - "estimatedCost", - "description", - "source" - ], - "type": "object" - }, - "type": "array" - }, - "preForeclosure": { - "additionalProperties": false, - "properties": { - "addOn": { - "type": "boolean" - }, - "cases": { - "items": { - "additionalProperties": false, - "properties": { - "caseType": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "county": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "courtStatus": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "depth": { - "anyOf": [ - { - "additionalProperties": false, - "properties": { - "amountOwed": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "amountOwedAsOf": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "defaultDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "documents": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "servicer": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "stageDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "stage", - "stageDate", - "amountOwed", - "amountOwedAsOf", - "defaultDate", - "servicer", - "documents" - ], - "type": "object" - }, - { - "type": "null" - } - ] - }, - "filed": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "indexNumber": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "plaintiff": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "indexNumber", - "county", - "filed", - "plaintiff", - "caseType", - "courtStatus", - "depth" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "addOn", - "cases" - ], - "type": "object" - }, - "registration": { - "additionalProperties": false, - "properties": { - "hpdRegistrationDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "hpdRegistrationId": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "managingAgent": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "hpdRegistrationId", - "hpdRegistrationDate", - "managingAgent" - ], - "type": "object" - }, - "sales": { - "items": { - "additionalProperties": false, - "properties": { - "apartment": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "buildingClass": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "grossSquareFeet": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "price": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "units": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "date", - "price", - "buildingClass", - "units", - "grossSquareFeet", - "apartment" - ], - "type": "object" - }, - "type": "array" - }, - "tax": { - "additionalProperties": false, - "properties": { - "assessedValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxAmount": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxBillYear": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxClass": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "valuations": { - "items": { - "additionalProperties": false, - "properties": { - "assessedValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "marketValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "taxClass": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "taxableValue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "year": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "year", - "marketValue", - "assessedValue", - "taxableValue", - "taxClass" - ], - "type": "object" - }, - "type": "array" - } - }, - "required": [ - "taxAmount", - "taxBillYear", - "taxClass", - "assessedValue", - "valuations" - ], - "type": "object" - }, - "violations": { - "additionalProperties": false, - "properties": { - "dob": { - "items": { - "additionalProperties": false, - "properties": { - "balanceDue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "severity": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "date", - "kind", - "severity", - "status", - "statusDate", - "description", - "balanceDue" - ], - "type": "object" - }, - "type": "array" - }, - "ecb": { - "items": { - "additionalProperties": false, - "properties": { - "balanceDue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "severity": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "date", - "kind", - "severity", - "status", - "statusDate", - "description", - "balanceDue" - ], - "type": "object" - }, - "type": "array" - }, - "hpd": { - "items": { - "additionalProperties": false, - "properties": { - "balanceDue": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "date": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "kind": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "severity": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "status": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "statusDate": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "date", - "kind", - "severity", - "status", - "statusDate", - "description", - "balanceDue" - ], - "type": "object" - }, - "type": "array" - }, - "openDob": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "openEcb": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "openHpd": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "hpd", - "dob", - "ecb", - "openHpd", - "openDob", - "openEcb" - ], - "type": "object" - } - }, - "required": [ - "owner", - "development", - "financials", - "tax", - "contacts", - "sales", - "permits", - "violations", - "preForeclosure", - "distress", - "registration" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": false, + "properties": { + "contacts": { + "additionalProperties": false, + "properties": { + "hpd": { + "items": { + "additionalProperties": false, + "properties": { + "address": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "company": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "phone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "date", + "role", + "name", + "company", + "address", + "phone" + ], + "type": "object" + }, + "type": "array" + }, + "permits": { + "items": { + "additionalProperties": false, + "properties": { + "address": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "company": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "phone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "role": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "date", + "role", + "name", + "company", + "address", + "phone" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "hpd", + "permits" + ], + "type": "object" + }, + "development": { + "additionalProperties": false, + "properties": { + "affordableResidentialFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "buildableArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "buildingDepth": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "buildingFront": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "builtFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "commercialArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "commercialFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "currentBuiltArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "eDesignation": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "facilityFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "floodZone2007": { + "type": "boolean" + }, + "floodZone2015": { + "type": "boolean" + }, + "inclusionaryHousing": { + "items": { + "type": "string" + }, + "type": "array" + }, + "landUse": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "limitedHeight": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "lotType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "manufacturingFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "maxBuildableArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "officeArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "overlays": { + "items": { + "type": "string" + }, + "type": "array" + }, + "residentialArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "residentialFar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "retailArea": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "sanbornMap": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "specialDistricts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "splitZone": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "taxMap": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "transitZone": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "zoningApplications": { + "items": { + "additionalProperties": false, + "properties": { + "actions": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "brief": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "completed": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "filed": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "projectId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ulurpNumbers": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "projectId", + "name", + "brief", + "status", + "ulurpNumbers", + "actions", + "filed", + "completed" + ], + "type": "object" + }, + "type": "array" + }, + "zoningDistricts": { + "items": { + "type": "string" + }, + "type": "array" + }, + "zoningMap": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "buildingFront", + "buildingDepth", + "lotType", + "zoningDistricts", + "specialDistricts", + "overlays", + "landUse", + "residentialFar", + "commercialFar", + "facilityFar", + "builtFar", + "maxBuildableArea", + "currentBuiltArea", + "buildableArea", + "residentialArea", + "commercialArea", + "retailArea", + "officeArea", + "zoningMap", + "taxMap", + "sanbornMap", + "limitedHeight", + "splitZone", + "eDesignation", + "inclusionaryHousing", + "transitZone", + "floodZone2007", + "floodZone2015", + "affordableResidentialFar", + "manufacturingFar", + "zoningApplications" + ], + "type": "object" + }, + "distress": { + "additionalProperties": false, + "properties": { + "permits24Months": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "preForeclosure": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "taxLienLastList": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taxLienOnLatestList": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "preForeclosure", + "taxLienOnLatestList", + "taxLienLastList", + "permits24Months" + ], + "type": "object" + }, + "financials": { + "additionalProperties": false, + "properties": { + "mortgages": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "documentType": { + "type": "string" + }, + "holder": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "lender": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "recordedDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "enum": [ + "open", + "satisfied", + "consolidated", + "unclear" + ], + "type": "string" + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "documentType", + "lender", + "holder", + "amount", + "recordedDate", + "status", + "statusDate" + ], + "type": "object" + }, + "type": "array" + }, + "recordsCovered": { + "type": "boolean" + } + }, + "required": [ + "recordsCovered", + "mortgages" + ], + "type": "object" + }, + "owner": { + "additionalProperties": false, + "properties": { + "absenteeOwner": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "lastTransfer": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amount": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "documentType": { + "type": "string" + }, + "recordedDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "sellers": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "recordedDate", + "amount", + "documentType", + "sellers" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "mailingAddress": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ownerOccupied": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "owners": { + "items": { + "type": "string" + }, + "type": "array" + }, + "recordOwner": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "recordOwner", + "owners", + "mailingAddress", + "ownerOccupied", + "absenteeOwner", + "lastTransfer" + ], + "type": "object" + }, + "permits": { + "items": { + "additionalProperties": false, + "properties": { + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "estimatedCost": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "filingDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "issuedDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "jobNumber": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "jobType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source": { + "enum": [ + "DOB BIS", + "DOB NOW" + ], + "type": "string" + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "workType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "filingDate", + "issuedDate", + "jobNumber", + "jobType", + "status", + "workType", + "estimatedCost", + "description", + "source" + ], + "type": "object" + }, + "type": "array" + }, + "preForeclosure": { + "additionalProperties": false, + "properties": { + "addOn": { + "type": "boolean" + }, + "cases": { + "items": { + "additionalProperties": false, + "properties": { + "caseType": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "county": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "courtStatus": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "depth": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "amountOwed": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "amountOwedAsOf": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "defaultDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "documents": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "servicer": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stage": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "stageDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "stage", + "stageDate", + "amountOwed", + "amountOwedAsOf", + "defaultDate", + "servicer", + "documents" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "filed": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "indexNumber": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "plaintiff": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "indexNumber", + "county", + "filed", + "plaintiff", + "caseType", + "courtStatus", + "depth" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "addOn", + "cases" + ], + "type": "object" + }, + "registration": { + "additionalProperties": false, + "properties": { + "hpdRegistrationDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "hpdRegistrationId": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "managingAgent": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "hpdRegistrationId", + "hpdRegistrationDate", + "managingAgent" + ], + "type": "object" + }, + "sales": { + "items": { + "additionalProperties": false, + "properties": { + "apartment": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "buildingClass": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "grossSquareFeet": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "price": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "units": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "date", + "price", + "buildingClass", + "units", + "grossSquareFeet", + "apartment" + ], + "type": "object" + }, + "type": "array" + }, + "tax": { + "additionalProperties": false, + "properties": { + "assessedValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxAmount": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxBillYear": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxClass": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "valuations": { + "items": { + "additionalProperties": false, + "properties": { + "assessedValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "marketValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "taxClass": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taxableValue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "year": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "year", + "marketValue", + "assessedValue", + "taxableValue", + "taxClass" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "taxAmount", + "taxBillYear", + "taxClass", + "assessedValue", + "valuations" + ], + "type": "object" + }, + "violations": { + "additionalProperties": false, + "properties": { + "dob": { + "items": { + "additionalProperties": false, + "properties": { + "balanceDue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "severity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "date", + "kind", + "severity", + "status", + "statusDate", + "description", + "balanceDue" + ], + "type": "object" + }, + "type": "array" + }, + "ecb": { + "items": { + "additionalProperties": false, + "properties": { + "balanceDue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "severity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "date", + "kind", + "severity", + "status", + "statusDate", + "description", + "balanceDue" + ], + "type": "object" + }, + "type": "array" + }, + "hpd": { + "items": { + "additionalProperties": false, + "properties": { + "balanceDue": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "date": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "description": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "kind": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "severity": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "status": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "statusDate": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "id", + "date", + "kind", + "severity", + "status", + "statusDate", + "description", + "balanceDue" + ], + "type": "object" + }, + "type": "array" + }, + "openDob": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "openEcb": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "openHpd": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "hpd", + "dob", + "ecb", + "openHpd", + "openDob", + "openEcb" + ], + "type": "object" + } + }, + "required": [ + "owner", + "development", + "financials", + "tax", + "contacts", + "sales", + "permits", + "violations", + "preForeclosure", + "distress", + "registration" + ], + "type": "object" + }, + { + "type": "null" + } +]
1 tool update
- Changed
get_credit_balance3 fields changed- removed
Output schema / properties / dailySpendCapRemoved value: -{ - "type": "number" -} - removed
Output schema / properties / remainingTodayRemoved value: -{ - "type": "number" -} - changed
Output schema / requiredPrevious value: -[ - "balance", - "spentToday", - "dailySpendCap", - "remainingToday", - "recentCharges" -]New value: +[ + "balance", + "spentToday", + "recentCharges" +]
21 tool updates
- First observed
buy_credits - First observed
find_nyc_property - First observed
get_credit_balance - First observed
get_hercules_overview - First observed
get_nyc_owner_portfolio - First observed
get_nyc_preforeclosure_detail - First observed
get_nyc_property - First observed
get_property_detail - First observed
quote_active_investor_search - First observed
quote_investor_firm_search - First observed
quote_llc_owner_lookup - First observed
quote_national_property_search - First observed
run_active_investor_search - First observed
run_investor_firm_search - First observed
run_llc_owner_lookup - First observed
run_national_property_search - First observed
run_nyc_preforeclosure_search - First observed
search_nyc_owners - First observed
search_nyc_preforeclosures - First observed
unlock_nyc_owner_contacts - First observed
unlock_nyc_property_report
Related MCP Connectors
Agent-ready NYC public records. Hosted, source-backed civic data organized around durable anchors.
U.S. real-estate data: property records, AVM value + rent estimates, sale/rental listings.
Search and enrich US property, owner, people, and company data for sales and lead generation.
US property register: 92M parcels, deeds, violations, CMBS filings, county sales, market series.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceEnables AI agents to query NYC public records through a hosted MCP server, supporting civic workflows such as property research, business evaluation, public money tracking, and influence mapping.28 npmMIT- AlicenseNot gradedqualityBmaintenanceProvides access to comprehensive US property data, including automated valuations, tax history, comparable sales, and ownership details, enabling real estate analysis and market insights.247 npmMIT
- FlicenseNot gradedqualityBmaintenanceProvides free property and parcel intelligence using official US government data APIs, county assessor records, and live listings, with tools for hazard risk checks, affordability calculations, and parcel ranking.-
- FlicenseAqualityDmaintenanceProvides Claude with access to NYC public property data including property details, sales history, comparable sales, tax benefits, and rent stabilization analysis using natural language.7-
Glama MCP Gateway
Add one secure layer between your agents and this server.