How agencies import a CRM catalog into Seeki.eu
Founder of Seeki.eu. Writes about buying, renting and selling across European property markets, drawing on the portal's own listings data.
Last reviewed: 2026-08-11
Your CRM already holds every property your agency manages, with the photos, the prices and the descriptions in it. Putting that catalog on another portal usually means an operations person retyping it listing by listing, or a developer guessing at a feed spec nobody wrote down. This is what the route onto Seeki.eu actually looks like, from a CRM export to listings that buyers across Europe can find.
What does an agency actually have to do to onboard?
Five steps, and only one of them takes real work.
- Start the subscription first. An API key is issued against an active subscription: the dashboard will not mint a key before you have one, and the import API turns away a key whose subscription has since lapsed. There is a single plan, so there is nothing to size or negotiate. What it includes is set out on the agencies page.
- Generate an API key. The dashboard shows the full key exactly once at creation and keeps only a hash of it, so put it in your secret store before you close the dialog. Keys can be rotated or revoked later from the same screen.
- Map your CRM export to a supported format. Three are accepted: the Seeki.eu JSON schema, documented field by field; OpenImmo, as plain XML or as a zip that bundles the XML with the photo files; and Idealista XML-ML. If your system already emits one of them, this step is mostly configuration.
- Send the catalog to the import API at ingest.seeki.eu. Large catalogs go as a series of batches rather than one enormous file.
- Watch the imports screen. Every listing gets its own row with its current state, the reason if it failed, and a retry that does not need the whole feed sent again.
Step 3 is where the effort sits. Steps 4 and 5 run on our side.
What happens to a listing after it arrives?
A listing does not appear on the portal the instant your request completes. Each item is handled separately and asynchronously: it is validated, its address is resolved to a point on the map, its derived fields are calculated, it is written into the catalog, and it is scored. A problem at any of those stages marks that one item failed with a specific reason and leaves the rest of the batch running.
In practice the failures cluster in two places. The first is a missing required field, caught by the schema before anything else happens. The second is location: an address that cannot be resolved to a point, or coordinates that land outside the listing's own country. Both are upstream data problems, both name themselves in the dashboard, and both can be fixed in the CRM and retried without re-sending the feed.
Every listing that lands also gets a listing grade and a location score, the two signals buyers can filter and sort on. What those two numbers measure is worth ten minutes of an operations lead's time, because the grade responds directly to the quality of your export: how many fields you fill, how many photos you send and how substantial the description is all move it.
How long does an imported listing stay live?
Sixty days from its most recent successful import. A daily job unpublishes anything past that point, and the dashboard flags the listings due to expire within the next week before it happens.
That one rule shapes the integration more than anything else on this page. Re-sending a listing refreshes its life even when nothing about it has changed, so the pattern to build is a nightly re-sync of your active inventory, not a one-time bulk upload. An agency that imports once and never again watches its catalog quietly drain after two months.
It also gives you a second, softer way to retire a property: stop including it in the re-sync and it lapses on its own.
Manual entry or API import: which fits your agency?
Two real routes onto the platform, suited to very different scales.
| Approach | Setup effort | Best for | Scales to |
|---|---|---|---|
| Manual entry in the dashboard | None. Sign in and start typing. | A handful of premium properties, or an agency trying the platform before wiring anything up | Tens |
| Feed or API import | A morning of integration work, less if your CRM already emits OpenImmo or Idealista XML | An agency with a CRM, frequent price and status changes, or inventory in more than one country | Thousands, sent in batches |
The choice is usually pragmatic. If your system already exports OpenImmo, or you have a developer who can produce our JSON, the API is the cheapest place to land and the only one that survives a nightly refresh. A boutique with a dozen premium properties is better off entering them by hand and spending the saved morning on the photography, which moves buyer interest more than the plumbing does.
What does the imports dashboard actually show?
The overview screen carries the counts an operator runs the day on: listings live, imports still in flight, imports failed, and listings expiring within the week. Underneath it, the imports screen lists every item with the external ID your CRM uses, its state, an error code and a plain-language message when something went wrong, filterable so you can pull up only the failures.
Open a row and you get the payload we received alongside the error, which is usually enough to separate a data problem in the CRM from a mapping problem in the export. Failed rows carry a retry that re-queues that single item. There is no need to re-upload a whole feed because of a handful of bad records.
Why put a domestic catalog on a pan-European portal?
Because your buyer may not live in your country or search in your language. A catalog that exists only on a national portal reaches the people already searching there, in that language, and stops. Seeki.eu is one portal for the whole continent: a listing's title and description read in the language the visitor is browsing in, the price shows in the currency they pick, and it sits in the same result set as homes on the other side of the border for anyone comparing markets.
The reach extends past the website too. Buyers who search through an AI assistant can reach the catalog from inside ChatGPT and Claude, with no account and no configuration on your side. If you are weighing where an agency's inventory should sit, our survey of the main property websites in Europe lays out what each type of portal is actually good at.
What does the subscription cover?
One plan: €99 a month, or €990 a year, which works out two months cheaper. Unlimited listings, cancel whenever you like. There is no per-listing fee on top of it, no credit bundle to buy down, and no throughput tier to negotiate before you start.
One consequence is worth knowing before you sign up rather than after. If a subscription is canceled or paused, that agency's published listings come down with it, and reactivating puts them back. An invoice that is merely late does not do this: while a payment is past due, imports keep working and listings stay up. Billing state, the current period end and the invoices all live on the billing screen in the dashboard, handled through Stripe's own customer portal.
Frequently asked questions
Which feed formats can I send?
Three. The Seeki.eu JSON schema is ours: a flat, documented shape covering the listing fields and the photo URLs. OpenImmo, the XML standard most German-speaking systems export, is accepted either as plain XML or as a zip bundling the XML with the photo files. Idealista XML-ML is accepted for Spanish and Portuguese systems whose export already speaks it. The API reference carries the full field list.
How are duplicates handled?
A listing is identified by your agency plus the external ID your CRM already uses for it. Re-sending that same external ID updates the existing record instead of creating a second one, and refreshes its 60-day life at the same time. That is what makes a nightly full re-sync safe: you need no deduplication logic of your own, and re-sending an unchanged listing costs you nothing.
Can I update listings in bulk?
Yes, and there is nothing separate to call. Creating and updating are the same operation: re-send a listing with changed fields and the live record is refreshed. Send only the subset that changed and the listings absent from that batch are left alone, with one caveat worth repeating, which is that a listing you stop sending also stops having its 60-day life refreshed.
How do I take a listing down?
Two ways, and neither is a status flag in the feed. Pause it from the listings screen in the agency dashboard, which takes it out of search and can be undone as easily; or stop including it in your re-sync and let its 60-day life run out on its own. If a property has sold and you want the page gone today, pause it.
Can an agency outside the EU import European inventory?
Yes. Where your agency is headquartered is not checked. What matters is that the property sits in one of the European markets we cover and that its address resolves to a point inside its own country. A brokerage in London or New York holding Spanish or Czech inventory uses exactly the same integration. Your own tax and contractual structure stays your responsibility; our contract is for the listing service.
How quickly does an imported listing go live?
Each item is picked up on its own as soon as it arrives rather than waiting for a nightly rebuild, so a listing is normally searchable shortly after the batch is accepted. Its title and description are translated on demand for buyers browsing in another language, which means it is findable in its source language from the start and reads in the visitor's language the moment they open it.
What happens to my listings if I cancel?
They are unpublished along with the subscription, and they come back if you reactivate. A late payment is treated differently: while an invoice is past due, imports keep working and published listings stay up. Nothing is deleted when a subscription ends, so reactivating restores the catalog rather than making you re-import it.
Next steps
If your agency is ready, the path is short: start the subscription, generate a key, send a small test batch from a real CRM export, watch it land in the dashboard, then turn on the nightly feed. We deliberately keep the distance between "I have an export" and "the listings are live across Europe" as short as it can be, and the platform's job is to absorb the operational complexity rather than hand it back to you.
The agencies page covers what the subscription includes, and the API reference covers the field list, the error codes and the interactive console your developer will want open on the first morning.
