Managed hosting is included on all plans

Every MLS Genie™ subscription includes fully managed WordPress hosting — configured, monitored, and maintained for you. Self-hosting is supported but is your responsibility to configure and maintain. If you self-host, these requirements apply.

Server Requirements

PHP

Requirement Minimum Recommended Notes
PHP Version 8.1 8.2 or 8.3 The codebase uses str_contains(), named arguments, and match expressions throughout. PHP 7.x will fatal on activation.
Memory Limit 256 MB 512 MB The always-loaded module set is ~6 MB of PHP source. GenieScout import holds full API payloads + WP post arrays simultaneously. CRM templates reach 188 KB per file.
max_execution_time 120s 300s Off-market scan steps, nightly scout refresh, and ListingGenie CMA generation all run long. WP-Cron jobs inherit this limit.
max_input_vars 3,000 5,000 The Genie Settings page and Field Config screens POST large form payloads. Default 1,000 will silently truncate saves.
upload_max_filesize 64 MB 128 MB Required for .mlsgpack boundary pack uploads and social media image processing.
post_max_size 64 MB 128 MB Must be equal to or greater than upload_max_filesize.

PHP Extensions

Requirement Minimum Recommended Notes
sodium (libsodium) Required Required Used by MLSG_Crypto for authenticated encryption of all API credentials at rest. Plugin will not activate without this.
curl Required Required All outbound API calls — MLS data, property data, AI, license validation.
json Required Required Used throughout for API request/response handling.
mbstring Required Required Address normalisation and string operations on MLS data.
zip Required Required GenieLayers .mlsgpack boundary pack installation.
gd or imagick Required imagick PWA icon generation and social media image processing. imagick preferred for better quality.
opcache Required Required 256 PHP files load on every request. Without OPcache, parse time will dominate every page load. Configure with ≥128 MB and validate_timestamps=0 in production (clear on deploy).

MySQL / MariaDB

Requirement Minimum Recommended Notes
MySQL Version MySQL 5.7 / MariaDB 10.3 MySQL 8.0 / MariaDB 10.6 MLS Genie™ creates 29 custom tables with indexed foreign-key patterns. MySQL 8.0 window functions are on the roadmap.
max_allowed_packet 64 MB 128 MB Trestle API responses and property data payloads are written to transients in wp_options. Default 16 MB causes silent write failures on large imports.
Storage Engine InnoDB InnoDB All custom tables use InnoDB. MyISAM is not supported.
Character Set utf8mb4 utf8mb4 Required for full Unicode support in listing descriptions and agent names.
Disk Space (Database) 5 GB 20 GB A mature AOR import with full history, send log, chat history, and commission records will exceed 2–3 GB in the database alone. Allow growth room.

Web Server & SSL

Requirement Minimum Recommended Notes
Web Server Nginx or Apache Nginx Nginx preferred. Apache with mod_rewrite is supported. Standard WordPress rewrite rules apply — no special MLS Genie™ config required.
SSL / HTTPS Required Required The PWA, SSO flows, reCAPTCHA, and license validation all require HTTPS. HTTP-only deployment is not supported.
HSTS Recommended Enabled Enable Strict Transport Security via your server config or security plugin on go-live.
Disk Space (Files) 10 GB 20 GB Ghost photo attachments store CDN URLs rather than local files, so media storage is minimal. Space is dominated by the database and WordPress core.

Caching & Performance

Requirement Minimum Recommended Notes
Object Cache (Redis) Optional Required MLS Genie™ makes 121 set_transient / get_transient calls across the codebase. Without Redis these all hit wp_options and become a write bottleneck under concurrent load.
WP-Cron System cron System cron 29 cron hooks registered: nightly scout refresh, off-market scanning, client alerts, drip campaigns, task reminders, and more. "WP-Cron fires on page load" is not sufficient — a real system cron calling wp-cron.php every 5 minutes is required.
CDN Optional Recommended A CDN in front of static assets (CSS, JS, images) will meaningfully reduce TTFB on listing archive and property detail pages.

Outbound HTTP

Requirement Minimum Recommended Notes
MLS Data (Trestle) Required Required Nightly import, refresh, and live field validation all require outbound HTTPS to the Trestle OData API.
Property Data (ATTOM) Required Required Property Intelligence, ListingGenie CMA, and Comps all call the ATTOM API server-side.
Genie AI (Anthropic) Required Required The Genie AI Help Chat calls the Anthropic API. Firewall rules must allow outbound to api.anthropic.com.
GenieLayers (Overpass) Required Required Boundary data for GenieLayers overlays is fetched from the Overpass API (OpenStreetMap). .mlsgpack packs can substitute for this.
reCAPTCHA (Google) Required Required GenieForms uses Google reCAPTCHA for spam protection. Required if GenieForms is active.
License Validation Required Required Periodic license checks call mlsgenie.com. Blocking this will deactivate the plugin.

Quick-reference checklist

PHP 8.1 minimum, 8.2+ recommended

sodium, curl, json, mbstring, zip, gd/imagick extensions enabled

memory_limit = 512M

max_execution_time = 300, max_input_vars = 3000 or higher

MySQL 8.0 / MariaDB 10.6, InnoDB, utf8mb4

max_allowed_packet = 64M minimum

OPcache enabled with ≥ 128 MB

validate_timestamps=0 in production, clear on every deploy

Redis object cache via WP Redis or Predis

Moves all 121 transient calls off wp_options

System cron every 5 minutes

Calling wp-cron.php on a schedule — not relying on page-load triggering

HTTPS enforced, HSTS enabled

HTTP-only is not supported

Outbound HTTPS unrestricted

Trestle, ATTOM, Anthropic, Overpass, Google, mlsgenie.com