Skip to main content

How agencies import a full CRM catalog into Seeki

Seeki Editorial

Last reviewed: 2026-04-14

Agencies can move an entire CRM catalog onto Seeki through the ingest API. Generate a key in the agency dashboard, send a batch of listings in a supported format, and each listing is processed and published across the European markets we serve, without writing custom code. The dashboard shows progress per item, surfaces any failures, and lets you retry without re-uploading the whole batch.

This is the orientation we wish more agency operations leads had when they first looked at Seeki. It walks through what the import actually looks like from "we have thousands of listings in a CRM" to "they are live on the portal in every language we serve", and covers what to expect at each step.

The 5-step onboarding

  1. Get an API key. Sign in to the agency dashboard and provision a key under API keys. The key is scoped to your agency.
  2. Format the payload. Map your CRM export to a supported feed format. We accept Seeki-JSON (our canonical schema), OpenImmo (the European OASIS standard widely used by DACH CRMs), and Idealista XML-ML (common in Spain and Portugal).
  3. Send the batch. Post the file to the ingest API. Very large catalogs are sent in chunks.
  4. Monitor the imports dashboard. Each listing has its own row with live status, error reason on failure, and a retry button.
  5. Listings publish. When a listing finishes processing, it goes live across all supported languages and is searchable in the country pages and the AI search bar.

Most of the work is in step 2. Steps 3 to 5 run on Seeki's side.

What happens after a listing arrives

A listing does not appear on the portal the moment your POST returns 200. Each item is validated, enriched with derived data, scored, and published asynchronously. Most listings finish in seconds. If a listing has a fixable problem (a missing required field, a photo URL that does not load, an address we cannot place on the map), it is marked failed in the dashboard with the specific reason, and the rest of the batch continues.

You do not need to know what runs under the hood. What you do need to know is that the dashboard tells you exactly where each listing is, and that fixing one bad record does not require re-uploading the whole feed.

Manual entry, web import, and API ingest

Three ways for an agency to publish on Seeki, suited to very different scales.

ApproachSetup effortTime per listingBest forScales to
Manual entryNone, just log in and start10 to 20 minutesA handful of premium listings, agencies testing the platformTens
Web import (paste / upload)Low, one-time mappingSeconds per listingMid-size agencies without a developer on handHundreds to a few thousand
API ingestA morning of integration workSub-second per listingAgencies with a CRM, frequent updates, multi-country inventoryTens of thousands

The decision is usually pragmatic: if your CRM already exports in OpenImmo or you have a developer who can produce Seeki-JSON, the API path is the cheapest place to land. If you are running a boutique with a few dozen premium listings, manual entry is fine.

What the imports dashboard shows you

The dashboard is where an agency operator spends most of their time after the first batch. Each import is summarised at the top (total items, succeeded, in progress, failed), and the per-listing table below tells you exactly what is happening to every record. Filter to failed, scan the reason column, fix the upstream data, and hit retry on the affected rows. There is no need to re-upload the whole feed for a handful of bad records.

When a listing publishes, the row links directly to the public page so you can verify how it renders in your target language.

Manage your imports here once you have a key provisioned.

Subscription and access

API ingest is a paid agency feature. Onboarding includes a Stripe-backed subscription step: you pick a tier, enter card or invoice details, and your API key becomes active. Subscriptions are billed monthly with the option of annual prepayment. If a subscription lapses, ingest is paused. Existing listings remain published, but new imports are rejected until billing is current. The agency dashboard shows the current plan, usage, and any renewal warnings on the overview screen.

There is no per-listing fee on top of the subscription. Throughput depends on tier. If you genuinely need very high concurrent throughput, talk to us before signing up so we can size the right plan.

Frequently asked questions

What payload format is supported?

Three formats. Seeki-JSON is our canonical schema, a flat, well-documented JSON covering all listing fields and photo URLs. OpenImmo (the European OASIS standard widely used by DACH CRMs) is accepted as XML or as a zip bundle that includes the XML and the photo files. Idealista XML-ML is accepted for Spanish and Portuguese agencies whose CRM already speaks that dialect. The dashboard's API keys section links to the full schema reference and an interactive playground.

How are duplicates handled?

Listings are identified by your agency ID plus the listing's external ID, the identifier your CRM already uses. When you re-send a listing with the same external ID, Seeki treats it as an update, not a new listing. This means routine catalog refreshes (daily, hourly, or whenever your CRM emits a change) work without any deduplication logic on your end.

Can I update listings in bulk?

Yes. The ingest endpoint is the same for create and update. Re-sending a listing with changed fields refreshes the live record. If you only want to update a subset, send only those listings, and Seeki will not touch listings absent from the batch. To remove a listing, mark it inactive in your CRM and emit it with a sold or withdrawn status. It will be archived from search.

What about non-EU agencies with EU inventory?

The API does not check where your agency is headquartered. What it checks is whether the listing's country is one of the European markets Seeki serves. An agency in London or New York that holds Spanish or Czech inventory can use the same ingest endpoint. Tax and contractual structure on your end is your responsibility. Seeki's contract is for the listing service.

How fast do new listings show up?

A listing typically finishes processing in seconds. The total time from your POST to the listing being publicly searchable depends on batch size and current load, but small batches are usually published end to end in under a minute per listing. Translations into other languages are generated on first view, so a listing is fully searchable in its source language immediately and appears in translated form the first time someone opens it in another locale.

What if a listing fails validation?

It is marked failed in the dashboard with the specific reason: missing required field, photo URL not reachable, price below plausibility threshold, and so on. The rest of the batch continues. Fix the data in your CRM, re-export, and either resubmit the whole batch or retry the failed rows from the dashboard. There is no penalty for retries, and the deduplication on external ID prevents accidental duplicates.

Next steps

If your agency is ready, the path is short: provision a key, send a small test batch from a CRM export, watch it land in the dashboard, then turn on the full feed. We deliberately keep the smallest possible distance between "I have a CSV" and "the listings are live across Europe". The platform's job is to absorb the operational complexity, not pass it back to you.

When you are ready to move, the onboarding page walks through provisioning, payment, and the first import in one flow.