Operations for managing lockboxes
RentEngine Public API (1.1.1)
Integrate your systems anywhere with RentEngine.
- Log in to your RentEngine developer portal
- In the top corner, click the "Create New API Key" button
- Provide a name for your token (e.g., "Integration Name")
- Click Create
- Copy the token to your clipboard and save it securely as it will not be displayed again
Important Security Notice: Your token will only be displayed ONCE at creation time. Make sure to copy it and store it securely. For security reasons, we cannot display the token again after this point.
Include your token in all API requests as a Bearer token in the Authorization header:
Authorization: Bearer your_token_here
- Store tokens securely in environment variables or a secure vault
- Never hardcode tokens in your application code
- Do not share tokens in public repositories or client-side code
- Use separate tokens for different integrations or environments
Each token generated by a user will have the full permissions of the user that created it across all accounts associated with that user. Actions will be logged in the name of that user & token.
Tokens will not expire. (Well not for 100 years at least). If a token is compromised or no longer needed:
- Log in to your RentEngine developer portal
- Find the token you wish to invalidate in the table in the API Keys section
- Click the "Revoke Token" icon that looks like a trash can
Once revoked, a token cannot be restored. You'll need to create a new token if needed.
All list endpoints in the RentEngine API support pagination to efficiently handle large datasets. Here's how to use pagination in your API requests:
Pagination Parameters
When making requests to list endpoints (e.g., /lockboxes
, /lockbox_events
, /units
), you can include the following query parameters:
limit
- Controls how many items to return per page (default: 50, max: 100)page_number
- Specifies which page to retrieve (0-indexed, default: 0)
Example request with pagination:
GET /api/public/v1/lockboxes?limit=25&page_number=1
This would return the second page of results with 25 items per page.
Response Format
Paginated responses include only the requested data. The total number of items across all pages is not included in the response.
Iterating Through Pages
To retrieve all items across multiple pages, increment the page_number
parameter until you've processed all pages. You can determine when you've reached the end when the response is shorter than the limit requested.
Performance Considerations
- Use appropriate
limit
values based on your needs. Smaller values reduce payload size but require more API calls, which can slow down performance and be subject to rate limits. - When filtering data, apply filters in the query parameters first to reduce the total number of items that need to be fetched.
RentEngine provides webhooks to notify your systems about events in real-time. This allows you to build integrations that respond immediately to changes in your RentEngine data.
Setting Up Webhooks
Webhooks can be configured through the RentEngine developer portal. You'll need to specify:
- The target URL where webhook events should be sent
- The data you want to monitor (e.g., lockboxes, units, lockbox_events)
- The event types you want to receive (INSERT, UPDATE, DELETE)
- An optional API key that will be included in webhook requests to your endpoint
Webhook Payload Structure
Webhook payloads follow this general structure:
{
"type": "INSERT|UPDATE|DELETE",
"table": "table_name",
"record": { /* The current state of the record (null for DELETE) */ },
"old_record": { /* The previous state of the record (null for INSERT) */ }
}
The specific fields in record
and old_record
will depend on the table that triggered the event.
Event Types
INSERT
: Sent when a new record is createdUPDATE
: Sent when an existing record is modifiedDELETE
: Sent when a record is deleted
Security Considerations
- Webhook endpoints should be HTTPS to ensure secure transmission of data
- Validate the API key included in the webhook request to ensure it's coming from RentEngine
- Implement idempotency in your webhook handlers to prevent duplicate processing
Webhook Delivery
RentEngine uses a reliable delivery system (QStash) to ensure webhooks are delivered even during temporary outages. If your endpoint is unavailable, we'll retry delivery with exponential backoff.
https://rentengine.redocly.app/_mock/openapi/
https://app.rentengine.io/api/public/v1/
https://staging-app.rentengine.io/api/public/v1/
Any string that can be used to identify the unit in an external system. Essentially the same as an external_id, but not limited to an ID format. Uniqueness is not enforced.
Filter by comma-separated list of unit statuses
Maximum number of items to return per page (default 50, max 100)
- Mock server
https://rentengine.redocly.app/_mock/openapi/units
- Production environment
https://app.rentengine.io/api/public/v1/units
- Staging environment
https://staging-app.rentengine.io/api/public/v1/units
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
'https://rentengine.redocly.app/_mock/openapi/units?unitIds=12345%2C67890&extracted_from=f78125c&accountId=4b88ff32-8ba0-4bbf-8e60-c789909ac176&statuses=Available%2CIncomplete&limit=25&page_number=1' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>'
Success. Returns a list of units.
Timestamp when the unit was created
Timestamp when the unit was last updated
Type of property
Laundry options
Target rental rate for the unit in dollars per month. 1925 means $1925/month
Earliest date the unit is available for move-in
Pet policy
Restrictions on pets
Key access information
Instructions for accessing the unit
Utilities included in rent
Type of parking available
Source of the unit data. Can be a any string. Essentially the same as an external_id. Uniqueness is not enforced.
Marketing description of the unit
Type of commission
Floor number of the unit. Best to use the floor of the entrance door if the unit spans multiple floors.
ID of the account that owns the unit. Must be a valid account for which the api key has access.
Internal notes about the unit.
All amenities of the unit
ID of the multifamily property
Method for showing the unit
ID of the floorplan
URL of video tour (such as YouTube, Vimeo, Zillow Tour, Matterport, Ricoh360, or zInspector tour)
ID of the subteam managing the unit
ID of the prescreening template to use for this unit, if it is null the default template will be used.
Structured access instructions that vary based on showing_method:
- For "Self Guided" showing method: Use the self-guided showing instructions object
- For "Remote Guided" or "Remote Guided with Gated Access" showing methods: Use the self-guided showing instructions object
- For "Accompanied" showing method: Use either the legacy accompanied or accompanied showing instructions object
When updating structured_access_instructions, the showing_method field must also be set.
Structured access instructions that vary based on showing_method:
- For "Self Guided" showing method: Use the self-guided showing instructions object
- For "Remote Guided" or "Remote Guided with Gated Access" showing methods: Use the self-guided showing instructions object
- For "Accompanied" showing method: Use either the legacy accompanied or accompanied showing instructions object
When updating structured_access_instructions, the showing_method field must also be set.
Amount of security deposit in dollars. 1000 means $1000.21
URL for custom application
[ { "id": 3318, "created_at": "2024-10-05T18:53:03.406168Z", "updated_at": "2024-10-05T18:53:03.406168Z", "address": 957, "property_type": "TOWNHOUSE", "bedrooms": "3", "bathrooms": "2", "sqft": "1378", "furnished": false, "renovated": "No", "num_parking_spots": "2", "laundry": "In Unit", "target_rental_rate": "1925", "is_occupied": false, "earliest_move_in_date": "2024-10-12", "allow_cooperating_brokers": true, "desired_lease_duration_months": [ … ], "pets_allowed": "Yes with pet fee", "pet_restrictions": "A MINIMUM NON-REFUNDABLE pet fee in the amount of $300 per pet is required", "hoa_app_required": true, "hoa_app_fee": 100, "hoa_application_url": "https://example.com/application", "key_access": "I will add this later", "access_instructions": "Lockbox/Door Code: Tenant Turner", "min_resident_qualifications": "", "utilities_included": [ … ], "parking_type": [ … ], "storm_protection": "None", "status": "Leased", "send_showing_notifications": true, "send_leasing_update_email": true, "extracted_from": "f123abc", "marketing_description": "**AVAILABLE NOW** 3 Bedroom 2 Bathroom Townhome For Rent in Meadow Woods!", "marketing_photos": [ … ], "commission_amount": "1", "commission_type": "none", "imported_by": "Rentvine Sync", "floor_number": 1, "has_elevator": false, "hoa_details": { … }, "account_id": "269bf205-d876-42f5-988d-6f40891df58a", "owner_emails": [ … ], "accepts_vouchers": true, "internal_notes": "Garage work scheduled for Monday.", "amenities": [ … ], "monthly_fees": [ … ], "move_in_fees": [ … ], "multifamily_property_id": "421e4567-e89b-12d3-a456-426614174000", "showing_method": "Remote Guided", "floorplans_id": "451e4567-e89b-12d3-a456-426614174000", "video_url": "https://www.youtube.com/watch?v=1234567890", "subteam_id": "123e4567-e89b-12d3-a456-426614174000", "prescreen_template_id": "123e4567-e89b-12d3-a456-426614174000", "structured_access_instructions": { … }, "enable_send_report": true, "earliest_showing_date": "2024-10-12", "security_deposit_amount": 1000.21, "require_last_month_rent": true, "requires_voucher": false, "custom_application_url": "https://app.findigs.com/apply/unitid=70f51c4c-d708-402e-9a5f-bb6fd60b6cf2", "include_feedback_leasing_report": true, "year_built": 2020, "application_fee": 50 } ]
Request
Create a new unit or update an existing one.
- Insert: When no
id
is provided, a new unit will be created. Required fields for creation includeaddress
,property_type
,target_rental_rate
, andaccount_id
. - Update: When an
id
is provided, an existing unit will be updated. No other fields are required.
When updating a unit, if you include the address
field, you must provide all address components (street_number
, street_name
, zip_code
, state
, city
). Partial address updates are not supported.
When providing structured_access_instructions
, the showing_method
field must also be set. The structure of the access instructions depends on the showing method:
- For "Self Guided", "Remote Guided", or "Remote Guided with Gated Access" methods: Include fields like
lockbox_location
,lockbox_code
, etc. - For "Accompanied" method: Include fields like
assigned_user_ids
,meeting_location
, etc.
Unit ID. If provided, the unit will be updated; if not, a new unit will be created.
Type of property
Laundry options
Earliest date the unit is available for move-in
Pet policy
Restrictions on pets
Key access information
Structured access instructions that vary based on showing_method. When providing structured_access_instructions, showing_method must also be set.
Structured access instructions that vary based on showing_method. When providing structured_access_instructions, showing_method must also be set.
Minimum qualifications for residents
Utilities included in rent
Type of parking available
Current status of the unit
Source of the unit data. Can be a any string. Essentially the same as an external_id. Uniqueness is not enforced.
Marketing description of the unit
Type of commission
ID of the account that owns the unit
Method for showing the unit
ID of the multifamily property. Pass string 'null' to clear this field.
ID of the floorplan. Pass string 'null' to clear this field.
URL of video tour (such as YouTube, Vimeo, Zillow Tour, Matterport, Ricoh360, or zInspector tour)
ID of the subteam managing the unit. Pass string 'null' to clear this field.
ID of the prescreening template to use for this unit
- Mock server
https://rentengine.redocly.app/_mock/openapi/units
- Production environment
https://app.rentengine.io/api/public/v1/units
- Staging environment
https://staging-app.rentengine.io/api/public/v1/units
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
https://rentengine.redocly.app/_mock/openapi/units \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-d '{
"id": 3318,
"address": {
"street_number": "123",
"street_name": "Main St",
"unit": "4B",
"zip_code": "12345",
"state": "CA",
"country": "United States",
"city": "San Francisco"
},
"property_type": "TOWNHOUSE",
"bedrooms": 3,
"bathrooms": 2,
"sqft": 1378,
"furnished": false,
"renovated": "No",
"num_parking_spots": 2,
"laundry": "In Unit",
"target_rental_rate": 1925,
"is_occupied": false,
"earliest_move_in_date": "2024-10-12",
"allow_cooperating_brokers": true,
"desired_lease_duration_months": [
12
],
"pets_allowed": "Yes with pet fee",
"pet_restrictions": "A MINIMUM NON-REFUNDABLE pet fee in the amount of $300 per pet is required",
"hoa_details": {
"isInHOA": true,
"hoaAppRequired": true,
"hoaAppFee": 100,
"hoaApplicationUrl": "https://example.com/application",
"hoaApprovalTimeframe": "2 weeks",
"hoaAmenities": [
"Pool",
"Gym",
"Clubhouse"
]
},
"key_access": "Digital door lock with code",
"structured_access_instructions": {
"lockbox_location": "Front Door",
"lockbox_code": "1234",
"private_gate": "Gate code: 5678",
"community_gate": "Gate code: 9012",
"anything_else": "Please close the gate behind you"
},
"earliest_showing_date": "2024-10-12",
"additional_info": "Newly renovated kitchen",
"min_resident_qualifications": "Credit score 650+, income 3x rent",
"utilities_included": [
"Lawn Care",
"Trash"
],
"parking_type": [
"Assigned Spots"
],
"status": "Available",
"extracted_from": "f123abc",
"marketing_description": "**AVAILABLE NOW** 3 Bedroom 2 Bathroom Townhome For Rent!",
"marketing_photos": [
{
"path": "https://example.com/images/unit123.jpg",
"hidden": false,
"original": "https://example.com/images/unit123_original.jpg"
}
],
"commission_amount": 1,
"commission_type": "percent",
"imported_by": "API Import",
"floor_number": 1,
"has_elevator": false,
"account_id": "269bf205-d876-42f5-988d-6f40891df58a",
"owner_emails": [
"owner@example.com"
],
"accepts_vouchers": true,
"showing_method": "Self Guided",
"internal_notes": "Garage work scheduled for Monday",
"move_in_fees": [
{
"type": "dollar",
"amount": 150,
"name": "Admin Fee"
}
],
"monthly_fees": [
{
"type": "dollar",
"amount": 50,
"name": "Pet Fee"
}
],
"multifamily_property_id": "421e4567-e89b-12d3-a456-426614174000",
"floorplans_id": "451e4567-e89b-12d3-a456-426614174000",
"video_url": "https://www.youtube.com/watch?v=1234567890",
"subteam_id": "123e4567-e89b-12d3-a456-426614174000",
"prescreen_template_id": "123e4567-e89b-12d3-a456-426614174000",
"enable_send_report": true,
"security_deposit_amount": 1000,
"require_last_month_rent": true,
"requires_voucher": false,
"include_feedback_leasing_report": true,
"year_built": 2020,
"after_upsert_action": {
"action": "cancel_scheduled_bookings",
"should_cancel_scheduled_bookings": true,
"custom_sms_message": "Hi, the unit is available for showing. Please contact us at (555) 123-4567 with any questions."
},
"application_fee": 50
}'
{ "unit": { "id": 3318, "created_at": "2024-10-05T18:53:03.406168Z", "updated_at": "2024-10-05T18:53:03.406168Z", "address": 957, "property_type": "TOWNHOUSE", "bedrooms": "3", "bathrooms": "2", "sqft": "1378", "furnished": false, "renovated": "No", "num_parking_spots": "2", "laundry": "In Unit", "target_rental_rate": "1925", "is_occupied": false, "earliest_move_in_date": "2024-10-12", "allow_cooperating_brokers": true, "desired_lease_duration_months": [ … ], "pets_allowed": "Yes with pet fee", "pet_restrictions": "A MINIMUM NON-REFUNDABLE pet fee in the amount of $300 per pet is required", "hoa_app_required": true, "hoa_app_fee": 100, "hoa_application_url": "https://example.com/application", "key_access": "I will add this later", "access_instructions": "Lockbox/Door Code: Tenant Turner", "min_resident_qualifications": "", "utilities_included": [ … ], "parking_type": [ … ], "storm_protection": "None", "status": "Leased", "send_showing_notifications": true, "send_leasing_update_email": true, "extracted_from": "f123abc", "marketing_description": "**AVAILABLE NOW** 3 Bedroom 2 Bathroom Townhome For Rent in Meadow Woods!", "marketing_photos": [ … ], "commission_amount": "1", "commission_type": "none", "imported_by": "Rentvine Sync", "floor_number": 1, "has_elevator": false, "hoa_details": { … }, "account_id": "269bf205-d876-42f5-988d-6f40891df58a", "owner_emails": [ … ], "accepts_vouchers": true, "internal_notes": "Garage work scheduled for Monday.", "amenities": [ … ], "monthly_fees": [ … ], "move_in_fees": [ … ], "multifamily_property_id": "421e4567-e89b-12d3-a456-426614174000", "showing_method": "Remote Guided", "floorplans_id": "451e4567-e89b-12d3-a456-426614174000", "video_url": "https://www.youtube.com/watch?v=1234567890", "subteam_id": "123e4567-e89b-12d3-a456-426614174000", "prescreen_template_id": "123e4567-e89b-12d3-a456-426614174000", "structured_access_instructions": { … }, "enable_send_report": true, "earliest_showing_date": "2024-10-12", "security_deposit_amount": 1000.21, "require_last_month_rent": true, "requires_voucher": false, "custom_application_url": "https://app.findigs.com/apply/unitid=70f51c4c-d708-402e-9a5f-bb6fd60b6cf2", "include_feedback_leasing_report": true, "year_built": 2020, "application_fee": 50 } }
Generic structure of webhook payloads
The newly created record
Target rental rate for the unit in dollars per month
Earliest date the unit is available for move-in
Whether cooperating brokers are allowed
Desired lease duration in months
Restrictions on pets
URL for HOA application
Earliest date the unit can be shown
Utilities included in rent
Marketing description of the unit
ID of the account that owns the unit
All amenities of the unit
Internal notes about the unit.
ID of the multifamily property
ID of the floorplan
URL of video tour
ID of the subteam managing the unit
ID of the prescreening template to use for this unit
Amount of security deposit in dollars
Whether last month's rent is required upfront
URL for custom application
Whether to include feedback in leasing reports
Timestamp when the unit was created
Always null for INSERT events
Target rental rate for the unit in dollars per month
Earliest date the unit is available for move-in
Whether cooperating brokers are allowed
Desired lease duration in months
Restrictions on pets
URL for HOA application
Earliest date the unit can be shown
Utilities included in rent
Marketing description of the unit
ID of the account that owns the unit
Email addresses of the owners
Whether the unit accepts housing vouchers.
All amenities of the unit
Internal notes about the unit.
ID of the multifamily property
ID of the floorplan
URL of video tour
ID of the subteam managing the unit
ID of the prescreening template to use for this unit
Amount of security deposit in dollars
Whether last month's rent is required upfront
URL for custom application
Whether to include feedback in leasing reports
Timestamp when the unit was created
- Mock server
https://rentengine.redocly.app/_mock/openapi/UnitsEvents
- Production environment
https://app.rentengine.io/api/public/v1/UnitsEvents
- Staging environment
https://staging-app.rentengine.io/api/public/v1/UnitsEvents
{ "type": "INSERT", "table": "lockbox_events", "record": { "id": 3318, "lockbox_id": "123e4567-e89b-12d3-a456-426614174001", "event_type": "Install", "unit_id": "12345", "created_at": "2024-10-05T18:53:03.406168Z", "data": null, "property_type": "TOWNHOUSE", "highlighted_amenities": [ … ], "bedrooms": "3", "bathrooms": "2", "sqft": "1378", "furnished": false, "renovated": "No", "num_parking_spots": "2", "laundry": "In Unit", "target_rental_rate": "1925", "is_occupied": false, "earliest_move_in_date": "2024-10-12", "allow_cooperating_brokers": true, "desired_lease_duration_months": [ … ], "pets_allowed": "Yes with pet fee", "pet_restrictions": "A MINIMUM NON-REFUNDABLE pet fee in the amount of $300 per pet is required", "hoa_app_required": true, "hoa_app_fee": 100, "hoa_application_url": "https://example.com/application", "key_access": "I will add this later", "structured_access_instructions": {}, "earliest_showing_date": "2024-10-12", "min_resident_qualifications": "", "utilities_included": [ … ], "parking_type": [ … ], "status": "Leased", "extracted_from": "f123abc", "marketing_description": "**AVAILABLE NOW** 3 Bedroom 2 Bathroom Townhome For Rent in Meadow Woods!", "marketing_photos": [ … ], "commission_amount": "1", "commission_type": "none", "imported_by": "Rentvine Sync", "floor_number": 1, "has_elevator": false, "hoa_details": {}, "account_id": "269bf205-d876-42f5-988d-6f40891df58a", "owner_emails": [ … ], "accepts_vouchers": true, "showing_method": "Remote Guided", "amenities": [ … ], "internal_notes": "Garage work scheduled for Monday.", "move_in_fees": [ … ], "monthly_fees": [ … ], "multifamily_property_id": "421e4567-e89b-12d3-a456-426614174000", "floorplans_id": "451e4567-e89b-12d3-a456-426614174000", "video_url": "https://www.youtube.com/watch?v=1234567890", "subteam_id": "123e4567-e89b-12d3-a456-426614174000", "prescreen_template_id": "123e4567-e89b-12d3-a456-426614174000", "enable_send_report": true, "security_deposit_amount": 1000.21, "require_last_month_rent": true, "requires_voucher": false, "custom_application_url": "https://app.findigs.com/apply/unitid=70f51c4c-d708-402e-9a5f-bb6fd60b6cf2", "include_feedback_leasing_report": true, "year_built": 2020, "application_fee": 50, "updated_at": "2024-10-05T18:53:03.406168Z" }, "old_record": { "id": 3318, "property_type": "TOWNHOUSE", "highlighted_amenities": [ … ], "bedrooms": "3", "bathrooms": "2", "sqft": "1378", "furnished": false, "renovated": "No", "num_parking_spots": "2", "laundry": "In Unit", "target_rental_rate": "1925", "is_occupied": false, "earliest_move_in_date": "2024-10-12", "allow_cooperating_brokers": true, "desired_lease_duration_months": [ … ], "pets_allowed": "Yes with pet fee", "pet_restrictions": "A MINIMUM NON-REFUNDABLE pet fee in the amount of $300 per pet is required", "hoa_app_required": true, "hoa_app_fee": 100, "hoa_application_url": "https://example.com/application", "key_access": "I will add this later", "structured_access_instructions": {}, "earliest_showing_date": "2024-10-12", "min_resident_qualifications": "", "utilities_included": [ … ], "parking_type": [ … ], "status": "Leased", "extracted_from": "f123abc", "marketing_description": "**AVAILABLE NOW** 3 Bedroom 2 Bathroom Townhome For Rent in Meadow Woods!", "marketing_photos": [ … ], "commission_amount": "1", "commission_type": "none", "imported_by": "Rentvine Sync", "floor_number": 1, "has_elevator": false, "hoa_details": {}, "account_id": "269bf205-d876-42f5-988d-6f40891df58a", "owner_emails": [ … ], "accepts_vouchers": true, "showing_method": "Remote Guided", "amenities": [ … ], "internal_notes": "Garage work scheduled for Monday.", "move_in_fees": [ … ], "monthly_fees": [ … ], "multifamily_property_id": "421e4567-e89b-12d3-a456-426614174000", "floorplans_id": "451e4567-e89b-12d3-a456-426614174000", "video_url": "https://www.youtube.com/watch?v=1234567890", "subteam_id": "123e4567-e89b-12d3-a456-426614174000", "prescreen_template_id": "123e4567-e89b-12d3-a456-426614174000", "enable_send_report": true, "security_deposit_amount": 1000.21, "require_last_month_rent": true, "requires_voucher": false, "custom_application_url": "https://app.findigs.com/apply/unitid=70f51c4c-d708-402e-9a5f-bb6fd60b6cf2", "include_feedback_leasing_report": true, "year_built": 2020, "application_fee": 50, "created_at": "2024-10-05T18:53:03.406168Z", "updated_at": "2024-10-05T18:53:03.406168Z" } }
{ "success": true }
Multifamily Properties
Operations for managing multifamily properties. Multifamily properties are used to syndicate large properties with paid advertising contracts to the paid rental feeds. For example, paid adverising contracts are required for the Zillow network if the building has more than 24 units, and for the Apartments.com if the building has more than 4 units. Other ILSs have different thresholds.