Rental Operations API Documentation
Read supplied tenancy documents, payment evidence, and inventory records without treating them as cleared funds or legal advice. Payment is the exact USDC price on Base with x402.
https://brainiac.software/api/v1/rental-operations/tenant-move-in-readiness$0.05 USDCCheck move-in readiness
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.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
requirements | No | array; Array |
items | No | array; Array |
expected | No | array; Array |
evidence | No | array; Array |
documents | No | array; Array |
inventory | No | array; Array |
obligations | No | array; Array |
jurisdiction | No | string |
asOf | No | string |
rules | No | array; Array |
Request exampleJSON
{
"text": "Required: deposit\nRequired: inventory\nItem: I-1 | deposit | present\nItem: I-2 | inventory | pending\nThe keys were handed over.\n"
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/rental-operations/tenant-move-in-readiness" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"text": "Required: deposit\nRequired: inventory\nItem: I-1 | deposit | present\nItem: I-2 | inventory | pending\nThe keys were handed over.\n"
}
JSONhttps://brainiac.software/api/v1/rental-operations/deposit-payment-evidence-check$0.04 USDCCheck deposit payment evidence
Compare deposit evidence with the expected amount, currency, and reference. A matching screenshot is still not treated as cleared funds.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
requirements | No | array; Array |
items | No | array; Array |
expected | No | array; Array |
evidence | No | array; Array |
documents | No | array; Array |
inventory | No | array; Array |
obligations | No | array; Array |
jurisdiction | No | string |
asOf | No | string |
rules | No | array; Array |
Request exampleJSON
{
"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"
}
]
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/rental-operations/deposit-payment-evidence-check" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"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"
}
]
}
JSONhttps://brainiac.software/api/v1/rental-operations/first-rent-payment-check$0.04 USDCCheck first-rent payment evidence
Compare first-rent evidence with the expected amount, currency, and reference. A payment instruction is not treated as cleared funds.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
requirements | No | array; Array |
items | No | array; Array |
expected | No | array; Array |
evidence | No | array; Array |
documents | No | array; Array |
inventory | No | array; Array |
obligations | No | array; Array |
jurisdiction | No | string |
asOf | No | string |
rules | No | array; Array |
Request exampleJSON
{
"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"
}
]
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/rental-operations/first-rent-payment-check" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"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"
}
]
}
JSONhttps://brainiac.software/api/v1/rental-operations/tenancy-document-completeness$0.04 USDCCheck tenancy document completeness
List the document kinds the caller marked as required and which of them were supplied. A jurisdiction name does not add a legal checklist.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
requirements | No | array; Array |
items | No | array; Array |
expected | No | array; Array |
evidence | No | array; Array |
documents | No | array; Array |
inventory | No | array; Array |
obligations | No | array; Array |
jurisdiction | No | string |
asOf | No | string |
rules | No | array; Array |
Request exampleJSON
{
"jurisdiction": "GB",
"requirements": [
{
"kind": "document",
"name": "tenancy"
},
{
"kind": "document",
"name": "inventory"
}
],
"documents": [
{
"id": "D-1",
"kind": "tenancy",
"issued": "2026-11-01"
}
]
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/rental-operations/tenancy-document-completeness" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"jurisdiction": "GB",
"requirements": [
{
"kind": "document",
"name": "tenancy"
},
{
"kind": "document",
"name": "inventory"
}
],
"documents": [
{
"id": "D-1",
"kind": "tenancy",
"issued": "2026-11-01"
}
]
}
JSONhttps://brainiac.software/api/v1/rental-operations/move-in-inventory-compare$0.05 USDCCompare move-in inventory
Compare a baseline inventory with the move-in list by room, name, condition, and count. A difference is not a finding of liability.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
requirements | No | array; Array |
items | No | array; Array |
expected | No | array; Array |
evidence | No | array; Array |
documents | No | array; Array |
inventory | No | array; Array |
obligations | No | array; Array |
jurisdiction | No | string |
asOf | No | string |
rules | No | array; Array |
Request exampleJSON
{
"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
}
]
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/rental-operations/move-in-inventory-compare" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"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
}
]
}
JSONhttps://brainiac.software/api/v1/rental-operations/tenant-document-expiry-check$0.04 USDCCheck tenant document expiry
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.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
requirements | No | array; Array |
items | No | array; Array |
expected | No | array; Array |
evidence | No | array; Array |
documents | No | array; Array |
inventory | No | array; Array |
obligations | No | array; Array |
jurisdiction | No | string |
asOf | No | string |
rules | No | array; Array |
Request exampleJSON
{
"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"
}
]
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/rental-operations/tenant-document-expiry-check" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"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"
}
]
}
JSONhttps://brainiac.software/api/v1/rental-operations/tenancy-obligation-extract$0.04 USDCExtract tenancy obligations
Copy labeled obligations, the stated party, and a real due date. The wording is not treated as legal advice or an eviction right.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
requirements | No | array; Array |
items | No | array; Array |
expected | No | array; Array |
evidence | No | array; Array |
documents | No | array; Array |
inventory | No | array; Array |
obligations | No | array; Array |
jurisdiction | No | string |
asOf | No | string |
rules | No | array; Array |
Request exampleJSON
{
"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"
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/rental-operations/tenancy-obligation-extract" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"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"
}
JSONhttps://brainiac.software/api/v1/rental-operations/handover-report$0.12 USDCReport a rental handover
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.
Body
| Field | Required | Notes |
|---|---|---|
text | No | string |
json | No | string |
csv | No | string |
file | No | object; Object |
requirements | No | array; Array |
items | No | array; Array |
expected | No | array; Array |
evidence | No | array; Array |
documents | No | array; Array |
inventory | No | array; Array |
obligations | No | array; Array |
jurisdiction | No | string |
asOf | No | string |
rules | No | array; Array |
Request exampleJSON
{
"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"
}
]
}Response exampleJSON
{
"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."
]
}cURL
curl -i -X POST "https://brainiac.software/api/v1/rental-operations/handover-report" \
-H 'content-type: application/json' \
-H 'Idempotency-Key: <fresh-64-character-random-hex-key>' \
--data-binary @- <<'JSON'
{
"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"
}
]
}
JSON