{"openapi":"3.1.0","info":{"title":"Rental Operations API","version":"1.0.0","description":"Read supplied tenancy documents, payment evidence, and inventory records without treating them as cleared funds or legal advice. Paid with x402 exact USDC on Base. No account is required.","contact":{"email":"support@brainiac.software"},"x-guidance":"BRAINIAC.software is a pay-per-call API for software agents. No account or API key is required.\nPayment uses the x402 protocol with exact USDC on Base (chain id 8453). Each POST operation has a fixed USD price.\nHow to call an operation:\n1. POST a JSON body matching the operation's requestBody schema to the operation path. Include an Idempotency-Key header (64 hex characters, 32 random bytes).\n2. If you have not paid, the server responds 402 with payment requirements in the body. Pay the exact amount to the payTo address on Base.\n3. Retry the identical request with the same Idempotency-Key and add a payment-signature header containing the x402 payment payload. On success (200) the operation result is returned.\n4. Reuse the same Idempotency-Key only for retries of the same operation and request body; it will not be charged twice.\nAll outputs are compliance prechecks, drafts, or data lookups for human review. They are not official determinations, legal advice, identity confirmation, or certified filings. Verify time-sensitive or official data with the cited source before acting."},"servers":[{"url":"https://www.brainiac.software"}],"paths":{"/api/v1/rental-operations/tenant-move-in-readiness":{"post":{"operationId":"check_move_in_readiness","summary":"Check move-in readiness","description":"Compare supplied move-in items with the items the caller marks as required. A pending item is not counted as present, and a complete list does not mean the handover was done.","tags":["rental-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"requirements":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","maxLength":40},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["name"],"additionalProperties":false}},"items":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"expected":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"evidence":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"purpose":{"type":"string","maxLength":40},"form":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"documents":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"issued":{"type":"string","maxLength":40},"expires":{"type":"string","maxLength":40},"holder":{"type":"string","maxLength":160},"number":{"type":"string","maxLength":80}},"additionalProperties":false}},"inventory":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"list":{"type":"string","maxLength":40},"room":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":80},"condition":{"type":"string","maxLength":80},"count":{"type":"number","minimum":0,"maximum":1000000}},"additionalProperties":false}},"obligations":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"party":{"type":"string","maxLength":40},"due":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"jurisdiction":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"rules":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"value":{"type":"string","maxLength":40}},"required":["name","value"],"additionalProperties":false}}},"additionalProperties":false},"example":{"text":"Required: deposit\nRequired: inventory\nItem: I-1 | deposit | present\nItem: I-2 | inventory | pending\nThe keys were handed over.\n"}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"requirements":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"state":{"type":"string"},"interpretation":{"type":"string"}},"additionalProperties":true}},"supplied":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"status":{"type":"string"}},"additionalProperties":true}},"fundsCleared":{"type":"boolean"},"legalAdvice":{"type":"boolean"},"evictionDetermined":{"type":"boolean"},"handoverCompleted":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"rulesApplied":{"type":"boolean"},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T14:00:00.000Z","status":"incomplete","requirements":[{"name":"deposit","state":"present","interpretation":"stated"},{"name":"inventory","state":"missing","interpretation":"none"}],"supplied":[{"id":"I-1","kind":"deposit","status":"present"},{"id":"I-2","kind":"inventory","status":"pending"}],"fundsCleared":false,"legalAdvice":false,"evictionDetermined":false,"handoverCompleted":false,"tenantContacted":false,"rulesApplied":false,"findings":[{"kind":"ignored","code":"unlabeled_line","subject":"","detail":"Lines without a recognized label were not read and their text was not copied."}],"limitations":["Tenancy documents, payment records, and inventory rows are copied only from labeled fields supplied by the caller.","A screenshot or payment instruction is not treated as cleared funds. No record is confirmed with a bank.","A jurisdiction name does not select a legal checklist. Only requirements written in the request are used.","An extracted obligation is the supplied wording. It is not legal advice and it does not decide an eviction right.","No tenant is contacted and no handover is completed."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}}]}}},"/api/v1/rental-operations/deposit-payment-evidence-check":{"post":{"operationId":"check_deposit_payment_evidence","summary":"Check deposit payment evidence","description":"Compare deposit evidence with the expected amount, currency, and reference. A matching screenshot is still not treated as cleared funds.","tags":["rental-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"requirements":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","maxLength":40},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["name"],"additionalProperties":false}},"items":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"expected":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"evidence":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"purpose":{"type":"string","maxLength":40},"form":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"documents":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"issued":{"type":"string","maxLength":40},"expires":{"type":"string","maxLength":40},"holder":{"type":"string","maxLength":160},"number":{"type":"string","maxLength":80}},"additionalProperties":false}},"inventory":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"list":{"type":"string","maxLength":40},"room":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":80},"condition":{"type":"string","maxLength":80},"count":{"type":"number","minimum":0,"maximum":1000000}},"additionalProperties":false}},"obligations":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"party":{"type":"string","maxLength":40},"due":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"jurisdiction":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"rules":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"value":{"type":"string","maxLength":40}},"required":["name","value"],"additionalProperties":false}}},"additionalProperties":false},"example":{"expected":[{"purpose":"deposit","amount":900,"currency":"USD","reference":"DEP-100"}],"evidence":[{"id":"E-1","purpose":"deposit","form":"screenshot","amount":900,"currency":"USD","reference":"DEP-100"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"purpose":{"type":"string"},"form":{"type":"string"},"amount":{"type":"number"},"amountSupplied":{"type":"boolean"},"currency":{"type":"string"},"expectedAmount":{"type":"number"},"expectedSupplied":{"type":"boolean"},"expectedCurrency":{"type":"string"},"amountState":{"type":"string"},"referenceState":{"type":"string"},"cleared":{"type":"boolean"},"clearance":{"type":"string"}},"additionalProperties":true}},"fundsCleared":{"type":"boolean"},"legalAdvice":{"type":"boolean"},"evictionDetermined":{"type":"boolean"},"handoverCompleted":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"rulesApplied":{"type":"boolean"},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T14:00:00.000Z","status":"checked","items":[{"id":"E-1","purpose":"deposit","form":"screenshot","amount":900,"amountSupplied":true,"currency":"USD","expectedAmount":900,"expectedSupplied":true,"expectedCurrency":"USD","amountState":"matches","referenceState":"matches","cleared":false,"clearance":"not_confirmed"}],"fundsCleared":false,"legalAdvice":false,"evictionDetermined":false,"handoverCompleted":false,"tenantContacted":false,"rulesApplied":false,"findings":[{"kind":"observation","code":"clearance_not_confirmed","subject":"E-1","detail":"A screenshot or payment instruction is not evidence that funds have cleared."}],"limitations":["Tenancy documents, payment records, and inventory rows are copied only from labeled fields supplied by the caller.","A screenshot or payment instruction is not treated as cleared funds. No record is confirmed with a bank.","A jurisdiction name does not select a legal checklist. Only requirements written in the request are used.","An extracted obligation is the supplied wording. It is not legal advice and it does not decide an eviction right.","No tenant is contacted and no handover is completed."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/rental-operations/first-rent-payment-check":{"post":{"operationId":"check_first_rent_payment_evidence","summary":"Check first-rent payment evidence","description":"Compare first-rent evidence with the expected amount, currency, and reference. A payment instruction is not treated as cleared funds.","tags":["rental-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"requirements":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","maxLength":40},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["name"],"additionalProperties":false}},"items":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"expected":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"evidence":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"purpose":{"type":"string","maxLength":40},"form":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"documents":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"issued":{"type":"string","maxLength":40},"expires":{"type":"string","maxLength":40},"holder":{"type":"string","maxLength":160},"number":{"type":"string","maxLength":80}},"additionalProperties":false}},"inventory":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"list":{"type":"string","maxLength":40},"room":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":80},"condition":{"type":"string","maxLength":80},"count":{"type":"number","minimum":0,"maximum":1000000}},"additionalProperties":false}},"obligations":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"party":{"type":"string","maxLength":40},"due":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"jurisdiction":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"rules":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"value":{"type":"string","maxLength":40}},"required":["name","value"],"additionalProperties":false}}},"additionalProperties":false},"example":{"expected":[{"purpose":"rent","amount":1200,"currency":"USD","reference":"RENT-1"}],"evidence":[{"id":"E-2","purpose":"rent","form":"instruction","amount":1000,"currency":"USD","reference":"RENT-1"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"purpose":{"type":"string"},"form":{"type":"string"},"amount":{"type":"number"},"amountSupplied":{"type":"boolean"},"currency":{"type":"string"},"expectedAmount":{"type":"number"},"expectedSupplied":{"type":"boolean"},"expectedCurrency":{"type":"string"},"amountState":{"type":"string"},"referenceState":{"type":"string"},"cleared":{"type":"boolean"},"clearance":{"type":"string"}},"additionalProperties":true}},"fundsCleared":{"type":"boolean"},"legalAdvice":{"type":"boolean"},"evictionDetermined":{"type":"boolean"},"handoverCompleted":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"rulesApplied":{"type":"boolean"},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T14:00:00.000Z","status":"checked","items":[{"id":"E-2","purpose":"rent","form":"instruction","amount":1000,"amountSupplied":true,"currency":"USD","expectedAmount":1200,"expectedSupplied":true,"expectedCurrency":"USD","amountState":"differs","referenceState":"matches","cleared":false,"clearance":"not_confirmed"}],"fundsCleared":false,"legalAdvice":false,"evictionDetermined":false,"handoverCompleted":false,"tenantContacted":false,"rulesApplied":false,"findings":[{"kind":"observation","code":"clearance_not_confirmed","subject":"E-2","detail":"A screenshot or payment instruction is not evidence that funds have cleared."}],"limitations":["Tenancy documents, payment records, and inventory rows are copied only from labeled fields supplied by the caller.","A screenshot or payment instruction is not treated as cleared funds. No record is confirmed with a bank.","A jurisdiction name does not select a legal checklist. Only requirements written in the request are used.","An extracted obligation is the supplied wording. It is not legal advice and it does not decide an eviction right.","No tenant is contacted and no handover is completed."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/rental-operations/tenancy-document-completeness":{"post":{"operationId":"check_tenancy_document_completeness","summary":"Check tenancy document completeness","description":"List the document kinds the caller marked as required and which of them were supplied. A jurisdiction name does not add a legal checklist.","tags":["rental-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"requirements":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","maxLength":40},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["name"],"additionalProperties":false}},"items":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"expected":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"evidence":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"purpose":{"type":"string","maxLength":40},"form":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"documents":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"issued":{"type":"string","maxLength":40},"expires":{"type":"string","maxLength":40},"holder":{"type":"string","maxLength":160},"number":{"type":"string","maxLength":80}},"additionalProperties":false}},"inventory":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"list":{"type":"string","maxLength":40},"room":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":80},"condition":{"type":"string","maxLength":80},"count":{"type":"number","minimum":0,"maximum":1000000}},"additionalProperties":false}},"obligations":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"party":{"type":"string","maxLength":40},"due":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"jurisdiction":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"rules":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"value":{"type":"string","maxLength":40}},"required":["name","value"],"additionalProperties":false}}},"additionalProperties":false},"example":{"jurisdiction":"GB","requirements":[{"kind":"document","name":"tenancy"},{"kind":"document","name":"inventory"}],"documents":[{"id":"D-1","kind":"tenancy","issued":"2026-11-01"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"jurisdiction":{"type":"string"},"requirements":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"state":{"type":"string"},"interpretation":{"type":"string"}},"additionalProperties":true}},"fundsCleared":{"type":"boolean"},"legalAdvice":{"type":"boolean"},"evictionDetermined":{"type":"boolean"},"handoverCompleted":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"rulesApplied":{"type":"boolean"},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T14:00:00.000Z","status":"incomplete","jurisdiction":"GB","requirements":[{"name":"tenancy","state":"supplied","interpretation":"stated"},{"name":"inventory","state":"missing","interpretation":"none"}],"fundsCleared":false,"legalAdvice":false,"evictionDetermined":false,"handoverCompleted":false,"tenantContacted":false,"rulesApplied":false,"findings":[{"kind":"unavailable","code":"jurisdiction_not_checked","subject":"GB","detail":"No verified rule set is available for this jurisdiction. Only requirements written in the request are used."}],"limitations":["Tenancy documents, payment records, and inventory rows are copied only from labeled fields supplied by the caller.","A screenshot or payment instruction is not treated as cleared funds. No record is confirmed with a bank.","A jurisdiction name does not select a legal checklist. Only requirements written in the request are used.","An extracted obligation is the supplied wording. It is not legal advice and it does not decide an eviction right.","No tenant is contacted and no handover is completed."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/rental-operations/move-in-inventory-compare":{"post":{"operationId":"compare_move_in_inventory","summary":"Compare move-in inventory","description":"Compare a baseline inventory with the move-in list by room, name, condition, and count. A difference is not a finding of liability.","tags":["rental-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"requirements":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","maxLength":40},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["name"],"additionalProperties":false}},"items":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"expected":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"evidence":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"purpose":{"type":"string","maxLength":40},"form":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"documents":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"issued":{"type":"string","maxLength":40},"expires":{"type":"string","maxLength":40},"holder":{"type":"string","maxLength":160},"number":{"type":"string","maxLength":80}},"additionalProperties":false}},"inventory":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"list":{"type":"string","maxLength":40},"room":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":80},"condition":{"type":"string","maxLength":80},"count":{"type":"number","minimum":0,"maximum":1000000}},"additionalProperties":false}},"obligations":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"party":{"type":"string","maxLength":40},"due":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"jurisdiction":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"rules":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"value":{"type":"string","maxLength":40}},"required":["name","value"],"additionalProperties":false}}},"additionalProperties":false},"example":{"inventory":[{"list":"baseline","room":"kitchen","name":"kettle","condition":"good","count":1},{"list":"move-in","room":"kitchen","name":"kettle","condition":"damaged","count":1},{"list":"move-in","room":"hall","name":"lamp","condition":"good","count":1}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"room":{"type":"string"},"name":{"type":"string"},"presence":{"type":"string"},"baselineCondition":{"type":"string"},"moveInCondition":{"type":"string"},"conditionState":{"type":"string"},"baselineCount":{"type":"number"},"moveInCount":{"type":"number"},"countState":{"type":"string"},"liabilityDetermined":{"type":"boolean"}},"additionalProperties":true}},"fundsCleared":{"type":"boolean"},"legalAdvice":{"type":"boolean"},"evictionDetermined":{"type":"boolean"},"handoverCompleted":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"rulesApplied":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T14:00:00.000Z","status":"compared","items":[{"room":"kitchen","name":"kettle","presence":"both","baselineCondition":"good","moveInCondition":"damaged","conditionState":"differs","baselineCount":1,"moveInCount":1,"countState":"same","liabilityDetermined":false},{"room":"hall","name":"lamp","presence":"move_in_only","baselineCondition":"","moveInCondition":"good","conditionState":"not_compared","baselineCount":0,"moveInCount":1,"countState":"not_compared","liabilityDetermined":false}],"fundsCleared":false,"legalAdvice":false,"evictionDetermined":false,"handoverCompleted":false,"tenantContacted":false,"rulesApplied":false,"findings":[],"limitations":["Tenancy documents, payment records, and inventory rows are copied only from labeled fields supplied by the caller.","A screenshot or payment instruction is not treated as cleared funds. No record is confirmed with a bank.","A jurisdiction name does not select a legal checklist. Only requirements written in the request are used.","An extracted obligation is the supplied wording. It is not legal advice and it does not decide an eviction right.","No tenant is contacted and no handover is completed."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.05"},"protocols":[{"x402":{}}]}}},"/api/v1/rental-operations/tenant-document-expiry-check":{"post":{"operationId":"check_tenant_document_expiry","summary":"Check tenant document expiry","description":"Compare supplied expiry dates with a supplied as-of date. No as-of date means expiry is not judged, and a document number is reduced to its last four characters.","tags":["rental-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"requirements":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","maxLength":40},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["name"],"additionalProperties":false}},"items":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"expected":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"evidence":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"purpose":{"type":"string","maxLength":40},"form":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"documents":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"issued":{"type":"string","maxLength":40},"expires":{"type":"string","maxLength":40},"holder":{"type":"string","maxLength":160},"number":{"type":"string","maxLength":80}},"additionalProperties":false}},"inventory":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"list":{"type":"string","maxLength":40},"room":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":80},"condition":{"type":"string","maxLength":80},"count":{"type":"number","minimum":0,"maximum":1000000}},"additionalProperties":false}},"obligations":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"party":{"type":"string","maxLength":40},"due":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"jurisdiction":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"rules":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"value":{"type":"string","maxLength":40}},"required":["name","value"],"additionalProperties":false}}},"additionalProperties":false},"example":{"asOf":"2026-11-04","rules":[{"name":"within","value":"30"}],"documents":[{"id":"D-1","kind":"passport","expires":"2026-11-01","holder":"tenant","number":"AB123456"},{"id":"D-2","kind":"visa","expires":"2026-11-20","holder":"tenant","number":"XY987654"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"asOf":{"type":"string"},"within":{"type":"number"},"withinSupplied":{"type":"boolean"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"expires":{"type":"string"},"holder":{"type":"string"},"number":{"type":"string"},"days":{"type":"number"},"daysSupplied":{"type":"boolean"},"state":{"type":"string"},"due":{"type":"boolean"},"legalAdvice":{"type":"boolean"}},"additionalProperties":true}},"fundsCleared":{"type":"boolean"},"legalAdvice":{"type":"boolean"},"evictionDetermined":{"type":"boolean"},"handoverCompleted":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"rulesApplied":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T14:00:00.000Z","status":"checked","asOf":"2026-11-04","within":30,"withinSupplied":true,"items":[{"id":"D-1","kind":"passport","expires":"2026-11-01","holder":"tenant","number":"••••3456","days":-3,"daysSupplied":true,"state":"expired","due":false,"legalAdvice":false},{"id":"D-2","kind":"visa","expires":"2026-11-20","holder":"tenant","number":"••••7654","days":16,"daysSupplied":true,"state":"current","due":true,"legalAdvice":false}],"fundsCleared":false,"legalAdvice":false,"evictionDetermined":false,"handoverCompleted":false,"tenantContacted":false,"rulesApplied":false,"findings":[],"limitations":["Tenancy documents, payment records, and inventory rows are copied only from labeled fields supplied by the caller.","A screenshot or payment instruction is not treated as cleared funds. No record is confirmed with a bank.","A jurisdiction name does not select a legal checklist. Only requirements written in the request are used.","An extracted obligation is the supplied wording. It is not legal advice and it does not decide an eviction right.","No tenant is contacted and no handover is completed."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/rental-operations/tenancy-obligation-extract":{"post":{"operationId":"extract_tenancy_obligations","summary":"Extract tenancy obligations","description":"Copy labeled obligations, the stated party, and a real due date. The wording is not treated as legal advice or an eviction right.","tags":["rental-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"requirements":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","maxLength":40},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["name"],"additionalProperties":false}},"items":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"expected":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"evidence":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"purpose":{"type":"string","maxLength":40},"form":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"documents":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"issued":{"type":"string","maxLength":40},"expires":{"type":"string","maxLength":40},"holder":{"type":"string","maxLength":160},"number":{"type":"string","maxLength":80}},"additionalProperties":false}},"inventory":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"list":{"type":"string","maxLength":40},"room":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":80},"condition":{"type":"string","maxLength":80},"count":{"type":"number","minimum":0,"maximum":1000000}},"additionalProperties":false}},"obligations":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"party":{"type":"string","maxLength":40},"due":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"jurisdiction":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"rules":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"value":{"type":"string","maxLength":40}},"required":["name","value"],"additionalProperties":false}}},"additionalProperties":false},"example":{"text":"Obligation: O-1 | tenant | 2026-11-15 | pay the first rent\nObligation: O-2 | landlord | | repair the boiler\nThe tenant can be evicted.\n"}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"party":{"type":"string"},"partyKnown":{"type":"boolean"},"due":{"type":"string"},"text":{"type":"string"},"enforceable":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"fundsCleared":{"type":"boolean"},"legalAdvice":{"type":"boolean"},"evictionDetermined":{"type":"boolean"},"handoverCompleted":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"rulesApplied":{"type":"boolean"},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T14:00:00.000Z","status":"extracted","items":[{"id":"O-1","party":"tenant","partyKnown":true,"due":"2026-11-15","text":"pay the first rent","enforceable":false,"interpretation":"stated"},{"id":"O-2","party":"landlord","partyKnown":true,"due":"","text":"repair the boiler","enforceable":false,"interpretation":"stated"}],"fundsCleared":false,"legalAdvice":false,"evictionDetermined":false,"handoverCompleted":false,"tenantContacted":false,"rulesApplied":false,"findings":[{"kind":"ignored","code":"unlabeled_line","subject":"","detail":"Lines without a recognized label were not read and their text was not copied."}],"limitations":["Tenancy documents, payment records, and inventory rows are copied only from labeled fields supplied by the caller.","A screenshot or payment instruction is not treated as cleared funds. No record is confirmed with a bank.","A jurisdiction name does not select a legal checklist. Only requirements written in the request are used.","An extracted obligation is the supplied wording. It is not legal advice and it does not decide an eviction right.","No tenant is contacted and no handover is completed."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.04"},"protocols":[{"x402":{}}]}}},"/api/v1/rental-operations/handover-report":{"post":{"operationId":"report_a_rental_handover","summary":"Report a rental handover","description":"Combine the supplied readiness items, payment evidence, inventory comparison, document dates, and obligations. The report does not clear funds, give legal advice, or complete a handover.","tags":["rental-operations"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"text":{"type":"string","maxLength":200000},"json":{"type":"string","maxLength":200000},"csv":{"type":"string","maxLength":200000},"file":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180},"mediaType":{"type":"string","enum":["text/plain","text/csv","application/json"]},"fileBase64":{"type":"string","minLength":1,"maxLength":12000000}},"required":["mediaType","fileBase64"],"additionalProperties":false},"requirements":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","maxLength":40},"name":{"type":"string","minLength":1,"maxLength":80}},"required":["name"],"additionalProperties":false}},"items":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"expected":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"purpose":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"evidence":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"purpose":{"type":"string","maxLength":40},"form":{"type":"string","maxLength":40},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"reference":{"type":"string","maxLength":80}},"additionalProperties":false}},"documents":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"kind":{"type":"string","maxLength":80},"issued":{"type":"string","maxLength":40},"expires":{"type":"string","maxLength":40},"holder":{"type":"string","maxLength":160},"number":{"type":"string","maxLength":80}},"additionalProperties":false}},"inventory":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"list":{"type":"string","maxLength":40},"room":{"type":"string","maxLength":80},"name":{"type":"string","maxLength":80},"condition":{"type":"string","maxLength":80},"count":{"type":"number","minimum":0,"maximum":1000000}},"additionalProperties":false}},"obligations":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"party":{"type":"string","maxLength":40},"due":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"jurisdiction":{"type":"string","maxLength":40},"asOf":{"type":"string","maxLength":40},"rules":{"maxItems":8,"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":40},"value":{"type":"string","maxLength":40}},"required":["name","value"],"additionalProperties":false}}},"additionalProperties":false},"example":{"jurisdiction":"GB","asOf":"2026-11-04","requirements":[{"kind":"item","name":"deposit"},{"kind":"item","name":"inventory"},{"kind":"document","name":"tenancy"}],"items":[{"id":"I-1","kind":"deposit","status":"present"},{"id":"I-2","kind":"inventory","status":"pending"}],"expected":[{"purpose":"deposit","amount":900,"currency":"USD","reference":"DEP-100"},{"purpose":"rent","amount":1200,"currency":"USD","reference":"RENT-1"}],"evidence":[{"id":"E-1","purpose":"deposit","form":"screenshot","amount":900,"currency":"USD","reference":"DEP-100"},{"id":"E-2","purpose":"rent","form":"instruction","amount":1000,"currency":"USD","reference":"RENT-1"}],"documents":[{"id":"D-1","kind":"tenancy","issued":"2026-11-01"},{"id":"D-2","kind":"passport","expires":"2026-11-01","holder":"tenant","number":"AB123456"}],"inventory":[{"list":"baseline","room":"kitchen","name":"kettle","condition":"good","count":1},{"list":"move-in","room":"kitchen","name":"kettle","condition":"damaged","count":1}],"obligations":[{"id":"O-1","party":"tenant","due":"2026-11-15","text":"pay the first rent"}]}}}},"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"Fresh random 32-byte value encoded as 64 hexadecimal characters. Reuse unchanged only for retries of the same operation and request.","schema":{"type":"string","pattern":"^[0-9a-fA-F]{64}$"}}],"responses":{"200":{"description":"Illustrative endpoint-specific JSON response shape. Conditional fields depend on the result and data-source availability.","content":{"application/json":{"schema":{"type":"object","properties":{"checkedAt":{"type":"string"},"status":{"type":"string"},"missingCount":{"type":"number"},"depositMatched":{"type":"number"},"rentMatched":{"type":"number"},"inventoryDifferenceCount":{"type":"number"},"expiredCount":{"type":"number"},"dueCount":{"type":"number"},"obligationCount":{"type":"number"},"jurisdiction":{"type":"string"},"requirements":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"state":{"type":"string"},"interpretation":{"type":"string"}},"additionalProperties":true}},"payments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"purpose":{"type":"string"},"form":{"type":"string"},"amount":{"type":"number"},"amountSupplied":{"type":"boolean"},"currency":{"type":"string"},"expectedAmount":{"type":"number"},"expectedSupplied":{"type":"boolean"},"expectedCurrency":{"type":"string"},"amountState":{"type":"string"},"referenceState":{"type":"string"},"cleared":{"type":"boolean"},"clearance":{"type":"string"}},"additionalProperties":true}},"inventory":{"type":"array","items":{"type":"object","properties":{"room":{"type":"string"},"name":{"type":"string"},"presence":{"type":"string"},"baselineCondition":{"type":"string"},"moveInCondition":{"type":"string"},"conditionState":{"type":"string"},"baselineCount":{"type":"number"},"moveInCount":{"type":"number"},"countState":{"type":"string"},"liabilityDetermined":{"type":"boolean"}},"additionalProperties":true}},"documents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"expires":{"type":"string"},"holder":{"type":"string"},"number":{"type":"string"},"days":{"type":"number"},"daysSupplied":{"type":"boolean"},"state":{"type":"string"},"due":{"type":"boolean"},"legalAdvice":{"type":"boolean"}},"additionalProperties":true}},"obligations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"party":{"type":"string"},"partyKnown":{"type":"boolean"},"due":{"type":"string"},"text":{"type":"string"},"enforceable":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"fundsCleared":{"type":"boolean"},"legalAdvice":{"type":"boolean"},"evictionDetermined":{"type":"boolean"},"handoverCompleted":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"rulesApplied":{"type":"boolean"},"findings":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"code":{"type":"string"},"subject":{"type":"string"},"detail":{"type":"string"}},"additionalProperties":true}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T14:00:00.000Z","status":"reported","missingCount":1,"depositMatched":1,"rentMatched":0,"inventoryDifferenceCount":1,"expiredCount":1,"dueCount":0,"obligationCount":1,"jurisdiction":"GB","requirements":[{"name":"deposit","state":"present","interpretation":"stated"},{"name":"inventory","state":"missing","interpretation":"none"},{"name":"tenancy","state":"supplied","interpretation":"stated"}],"payments":[{"id":"E-1","purpose":"deposit","form":"screenshot","amount":900,"amountSupplied":true,"currency":"USD","expectedAmount":900,"expectedSupplied":true,"expectedCurrency":"USD","amountState":"matches","referenceState":"matches","cleared":false,"clearance":"not_confirmed"},{"id":"E-2","purpose":"rent","form":"instruction","amount":1000,"amountSupplied":true,"currency":"USD","expectedAmount":1200,"expectedSupplied":true,"expectedCurrency":"USD","amountState":"differs","referenceState":"matches","cleared":false,"clearance":"not_confirmed"}],"inventory":[{"room":"kitchen","name":"kettle","presence":"both","baselineCondition":"good","moveInCondition":"damaged","conditionState":"differs","baselineCount":1,"moveInCount":1,"countState":"same","liabilityDetermined":false}],"documents":[{"id":"D-1","kind":"tenancy","expires":"","holder":"","number":"","days":0,"daysSupplied":false,"state":"not_checked","due":false,"legalAdvice":false},{"id":"D-2","kind":"passport","expires":"2026-11-01","holder":"tenant","number":"••••3456","days":-3,"daysSupplied":true,"state":"expired","due":false,"legalAdvice":false}],"obligations":[{"id":"O-1","party":"tenant","partyKnown":true,"due":"2026-11-15","text":"pay the first rent","enforceable":false,"interpretation":"stated"}],"fundsCleared":false,"legalAdvice":false,"evictionDetermined":false,"handoverCompleted":false,"tenantContacted":false,"rulesApplied":false,"findings":[{"kind":"unavailable","code":"jurisdiction_not_checked","subject":"GB","detail":"No verified rule set is available for this jurisdiction. Only requirements written in the request are used."},{"kind":"observation","code":"clearance_not_confirmed","subject":"E-1","detail":"A screenshot or payment instruction is not evidence that funds have cleared."},{"kind":"observation","code":"clearance_not_confirmed","subject":"E-2","detail":"A screenshot or payment instruction is not evidence that funds have cleared."}],"limitations":["Tenancy documents, payment records, and inventory rows are copied only from labeled fields supplied by the caller.","A screenshot or payment instruction is not treated as cleared funds. No record is confirmed with a bank.","A jurisdiction name does not select a legal checklist. Only requirements written in the request are used.","An extracted obligation is the supplied wording. It is not legal advice and it does not decide an eviction right.","No tenant is contacted and no handover is completed."]}}}},"400":{"description":"Invalid JSON or request schema."},"402":{"description":"Payment Required"},"409":{"description":"Idempotency conflict, in-progress payment, or expired result cache. Reusing the key cannot trigger a second charge."},"413":{"description":"Request body exceeds the 24 MB limit."},"500":{"description":"Operation failed. With upfront settlement this may occur after payment; reuse the same idempotency key to retrieve the stored result."},"503":{"description":"Payment or retry-safe result storage is unavailable; the operation is not run."}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.12"},"protocols":[{"x402":{}}]}}}},"components":{"schemas":{"ApiError":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"details":{}}}}}}}}