Maintenance requests

Get several maintenance requests

Fetches up to 100 maintenance requests by id in one call, in the same full shape as fetching one. Ids that do not exist, or that belong to another company, are dropped silently rather than reported — so the array you get back can be shorter than the list you sent. Requires the maintenance_requests:read permission.

GET
https://services.magicdoor.com/maintenance/company-portal/maintenance-requests/batch

Authorization

Authorizationstringrequired
Bearer token — Send your API token in the Authorization header as Bearer <token>. Requests without a valid token are rejected with 401 Unauthorized.

Query parameters

maintenanceRequestIdsstringrequired

The requests to fetch. Either a comma-separated list or the parameter repeated. Between 1 and 100 ids.

example: 1841003948572119040,1841003948572119041

Response

200 · A JSON array of maintenance requests, in no guaranteed order. The properties below are those of each element.

idstringrequired

The maintenance request.

assignedPropertyManagerIdstring

The property manager who owns this request. Absent while nobody is assigned.

unitIdstringrequired

The unit the request is about.

propertyIdstringrequired

The property the request is about.

portfolioIdstringrequired

The portfolio the property sits in.

leaseIdstringrequired

The lease the request was filed against.

tenantIdstringrequired

The tenant who is recorded as the requester.

chatIdstring

The chat carrying the conversation about this request. Absent until a chat is opened — see Open the chat on a maintenance request.

titlestringrequired

A 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>required

Where 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.

closedpendinginProgressaiProcessingwaitingForWorkOrder
urgencyenum<string>required

How urgent the request is. Set by staff, or by MagicDoor when it reads the request.

urgenthighmediumlownone
categoryIdstring

The maintenance request category the request is filed under. Absent when it has not been categorised.

disableAibooleanrequired

Whether MagicDoor has been told to leave this request alone.

aiUrgencyScoreintegerrequired

How urgent MagicDoor judged the request to be when it read it. 0 when it has not been read.

createdstring · date-timerequired

When the request was filed, in the company's timezone and without an offset.

lastUpdatedstring · date-timerequired

When the request last changed, in the company's timezone and without an offset.

aiProcessedbooleanrequired

Whether MagicDoor has finished reading the request.

newRequestbooleanrequired

Whether 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.

locationobject

Where 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.

descriptionstringrequired

What the requester reported, in their words.

internalDescriptionstring

Notes for staff only, never shown to the tenant. Absent when there are none.

filesobject[]required

Photos, videos and PDFs attached to the request. An empty array when there are none.

permissionToEnterbooleanrequired

Whether the tenant agreed that someone may enter the unit when they are not home.

duestring · date

The date the work is wanted by, in the company's timezone. Absent when no date was set.

runBookIdstring

The runbook currently handling the request. Absent when no runbook picked it up.

workOrderIdstring

The work order created from this request. Absent until one is created.

400 · No ids were sent, more than 100 were sent, or one of them is not a positive number.

401 · The request carried no valid access token.

403 · The token is not a property manager token, or it lacks the `maintenance_requests:read` permission.