Node SDK
Offizieller TypeScript-Client für Listings API ohne Abhängigkeiten, mit automatischer Paginierung und integrierten Typdefinitionen für Node 18+.
listingsapi-js ist der offizielle Node.js/TypeScript-Client für Listings API v4. Er verwaltet Standorte, Verzeichniseinträge, Bewertungen, Beiträge, Fotos und Profilanalysen über einen einzigen Client mit flacher Struktur und bietet standardmäßig cursorbasierte Paginierung, automatische ID-Kodierung, integrierte Wiederholungsversuche und typisierte Fehler.
Installieren
npm install listingsapi-jsAuthentifizieren
Erstellen Sie Ihren API-Schlüssel unter API Keys → New key im Listings API-Entwickler-Dashboard.
import { ListingsAPI } from 'listingsapi-js'; const client = new ListingsAPI(); // reads LISTINGSAPI_KEY from envconst explicit = new ListingsAPI({ apiKey: 'your-api-key' }); // or pass it directlyDer Konstruktor akzeptiert außerdem baseUrl (Standardwert https://listingsapi.com), timeout (Standardwert 240000 ms) und maxRetries (Standardwert 2). Siehe Konfiguration.
Kurzes Beispiel
import { ListingsAPI } from 'listingsapi-js'; const client = new ListingsAPI(); const result = await client.fetchAllLocations({ first: 5 });if (!Array.isArray(result)) {for (const location of result.locations) { console.log(location.name, '--', location.city);}}Ressourcen
Alle Methoden sind auf der Client-Instanz verfügbar:
Die Social API – Marken, verbundene Social-Media-Konten und Beiträge auf Facebook, Instagram, X, LinkedIn und Pinterest – wird von diesem SDK noch nicht unterstützt; rufen Sie sie direkt gemäß der Social REST-Referenz auf.
Paginierung
Methoden, die Listen zurückgeben, unterstützen cursorbasierte Paginierung.
// Single pageconst page = await client.fetchAllLocations({ first: 25 });if (!Array.isArray(page)) {console.log(page.locations); // Location[]console.log(page.pageInfo); // { hasNextPage, hasPreviousPage, startCursor, endCursor } // Next pageif (page.pageInfo.hasNextPage) { const next = await client.fetchAllLocations({ first: 25, after: page.pageInfo.endCursor!, });}} // Auto-paginate: returns a flat Location[]const all = await client.fetchAllLocations({ fetchAll: true, pageSize: 100 });searchLocations und fetchInteractions folgen demselben Muster: standardmäßig ein Seitenobjekt, mit fetchAll: true ein flaches Array.
ID-Kodierung
Sie können überall numerische Standort-IDs übergeben: Das SDK kodiert sie automatisch mit Base64. Bereits kodierte IDs werden unverändert akzeptiert, und die Kodierungsfunktion wird exportiert, falls Sie sie selbst benötigen.
import { encodeLocationId } from 'listingsapi-js'; // These are equivalentawait client.fetchPremiumListings(16808);await client.fetchPremiumListings('TG9jYXRpb246MTY4MDg='); encodeLocationId(16808); // 'TG9jYXRpb246MTY4MDg='Fehlerbehandlung
Jeder SDK-Fehler ist von ListingsAPIError abgeleitet. Bei API-Fehlern wird APIError oder eine seiner Unterklassen ausgelöst, unabhängig davon, ob die Plattform sie als HTTP-Status oder im Body einer HTTP-200-Antwort meldet (ungültige Tokens und die Validierung von Schreibvorgängen werden als errors[]-Payloads übermittelt, und Schreibvorgänge können success: false melden). Das SDK löst in all diesen Fällen eine Ausnahme aus, sodass Sie success-Flags nie selbst prüfen müssen. Bei Netzwerkfehlern wird APIConnectionError ausgelöst.
Jede Instanz von APIError enthält statusCode, responseBody, code (den ersten Plattformfehlercode, e.g. "SY10005") und errors (jeder Eintrag auf { code, message, context } normalisiert).
import { ListingsAPI, APIError, RateLimitError } from 'listingsapi-js'; const client = new ListingsAPI(); try {await client.fetchAllLocations();} catch (error) {if (error instanceof RateLimitError) { console.log(error.retryAfter); // seconds to wait} else if (error instanceof APIError) { console.log(error.statusCode); // 401, 404, 500, or 200 for payload-level errors console.log(error.code); // first platform code, e.g. 'SY10005' console.log(error.errors); // [{ code, message, context }, ...]}}Bei 429- und 5xx-Antworten wiederholt der Client die Anfrage automatisch (standardmäßig 2 Versuche, unter Berücksichtigung von Retry-After). Beispiele für Wiederholungsversuche und Hinweise zu Statuscodes finden Sie unter Fehlerbehandlung.
Nächste Schritte
- Installation: Versionen festlegen, ESM im Vergleich zu CJS
- Schnellstart: Ihr erstes funktionsfähiges Skript
- Konfiguration: Basis-URL überschreiben und TypeScript einrichten
- Anwendungsfälle: zehn vollständige Anleitungen
- Standorte, Bewertungen, Einträge, Analysen