Platform Resources
The Developer Platform connects a custom application to more than property search. It exposes the customer-owned EasyAgentIDX resources included with the effective plan and API key scopes.
Start with capabilities
Call GET /platform/capabilities when your server starts and after a plan or add-on change. The developer_platform.operations list contains implemented operations available to this key, with their method, path, scope, resource boundary, and retry requirements. Valuation operations appear only when the website has an active product. Use this list with the resource reference instead of assuming that every capability supports every action.
curl "https://app.easyagentidx.com/api/v1/platform/capabilities" -H "Authorization: Bearer $EASYAGENTIDX_API_KEY" -H "X-EAI-Site-ID: $EASYAGENTIDX_SITE_ID"
Resources
| Endpoint | Scope | Returns |
|---|---|---|
GET /platform/capabilities | platform:read | Effective plan, delegated access, key scopes, capabilities, plan features, site, and active add-ons |
GET /platform/sites | sites:read | The verified website bound to the key, active MLS feed summary, and widget count |
GET /platform/widgets | widgets:read | Widget definitions, configuration, appearance, status, and embed keys for the approved website |
GET /platform/widgets/{id} | widgets:read | One widget and its ETag for version-aware updates |
POST /platform/widgets | widgets:write | Create a widget bound to the approved website and feed |
PATCH /platform/widgets/{id} | widgets:write | Update name, configuration, appearance, lead rules, or active and paused status |
DELETE /platform/widgets/{id} | widgets:write | Remove a widget and invalidate its embed configuration |
GET /platform/visitors | visitors:read | Registered visitor contact records without passwords or authentication tokens |
GET /platform/saved-searches | saved-searches:read | Saved search criteria, alert frequency, and delivery status |
GET /platform/saved-listings | saved-listings:read | Saved listing identifiers without stale property snapshots |
GET /platform/analytics?days=30 | analytics:read | Site-scoped usage totals for a period from 1 to 90 days |
GET /platform/homethread/collections | homethread:read | HomeThread collection summaries for the account |
GET /platform/team | team:read | Brokerage team members and allowlisted public profile fields |
GET /platform/clients | clients:read | Agency Partner client workspace summaries and delegated product status |
GET /platform/compliance | listings:read | MLS board attribution, display rules, and cache limits for the approved feed |
Capability behavior
- Pro includes IDX, leads, sites, widgets, analytics, webhooks and eligible Home Valuations resources. HomeThread resources become available at its separate app launch.
- Brokerage adds team and agent resources.
- Agency Partner adds client workspace resources.
- Enterprise includes organization resources and the published Enterprise API limit. Agency client workspace management remains an Agency Partner capability.
- Agency client accounts receive only the products explicitly delegated by the parent agency.
Note
A capability must be included with the account and the key must also hold the required scope. Home Valuations endpoints additionally require an active add-on for the approved website.Stable public fields
Responses use EasyAgentIDX-owned snake case fields. Upstream provider credentials, billing records, employee administration, internal storage keys, and unreviewed profile JSON are not exposed.
Website scope and account scope
IDX, widgets, analytics, compliance, valuations, and lead resources resolve through the website bound to the key. Visitors, saved searches, saved listings, team, agency client, and HomeThread resources are account-level capabilities and require separate least-privilege scopes.
Supported operations
Widgets support creation, configuration, status changes, and deletion. Lead resources support creation, updates, and deletion. Home Valuations supports estimates, history, and credit usage. Other platform resources currently support reads. Visitor registration, team invitations, billing, credential management, and HomeThread collaboration changes use their existing dashboard, widget, or mobile flows.
Manage a widget
Send a unique Idempotency-Key with each new widget operation. The key must contain 8 to 128 letters, numbers, dots, colons, underscores, or hyphens. Retry an interrupted request with the same key and request body. Committed responses are retained for 24 hours.
curl "https://app.easyagentidx.com/api/v1/platform/widgets" \
-H "Authorization: Bearer $EASYAGENTIDX_API_KEY" \
-H "X-EAI-Site-ID: $EASYAGENTIDX_SITE_ID" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: create-search-widget-001" \
-d '{"name":"Property Search","type":"search","config":{},"appearance":{}}'The response contains the widget ID, embed key, configuration, appearance, lead rules, and timestamps. Use the supported widget types and configuration fields from the widget documentation. JSON bodies are limited to 64 KB and configuration nesting to eight levels. The API chooses the account, website, and feed. Those fields, embed keys, and allowed origins cannot be supplied or changed.
Before updating or deleting, retrieve the widget and copy its ETag header into If-Match. A concurrent edit returns 412 PRECONDITION_FAILED. Retrieve the latest version and start a new operation with a new retry key. A missing version returns 428 PRECONDITION_REQUIRED. Reusing a retry key with different fields returns 409 IDEMPOTENCY_CONFLICT.
Creating or editing team widgets requires current team access. Creating or editing Home Valuation widgets requires an active Home Valuations product for the website and the applicable Agency client grant. You can still remove an owned obsolete widget after its product access ends. Deleting a widget stops its embed from loading. API changes appear in the existing widget dashboard and are recorded in the account audit log.
Visitors, saved searches, and saved listings accept page and per_page, with a maximum of 100 records per page. Re-fetch each saved listing through the Listings API before display. A saved identifier does not preserve display rights after a property leaves the feed.
Warning
These endpoints are server-to-server resources. An API key is not a visitor login. Authenticate users in your application and enforce their access before showing private contact records, saved searches, or collaboration data.