Create a maintenance request
Files a maintenance request against a lease on behalf of a tenant. MagicDoor reads the description and writes the title, picks a category and scores the urgency, unless you set disableAi. The property, unit and portfolio are taken from the lease. Requires the maintenance_requests:write permission.
Authorization
AuthorizationstringrequiredBody
application/json
There is no title here on purpose — MagicDoor writes one from the description. To attach photos, create the request first, then use Attach files to a maintenance request.
requesterIdstringrequiredThe tenant the request is filed on behalf of.
leaseIdstringrequiredThe lease the request is against. It must belong to the same company and must not have ended.
assignedPropertyManagerIdstringThe property manager to put in charge of the request.
descriptionstringrequiredWhat is wrong, in the requester's words. At least one character. MagicDoor writes the title from this.
internalDescriptionstringNotes for staff only, never shown to the tenant.
statusenum<string>requiredThe state to file the request in. Normally pending.
urgencyenum<string>How urgent the request is. Omitting it files the request as urgent, because that is the first value of the list — send one explicitly.
permissionToEnterbooleanWhether someone may enter the unit when the tenant is not home.
duestring · dateThe date the work is wanted by.
disableAibooleantrue files the request without letting MagicDoor read it. The title then falls back to a placeholder and the urgency score stays at 0.
categoryIdstringThe maintenance request category to file it under. MagicDoor overrides this if it picks a category of its own while reading the request.
filesobject[]deprecatedAttach files at creation time by naming committed upload sessions. Use the files endpoint instead.
Response
200 · The maintenance request that was filed.
idstringrequiredThe maintenance request.
assignedPropertyManagerIdstringThe property manager who owns this request. Absent while nobody is assigned.
unitIdstringrequiredThe unit the request is about.
propertyIdstringrequiredThe property the request is about.
portfolioIdstringrequiredThe portfolio the property sits in.
leaseIdstringrequiredThe lease the request was filed against.
tenantIdstringrequiredThe tenant who is recorded as the requester.
chatIdstringThe chat carrying the conversation about this request. Absent until a chat is opened — see Open the chat on a maintenance request.
titlestringrequiredA short summary of the problem. MagicDoor writes it from the description when the request is created; you cannot set it on create, only change it later.
statusenum<string>requiredWhere the request has got to. waitingForWorkOrder means it has been triaged but the job has not been scheduled yet; aiProcessing means MagicDoor is still reading it.
urgencyenum<string>requiredHow urgent the request is. Set by staff, or by MagicDoor when it reads the request.
categoryIdstringThe maintenance request category the request is filed under. Absent when it has not been categorised.
disableAibooleanrequiredWhether MagicDoor has been told to leave this request alone.
aiUrgencyScoreintegerrequiredHow urgent MagicDoor judged the request to be when it read it. 0 when it has not been read.
createdstring · date-timerequiredWhen the request was filed, in the company's timezone and without an offset.
lastUpdatedstring · date-timerequiredWhen the request last changed, in the company's timezone and without an offset.
aiProcessedbooleanrequiredWhether MagicDoor has finished reading the request.
newRequestbooleanrequiredWhether the request was filed recently enough to count as new. The window is a company setting, so the same request stops being new without anything changing on it.
locationobjectWhere the request is, looked up from the property and unit at read time. Individual properties are absent when the property or unit could not be read.
descriptionstringrequiredWhat the requester reported, in their words.
internalDescriptionstringNotes for staff only, never shown to the tenant. Absent when there are none.
filesobject[]requiredPhotos, videos and PDFs attached to the request. An empty array when there are none.
permissionToEnterbooleanrequiredWhether the tenant agreed that someone may enter the unit when they are not home.
duestring · dateThe date the work is wanted by, in the company's timezone. Absent when no date was set.
runBookIdstringThe runbook currently handling the request. Absent when no runbook picked it up.
workOrderIdstringThe work order created from this request. Absent until one is created.