Liberty Asset Group runs Aspen and Summerset on Entrata. This is the wireframe of what we'd pull from Entrata, what we'd push back, and what each connection is for. North River's software is still being decided, so this covers the two Liberty properties for now.
Pull = we read live data out of Entrata to keep listings and the site current. Push = we write leads and applications back into Entrata so the PM works them in their normal system.
| Data | Direction | What we use it for | Priority |
|---|---|---|---|
Availability & pricinggetUnitsAvailabilityAndPricing | Pull | Live rent + available dates onto the Foothold site (/rentals, /map) so listings never go stale. Freshness is a ranking signal on Apartments.com. | P1 must-have |
Units & floor plansgetPropertyUnits, getFloorPlans | Pull | Map units to floor plans, square footage, beds/baths. Powers the site's unit cards and keeps structured data accurate. | P1 must-have |
Property & amenity datagetProperties, getAmenities | Pull | Amenities, pet policy, fees. Backstops the structured-data sheet so nothing falls out of sync. | P2 nice |
Leads / guest cardssendLeads | Push | When the AI agent or site captures a lead, write it into Entrata as a guest card so the PM works it in their normal queue. Closes the speed-to-lead loop. | P1 must-have |
| Applications | Push | Hand a started application off into Entrata so the renter can apply without a dead end. Lifts the apply-to-tour ratio. | P2 nice |
Residents / leasesgetLeases | Pull | Later: feed the resident-recognition engine (tenure, anniversaries). Depends on Entrata's custom-data scope, confirm before relying on it. | P3 later |
| Work orders | Pull | Later: surface maintenance-response times for the service KPI + feedback loop. | P3 later |
Build the integration behind a PMS adapter so North River can plug in a different source later without reworking the site or the agent.
This is the path from "renter clicks inquire on Apartments.com" to "Taylor's team sees it," confirmed from CoStar + Entrata docs:
feeds@apartments.com, linking the Listing ID to the Entrata Property ID), and (b) as an email to up to 6 lead destinations you choose.updateLeads. This is record-only, it sends the prospect nothing (there's no send-through-Entrata API at all). Taylor's team opens the guest card and reads the full word-for-word thread, not a summary.Every message the agent sends and every reply it gets is logged as its own note. Logging a note and sending a message are different operations, the agent only ever writes notes, never a send, so the prospect gets no duplicate. You get a complete, auditable record of exactly what the AI said, which is the point: keep the agent accountable.
Where the real record lives: the authoritative full transcript sits in our own system (GHL / the agent's datastore), which we own. Entrata gets the complete mirror so the on-site team sees it in their workflow. Your accountability trail doesn't depend on Entrata.
Entrata has guest SMS, but it's a dashboard tool with no API to send outbound programmatically. Every major AI leasing agent (EliseAI, Funnel, Knock) sends on its own number and logs back to Entrata. The only thing that sends natively through Entrata is Entrata's own ELI+ AI (because it is Entrata, a black box we'd rather not hand the conversation to, it costs us the accountability transcript + speed tuning + data).
Single point of contact, the right way: the agent owns one number, and we forward the property's published number to it (exactly what EliseAI does). The guest sees one consistent number and one thread; the on-site team works from the logged notes.
If LAG separately messages the same prospect through Entrata's own texting/email tools, that message is in Entrata but not our system, and the thread fragments. Fix is policy, not tech: the agent owns the conversation channel; LAG works from the logged notes and takes the tour. Route the Apartments.com lead email only to the agent for first-touch so two people never reply to the same renter.
Endpoints to enable for the lead loop: getLeads, getMitsLeads, getLeadEvents, getLeadPickLists, sendLeads, sendMitsLeads, updateLeads. Plus getLeases / getCustomers for resident data (Entrata calls residents "Customers"). One caveat to confirm: the contact-form message body and unit-of-interest may not pass through the structured guest card, only name/email/phone/move-date are documented.
These solve different problems, and the research cleared up which does what:
getUnitsAvailabilityAndPricing), and for pushing a lead back into Entrata we need sendLeads. This is the path that needs the API user turned on.Net: ask Liberty to flip on Entrata's ILS syndication to Apartments.com/Zillow today (cheap/included, fast), and separately pursue the API user for the site + lead push.
Entrata publishes no API price. Every Entrata API page says access "requires an agreement between your company and Entrata," so the cost is set per-account by their account manager. There's a 2024 industry report that Entrata moved to paid API access starting around $5,000/year and scaling past $50,000, but that fee targets third-party proptech vendors listing in Entrata's marketplace, not necessarily a property owner doing a custom integration on their own PM's account. The vendor "how-to" guides that walk through adding an API user mention no fee at all in that flow.
So: don't assume free, don't assume $5K. The one load-bearing question for Liberty to ask their Entrata account manager: "What does it cost to enable API access on our account, and are there per-endpoint or per-call fees?"
Entrata has a self-serve "Apps → API Access → Add API User" screen, but that's only for apps already in Entrata's marketplace catalog. Ours is a custom integration, which is a different, Entrata-gated path:
So a conversation with Entrata is unavoidable. Taylor's login alone won't do it. Plan ~1 to 3 weeks of Entrata-side lead time.
What Liberty needs to ask their Entrata CSM for:
sendLeads). Reads are the bulk of it, which keeps the permission ask small.Entrata's API caps at roughly 1 call per property per minute per method, 2,500 calls/day. So we poll availability every few minutes and serve the site from a cache, never call Entrata on every page view. Standard, just noting it so the build is designed right.