{"openapi":"3.1.0","info":{"title":"Property Maintenance API","version":"1.0.0","description":"Read supplied repair requests, quotes, and invoices, and flag safety keywords for a person without calling a property safe. 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/property-maintenance/request-classify":{"post":{"operationId":"classify_a_maintenance_request","summary":"Classify a maintenance request","description":"Classify a stated type only from an explicit token, and flag a documented safety keyword for a person to review. An unrecognized word is left unrecognized.","tags":["property-maintenance"],"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},"requests":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"property":{"type":"string","maxLength":160},"reported":{"type":"string","maxLength":40},"responded":{"type":"string","maxLength":40},"type":{"type":"string","maxLength":80},"urgency":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"quotes":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"days":{"type":"number","minimum":0,"maximum":3650},"scope":{"type":"string","maxLength":300},"exclusions":{"type":"string","maxLength":300}},"additionalProperties":false}},"invoices":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"quoteId":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"scope":{"type":"string","maxLength":300},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"slas":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"urgency":{"type":"string","maxLength":40},"limit":{"type":"number","minimum":0,"maximum":100000},"unit":{"type":"string","maxLength":20}},"additionalProperties":false}},"works":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160}},"additionalProperties":false}},"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":"Request: M-1 | 10 Example Street | 2026-11-01 | | leak | routine | drip under the sink\nRequest: M-2 | 10 Example Street | 2026-11-02 | | erase | | gas smell in the kitchen\nThe tenant is angry.\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"},"property":{"type":"string"},"reported":{"type":"string"},"type":{"type":"string"},"category":{"type":"string"},"urgency":{"type":"string"},"safety":{"type":"boolean"},"keyword":{"type":"string"},"escalation":{"type":"string"},"confirmed":{"type":"boolean"},"propertySafe":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"contractorDispatched":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"propertySafe":{"type":"boolean"},"legalCompliance":{"type":"boolean"},"workOrdered":{"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-04T13:00:00.000Z","status":"classified","items":[{"id":"M-1","property":"10 Example Street","reported":"2026-11-01","type":"leak","category":"plumbing","urgency":"routine","safety":false,"keyword":"","escalation":"none","confirmed":false,"propertySafe":false,"interpretation":"stated"},{"id":"M-2","property":"10 Example Street","reported":"2026-11-02","type":"erase","category":"unrecognized","urgency":"not_stated","safety":true,"keyword":"gas","escalation":"human","confirmed":false,"propertySafe":false,"interpretation":"stated"}],"contractorDispatched":false,"tenantContacted":false,"propertySafe":false,"legalCompliance":false,"workOrdered":false,"findings":[{"kind":"ignored","code":"unlabeled_line","subject":"","detail":"Lines without a recognized label were not read and their text was not copied."},{"kind":"observation","code":"safety_keyword","subject":"M-2","detail":"The supplied text contains \"gas\". A person should review it. This is not a finding that the property is unsafe."}],"limitations":["Requests, quotes, invoices, and service levels are copied only from labeled fields supplied by the caller.","A type is classified only from an explicit token: leak, plumbing, pipe, drain, electrical, power, outlet, wiring, heat, heating, hvac, boiler, lock, door, access, appliance, pest, structural, roof, or ceiling.","A safety flag is a keyword match for a person to review. It does not mean the property is unsafe or legally non-compliant.","A quote comparison does not recommend a contractor. A work-order draft is not sent.","No contractor is dispatched and no tenant is contacted."]}}}},"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/property-maintenance/priority-assess":{"post":{"operationId":"assess_maintenance_priority","summary":"Assess maintenance priority","description":"Apply a fixed order: a safety keyword, then a stated emergency, urgent, or routine urgency. A missing urgency is not treated as routine, and the result is not a safety verdict.","tags":["property-maintenance"],"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},"requests":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"property":{"type":"string","maxLength":160},"reported":{"type":"string","maxLength":40},"responded":{"type":"string","maxLength":40},"type":{"type":"string","maxLength":80},"urgency":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"quotes":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"days":{"type":"number","minimum":0,"maximum":3650},"scope":{"type":"string","maxLength":300},"exclusions":{"type":"string","maxLength":300}},"additionalProperties":false}},"invoices":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"quoteId":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"scope":{"type":"string","maxLength":300},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"slas":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"urgency":{"type":"string","maxLength":40},"limit":{"type":"number","minimum":0,"maximum":100000},"unit":{"type":"string","maxLength":20}},"additionalProperties":false}},"works":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160}},"additionalProperties":false}},"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":{"requests":[{"id":"M-1","type":"leak","urgency":"routine","text":"drip under the sink"},{"id":"M-2","type":"erase","text":"gas smell in the kitchen"},{"id":"M-3","text":"paint the hall"}]}}}},"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"},"priority":{"type":"string"},"rule":{"type":"string"},"urgency":{"type":"string"},"safety":{"type":"boolean"},"keyword":{"type":"string"},"propertySafe":{"type":"boolean"}},"additionalProperties":true}},"contractorDispatched":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"propertySafe":{"type":"boolean"},"legalCompliance":{"type":"boolean"},"workOrdered":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T13:00:00.000Z","status":"assessed","items":[{"id":"M-1","priority":"routine","rule":"stated_routine","urgency":"routine","safety":false,"keyword":"","propertySafe":false},{"id":"M-2","priority":"escalate","rule":"safety_keyword","urgency":"not_stated","safety":true,"keyword":"gas","propertySafe":false},{"id":"M-3","priority":"not_assessed","rule":"not_assessed","urgency":"not_stated","safety":false,"keyword":"","propertySafe":false}],"contractorDispatched":false,"tenantContacted":false,"propertySafe":false,"legalCompliance":false,"workOrdered":false,"findings":[],"limitations":["Requests, quotes, invoices, and service levels are copied only from labeled fields supplied by the caller.","A type is classified only from an explicit token: leak, plumbing, pipe, drain, electrical, power, outlet, wiring, heat, heating, hvac, boiler, lock, door, access, appliance, pest, structural, roof, or ceiling.","A safety flag is a keyword match for a person to review. It does not mean the property is unsafe or legally non-compliant.","A quote comparison does not recommend a contractor. A work-order draft is not sent.","No contractor is dispatched and no tenant is contacted."]}}}},"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/property-maintenance/work-order-generate":{"post":{"operationId":"draft_a_maintenance_work_order","summary":"Draft a maintenance work order","description":"Write a draft from the stated property, type, issue, and contractor name. The draft is not sent and no contractor is dispatched.","tags":["property-maintenance"],"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},"requests":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"property":{"type":"string","maxLength":160},"reported":{"type":"string","maxLength":40},"responded":{"type":"string","maxLength":40},"type":{"type":"string","maxLength":80},"urgency":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"quotes":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"days":{"type":"number","minimum":0,"maximum":3650},"scope":{"type":"string","maxLength":300},"exclusions":{"type":"string","maxLength":300}},"additionalProperties":false}},"invoices":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"quoteId":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"scope":{"type":"string","maxLength":300},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"slas":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"urgency":{"type":"string","maxLength":40},"limit":{"type":"number","minimum":0,"maximum":100000},"unit":{"type":"string","maxLength":20}},"additionalProperties":false}},"works":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160}},"additionalProperties":false}},"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":{"requests":[{"id":"M-1","property":"10 Example Street","type":"leak","urgency":"routine","text":"drip under the sink"}]}}}},"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"},"orders":{"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string"},"property":{"type":"string"},"contractor":{"type":"string"},"sent":{"type":"boolean"},"text":{"type":"string"}},"additionalProperties":true}},"contractorDispatched":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"propertySafe":{"type":"boolean"},"legalCompliance":{"type":"boolean"},"workOrdered":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T13:00:00.000Z","status":"drafted","orders":[{"requestId":"M-1","property":"10 Example Street","contractor":"","sent":false,"text":"Request M-1. Property: 10 Example Street. Stated type: leak (plumbing). Stated issue: drip under the sink. Stated urgency: routine. This draft was not sent and no contractor was dispatched."}],"contractorDispatched":false,"tenantContacted":false,"propertySafe":false,"legalCompliance":false,"workOrdered":false,"findings":[],"limitations":["Requests, quotes, invoices, and service levels are copied only from labeled fields supplied by the caller.","A type is classified only from an explicit token: leak, plumbing, pipe, drain, electrical, power, outlet, wiring, heat, heating, hvac, boiler, lock, door, access, appliance, pest, structural, roof, or ceiling.","A safety flag is a keyword match for a person to review. It does not mean the property is unsafe or legally non-compliant.","A quote comparison does not recommend a contractor. A work-order draft is not sent.","No contractor is dispatched and no tenant is contacted."]}}}},"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/property-maintenance/contractor-quote-compare":{"post":{"operationId":"compare_contractor_quotes","summary":"Compare contractor quotes","description":"Compare supplied quotes by price, stated completion days, scope, and exclusions. The lowest price is not a recommendation, and different currencies are not converted.","tags":["property-maintenance"],"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},"requests":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"property":{"type":"string","maxLength":160},"reported":{"type":"string","maxLength":40},"responded":{"type":"string","maxLength":40},"type":{"type":"string","maxLength":80},"urgency":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"quotes":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"days":{"type":"number","minimum":0,"maximum":3650},"scope":{"type":"string","maxLength":300},"exclusions":{"type":"string","maxLength":300}},"additionalProperties":false}},"invoices":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"quoteId":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"scope":{"type":"string","maxLength":300},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"slas":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"urgency":{"type":"string","maxLength":40},"limit":{"type":"number","minimum":0,"maximum":100000},"unit":{"type":"string","maxLength":20}},"additionalProperties":false}},"works":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160}},"additionalProperties":false}},"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":{"quotes":[{"id":"Q-1","requestId":"M-1","contractor":"North Trades","amount":200,"currency":"USD","days":5,"scope":"replace trap","exclusions":"parts"},{"id":"Q-2","requestId":"M-1","contractor":"South Trades","amount":150,"currency":"USD","days":5,"scope":"replace trap"}]}}}},"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"},"groups":{"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string"},"price":{"type":"string"},"time":{"type":"string"},"scope":{"type":"string"},"quotes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"contractor":{"type":"string"},"amount":{"type":"number"},"amountSupplied":{"type":"boolean"},"currency":{"type":"string"},"days":{"type":"number"},"daysSupplied":{"type":"boolean"},"scope":{"type":"string"},"exclusions":{"type":"string"},"lowest":{"type":"boolean"},"shortest":{"type":"boolean"},"recommended":{"type":"boolean"}},"additionalProperties":true}}},"additionalProperties":true}},"contractorDispatched":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"propertySafe":{"type":"boolean"},"legalCompliance":{"type":"boolean"},"workOrdered":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T13:00:00.000Z","status":"compared","groups":[{"requestId":"M-1","price":"compared","time":"tied","scope":"same","quotes":[{"id":"Q-1","contractor":"North Trades","amount":200,"amountSupplied":true,"currency":"USD","days":5,"daysSupplied":true,"scope":"replace trap","exclusions":"parts","lowest":false,"shortest":false,"recommended":false},{"id":"Q-2","contractor":"South Trades","amount":150,"amountSupplied":true,"currency":"USD","days":5,"daysSupplied":true,"scope":"replace trap","exclusions":"","lowest":true,"shortest":false,"recommended":false}]}],"contractorDispatched":false,"tenantContacted":false,"propertySafe":false,"legalCompliance":false,"workOrdered":false,"findings":[],"limitations":["Requests, quotes, invoices, and service levels are copied only from labeled fields supplied by the caller.","A type is classified only from an explicit token: leak, plumbing, pipe, drain, electrical, power, outlet, wiring, heat, heating, hvac, boiler, lock, door, access, appliance, pest, structural, roof, or ceiling.","A safety flag is a keyword match for a person to review. It does not mean the property is unsafe or legally non-compliant.","A quote comparison does not recommend a contractor. A work-order draft is not sent.","No contractor is dispatched and no tenant is contacted."]}}}},"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/property-maintenance/response-sla-check":{"post":{"operationId":"check_a_response_service_level","summary":"Check a response service level","description":"Compare a supplied response time with the service level for that stated urgency. No deadline is assumed when the caller does not supply one.","tags":["property-maintenance"],"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},"requests":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"property":{"type":"string","maxLength":160},"reported":{"type":"string","maxLength":40},"responded":{"type":"string","maxLength":40},"type":{"type":"string","maxLength":80},"urgency":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"quotes":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"days":{"type":"number","minimum":0,"maximum":3650},"scope":{"type":"string","maxLength":300},"exclusions":{"type":"string","maxLength":300}},"additionalProperties":false}},"invoices":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"quoteId":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"scope":{"type":"string","maxLength":300},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"slas":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"urgency":{"type":"string","maxLength":40},"limit":{"type":"number","minimum":0,"maximum":100000},"unit":{"type":"string","maxLength":20}},"additionalProperties":false}},"works":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160}},"additionalProperties":false}},"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":{"slas":[{"urgency":"emergency","limit":4,"unit":"hours"}],"requests":[{"id":"M-1","urgency":"emergency","reported":"2026-11-01T10:00:00Z","responded":"2026-11-01T16:00:00Z"},{"id":"M-2","urgency":"routine","reported":"2026-11-01","responded":"2026-11-02"}]}}}},"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"},"urgency":{"type":"string"},"reported":{"type":"string"},"responded":{"type":"string"},"asOfUsed":{"type":"boolean"},"limit":{"type":"number"},"unit":{"type":"string"},"elapsed":{"type":"number"},"elapsedSupplied":{"type":"boolean"},"state":{"type":"string"},"legalCompliance":{"type":"boolean"}},"additionalProperties":true}},"contractorDispatched":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"propertySafe":{"type":"boolean"},"legalCompliance":{"type":"boolean"},"workOrdered":{"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-04T13:00:00.000Z","status":"checked","items":[{"id":"M-1","urgency":"emergency","reported":"2026-11-01T10:00:00.000Z","responded":"2026-11-01T16:00:00.000Z","asOfUsed":false,"limit":4,"unit":"hours","elapsed":6,"elapsedSupplied":true,"state":"outside","legalCompliance":false},{"id":"M-2","urgency":"routine","reported":"2026-11-01","responded":"2026-11-02","asOfUsed":false,"limit":0,"unit":"","elapsed":0,"elapsedSupplied":false,"state":"not_checked","legalCompliance":false}],"contractorDispatched":false,"tenantContacted":false,"propertySafe":false,"legalCompliance":false,"workOrdered":false,"findings":[{"kind":"unavailable","code":"sla_missing","subject":"M-2","detail":"No supplied service level matches this stated urgency. No deadline was assumed."}],"limitations":["Requests, quotes, invoices, and service levels are copied only from labeled fields supplied by the caller.","A type is classified only from an explicit token: leak, plumbing, pipe, drain, electrical, power, outlet, wiring, heat, heating, hvac, boiler, lock, door, access, appliance, pest, structural, roof, or ceiling.","A safety flag is a keyword match for a person to review. It does not mean the property is unsafe or legally non-compliant.","A quote comparison does not recommend a contractor. A work-order draft is not sent.","No contractor is dispatched and no tenant is contacted."]}}}},"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/property-maintenance/repair-history-analyze":{"post":{"operationId":"analyze_repair_history","summary":"Analyze repair history","description":"Count supplied requests for the same property and type. A repeat is reported at three or more. The count is not a finding that the property is unsafe.","tags":["property-maintenance"],"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},"requests":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"property":{"type":"string","maxLength":160},"reported":{"type":"string","maxLength":40},"responded":{"type":"string","maxLength":40},"type":{"type":"string","maxLength":80},"urgency":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"quotes":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"days":{"type":"number","minimum":0,"maximum":3650},"scope":{"type":"string","maxLength":300},"exclusions":{"type":"string","maxLength":300}},"additionalProperties":false}},"invoices":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"quoteId":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"scope":{"type":"string","maxLength":300},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"slas":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"urgency":{"type":"string","maxLength":40},"limit":{"type":"number","minimum":0,"maximum":100000},"unit":{"type":"string","maxLength":20}},"additionalProperties":false}},"works":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160}},"additionalProperties":false}},"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":{"requests":[{"id":"M-1","property":"10 Example Street","type":"leak"},{"id":"M-2","property":"10 Example Street","type":"leak"},{"id":"M-3","property":"10 Example Street","type":"leak"},{"id":"M-4","property":"10 Example Street","type":"pest"}]}}}},"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":{"property":{"type":"string"},"type":{"type":"string"},"category":{"type":"string"},"count":{"type":"number"},"pattern":{"type":"boolean"},"requests":{"type":"array","items":{"type":"string"}},"propertySafe":{"type":"boolean"}},"additionalProperties":true}},"contractorDispatched":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"propertySafe":{"type":"boolean"},"legalCompliance":{"type":"boolean"},"workOrdered":{"type":"boolean"},"findings":{"type":"array","items":{}},"limitations":{"type":"array","items":{"type":"string"}}},"additionalProperties":true},"example":{"checkedAt":"2026-11-04T13:00:00.000Z","status":"analyzed","items":[{"property":"10 Example Street","type":"plumbing","category":"plumbing","count":3,"pattern":true,"requests":["M-1","M-2","M-3"],"propertySafe":false},{"property":"10 Example Street","type":"pest","category":"pest","count":1,"pattern":false,"requests":["M-4"],"propertySafe":false}],"contractorDispatched":false,"tenantContacted":false,"propertySafe":false,"legalCompliance":false,"workOrdered":false,"findings":[],"limitations":["Requests, quotes, invoices, and service levels are copied only from labeled fields supplied by the caller.","A type is classified only from an explicit token: leak, plumbing, pipe, drain, electrical, power, outlet, wiring, heat, heating, hvac, boiler, lock, door, access, appliance, pest, structural, roof, or ceiling.","A safety flag is a keyword match for a person to review. It does not mean the property is unsafe or legally non-compliant.","A quote comparison does not recommend a contractor. A work-order draft is not sent.","No contractor is dispatched and no tenant is contacted."]}}}},"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/property-maintenance/invoice-validate":{"post":{"operationId":"validate_a_maintenance_invoice","summary":"Validate a maintenance invoice","description":"Compare an invoice amount and scope with one linked quote. A difference is not an overcharge finding, and a stated paid status does not mean a payment was sent.","tags":["property-maintenance"],"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},"requests":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"property":{"type":"string","maxLength":160},"reported":{"type":"string","maxLength":40},"responded":{"type":"string","maxLength":40},"type":{"type":"string","maxLength":80},"urgency":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"quotes":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"days":{"type":"number","minimum":0,"maximum":3650},"scope":{"type":"string","maxLength":300},"exclusions":{"type":"string","maxLength":300}},"additionalProperties":false}},"invoices":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"quoteId":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"scope":{"type":"string","maxLength":300},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"slas":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"urgency":{"type":"string","maxLength":40},"limit":{"type":"number","minimum":0,"maximum":100000},"unit":{"type":"string","maxLength":20}},"additionalProperties":false}},"works":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160}},"additionalProperties":false}},"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":{"quotes":[{"id":"Q-1","amount":150,"currency":"USD","scope":"replace trap"}],"invoices":[{"id":"I-1","quoteId":"Q-1","amount":180,"currency":"USD","scope":"replace trap","status":"submitted"},{"id":"I-2","quoteId":"Q-9","amount":180,"currency":"USD","scope":"replace trap","status":"paid"}]}}}},"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"},"quoteId":{"type":"string"},"status":{"type":"string"},"currency":{"type":"string"},"invoiceAmount":{"type":"number"},"invoiceSupplied":{"type":"boolean"},"quoteAmount":{"type":"number"},"quoteSupplied":{"type":"boolean"},"amountState":{"type":"string"},"scopeState":{"type":"string"},"paymentSent":{"type":"boolean"},"legalCompliance":{"type":"boolean"}},"additionalProperties":true}},"contractorDispatched":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"propertySafe":{"type":"boolean"},"legalCompliance":{"type":"boolean"},"workOrdered":{"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-04T13:00:00.000Z","status":"checked","items":[{"id":"I-1","quoteId":"Q-1","status":"submitted","currency":"USD","invoiceAmount":180,"invoiceSupplied":true,"quoteAmount":150,"quoteSupplied":true,"amountState":"above","scopeState":"same","paymentSent":false,"legalCompliance":false},{"id":"I-2","quoteId":"Q-9","status":"paid","currency":"USD","invoiceAmount":180,"invoiceSupplied":true,"quoteAmount":0,"quoteSupplied":false,"amountState":"not_compared","scopeState":"not_compared","paymentSent":false,"legalCompliance":false}],"contractorDispatched":false,"tenantContacted":false,"propertySafe":false,"legalCompliance":false,"workOrdered":false,"findings":[{"kind":"unavailable","code":"quote_missing","subject":"I-2","detail":"No single supplied quote is linked, so the invoice amount was not compared."}],"limitations":["Requests, quotes, invoices, and service levels are copied only from labeled fields supplied by the caller.","A type is classified only from an explicit token: leak, plumbing, pipe, drain, electrical, power, outlet, wiring, heat, heating, hvac, boiler, lock, door, access, appliance, pest, structural, roof, or ceiling.","A safety flag is a keyword match for a person to review. It does not mean the property is unsafe or legally non-compliant.","A quote comparison does not recommend a contractor. A work-order draft is not sent.","No contractor is dispatched and no tenant is contacted."]}}}},"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/property-maintenance/report":{"post":{"operationId":"report_property_maintenance","summary":"Report property maintenance","description":"Combine supplied request classes, safety keywords, quote comparisons, service levels, repeat repairs, and invoice differences. The report does not call a property safe or dispatch a contractor.","tags":["property-maintenance"],"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},"requests":{"maxItems":80,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"property":{"type":"string","maxLength":160},"reported":{"type":"string","maxLength":40},"responded":{"type":"string","maxLength":40},"type":{"type":"string","maxLength":80},"urgency":{"type":"string","maxLength":40},"text":{"type":"string","maxLength":500}},"additionalProperties":false}},"quotes":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"days":{"type":"number","minimum":0,"maximum":3650},"scope":{"type":"string","maxLength":300},"exclusions":{"type":"string","maxLength":300}},"additionalProperties":false}},"invoices":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"quoteId":{"type":"string","maxLength":80},"requestId":{"type":"string","maxLength":80},"amount":{"type":"number","minimum":0,"maximum":1000000000},"currency":{"type":"string","maxLength":12},"scope":{"type":"string","maxLength":300},"status":{"type":"string","maxLength":40}},"additionalProperties":false}},"slas":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"urgency":{"type":"string","maxLength":40},"limit":{"type":"number","minimum":0,"maximum":100000},"unit":{"type":"string","maxLength":20}},"additionalProperties":false}},"works":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string","maxLength":80},"contractor":{"type":"string","maxLength":160}},"additionalProperties":false}},"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":{"requests":[{"id":"M-1","property":"10 Example Street","type":"leak","urgency":"emergency","reported":"2026-11-01T10:00:00Z","responded":"2026-11-01T16:00:00Z","text":"gas smell in the kitchen"},{"id":"M-2","property":"10 Example Street","type":"leak","urgency":"routine","text":"drip"},{"id":"M-3","property":"10 Example Street","type":"leak","urgency":"routine","text":"drip"}],"quotes":[{"id":"Q-1","requestId":"M-1","contractor":"North Trades","amount":200,"currency":"USD","days":5,"scope":"replace trap"},{"id":"Q-2","requestId":"M-1","contractor":"South Trades","amount":150,"currency":"USD","days":5,"scope":"replace trap"}],"invoices":[{"id":"I-1","quoteId":"Q-1","amount":250,"currency":"USD","scope":"replace trap","status":"submitted"}],"slas":[{"urgency":"emergency","limit":4,"unit":"hours"}]}}}},"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"},"requestCount":{"type":"number"},"safetyCount":{"type":"number"},"escalateCount":{"type":"number"},"outsideCount":{"type":"number"},"patternCount":{"type":"number"},"invoiceDifferenceCount":{"type":"number"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"property":{"type":"string"},"reported":{"type":"string"},"type":{"type":"string"},"category":{"type":"string"},"urgency":{"type":"string"},"safety":{"type":"boolean"},"keyword":{"type":"string"},"escalation":{"type":"string"},"confirmed":{"type":"boolean"},"propertySafe":{"type":"boolean"},"interpretation":{"type":"string"}},"additionalProperties":true}},"priorities":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"priority":{"type":"string"},"rule":{"type":"string"},"urgency":{"type":"string"},"safety":{"type":"boolean"},"keyword":{"type":"string"},"propertySafe":{"type":"boolean"}},"additionalProperties":true}},"orders":{"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string"},"property":{"type":"string"},"contractor":{"type":"string"},"sent":{"type":"boolean"},"text":{"type":"string"}},"additionalProperties":true}},"groups":{"type":"array","items":{"type":"object","properties":{"requestId":{"type":"string"},"price":{"type":"string"},"time":{"type":"string"},"scope":{"type":"string"},"quotes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"contractor":{"type":"string"},"amount":{"type":"number"},"amountSupplied":{"type":"boolean"},"currency":{"type":"string"},"days":{"type":"number"},"daysSupplied":{"type":"boolean"},"scope":{"type":"string"},"exclusions":{"type":"string"},"lowest":{"type":"boolean"},"shortest":{"type":"boolean"},"recommended":{"type":"boolean"}},"additionalProperties":true}}},"additionalProperties":true}},"service":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"urgency":{"type":"string"},"reported":{"type":"string"},"responded":{"type":"string"},"asOfUsed":{"type":"boolean"},"limit":{"type":"number"},"unit":{"type":"string"},"elapsed":{"type":"number"},"elapsedSupplied":{"type":"boolean"},"state":{"type":"string"},"legalCompliance":{"type":"boolean"}},"additionalProperties":true}},"history":{"type":"array","items":{"type":"object","properties":{"property":{"type":"string"},"type":{"type":"string"},"category":{"type":"string"},"count":{"type":"number"},"pattern":{"type":"boolean"},"requests":{"type":"array","items":{"type":"string"}},"propertySafe":{"type":"boolean"}},"additionalProperties":true}},"invoices":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"quoteId":{"type":"string"},"status":{"type":"string"},"currency":{"type":"string"},"invoiceAmount":{"type":"number"},"invoiceSupplied":{"type":"boolean"},"quoteAmount":{"type":"number"},"quoteSupplied":{"type":"boolean"},"amountState":{"type":"string"},"scopeState":{"type":"string"},"paymentSent":{"type":"boolean"},"legalCompliance":{"type":"boolean"}},"additionalProperties":true}},"contractorDispatched":{"type":"boolean"},"tenantContacted":{"type":"boolean"},"propertySafe":{"type":"boolean"},"legalCompliance":{"type":"boolean"},"workOrdered":{"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-04T13:00:00.000Z","status":"reported","requestCount":3,"safetyCount":1,"escalateCount":1,"outsideCount":1,"patternCount":1,"invoiceDifferenceCount":1,"items":[{"id":"M-1","property":"10 Example Street","reported":"2026-11-01T10:00:00.000Z","type":"leak","category":"plumbing","urgency":"emergency","safety":true,"keyword":"gas","escalation":"human","confirmed":false,"propertySafe":false,"interpretation":"stated"},{"id":"M-2","property":"10 Example Street","reported":"","type":"leak","category":"plumbing","urgency":"routine","safety":false,"keyword":"","escalation":"none","confirmed":false,"propertySafe":false,"interpretation":"stated"},{"id":"M-3","property":"10 Example Street","reported":"","type":"leak","category":"plumbing","urgency":"routine","safety":false,"keyword":"","escalation":"none","confirmed":false,"propertySafe":false,"interpretation":"stated"}],"priorities":[{"id":"M-1","priority":"escalate","rule":"safety_keyword","urgency":"emergency","safety":true,"keyword":"gas","propertySafe":false},{"id":"M-2","priority":"routine","rule":"stated_routine","urgency":"routine","safety":false,"keyword":"","propertySafe":false},{"id":"M-3","priority":"routine","rule":"stated_routine","urgency":"routine","safety":false,"keyword":"","propertySafe":false}],"orders":[{"requestId":"M-1","property":"10 Example Street","contractor":"","sent":false,"text":"Request M-1. Property: 10 Example Street. Stated type: leak (plumbing). Stated issue: gas smell in the kitchen. Stated urgency: emergency. The supplied text contains \"gas\". A person should review it. This draft was not sent and no contractor was dispatched."},{"requestId":"M-2","property":"10 Example Street","contractor":"","sent":false,"text":"Request M-2. Property: 10 Example Street. Stated type: leak (plumbing). Stated issue: drip. Stated urgency: routine. This draft was not sent and no contractor was dispatched."},{"requestId":"M-3","property":"10 Example Street","contractor":"","sent":false,"text":"Request M-3. Property: 10 Example Street. Stated type: leak (plumbing). Stated issue: drip. Stated urgency: routine. This draft was not sent and no contractor was dispatched."}],"groups":[{"requestId":"M-1","price":"compared","time":"tied","scope":"same","quotes":[{"id":"Q-1","contractor":"North Trades","amount":200,"amountSupplied":true,"currency":"USD","days":5,"daysSupplied":true,"scope":"replace trap","exclusions":"","lowest":false,"shortest":false,"recommended":false},{"id":"Q-2","contractor":"South Trades","amount":150,"amountSupplied":true,"currency":"USD","days":5,"daysSupplied":true,"scope":"replace trap","exclusions":"","lowest":true,"shortest":false,"recommended":false}]}],"service":[{"id":"M-1","urgency":"emergency","reported":"2026-11-01T10:00:00.000Z","responded":"2026-11-01T16:00:00.000Z","asOfUsed":false,"limit":4,"unit":"hours","elapsed":6,"elapsedSupplied":true,"state":"outside","legalCompliance":false},{"id":"M-2","urgency":"routine","reported":"","responded":"","asOfUsed":false,"limit":0,"unit":"","elapsed":0,"elapsedSupplied":false,"state":"not_checked","legalCompliance":false},{"id":"M-3","urgency":"routine","reported":"","responded":"","asOfUsed":false,"limit":0,"unit":"","elapsed":0,"elapsedSupplied":false,"state":"not_checked","legalCompliance":false}],"history":[{"property":"10 Example Street","type":"plumbing","category":"plumbing","count":3,"pattern":true,"requests":["M-1","M-2","M-3"],"propertySafe":false}],"invoices":[{"id":"I-1","quoteId":"Q-1","status":"submitted","currency":"USD","invoiceAmount":250,"invoiceSupplied":true,"quoteAmount":200,"quoteSupplied":true,"amountState":"above","scopeState":"same","paymentSent":false,"legalCompliance":false}],"contractorDispatched":false,"tenantContacted":false,"propertySafe":false,"legalCompliance":false,"workOrdered":false,"findings":[{"kind":"observation","code":"safety_keyword","subject":"M-1","detail":"The supplied text contains \"gas\". A person should review it. This is not a finding that the property is unsafe."},{"kind":"unavailable","code":"sla_missing","subject":"M-2","detail":"No supplied service level matches this stated urgency. No deadline was assumed."},{"kind":"unavailable","code":"sla_missing","subject":"M-3","detail":"No supplied service level matches this stated urgency. No deadline was assumed."}],"limitations":["Requests, quotes, invoices, and service levels are copied only from labeled fields supplied by the caller.","A type is classified only from an explicit token: leak, plumbing, pipe, drain, electrical, power, outlet, wiring, heat, heating, hvac, boiler, lock, door, access, appliance, pest, structural, roof, or ceiling.","A safety flag is a keyword match for a person to review. It does not mean the property is unsafe or legally non-compliant.","A quote comparison does not recommend a contractor. A work-order draft is not sent.","No contractor is dispatched and no tenant is contacted."]}}}},"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":{}}}}}}}}