Skip to content

Documents

The paperwork of a tenure: management contract, DTCM permit, handover protocol, insurance certificate, the statements the office filed. What you see is what the office released to you (plus your own uploads in the portal); an unsigned draft the office is still working on does not appear. Both endpoints need landlord:read:documents.

Query parameterMeaning
unitUnit slug — only documents filed against that apartment
{
"documents": [
{
"id": "01933…",
"unitId": "0190c…",
"unitName": "Marina Loft · 2BR",
"title": "DTCM holiday-home permit 2026",
"category": "permit",
"fileName": "permit-2026.pdf",
"mimeType": "application/pdf",
"sizeBytes": 184320,
"uploadedBy": "agency",
"validUntil": "2027-03-31",
"notes": null,
"createdAt": "2026-04-02T08:00:00.000Z"
}
]
}
FieldNotes
unitIdnull = concerns the whole relationship, not one apartment
categorycontract, permit, statement, invoice, insurance, handover, other
validUntilPermits and insurance expire; the portal warns 60 days ahead — you can too
uploadedByagency or owner (you, through the portal)

The file itself, as Content-Disposition: attachment. The response is marked Cache-Control: private, no-store — a management contract does not belong in a shared cache, and this is the one place these bytes are handed out. 404 NOT_FOUND for a document that is not yours or not released.

Terminal window
curl -L -o permit.pdf "https://api.myrentalcalendar.com/partner/v1/landlord/documents/01933…/download" \
-H "Authorization: Bearer $KEY"

Uploading documents is a portal action, not an API one.