← Operating plan
FOOTHOLD
BOISE APARTMENTS
Entrata integration

Entrata API: the connection points

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.

The data flow

Entrata (Liberty's PMS)

Units, floor plans, availability
Market rent / pricing
Property & amenity data
Leads / guest cards
Applications
pull
(read)
push
(write)

Foothold systems

footholdboise.com /rentals + /map
Apartments.com / Zillow feed freshness
AI speed-to-lead agent
GHL CRM

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.

Connection points, and what we use them for

DataDirectionWhat we use it forPriority
Availability & pricing
getUnitsAvailabilityAndPricing
PullLive 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 plans
getPropertyUnits, getFloorPlans
PullMap units to floor plans, square footage, beds/baths. Powers the site's unit cards and keeps structured data accurate.P1 must-have
Property & amenity data
getProperties, getAmenities
PullAmenities, pet policy, fees. Backstops the structured-data sheet so nothing falls out of sync.P2 nice
Leads / guest cards
sendLeads
PushWhen 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
ApplicationsPushHand a started application off into Entrata so the renter can apply without a dead end. Lifts the apply-to-tour ratio.P2 nice
Residents / leases
getLeases
PullLater: feed the resident-recognition engine (tenure, anniversaries). Depends on Entrata's custom-data scope, confirm before relying on it.P3 later
Work ordersPullLater: 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.

How a lead flows in (and how the agent stays visible)

This is the path from "renter clicks inquire on Apartments.com" to "Taylor's team sees it," confirmed from CoStar + Entrata docs:

  1. Renter inquires on the Apartments.com listing (check availability / request tour / email). We get their real name, email, phone, and move-in date (masking is only on the public listing).
  2. CoStar delivers it two ways at once: (a) into Entrata as a guest card via the native Apartments.com→Entrata feed (set up through 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.
  3. We point one email destination at the AI agent (running through GHL), so it gets the lead instantly and replies in under 5 minutes from one dedicated number + inbox per property. We forward the property's published/tracking number to it, so the guest only ever sees one consistent number. No waiting on Entrata polling.
  4. The prospect replies into our GHL inbox, NOT Entrata. Their response comes back to the Foothold address/number the agent used. Entrata never sees it automatically, it only knows what we write to it.
  5. We log every single message, both directions, onto the guest card as timestamped "Note" events via 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.

Full transcript, for AI accountability, no duplicate risk

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.

"Can't the agent just send through Entrata?" Checked: no, and that's the industry norm

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.

The one weakness to manage: split-brain

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.

Two paths, and we'll use both

These solve different problems, and the research cleared up which does what:

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.

Access & cost

Does Entrata charge for API access? Probably, amount unknown.

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?"

No, Taylor can't just flip this on herself

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:

Heads-up: rate limits mean we cache

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.

Bottom line: start by asking Liberty/Entrata for the ILS feed (easy win on availability) and an API user, and find out the cost. The wireframe above is what we build once access is on. owner@footholdboise.com goes straight to Brent.