Listings API

Listing Management API

Sync local business data to 80+ directories, detect duplicates, and manage voice and AI-optimized listings. One REST API for the local listings stack.

// Fetch premium listing status across the directory network
const headers = {
  'Authorization': 'API your_api_key',
  'Content-Type': 'application/json'
};

const locationId = 'TG9jYXRpb246MTI0MjE=';

const res = await fetch(
  `https://api.synup.com/api/v4/locations/${locationId}/listings/premium`,
  { headers }
);

const { data } = await res.json();
// data.listingsForLocation[].site, .syncStatus, .listingUrl
Distribution

Sync business data to 80+ directories from one API call

Update a location once and Synup propagates the change to Google Business Profile, Apple Maps, Bing Places, Facebook, Instagram, and Waze. Voice assistants (Alexa, Siri, Google Assistant, Cortana, Bixby) update through the same call. So do AI search surfaces (ChatGPT, Gemini, Perplexity, Copilot). You don't maintain individual integrations.

Search and maps
Google Business ProfileApple MapsBing Places
Voice assistants
AlexaSiriGoogle AssistantCortanaBixby
AI search
ChatGPTGeminiPerplexityCopilot
Social
FacebookWazeInstagram

Premium publishers, voice search destinations, and AI listings ship through the same call.

Connected Accounts

Connect Google Business Profile and Facebook via OAuth

Synup connects directly to Google Business Profile and Facebook through OAuth. The connection runs through their published APIs, so updates land in real time. The integration doesn't break when a publisher changes their UI, because nothing is scraped.

Connect Google Business Profile

Returns an OAuth URL for the account holder. After consent, Synup lists the GBP locations under the account, matches them to your locations, and starts syncing.

POST /api/v4/connected-accounts/connect-google

Connect Facebook Pages

Same OAuth flow, native to the Pages API. No scraping fallback if OAuth fails. Either the connection works or you fix it at the source.

POST /api/v4/connected-accounts/connect-facebook

Match suggestions

Synup proposes high-confidence matches between your locations and the listings on the connected account. Approve in bulk.

GET /api/v4/connected-accounts/{id}/connection-suggestions
Endpoints

Listing Management API endpoints

Anything you can do in the dashboard is callable from the API. Push location data, check sync status, hunt down duplicates. Webhooks fire when something changes upstream so you don't have to poll.

POST/api/v4/locationsCreate a business location with NAP, hours, attributes, photos
POST/api/v4/locations/updateUpdate one or many locations
GET/api/v4/locations/{locationId}/listings/premiumPremium listing status across the directory network
GET/api/v4/locations/{locationId}/voice-assistantsStatus on Alexa, Siri, Google Assistant, Cortana, Bixby
GET/api/v4/locations/{locationId}/ai-listingsVisibility scores against ChatGPT, Gemini, Perplexity, Copilot
GET/api/v4/locations/{locationId}/listings/duplicatesDuplicate listings detected for a location
GET/api/v4/locations/listings/duplicatesDuplicates across the entire account, paginated
POST/api/v4/locations/listings/mark-as-duplicateFlag listings as duplicates for cleanup
POST/api/v4/locations/listings/mark-as-not-duplicateReverse a duplicate flag
POST/api/v4/connected-accounts/connect-googleStart Google Business Profile OAuth
POST/api/v4/connected-accounts/connect-facebookStart Facebook Pages OAuth
WEBHOOKlisting.status.changedSubscribe to listing status changes; setup via Synup support
Only with Synup

Listing Management API capabilities unique to Synup

What you can build on the Synup Listings API that other listing APIs don't expose.

AI Listings

Visibility scoring across AI search engines. Compares what each engine knows about a location against your source data. Similarity scores come back for ChatGPT, Gemini, Perplexity, and Copilot, broken out by field. Each report flags the fields that don't match and suggests how to fix them.

Voice Search Listings

Track and update how each location appears on Alexa, Siri, and Google Assistant. The metadata these systems read isn't the same as a standard directory record. Synup handles the mapping.

Duplicate Detection

Surface duplicates per location or across the entire account in one call. Mark and merge from your own UI. At scale, every uncaught duplicate bleeds ranking from the real listing.

Listing Status Webhooks

Don't poll. Subscribe to listing.status.changed and the events come to you. The same webhook covers rejections, new duplicates, and completed syncs.

Folders and Tags

Group locations by region, brand, franchisee, or any taxonomy you need. Operate on a folder the same way you'd operate on a single location. Built for franchise hierarchies and agency portfolios.

Rich Attributes

Photos with star/unstar control, hours and holiday hours, services, payment methods, custom attributes, temporary closures. Everything that ships into a real GBP profile, accessible from the API.

Built for

Use cases for the Listing Management API

Franchise platforms

Centralize the corporate dataset. Push approved updates to thousands of franchisee profiles. Decide which fields a franchisee can change and which ones the corporate team owns.

Agency white-label

Run a multi-tenant local marketing service on Synup's infrastructure. Each client gets their own locations, listings, and reporting under your brand.

CRM and POS sync

Trigger updates from the system of record. New location opens in NetSuite, gets created in Synup, lands in Google Business Profile within minutes.

AI agents and MCP

Synup MCP gives Claude, GPT, and other models tool access to the listings API. Models can create locations, push updates, and surface duplicates without a developer writing glue code.

Embedded local SEO

SaaS products that want a “Get found locally” feature without building a directory network. Pull the audit, presence score, and sync state into your own dashboard so customers never leave.

Start shipping listing features today

Get an API key and test against our sandbox in minutes. Wire up an integration end to end before any sales call.