| Concept | What it is | Where |
|---|---|---|
| API Key | Provider credentials (Bridge, Spark, Navica, etc.). Multiple keys supported. | GeoDirectory → Settings → GeoMLS |
| Dataset | MLS feed partition your account can access (board/region/license scope). Not a filter — permission boundary. | Selected when creating an import |
| Import | Saved config: dataset + filters + GD post type + field mapping. Stored as geomls_import. |
GeoMLS → Imports |
Flow: API Key → datasets appear → pick dataset → options load → configure import → run.
GeoDirectory → Settings → GeoMLS
- Add key → select provider → fill required fields → Save
- Test Connection
- Background parser fetches datasets + option lists (types, states, agents, offices)
No datasets? Bad credentials or parsing still running.
GeoMLS → Imports → Add New
- Select dataset → Continue
- Wait for dataset options to load (required before filters work)
- Configure (see below) → Create Import
Access denied? Account lacks MLS approval for that dataset — fix on provider side, not in GeoMLS.
- GD Post Type — target CPT
- Listing Author — WP user on imported posts
- Listing Status — draft or publish
- Title Format —
{Address},{City},{StateOrProvince},{ListingId}, etc.
| UI field | RESO field |
|---|---|
| Listing Status | StandardStatus |
| Property Type / Subtype | PropertyType / PropertySubType |
| States | StateOrProvince |
| Cities | City (comma-separated) |
| Price range | ListPrice |
| Agent/Office include/exclude | ListAgentKey / ListOfficeKey |
| Custom Filters | Any field + comparison operator |
Empty = no restriction on that dimension.
- Maximum Listings to Import — cap for smoke tests
- Single listing —
ListingIdorListingKeyfor one-off - Additional Fields + Field Mapping — RESO → GD
htmlvar_nameoverrides - Remove listings no longer in the MLS — post-import cleanup (trash confirmed-missing only)
- Run Frequency + Start immediately
| Action | Where |
|---|---|
| Run Preview | Edit import — dry run, no writes |
| Run Import | Imports list or Import Details |
| Pause / Resume / Abort | Import Details |
| Edit while running | Blocked |
Import Details — check:
- Imported / Updated / Skipped / Failed / Removed
- Activity log
- Media queue (images may finish after property loop)
Dedup key: geomls_listing_id (MLS ListingId). Re-runs update, not duplicate.
Two layers — don’t confuse them:
- Dataset access — Can your API account see that region’s feed? If not, filters won’t help. Confirm: dataset listed, no access error, options load.
- Import filters — Narrow within an accessible dataset: States =
CA, Cities, or custom filter onStateOrProvince/City.
- Test Connection passes; datasets populate
- Dataset options load after selection
- Run Preview counts look sane
- Listings land in correct GD post type + author + status
- Re-run updates existing (no dupes)
- Title format + mapped fields correct
- Images attach (check after import completes)
- Remove stale only trashes confirmed-missing (if enabled)