{{ t(currentTitle) }}
{{ t('Normalize IDX content, cache it and publish clean JSON APIs.') }}
{{ t('Sources') }}
| {{ t('Name') }} | {{ t('Type') }} | Status | {{ t('Last sync') }} | |
|---|---|---|---|---|
| {{ source.name }} | {{ source.type }} | {{ source.is_disabled ? t('Inactive') : source.status }} | {{ source.last_synced_at || '-' }} |
{{ t('Listings') }} ({{ listingTotal }})
Übersetzung{{ translationNotice }}
{{ selectedListingIds.length }} ausgewählt
{{ money(listing.price, listing.currency) }}
{{ t('Published') }}
{{ sourceLabel(listing) }}
{{ listing.address_line }} {{ listing.postal_code }}
{{ listing.city }} · {{ listing.property_type }} · {{ listing.status }}
Seite {{ listingPage }} von {{ listingPageCount }}
{{ t('Users') }}
{{ auth.newTotpUri }}
{{ t('Reset link') }}
{{ auth.resetLink }}
{{ t('Mail sent') }}: {{ auth.resetSentByMail ? t('Active') : t('Inactive') }}
{{ t('Logged') }}: {{ auth.resetLogged ? t('Active') : t('Inactive') }}
{{ t('Log file') }}: {{ auth.resetLogPath }}
| {{ t('Name') }} | 2FA | Status | ||
|---|---|---|---|---|
| {{ user.name }} | {{ user.email }} | {{ user.totp_enabled == 1 ? t('Active') : t('Inactive') }} | {{ user.active == 1 ? t('Active') : t('Inactive') }} |
{{ t('API access') }}
{{ t('Password') }}{{ auth.newApiPassword }}
| {{ t('Name') }} | Username | Status | {{ t('Last sync') }} | |
|---|---|---|---|---|
| {{ client.name }} | {{ client.username }} | {{ client.active == 1 ? t('Active') : t('Inactive') }} | {{ client.last_used_at || '-' }} |
{{ t('Plugins') }}
| {{ t('Name') }} | {{ t('Capabilities') }} | Quellsprache | Status | ||
|---|---|---|---|---|---|
| {{ plugin.name }}{{ plugin.version }} | {{ plugin.capabilities.join(', ') }} | – | {{ plugin.enabled ? t('Active') : t('Inactive') }} |
{{ t('Sync logs') }}
| {{ t('Source') }} | Status | {{ t('Message') }} | {{ t('Created') }} |
|---|---|---|---|
| {{ log.source_name }} | {{ log.status }} | {{ log.message }}Diagnose anzeigen{{ JSON.stringify(log.context, null, 2) }} |
{{ log.created_at }} |
Wichtige REST-Endpunkte
Alle Endpunkte liefern JSON. Verwaltungs-Endpunkte benötigen eine angemeldete Sitzung.
| Methode | Endpunkt | Verwendung |
|---|---|---|
GET | /api/listings | Öffentliche Objektliste; Filter und Sprache sind als Query-Parameter möglich. |
GET | /api/listings/{id} | Ein einzelnes Objekt. |
GET | /api/{lang}/listings?after_id=0&limit=25 | Übersetzte Objektliste in de, en oder es. Maximal 25 Objekte je Cursor-Batch; die Übersetzung wird dabei erzeugt und gecacht. |
GET | /api/sources | Verwaltete Quellen. |
POST | /api/sync/{sourceId} | Synchronisiert eine Quelle; unterstützt cursor und batch_size. |
GET | /api/sync-logs | Synchronisationsprotokoll. |
GET | /api/plugins | Installierte Plugins und Fähigkeiten. |
Plugin-Hilfe
Quellen-Typen werden durch aktivierte Plugin-Fähigkeiten wie source:inmo_html bereitgestellt. Deaktivierte Plugins stehen neuen Quellen nicht zur Verfügung.
Keine Plugins geladen.
{{ plugin.name }} v{{ plugin.version }}
{{ plugin.enabled ? t('Active') : t('Inactive') }}
Fähigkeiten: {{ (plugin.capabilities || []).join(', ') || '–' }}
Für diesen Quellentyp eine Quelle anlegen, URL hinterlegen und anschließend synchronisieren.