Länder, Bundesstaaten und Kategorien nachschlagen

Prüfen Sie vor der Standorterstellung unterstützte Länder, Bundesstaatencodes und Plattformen Ihres Tarifs und ermitteln Sie die numerische Kategorie-ID.

Zum Erstellen eines Standorts sind drei Werte erforderlich, die aus der API stammen müssen: von der API akzeptierte Werte für countryIso und stateIso, ein numerischer Wert für subCategoryId und, wenn Sie die Plattformen einschränken möchten, die Website-IDs in Ihrem Tarif. Drei Katalogendpunkte liefern diese Werte. Alle drei geben ein einfaches Array ohne Paginierung zurück.

1. Länder und Bundesstaatencodes auflisten

GET /countries gibt jedes unterstützte Land mit seinem ISO-Code, einem hasCity-Flag und einem states-Array zurück. Die iso-Werte werden beim Erstellen und Aktualisieren für countryIso und stateIso verwendet. Das Python SDK stellt dies als client.countries() und das Node SDK als client.fetchCountries() bereit.

Countries
curl https://listingsapi.com/api/v4/countries \-H "Authorization: API $LISTINGSAPI_KEY"
JSON
{  "data": {    "supportedCountries": [      {        "databaseId": 13,        "iso": "AU",        "name": "Australia",        "hasCity": true,        "states": [          { "id": "139", "iso": "VIC", "name": "Victoria" },          { "id": "142", "iso": "NSW", "name": "New South Wales" }        ]      },      {        "databaseId": 17,        "iso": "BE",        "name": "Belgium",        "hasCity": true,        "states": []      }    ]  }}

hasCity: true bedeutet, dass city beim Erstellen erforderlich ist; bei false wird eine von Ihnen übermittelte Stadt verworfen. stateRequired: true bedeutet, dass stateIso erforderlich ist und einem der states-Werte des Landes entsprechen muss; bei false lassen Sie diesen Wert weg. hasPostalCode: true bedeutet, dass das Land Postleitzahlen verwendet. Senden Sie daher postalCode zusammen mit der Adresse. Der Länderendpunkt erläutert jedes Flag.

2. Eine Kategorie-ID ermitteln

GET /sub-categories gibt den vollständigen Kategorienkatalog zurück. Der Wert, den Sie als subCategoryId senden, ist databaseId, also die Ganzzahl, und nicht der Base64-Wert id. Für Restaurants ist dies beispielsweise 1432. Filtern Sie die Liste in Ihrem eigenen Code nach Namen; es gibt keinen serverseitigen Suchparameter.

Find a category
curl https://listingsapi.com/api/v4/sub-categories \-H "Authorization: API $LISTINGSAPI_KEY" \| jq '.data.subcategories[] | select(.name | test("restaurant"; "i")) | {databaseId, name, primary}'
JSON
{  "data": {    "subcategories": [      {        "databaseId": 1432,        "id": "U3ViQ2F0ZWdvcnk6MTQzMg==",        "key": "restaurants",        "name": "Restaurants",        "primary": true      }    ]  }}
FeldVerwendungszweck
databaseIdDie Ganzzahl, die als subCategoryId oder innerhalb von additionalCategoryIds für bis zu 9 sekundäre Kategorien gesendet werden soll.
nameDie lesbare Bezeichnung zur Anzeige in einem Auswahlfeld und zum Abgleichen.
keyEin URL-tauglicher Slug des Namens, der bei Umbenennungen unverändert bleibt.
primaryGibt an, ob die Kategorie die primäre Unterkategorie eines Standorts sein darf. Wählen Sie für subCategoryId nur Einträge mit true aus.

3. Prüfen, welche Plattformen Ihr Tarif abdeckt

GET /plan-sites listet jede Plattform in Ihrem Tarif mit einem numerischen id, einem url, den akzeptierten Ländern und den Ländern auf, in denen sie hideAddress berücksichtigt. Diese IDs sind die einzigen gültigen Werte für enabledSiteIds beim Erstellen und submissionDisabledSiteIds beim Aktualisieren. Filtern Sie nach dem Land des Standorts, damit Sie nur Plattformen anbieten, die den Standort akzeptieren.

Plan sites
curl https://listingsapi.com/api/v4/plan-sites \-H "Authorization: API $LISTINGSAPI_KEY" \| jq '.data.planSites[] | select(.supportedCountries | index("US")) | {id, name, url}'
JSON
{  "data": {    "planSites": [      {        "id": 1,        "name": "Google Maps",        "url": "maps.google.com",        "supportedCountries": ["US", "CA", "IN", "GB", "DE"],        "hideAddressSupportedCountries": ["US", "CA", "AU", "IN", "GB"]      },      {        "id": 2,        "name": "Yelp",        "url": "yelp.com",        "supportedCountries": ["US", "CA", "GB", "DE", "FR"],        "hideAddressSupportedCountries": ["US", "CA", "AU", "GB"]      }    ]  }}

Beide Länder-Arrays sind hier gekürzt; die tatsächliche Antwort kann 50 oder mehr Codes pro Website enthalten. Prüfen Sie bei einem Unternehmen mit Einzugsgebiet auch hideAddressSupportedCountries, da eine Plattform, die das Land akzeptiert, einen Eintrag ohne Straßenadresse dennoch ablehnen kann.

4. Diese Nachschlagedaten zwischenspeichern

Alle drei Kataloge ändern sich selten und keiner verwendet Paginierung. Rufen Sie daher jeden Katalog einmal beim Start ab, speichern Sie ihn im Arbeitsspeicher oder in einer kleinen Tabelle und aktualisieren Sie ihn nach einem Zeitplan. Wenn Sie die Kataloge bei jedem Erstellen direkt abrufen, verbrauchen Sie Ihr Ratenlimit, ohne neue Daten zu erhalten; im Launch-Tarif sind das 3 Ihrer 10 Anfragen pro Minute.

KatalogUmfangAktualisierungszeitpunkt
LänderDutzende Länder, Hunderte BundesstaatenSelten. Eine tägliche Aktualisierung ist mehr als ausreichend.
UnterkategorienEtwa 6.000 EinträgeTäglich oder wenn das Erstellen aufgrund eines unbekannten Werts für subCategoryId fehlschlägt.
Websites im TarifDutzende PlattformenBei einem Tarifwechsel, da die Liste auf Ihren Tarif beschränkt ist.

Erstellen Sie für Unterkategorien eine Zuordnung von name in Kleinbuchstaben zu databaseId und für Länder eine Zuordnung von countryIso zu states. Validieren Sie die Adresse anhand der zwischengespeicherten Daten, bevor Sie den Aufruf zum Erstellen ausführen, damit ein nicht unterstützter Wert für countryIso (SY10036) oder ein fehlender Wert für city (SY10126) in Ihrer Anwendung erkannt wird, bevor die Anfrage gesendet wird.

Nächste Schritte