On this page
article
4.1 Object Structure
Country object
| Attribute Name | Data Type | Details |
|---|---|---|
| id | ID | Unique identifier for the Country object |
| name | String | Name of the country |
| countryCode | String | Alpha-3 country code following the ISO 3166 international standard |
| currency | String | Alpha-3 currency code following the ISO 4217 standard |
| rentCycle | Enum | Supported billing cycle; possible values: DAILY WEEKLY MONTHLY |
City Object
| Attribute Name | Data Type | Details |
|---|---|---|
| id | ID | Unique identifier for the City object |
| name | String | Name of the city |
| countryId | ID | Identifier for the related Country object |
Property Object
| Attribute Name | Data Type | Details |
|---|---|---|
| id | ID | Unique identifier for the object |
| name | String | Property name |
| slug | String | Property slug, automatically generated from name |
| status | PropertyStatus | Property status; Possible values: NEW EDITING PUBLISHED UNPUBLISHED |
| latitude | Float | Latitude is used together with longitude to pinpoint the exact location of a property on a map |
| longitude | Float | Longitude is used together with Latitude to pinpoint the exact location of a property on a map |
| landlordId | ID | Unique identifier of the property landlord |
| cityId | DecodedCityID | Unique identifier of the city for the property |
| country | String | Property country name |
| currency | String | Alpha-3 currency code which generated by country |
| rentCycle | BillingCycle | Billing cycle which generated by country; Possible values: DAILY WEEKLY MONTHLY |
| bookingType | BookingJourney | Type of the booking; Possible values: BOOK CONNECT LIST CONNECT_STUDENT_SUITE BOOKING_WITH_CONSULTANT |
| addressLine1 | String | Primary street address or main location information |
| addressLine2 | String | Additional address details |
| zipCode | String | Postal code for the property’s address |
| apartmentType | AllApartmentType | Type of the apartment; Possible values: HOTEL_HOSTEL LONG_TAIL MULTI_FAMILY REAL STUDENT_ACCOMMODATION CO_LIVING APARTMENTS HMO HOUSE_SHARE HOME_STAY STUDENT_RESIDENCE_HALLS DORMITORY PURPOSE_BUILT_STUDENT_ACCOMMODATION HOUSE HOSTEL HOTEL APART_HOTEL MULTIFAMILY LODGE CONDOS TOWNHOUSE_HOME BUNGALOW TERRACE VILLA SERVICED_APARTMENT DUPLEX |
| tagLineCn | String | A short phrase in Chinese that best describes the property in one sentence |
| tagLine | String | A short phrase in English that best describes the property in one sentence |
| descriptionCn | String | Property description in Chinese |
| description | String | Property description in English |
| facilities | PropertyFacilities | Property facilities; PropertyFacilities is an object includes, features: PropertyFacility[], bills: PropertyFacility[], securityAndSafety: PropertyFacility[], propertyRules: PropertyFacility[]; PropertyFacility is an object includes, slug: String, label: String, name: String, group: String, type: FacilityType, checked: Boolean; FacilityType is the type of Facility; Possible values: PROPERTY UNIT_TYPE |
| documentations | Documentation | File types bound through the setPropertyDocumentations interface |
| universities | University | The Property is easily accessible from several universities |
| destinationUniversities | University | Only accept students who attend certain universities |
| cancellationPeriodType | CancellationPeriodType | Kind of cancellation period type; Possible values: NON_REFUNDABLE BEFORE_MOVE_IN UNTIL_MOVE_IN_DAY AFTER_BOOKING_CONFIRMED |
| cancellationPeriodValue | String | Days before or after the target date |
| cancellationProcess | String | Process of cancellation in details |
| confirmDueHours | PropertyDueHours | Hours before a booking must be confirmed; Possible values: HOURS_24 HOURS_36 HOURS_48 HOURS_60 HOURS_72 HOURS_96 |
| paymentDueHours | PropertyDueHours | Hours before a payment must be made; Possible values: HOURS_24 HOURS_36 HOURS_48 HOURS_60 HOURS_72 HOURS_96 |
| paymentDueHours | PropertyDueHours | Hours before a payment must be made; Possible values: HOURS_24 HOURS_36 HOURS_48 HOURS_60 HOURS_72 HOURS_96 |
| floorPlans | PropertyFloorPlan | The floor plans associated with a property; PropertyFloorPlan is an object includes, generalFloorPlanImages: Image[], specificFloorPlans: FloorPlan[]!; FloorPlan is an object include, id: ID, propertyId: ID, floorIndex: Int!, block: String!, floorPlanImages: Image[]; |
| propertyLink | String | The URL linked to the property |
| propertyTerms | propertyTerms[] | The terms of the property; PropertyTerm is an object includes, id: ID!, title: String!, url: String!, validFrom: Date, validTill: Date, fileName: String, status: PropertyTermStatus; PropertyTermStatus has possible values: ACTIVE INACTIVE EXPIRED |
| images | Image[]! | The image list of the property; Image is an object includes, id: ID!, type: ImageType, category: ImageCategory, contentType: String, filename: String, imageHash: String, active: Boolean; status: GalleryStatus, hero: Boolean, height: PositiveInteger, width: PositiveInteger, size: PositiveInteger, position: Int, source: String; ImageType has possible values: PROPERTY_IMAGE ROOM_IMAGE FLOOR_PLAN_IMAGEGalleryStatus has possible values: INTERNAL_NEW EXTERNAL_NEW PENDING APPROVED REJECTED PUBLIC |
| videos | video[]! | The video list of the property; Video is an object includes, id: ID!, path: String!, size: Int, fileName: String, videoHash: String!, active: Boolean, status: GalleryStatus; GalleryStatus has possible values: INTERNAL_NEW EXTERNAL_NEW PENDING APPROVED REJECTED PUBLIC |
Room Object
| Attribute Name | Data Type | Details |
|---|---|---|
| id | ID | Unique identifier for the object |
| propertyId | ID | Identifier for the related Property object |
| externalId | NonEmptyString | Unique external identifier for the room |
| name | NonEmptyString | Name of the room |
| category | RoomCategory | Category of the room; Possible values: ENSUITE_ROOM ENTIRE_PLACE PRIVATE_ROOM SHARED_ROOM STUDIO |
| bedCount | NaturalNumber | Number of beds in the room |
| floors | Int[] | List of floors where the room is located |
| maxOccupancy | NaturalNumber | Maximum occupancy of the room |
| dualOccupancy | DualOccupancy | Indicates if dual occupancy is allowed for the room; Possible values: DUAL_OCCUPANCY_ALLOWED FREE_DUAL_OCCUPANCY CHARGED_DUAL_OCCUPANCY DUAL_OCCUPANCY_NOT_ALLOWED |
| bathroomType | BathroomTypeCategory | Bathroom type of the room; Possible values: PRIVATE_ENSUITE PRIVATE_NON_ENSUITE SHARED_ENSUITE SHARED_NON_ENSUITE MIXED |
| kitchenArrangement | KitchenArrangement | Whether the kitchen is private or shared; Possible values: PRIVATE SHARED |
| bedroomCountMin | NaturalNumber | Minimum number of beds in the room |
| bedroomCountMax | NaturalNumber | Maximum number of beds in the room |
| bathroomCount | Float | Number of bathrooms in the room |
| kitchenCount | Float | Number of kitchen in the room |
| genderMix | GenderMix | Gender mix allowed in the room; Possible values: MALE_ONLY FEMALE_ONLY MIXED |
| dietaryPreference | DietaryPreference | Dietary preferences for the room; Possible values: VEGETARIAN |
| smokingPreference | SmokingPreference | Smoking preferences for the room; Possible values: NON_SMOKING SMOKING |
| lastFurnished | YearMonth | Last furnished month in format ISO 8601 (YYYY-MM) |
| facilities | RoomFacility[] | Facility list of the room; Possible values: AIR_CONDITIONING BATHROOM CHAIRS CLOSET DESK DOOR_LOCK HEATING KITCHEN TELEVISION WIFI |
| bedSizeType | BedSizeType | Size type of the bed in the room; Possible values: UNIFIED DIFFERENT |
| bedSizes | BedSizesInput[] | List of bed sizes in the room; BedSizeInput is an object includes, bedType: BedType, lengthInCM: PositiveInteger, widthInCM: PositiveInteger, bedCount: NaturalNumber; BedType has possible values: SINGLE_BED DOUBLE_BED SMALL_DOUBLE_BED KING_BED KING_SINGLE_BED CALIFORNIA_KING_BED GRAND_KING_BED QUEEN_BED KING_SIZE_BED TWIN_BED BUNK_BED |
| roomSize | RoomSizesInput | Object describing the size of the room; RoomSizesInput is an object includes, descriptor: RoomSizeType, minimum: Int!, maximum: Int!, unitOfArea: RoomSizeUnit; RoomSizeType has possible values: EXACT BETWEEN MORE_THANRoomSizeUnit has possible values: SQM SQFT |
RateAvailability Object
| Attribute Name | Data Type | Details |
|---|---|---|
| id | DecodedListingID | Identifier for the object |
| externalId | NonEmptyString | External identifier for the object |
| roomId | DecodedUnitTypeID | Identifier for the related Room object |
| bookableFrom | Date | Start date of availability in format ISO 8601 (YYYY-MM-DD) |
| bookableTo | Date | End date of availability in format ISO 8601 (YYYY-MM-DD) |
| availability | Int | Available inventory for the room |
| tenancy | TenancyInput | Lease mode for this rate availability; TenancyInput is an object includes, moveIn: Date, moveOut: Date, moveInType: MoveInType!, moveOutType: MoveOutType!, tenancyLengthType: TenancyLengthType!, tenancyLengthValue: Int[]; MoveInType has possible values: EXACTLY_MATCH AFTER ANYTIMEMoveOutType has possible values: EXACTLY_MATCH BEFORE ANYTIMETenancyLengthType has possible values: EQUALS NO_LESS_THAN NO_MORE_THAN BETWEEN NOT_SPECIFIC |
| discount | Discount | Discount for the tenancy; DiscountInput is an object includes, discountType: DiscountType!, discountValue: NonEmptyString; DiscountType has possible values: ABSOLUTE PERCENTAGE NO_DISCOUNT |
| priceMin | NonEmptyString | Minimum price for this rate availability |
| priceMax | String | Maximum price for this rate availability |
Image Object
| Attribute Name | Data Type | Details |
|---|---|---|
| id | DecodedListingID | Identifier for the image object |
| type | ImageType | The type of image; Possible values: PROPERTY_IMAGE ROOM_IMAGE FLOOR_PLAN_IMAGE |
| category | ImageCategory | Category of the image; Possible values: BUILDING_EXTERIOR COMMON_INDOOR_SPACES COMMON_OUTDOOR_SPACES GENERAL ROOM SPECIFIC MAP |
| imageHash | String | A unique identifier hash value representing the image file |
| source | String | The source of the image |
| filename | String | The filename of the image |
Facility Object
| Attribute Name | Data Type | Details |
|---|---|---|
| slug | String | Identifier for the facility object |
| label | String | Label displayed in the system |
| name | String | Name of the facility |
| group | String | Group of the facility |
| type | FacilityType | Type of the facility; Possible values: PROPERTY UNIT_TYPE |
Payment Plan object
| Attribute Name | Data Type | Details |
|---|---|---|
| id | ID | Unique identifier for the payment plan |
| name | String | Name of the payment plan |
| currency | String | 3-letter currency code (ISO 4217), like USD or EUR |
| landlordId | ID | ID of the landlord who owns the properties |
| description | String | English description of the plan |
| startDate | Date | Start date of the plan in format ISO 8601 (YYYY-MM-DD), same as effectiveFromDate |
| endDate | Date | End date of the plan in format ISO 8601 (YYYY-MM-DD), same as effectiveEndDate |
| properties | PaymentPlanProperty[] | Property list bound to the payment plan; PaymentPlanProperty includes, id: ID, name: String, slug: String, status: LowCasePropertyStatus!, bookingJourney: BookingJourney!; LowCasePropertyStatus has possible values: NEW EDITING PUBLISHED UNPUBLISHEDBookingJourney has possible values: BOOKING_WITH_CONSULTANT BOOK CONNECT_STUDENT_SUITE CONNECT LIST |
| deposits | OrderDeposit[] | Order deposit of the payment plan; OrderDeposit is an object includes, id: ID!, paymentPlanId: ID, name: String!, paymentType: DepositFeeType, amount: NonEmptyString, price: NonEmptyString, currency: CurrencyUnit description: String, createdAt: Datetime, updatedAt: Datetime; DepositFeeType has possible values: FIXED_AMOUNT PER_BILLING_CYCLE |
| fees | OrderFee[] | Order fees of the payment plan; OrderFee is an object includes, id: ID!, paymentPlanId: ID, name: NonEmptyString!, paymentType: DepositFeeType, amount: NonEmptyString, price: NonEmptyString, currency: CurrencyUnit description: String, createdAt: Datetime, updatedAt: Datetime; DepositFeeType has possible values: FIXED_AMOUNT PER_BILLING_CYCLE |
| instalments | OrderInstalment[] | Order instalment of the payment plan; OrderInstalment is an object includes, id: ID!, paymentPlanId: ID, name: String, fromTenancy: Int, toTenancy: Int, tenancyUnit: TenancyUnit, fullPayment: Boolean, payNowAmount: Float, payWeekly: Boolean, payQuarterly: Boolean, payMonthly: Boolean, payRemainderAtOnce: Boolean requireGuarantor: Boolean, country: Country, createdAt: Datetime, updatedAt: Datetime; Country is an object includes, id: ID!, name: String!, countryCode: String!, currency: String!, rentCycle: BillingCycle!; TenancyUnit has possible values: DAYS WEEKS MONTHSBillingCycle has possible values: DAILY WEEKLY MONTHLY |
Deposit object
| Attribute Name | Data Type | Details |
|---|---|---|
| id | ID | The unique ID of the deposit |
| paymentPlanId | ID | The ID of the payment plan this deposit is linked to |
| name | String | A custom name for the deposit or fee (e.g., “Security Deposit”) |
| paymentType | DepositFeeType | Type of the deposit or fee; Possible values: FIXED_AMOUNT PER_BILLING_CYCLE |
| amount | NonEmptyString | The value of the deposit. Set as a string to avoid floating-point precision issues |
| price | NonEmptyString | The price of the deposit |
| currency | CurrencyUnit | The currency code (e.g., USD, GBP). Must match the currency of the payment plan |
| description | String | Optional description or explanation for the deposit |
| createdAt | Datetime | The created time of the deposit in format (YYYY-MM-DDTHH:mm:ssZ) |
| updatedAt | Datetime | The updated time of the deposit in format (YYYY-MM-DDTHH:mm:ssZ) |
OrderFee Object
| Attribute Name | Data Type | Details |
|---|---|---|
| id | ID | ID of the payment plan to which this fee will be attached |
| paymentPlanId | ID | The ID of the payment plan this order fee is linked to |
| name | String | Name of the fee item (e.g., “Admin Fee”) |
| paymentType | DepositFeeType | Type of the fee; Possible values: FIXED_AMOUNT PER_BILLING_CYCLE |
| amount | NonEmptyString | The value of the fee. Set as a string to avoid floating-point precision issues |
| price | NonEmptyString | The price of the fee |
| currency | CurrencyUnit | The currency code (e.g., USD, GBP). Must match the currency of the payment plan |
| description | String | Optional description or explanation for the fee |
| createdAt | Datetime | The created time of the deposit in format (YYYY-MM-DDTHH:mm:ssZ) |
| updatedAt | Datetime | The updated time of the deposit in format (YYYY-MM-DDTHH:mm:ssZ) |
OrderInstalment Object
| Attribute Name | Data Type | Details |
|---|---|---|
| id | ID | ID of the payment plan this instalment configuration belongs to |
| paymentPlanId | ID | The ID of the payment plan this instalment is linked to |
| name | String | Name of the instalment |
| fromTenancy | Int | Start of the tenancy tier (in weeks); Must begin at 0 |
| toTenancy | Int | End of the tenancy tier (in weeks). Cannot be less than or equal to fromTenancyStart |
| tenancyUnit | TenancyUnit | Unit of tenancy duration; Possible values: DAYS WEEKS MONTHS |
| fullPayment | Boolean | If true, guests must pay full rent via Student.com. Cannot be false if rentalInstallments is also false. |
| payNowAmount | Float | Amount of pay now |
| payWeekly | Boolean | Indicate whether to pay weekly |
| payQuarterly | Boolean | Indicate whether to pay quarterly |
| payMonthly | Boolean | Indicate whether to pay monthly |
| payRemainderAtOnce | Boolean | Indicate whether the remaining rent (after any initial payment) should be paid in a single lump sum |
| requireGuarantor | Boolean | Indicate whether guarantor is required for instalment plans |
| country | Country | Required only when requireGuarantor is true. Leave it blank if not required;Country is an object includes, id: ID!, name: String!, countryCode: String!, currency: String!, rentCycle: BillingCycle!; BillingCycle has possible values: DAILY WEEKLY MONTHLY |
| createdAt | Datetime | The created time of the instalment in format (YYYY-MM-DDTHH:mm:ssZ) |
| updatedAt | Datetime | The updated time of the instalment in format (YYYY-MM-DDTHH:mm:ssZ) |
Payout Object
| Attribute Name | Data Type | Details |
|---|---|---|
| id | ID | Unique identifier for the payment object |
| name | NonEmptyString | The name of the payout |
| landlordId | String | Unique identifier for the related landlord object |
| methodType | OnlinePaymentMethodType | The type of the payment methods; Possible values: STRIPE VIRTUAL_CREDIT_CARD BANK_TRANSFER |
| createdAt | Datetime | The created time of the payment methods in format (YYYY-MM-DDTHH:mm:ssZ) |
| updatedAt | Datetime | The updated time of the payment methods in format (YYYY-MM-DDTHH:mm:ssZ) |
| updatedBy | LandlordContact | The landlordContact of the payment methods; LandlordContact is an object includes, id: ID!, firstName: String!, lastName: String!, phone: String, email: String; |
| stripes | OnlinePaymentMethodStripe | Detail of payment method Stripes; OnlinePaymentMethodStripe is an object includes, stripeId: NonEmptyString!; |
| virtualCreditCards | OnlinePaymentMethodVirtualCreditCard | Detail of payment method Virtual Credit Cards; OnlinePaymentMethodVirtualCreditCard is an object includes, email: NonEmptyString! |
| bankTransfers | OnlinePaymentMethodBankTransfer | Detail of payment method Bank Transfers; OnlinePaymentMethodBankTransfer is an object includes, data: JSON! |
| properties | Property[] | A list of property related to the payment methods |
Payment Method Object
| Attribute Name | Data Type | Details |
|---|---|---|
| id | ID | Unique identifier for the payment object |
| landlordId | String | Unique identifier for the related landlord object |
| methodType | OfflinePaymentMethodType | The type of the payment methods; Possible values: PAYMENT_LINK VIRTUAL_CREDIT_CARD BANK_TRANSFER OTHER |
| data | JSON | The data of the payment methods; data is an object includes, method_name: String!; |
| instruction | String | The instruction of the payment methods |
| createdAt | Datetime | The created time of the payment methods in format (YYYY-MM-DDTHH:mm:ssZ) |
| updatedAt | Datetime | The updated time of the payment methods in format (YYYY-MM-DDTHH:mm:ssZ) |
| updatedBy | LandlordContact | The landlordContact of the payment methods; LandlordContact is an object includes, id: ID!, firstName: String!, lastName: String!, phone: String, email: String; |