Products
AsanagiIDX
A self-hosted MLS listing platform built on AsanagiDB. It ingests a RESO Web API feed, keeps a normalized copy of your listings in a graph, stores photos in an object store you control, and serves a REST search API to your own website.
Overview
AsanagiIDX is a
program you install next to your own website. It pulls your feed from
MLS Grid's RESO Web API on a schedule, maps each listing, agent,
office, and open house into AsanagiDB as connected records, downloads
listing photos into an S3-compatible or local object store, and
exposes a plain REST API your pages query directly. You run it; you
hold the data and the MLS credentials.
MLS Grid RESO Web API โโโบ asanagidb-idx (sync loop + REST API) โโโบ AsanagiDB
โ
REST listing & search API
โ
โผ
Your website Availability
AsanagiIDX is not yet available for download โ packaging is in progress. Pricing is final and listed on the product page. For an early build for your brokerage, contact [email protected]. The sections below describe how it installs and runs when it ships.
Installation
AsanagiIDX installs the same way as the rest of the suite: download
the release archive for your platform from this site and extract it.
The archive is self-contained โ it bundles
asanagidb โ so
there is nothing to install first. It is not distributed through
Homebrew.
# Validate the environment, database, and live MLS Grid endpoint
asanagidb-idx check-config --config ./idx.yaml
# Start the sync loop and REST API
asanagidb-idx serve --config ./idx.yaml
Run check-config
before a deployment goes into service โ it fails fast on a bad
credential, an unreachable endpoint, or a database that isn't ready.
Configuration
Configuration is a single YAML file. Supply your own MLS Grid subscription and credentials, the object store for media, and the AsanagiDB connection.
server:
port: 8090
database:
url: "ws://127.0.0.1:8182/gremlin"
name: "idx"
mls_grid:
token: "YOUR_MLS_GRID_TOKEN"
dataset: "YOUR_ORIGINATING_SYSTEM"
sync_interval_sec: 300
media:
backend: "s3" # s3 | fs
bucket: "idx-media"
endpoint: "https://s3.us-east-1.amazonaws.com"
Exact keys are documented in the archive's
idx.yaml.example.
REST API
AsanagiIDX serves a plain HTTP API for listing search and detail. It is REST and JSON โ there is no GraphQL endpoint and no client SDK to install; call it with whatever HTTP client your site already uses.
GET /v1/listings Query listings with structured filters (price, beds, baths, city, status, property type) and pagination GET /v1/listings/:key Fetch one listing with its media, listing agent, and office GET /v1/media/:key Serve a listing photo from the object store GET /healthz Liveness and feed-health probe # Active 3+ bed homes in Austin under $750k
curl "http://localhost:8090/v1/listings?city=Austin&minBeds=3&maxPrice=750000&status=Active" Licensing
AsanagiIDX is a single named license that includes the
AsanagiDB
entitlement it needs โ there is no separate AsanagiDB purchase.
Place the license file where the bundled engine reads it
(~/.asanagi/license.json).
An unlicensed instance still syncs and serves, but runs with the
unlicensed map-size ceiling and logs a notice. The license is
bound to one MLS feed and, at general availability, to the
website domain you register at checkout.