Media & Documents

This section describes all media and document-related fields returned in project payloads. Media objects in Reelly share a common structure (URL + metadata) but are used in different contexts: Project-level branding, visual galleries, plans and layout images, attached documents, building-level media, amenity icons, and video content.

This section describes all media and document-related fields returned in project payloads.

Media objects in Reelly share a common structure (URL + metadata) but are used in different contexts:

  • Project-level branding (icons, cover images)
  • Visual galleries (lobby, interior, architecture)
  • Plans and layout images
  • Attached documents (floor plans, brochures)
  • Building-level media
  • Amenity icons
  • Video content (video_reviews).

Base media object structure

FieldTypeDescription
urlstringDirect link to the file (vault / S3 / external).
metadata.mimestringMIME type, e.g. image/jpeg, image/webp, image/png, application/pdf.
metadata.sizenumberFile size in bytes.
metadata.widthnumber | nullImage width in pixels (for images only).
metadata.heightnumber | nullImage height in pixels (for images only).

For documents like PDFs, width / height are usually not present.

Media types by context

Project icon

Small branding image used for project branding / lists (when present).

JSON pathTypeDescription
icon (if present)objectProject-level icon.
FieldTypeDescription
icon.urlstringIcon URL.
icon.metadataobjectStandard media metadata.

Project cover image

Main hero image of the project.

JSON pathTypeDescription
cover_imageobjectPrimary project cover image.
FieldTypeDescription
cover_image.urlstringCover image URL (wide image).
cover_image.metadataobjectMIME type, size, dimensions.

Typical usage:

Used on project list cards and project detail pages as the primary hero image.

Amenity icons

Each amenity may contain its own icon. The project_amenities collection may have:

  • project_amenities[].icon — icon at the project-amenity level (may be null)
  • project_amenities[].amenity.icon — icon at the amenity-definition level.
JSON pathTypeDescription
project_amenities[].iconobject | nullCustom icon for this amenity in this project.
project_amenities[].amenity.iconobjectDefault icon for this amenity type.

Both icons follow the base media structure.

Lobby images

Lobby photos are returned as an array:

JSON pathTypeDescription
lobby[]array<object>Collection of lobby images.
FieldTypeDescription
lobby[].urlstringLobby image URL.
lobby[].metadataobjectMIME, size, width, height.

Usage:

Displayed as a dedicated image set for lobby / common areas.

Interior images

Interiors (units, common spaces) are grouped under interior.

JSON pathTypeDescription
interior[]array<object>Collection of interior images.
FieldTypeDescription
interior[].urlstringInterior photo URL.
interior[].metadataobjectImage metadata.

Usage:

Interior gallery on project detail page.

Architecture images

Architecture / exterior images are grouped under architecture.

JSON pathTypeDescription
architecture[]array<object>Collection of exterior / architecture images.
FieldTypeDescription
architecture[].urlstringArchitecture photo URL.
architecture[].metadataobjectImage metadata.

Usage:

Gallery for building exteriors, façades, skyline views, etc.

General plan

The overall site / masterplan is represented as a single media object:

JSON pathTypeDescription
general_planobjectGeneral (master) plan image.
FieldTypeDescription
general_plan.urlstringGeneral plan image URL.
general_plan.metadataobjectMIME, size, width, height.

Usage:

Full-screen view on the project page (zoomable map-like image).

Building cover images

Each building in the project can have its own cover image:

JSON pathTypeDescription
buildings[].cover_imageobjectBuilding-level cover image.
FieldTypeDescription
buildings[].cover_image.urlstringImage URL.
buildings[].cover_image.metadataobjectMetadata for the building image.

Usage:

Used on buildings sub-sections / tabs to visually distinguish buildings.

Unit layouts (inside typical_units)

Each typical unit configuration can contain one or more layout images:

JSON pathTypeDescription
typical_units[].layout[]array<object>Layout images for that unit configuration.
FieldTypeDescription
layout[].image.urlstringLayout image URL (floor plan-like image).
layout[].image.metadataobjectMIME, size, width, height.
layout[].ordernumberDisplay order within the layouts collection.

Usage:

Displayed on unit-type tabs (Studio / 1BR / 2BR / etc.) as corresponding layouts.

Video reviews

Projects may contain video content as video_reviews.

In your samples, this array is currently empty, but the field is present and should be documented.

JSON pathTypeDescription
video_reviews[]array<object>List of video review objects (currently empty in samples).

Recommendation for docs:

Document video_reviews as a reserved field for future video media (e.g. YouTube/Vimeo links + thumbnails), even if schema is not yet fully stabilized.

Documents related to the project

Aside from images, the project includes downloadable documents:

TypeFieldFormatDescription
Floor plansfloor_plans[].filePDFFloor-level plans, grouped by project.
Marketing brochuremarketing_brochureExternal PDF / linkFull marketing presentation.

Floor plans (documents)

Floor plans are documents, usually PDFs, stored in floor_plans.

JSON pathTypeDescription
floor_plans[]array<object>List of floor plan documents.
FieldTypeDescription
idnumberFloor plan ID.
namestringHuman-friendly name (may include internal path).
filestringDirect link to the PDF file.
file_typestringAlways "floor_plan" for floor plans.
descriptionstring | nullOptional description.

Usage:

Downloadable / viewable floor plan documents.

Note: floor_plans[].file is the document URL, not url + metadata like images.

Marketing brochure

The marketing brochure is an external document, often hosted in Google Drive.

JSON pathTypeDescription
marketing_brochurestring | nullExternal URL to the marketing brochure.

Usage:

  • Open in a new tab
  • No guarantee that metadata (size, mime, etc.) is available from API.