GET/api/v4/locations/{locationId}/listings/premium

Get premium listings for a location

Returns the sync status of every publisher directory in a location's plan.

Requires an API key. See Authentication for header format and key rotation.

Parameters

Path

NameTypeRequiredDescription
locationIdstringrequiredLocation to read. Accepts a base64-encoded Relay ID (e.g. `TG9jYXRpb246MTgwMDI4OQ==`) or a raw numeric location ID.

Query

NameTypeRequiredDescriptionDefault
listingTypestringrequiredWhich listing tier to return: `premium` for the plan's premium directory listings, or `additional` for additional/free listings.

Responses

200Array of listings with per-directory sync status.
Response
{  "data": {    "listingsForLocation": [      {        "id": "TGlzdGluZzoxMDQ0Njg3MjM=",        "databaseId": "104468723",        "site": { "id": "U2l0ZTox", "databaseId": "1", "name": "Google Maps", "url": "maps.google.com", "syScore": "100" },        "syncStatus": "REQUIRING_ACTION",        "displayStatus": "Connect your account to sync the listing",        "actionRequired": true,        "listingUrl": null,        "connectedAccountId": null,        "lastUpdate": "2026-07-06T18:33:28Z",        "indexStatus": false,        "syncIssue": null,        "verified": false      },      {        "id": "TGlzdGluZzoxMDQ0Njg3MTQ=",        "databaseId": "104468714",        "site": { "id": "U2l0ZToxODA=", "databaseId": "180", "name": "Bing", "url": "www.bing.com", "syScore": "97" },        "syncStatus": "IN_PROGRESS",        "displayStatus": "Information submitted to partner; awaiting response",        "actionRequired": false,        "listingUrl": null,        "connectedAccountId": null,        "lastUpdate": "2026-07-06T18:33:35Z",        "indexStatus": false,        "syncIssue": null,        "verified": false      },      {        "id": "TGlzdGluZzoxMDQ0Njg3Mjc=",        "databaseId": "104468727",        "site": { "id": "U2l0ZTozODc=", "databaseId": "387", "name": "BeLocalFocussed", "url": "belocalfocussed.com", "syScore": "80" },        "syncStatus": "SYNCED",        "displayStatus": "Synced",        "actionRequired": false,        "listingUrl": "https://belocalfocussed.com/jenny-home-26x0ffkd0e",        "connectedAccountId": null,        "lastUpdate": "2026-07-06T18:33:30Z",        "indexStatus": false,        "syncIssue": null,        "verified": false      },      {        "id": "TGlzdGluZzoxMDQ0Njg3MDk=",        "databaseId": "104468709",        "site": { "id": "U2l0ZTozMDE=", "databaseId": "301", "name": "Local Mint", "url": "localmint.com", "syScore": "69" },        "syncStatus": "FAILED",        "displayStatus": "Partner experiencing issues; awaiting response",        "actionRequired": false,        "listingUrl": null,        "connectedAccountId": null,        "lastUpdate": "2026-07-06T18:34:03Z",        "indexStatus": false,        "syncIssue": "Publisher requires website URL",        "verified": false      }    ]  }}
401Unauthenticated, missing or invalid API key.
429Rate limit exceeded. Retry after the `Retry-After` header value.

Returns the sync status of every publisher directory included in a location's plan. Each record pairs a site (directory metadata) with a syncStatus and a human-readable displayStatus. The example above is trimmed from the live response for Jenny Home (which returns 30+ directories) to show one record in each of the common states.

The listingType query parameter is required: pass listingType=premium for the plan's premium directories (shown here) or listingType=additional for additional/free listings.

Use case: a listings health dashboard

Fetch the premium listings for a location and group by syncStatus to show coverage at a glance, how many directories are live, in flight, or blocked. Surface listingUrl for SYNCED rows so users can click through to the live listing, and read displayStatus/syncIssue for anything that isn't synced (e.g. Publisher requires website URL).

Use case: surface the "connect your account" blockers

Filter for actionRequired: true to build the owner's to-do list. In the live data, Google Maps, Facebook, and Waze come back REQUIRING_ACTION with displayStatus: "Connect your account to sync the listing", these need an OAuth connection before they can sync. Route the owner to the corresponding connect flow, then re-poll this endpoint to watch the status advance.

syncStatus values: AVAILABLE (ready to sync, not started), IN_PROGRESS (submitted to partner, awaiting response), PENDING_APPROVAL (awaiting partner approval), SYNCED / COMPLETED (live; listingUrl populated), REQUIRING_ACTION (owner action needed, see displayStatus), FAILED (sync failed; see syncIssue), CANNOT_SUBMIT (submission not possible).

This is a per-location list subject to the account rate limit, on 429, retry after the Retry-After header rather than re-polling immediately.

Request
curl -X GET 'https://listingsapi.com/api/v4/locations/<locationId>/listings/premium?listingType=<listingType>' \  -H "Authorization: API $LISTINGSAPI_KEY"