File attachments

List a record's file attachments

Returns every file attached to one record, such as a lease or a property. There is no pagination; the response is a plain array.

GET
https://api.portal.magicdoor.com/company-app/file-attachments/{entityType}/{entityId}

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.

Path parameters

entityTypeenum<string>required

What kind of record the file hangs off. Written in the path in lower case, for example lease.

example: leaseleaseunitpropertyportfoliocompanytenantvendormaintenanceRequestworkOrderbilltransactionchatchatMessagepropertyManagerunknownrentalApplicationleaseTemplateleaseDocumentassociationViolationownerunitListingfileworkOrderGroup
entityIdstringrequired

The record the file hangs off, of the kind named by entityType. A Snowflake id sent as a decimal string.

example: 1830472847398404096

Response

200 · The attachments on that record, as a plain array.

idstring

The attachment. A Snowflake id sent as a decimal string. Different from file.id, which is the stored file.

fileNamestring

Name shown for the attachment.

descriptionstring

Note about the attachment. Absent when none was set.

createdstring · date-time

When the file was attached, in the company's timezone.

uploaderNamestring

Name of whoever attached it. Absent when it is not known.

uploaderTypestring

What kind of user attached it, written in PascalCase: System, MagicDoor, PropertyManager, Tenant, Vendor or Owner. Absent when it is not known.

shareTypesstring[]

Which outside audiences can see the file, written in PascalCase: Tenant, Vendor or Owner. Empty when it is internal only.

relationTypeenum<string>

What kind of record the file hangs off.

leaseunitpropertyportfoliocompanytenantvendormaintenanceRequestworkOrderbilltransactionchatchatMessagepropertyManagerunknownrentalApplicationleaseTemplateleaseDocumentassociationViolationownerunitListingfileworkOrderGroup
relationIdstring

The record the file hangs off.

fileobject

The stored file itself.

fileIdstringdeprecated

Same value as file.id.

fileUrlstringdeprecated

Pre-signed URL for the file. Use file.secureUrl.raw instead.

fileThumbUrlstringdeprecated

Pre-signed thumbnail URL. Use file.secureUrl.variantTemplate instead.

fileSizeBytesintegerdeprecated

Same value as file.size.

propertyIdstringdeprecated

Set to relationId when relationType is property, otherwise absent. Use relationType and relationId.

leaseIdstringdeprecated

Set to relationId when relationType is lease, otherwise absent. Use relationType and relationId.

401 · The access token is missing, expired, or not valid for this company.

`shareTypes` and `uploaderType` are PascalCase

Most enums in this API come back camelCased. These two do not: they are turned into strings by hand, so you get Tenant, not tenant. On the way in, shareTypes is a real enum and is read case-insensitively.

An unknown or empty record returns an empty array rather than a 404.