The platform tree
Everything sits in one database. A user is a buyer by default. Choosing an agency or agent account links that user to an agency, and every property points back to the agent who manages it and the agency that owns the team.
- Agents.ma platformone database, three account types
- Buyers and sellersusers · account_type empty
- Save listingssaved_property_ids
- Contact an agentWhatsApp / contact form
- Agencyusers · account_type = agency
- Invite agents by emailagent_invitations · pending → accepted
- Agents of the agencyusers · account_type = agent · agency_id
- Own propertiesproperties · user_id = agent
- Agency propertiesproperties · agency_id = agency
- Public property layerproperties · active = true
- Search, categories, tagscategory_id · tag_id · neighborhood
- Map of areasmap_areas · polygons on the map page
- Market data & market listingsmarket_listings · external sources
From agency to public listing
This is the path one listing takes through the system. Each step maps to a table in the database.
-
1
Agency signs up
Account with account_type = agency. The agency becomes the owner of its team and its listings.
-
2
Agency invites agents
An invitation row is created in agent_invitations with the agent email and status pending.
-
3
Agent accepts
The agent account gets account_type = agent and agency_id pointing to the agency. Invitation becomes accepted.
-
4
Agent creates a property
The property row stores user_id (the agent) and agency_id (the agency), so both appear on the listing.
-
5
Property goes public
When active = true it shows on search, category pages, the map and the agent and agency profile pages.
-
6
Lead comes in
A visitor contacts the professional on the listing by WhatsApp. The property keeps the agent and the agency it is linked to, so both are shown on the card.
Roles in short: an agency manages its team and can edit the properties linked to its agency ID. An agent can only edit properties where they are the owner (user_id). Buyers and sellers never edit listings; they only save them and contact the agent.
What a property record holds
These are the field groups of a property in the current database. A future MLS record would use the same groups, with a few extra fields for legal identity and mandate.
slug · title · description · content_htmlprice · compare_price · currency handled in the approoms · bathrooms · floors · area_sqmneighborhood · location · map area polygonimage_url · galleryuser_id (agent) · agency_id (agency)active · featured · badge · tag_id · category_idsource_url (imported listings) · created_at · updated_atHow a multiple listing service (MLS) would work in Morocco
An MLS is one shared database of listings that member agencies feed and use together. Each listing is entered once, checked, shared with all members, then tracked until it closes. Below is a version that fits Morocco's market, where there is no mandatory agent card yet and the land registry is already digital.
1. Data sources
Official title deeds, ownership records and the Real Estate Asset Price Index (IPAI), built with Bank Al-Maghrib from ANCFCC data.
Sale deeds and closing data. Notaries got online access to land documents in January 2024.
Exclusive or shared mandates, asking prices, photos, visit reports. The core of the MLS.
Off-plan units, price lists and availability by phase.
Listing feeds (where the portal allows it) for market coverage. Already in the platform as market_listings.
Financing status and valuations, returned to the MLS as offer data.
2. MLS core: one shared record per property
Every listing has a single ID. Duplicates are blocked by the title deed reference and the commune plus address.
3. Listing life cycle
4. Who sees and changes what
| Role | What they do | Access |
|---|---|---|
| Member agency | Creates and shares listings, sees all shared listings, reports closings. | Read shared · write own |
| Agent | Works under an agency. Edits own listings. Cannot change the mandate. | Read shared · write own |
| Mandate holder | Owner of the exclusive mandate on a property. Sets the price and the publication rules. | Decides publication |
| Notary and bank | Reads verified closing and financing status. No edit rights. | Read verified only |
| Public visitor | Sees active, published listings with the verified badge. No contact data of the seller. | Read public only |
| MLS administrator | Runs membership, rules, data quality checks and the statistics. | Full admin, audited |
5. Outputs
shared feed and search
verified listings only
closing and financing data
price index by commune
6. Rollout in three phases
Phase 1 · 0 to 3 months
Shared listing pool between member agencies on the Agents.ma database, with verified badge and manual checks.
Phase 2 · 3 to 6 months
Land registry checks through the ANCFCC channel, duplicate detection, standard fields and a public statistics page.
Phase 3 · 6 to 12 months
Closing data from notaries, price index by commune, feeds for portals and banks, and an API for members.
Why Morocco needs this: there is no shared listing standard and no mandatory agent card. Each portal and agency keeps its own inventory, so the same flat can appear several times at different prices, and closed prices are hard to see. The land registry and notaries already hold the closing data an MLS needs; the missing piece is a shared, verified listing layer.
The numbers behind the MLS case
Figures from public sources, collected with web search. Company figures are self-reported by the companies; check them before using them in a pitch.
The legal context
- Morocco has no mandatory professional card for real estate agents yet. Anyone can call themselves an agent.
- A national registry of agents exists (about 1,312 agents recorded), and a card is announced but not in force.
- Draft law 36.17 on agent status has been in the legislative process since 2014.
- The land registry (ANCFCC) plans a blockchain platform that brings sellers, buyers, notaries and the tax office onto one space (announced December 2024).
Sources
- Agenz, about us (network size, visits, verified listings): https://agenz.ma/en/about-agenz
- Domio, owners page (10,561 listings, 44 cities): https://domio.ma/en/owners
- Coraly.ai GPPI, Morocco real estate portal market (IPAI Q4 2024): https://coraly.ai/gppi/markets/morocco
- Launchbase Africa, Yakeey and IFC backing (Oct 2025): https://launchbaseafrica.com/2025/10/16/moroccan-proptech-yakeey-in-line-for-7m-ifc-backing-to-overhaul-real-estate-market/
- REMAX, REMAX Morocco opens in Casablanca (Oct 2025): https://news.remax.com/remax-morocco-opens-in-casablanca-real-estate-market-heats-up
- Médias24, online consultation of land documents for notaries (Jan 2024): https://medias24.com/2024/01/17/documents-fonciers-la-consultation-en-ligne-desormais-ouverte-aux-notaires
- Médias24, ANCFCC blockchain platform (Dec 2024): https://medias24.com/2024/12/06/conservation-fonciere-bientot-une-nouvelle-plateforme-basee-sur-la-blockchain
- ANCFCC, IPAI Q2 2024 (price index by city): https://www.ancfcc.gov.ma/media/ipai/ipai-t2-2024-fr.pdf
- MarocPresse, a law to supervise real estate agents (Mar 2025): https://marocpresse.com/une-loi-pour-superviser-les-agents-immobiliers
- Bladi.net, Morocco: a law to frame real estate agents (Mar 2025): https://www.bladi.net/maroc-loi-encadrer-agents-immobiliers%2C113847.html
- Le360, real estate intermediation regulation still pending: https://fr.le360.ma/economie/intermediation-immobiliere-la-reglementation-du-secteur-se-fait-toujours-attendre_FHLBDDWMDVGRHHEZMTANJWYAQ4
- L'Opinion, a professional card for real estate agents coming (Oct 2023): https://lopinion.ma/fr/actu-maroc/bientot-une-carte-professionnelle-pour-les-agents-immobiliers_a22626
This page describes a design, not a live service. The MLS is a proposal. Before building it, check the rules on data use with the land registry (ANCFCC) and the personal data law (Law 09-08).