RealPage
Client for RealPage Exchange API.
Versions
See the changelog
Installation
Add this line to your application's Gemfile:
gem 'real_page'
And then execute:
$ bundle
Or install it yourself as:
$ gem install real_page
Usage
Configuration
Configure the gem with your RealPage web service URL:
RealPage.configure do |config|
# Use your web service URL below
config.web_service_url = 'https://gateway.rpx.realpage.com/rpxgateway/partner/Client/Client.svc'
config.username = '<RealPage Exchange username>'
config.password = '<RealPage Exchange password>'
config.license_key = '<RealPage Exchange license key>'
config.app_name = '<Service that uses this gem>'
end
Models
Responses from RealPage are parsed from XML into a ruby Model class
RealPage::Model::Activity
An activity represents an event that happens in relation to a RealPage::Model::GuestCard.
agent_id
[Fixnum]agent_name
[String]create_date
[Date]date
[String]edit_type_name
[String]guest_card_journal_edit_type_id
[String]guest_card_journal_type_id
[String]id
[String]logged_by_name
[String]loss_reason_cd
[String]max_create_date_time
[Fixnum]name
[String]notes
[String]result_cd
[String]result
[String]status_change_reason
[String]status
[String]system
[Boolean]time
[String]
RealPage::Model::Address
The address of a RealPage::Model::Prospect
city
[String]country
[String]line1
[String]line2
[String]state
[String]zip
[String]
RealPage::Model::Amenity
An identifier for an Amenity at a particular property.
id
[String]pmc_id
[String]site_id
[String]
RealPage::Model::Appointment
An appointment to visit the property. May be attached to a RealPage::Model::GuestCard
day
[Integer]hour
[Integer]leasing_agent_id
[String]minute
[Integer]month
[Integer]pmc_id
[String]site_id
[String]task_notes
[String]year
[Integer]
RealPage::Model::FloorPlan
The response from GetFloorPlanList is an array of RealPage::Model::FloorPlan
instances. Each instance will have the following attributes:
bathrooms
[Float]bedrooms
[Integer]code
[String]description
[String]excluded_from_occupancy
[Boolean]gross_square_footage
[Integer]group_id
[String]group_name
[String]id
[Integer]maximum_occupants
[Integer]name_marketing
[String]name
[String]rent_max
[Float]rent_min
[Float]rentable_square_footage
[Integer]
RealPage::Model::FollowUp
A task for a leasing agent, perhaps to get back in touch with a RealPage::Model::Prospect about a RealPage::Model::GuestCard.
agent_id
[Integer]agent_name
[String]notes
[String]past_due_task
[Boolean]priority_cd
[String]task_appt_date_time
[String]task_category_cd
[String]task_confirmed
[String]task_contact_date_time
[Date]task_contact_type_cd
[String]task_duration_end
[String]task_duration_start
[String]task_id
[Integer]task
[String]
RealPage::Model::GuestCard
The main object in RealPage's system representing a potential renter. The response from ProspectSearch is an array of these.
activities
[Array<RealPage::Model::Activity>]amenities
[Array<RealPage::Model::Amenity>]appointment
[RealPage::Model::Appointment]contact_type
[String]create_date
[String]customer_id
[String]date_contact
[String]date_followup
[String]follow_ups
[Array<RealPage::Model::FollowUp>]id
[String]lease_actions
[Array<RealPage::Model::LeaseAction>]leasing_agent_id
[String]move_in_reason
[String]pet_weight_range
[String]pmc_id
[String]preferences
[RealPage::Model::Preferences]primary_lead_source
[String]primary_traffic_source_minor
[String]property_status
[String]prospect_comment
[String]prospects
[Array<RealPage::Model::Prospect>]quotes
[Array<RealPage::Model::Quote>]screenings
[Array<RealPage::Model::Screening>]secondary_lead_source
[String]site_id
[String]status_is_active
[Boolean]status_is_leased
[Boolean]status_is_lost
[Boolean]units_shown
[Array<RealPage::Model::UnitShown>]
RealPage::Model::Lease
The response from GetLeasesByTrafficSource is an array of
RealPage::Model::Lease
instances. Each instance will have the following attributes:
begin_date
[Date]email
[String]end_date
[Date]first_name
[String]guest_card_id
[String]id
[String]last_name
[String]middle_name
[String]move_in_date
[Date]phone_1
[String]phone_2
[String]phone_ext_1
[String]phone_ext_2
[String]resident_household_id
[String]resident_member_id
[String]term_id
[String]type
[String]unit_id
[String]unit_number
[String]import_resident_id
[String]
The allowed values of leasetype
are set as constants in the RealPage::Model::Lease::Type
module:
RealPage::Model::Lease::Type::FIRST_LEASE
RealPage::Model::Lease::Type::RENEWAL
RealPage::Model::Lease::Type::TRANSFER
RealPage::Model::LeaseAction
An action taken on the path towards signing a RealPage::Model::Lease
editable
[Boolean]for_correct_date_sort
[String]lal_org_lea_id
[Integer]note_comment_length
[Integer]note_comment
[String]note_date
[Date]note_id
[Integer]note_source
[String]note_type
[String]note_user
[String]rentable_item_reserved
[Boolean]sort_date
[Date]
RealPage::Model::PhoneNumber
A person's phone number.
number
[String]type
[String]
RealPage::Model::PicklistItem
Several responses from RealPage include a Picklist. These requests (e.g.
GetMarketingSourcesByProperty) return an array of
RealPage::Model::PicklistItem
s, which have 2 string attributes: value
and text
.
RealPage::Model::Preferences
Details of what the RealPage::Model::Prospect wants in an apartment.
date_needed
[Date]desired_rent
[Integer]floorplan_group_id
[String]floorplan_id
[Integer]lease_term_months
[Integer]occupants
[String]price_range_id
[String]site_id
[String]
RealPage::Model::Prospect
The main object representing a renter. It will be found on a RealPage::Model::GuestCard.
address
[RealPage::Model::Address]customer_id
[Integer]email
[String]first_name
[String]gender
[String]id_issuer
[String]id_number
[String]id_numberencrypted
[String]id_type
[String]last_name
[String]middle_name
[String]phone_numbers
[Array<RealPage::Model::PhoneNumber]pmc_id
[Integer]pref_communication_type
[String]relationship_id
[String]site_id
[Integer]ssn_encrypted
[String]ssn
[String]import_resident_id
[String]
RealPage::Model::Quote
A rental price quoted before move-in.
agent_name
[String]bldg_unit
[String]building
[String]context_name
[String]date_created
[String]date_lease_begin
[String]date_lease_end
[String]date_move_in
[String]date_quote_expires
[String]date_range_lease
[String]deposit
[Float]enable_payment_plan
[Boolean]floor_plan_id
[Integer]floor_plan_id
[String]floor_plan_name
[String]id
[Integer]id
[String]lease_term_id
[Integer]lease_term_id
[String]market_rent
[Float]rent
[Float]reservation_expire_date
[Date]site_id
[String]site
[String]time_created
[String]type_code
[String]type
[String]unit_applied
[Boolean]unit_id
[String]unit_reserved
[String]unit_status
[String]unit
[String]- available [Boolean]
RealPage::Model::RentMatrix
The response from GetRentMatrix is an array of RealPage::Model::RentMatrix
instances. Each instance will have the following attributes:
lease_term
[Integer]lease_term_max
[Integer]lease_term_min
[Integer]needed_by_date
[Date]property_id
[String]rows
[Array<RealPage::Model::RentMatrix::Row>]
RealPage::Model::RentMatrix::Concessions
monthly_fixed
[Float]monthly_percent
[Float]months
[Float]one_time_fixed
[Integer]total
[Integer]
RealPage::Model::RentMatrix::Option
best
[Boolean]lease_end_date
[Date]lease_start_date
[Date]lease_term
[Integer]concessions
[RealPage::Model::RentMatrix::Concessions]rent
[Integer]
RealPage::Model::RentMatrix::Row
building
[String]lease_end_date
[Date]lease_start_date
[Date]make_ready_date
[Date]max_rent
[Integer]min_rent
[Integer]options
[Array<RealPage::Model::RentMatrix::Option>]rent
[Integer]unit
[String]ys_quote_id
[String]
RealPage::Model::Screening
Screening conducted on a RealPage::Model::Prospect before their application is accepted.
apg_id
[String]app_id
[String]customer_id
[Integer]customer_name
[String]external_screening_service
[String]result_code
[String]result_date
[String]result
[String]
RealPage::Model::Unit
The response from GetUnitsByProperty is an array of RealPage::Model::Unit
instances. Each instance will have the following attributes:
address_1
[String]address_2
[String]available
[Boolean]available_date
[Date]base_rent_amount
[Float]building_id
[Integer]city_name
[String]county_name
[String]country_name
[String]description
[String]deposit_amount
[Float]floor_number
[String]floor_plan_id
[Integer]floor_plan_market_rent
[Float]fp_report_unit_occupancy
[Boolean]gross_sqft_count
[String]hearing
[Boolean]id
[Integer]last_action_code
[String]last_action_desc
[String]lock
[Boolean]lock_owner
[String]made_ready
[Boolean]made_ready_date
[Date]market_rent
[Float]mobility
[Boolean]nonrefund_fee
[Float]nonrevenue_description
[String]nonrevenue
[Boolean]note_description
[String]number
[String]pmc_id
[String]property_number_id
[Integer]rent_sqft_count
[String]reserve
[Boolean]reserved_until
[Date]site_id
[String]state
[String]unavailable_code
[String]vacant
[Boolean]vacant_date
[Date]vision
[Boolean]zip
[String]
RealPage::Model::UnitShown
A unit shown to a RealPage::Model::Prospect during a site visit.
activity_date
[Date]activity_id
[String]activity_name
[String]activity_time
[String]agent_id
[Integer]agent_name
[String]building
[String]building_unit
[String]create_date
[Date]edit_type_name
[String]guest_card_journal_type_edit_id
[String]guest_card_journal_type_id
[String]logged_by_name
[String]market_rent
[Float]max_create_date_time
[Integer]notes
[String]result
[String]site
[String]site_id
[String]status
[String]unit_applied
[Boolean]unit_id
[Integer]unit_number
[String]unit_reserved
[Date]unit_status
[Integer]
Request Parameter Objects
These objects are used as parameters to request objects
RealPage::Parameter::ListCriterion
A request parameter used to filter lists (e.g. GetUnitsByProperty). A ListCriterion takes the following parameters
max_value
Maximum of List Criterion to be retrievedmin_value
Minimum value of List Criterion to be retrievedname
Name of List Criterion to be retrievedsingle_value
Value of List Criterion to be retrieved
SOAP Actions
To request an action, instantiate the appropriate class (see below) and invoke #perform on it. The API response will be parsed and returned as a ruby object.
RealPage::Request::GetFloorPlanList
Initialization parameters
list_criteria
[Array<RealPage::Parameter::ListCriterion>] criteria used to filter the resultspmc_id
[String] the unique identifier for the property management company in RealPagesite_id
[String] the unique identifier for the property in RealPage
Response
Array<RealPage::Model::FloorPlan>
RealPage::Request::GetLeasesByTrafficSource
Initialization parameters
end_date
[Date] the end of the date range for the querypmc_id
[String] the unique identifier for the property management company in RealPagesite_id
[String] the unique identifier for the property in RealPagestart_date
[Date] the start of the date range for the querytraffic_source_id
[String] the identifier for the marketing/traffic source used to query leases
Response
Array<RealPage::Model::Lease>
RealPage::Request::GetMarketingSourcesByProperty
Initialization parameters
pmc_id
[String] the unique identifier for the property management company in RealPagesite_id
[String] the unique identifier for the property in RealPage
Response
Array<RealPage::Model::PicklistItem>
RealPage::Request::GetRentMatrix
Initialization parameters
lease_term
[Integer] the term (in months) of the leaseneed_by_date
[Date] the date the unit(s) is/are needed bypmc_id
[String] the unique identifier for the property management company in RealPagesite_id
[String] the unique identifier for the property in RealPageunit_ids
[Array] the array of unit IDs to get pricing data for viewing_quote_only
[Boolean] identifies whether the user is viewing or creating new quote
Response
Array<RealPage::Model::RentMatrix>
RealPage::Request::GetUnitsByProperty
Initialization parameters
list_criteria
[Array<RealPage::Parameter::ListCriterion>] criteria used to filter the resultspmc_id
[String] the unique identifier for the property management company in RealPagesite_id
[String] the unique identifier for the property in RealPage
Response
Array<RealPage::Model::Unit>
RealPage::Request::ProspectSearch
Initialization parameters
guest_card_id
[String] the unique identifier for the guest card to fetchpmc_id
[String] the unique identifier for the property management company in RealPagesite_id
[String] the unique identifier for the property in RealPage
Response
Array<RealPage::Model::GuestCard>
Errors
RealPage::Error::Base
The base class for all RealPage errors
RealPage::Error::BadRequest
Raised when a RealPage request has an error node in the contents. This is generally the case when one of the parameters in a section other than the auth section is invalid.
Includes an #errors
array that includes all errors returned by the request. (The value
of #message
will be the value of all #errors
array responds to
#message
#internal_message
#severity
RealPage::Error::InvalidConfiguration
Raised when RealPage is not properly configured
RealPage::Error::RequestFault
Raised when a RealPage request has a fault node, which general appears when there is an issue with the auth section in the request (e.g. invalid password)
Includes a #fault_code
attribute based on the code returned in the response
Development
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
to create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
- Fork it ( https://github.com/[my-github-username]/real_page/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request