Listings API · AsyncAPI Specification
Listings Api Webhooks
Version
View Spec
View on GitHub
Business ListingsLocal SEOLocationsReviewsGoogle Business ProfileAnalyticscitation-managementLocal Marketingsocial-publishingMCPagent-nativeAsyncAPIEvents
AsyncAPI Specification
generated: '2026-09-03'
method: searched
source: https://docs.listingsapi.com/docs/webhooks-overview, https://docs.listingsapi.com/docs/webhooks-signatures, https://docs.listingsapi.com/docs/webhooks-delivery, https://docs.listingsapi.com/docs/webhooks-events
type: webhooks
model: >-
One webhooks URL per account, no per-event subscription: every event is delivered to that one
URL; consumers branch on the "event" field. Five delivery gates must all pass before a request
is sent: plan includes webhooks, a URL is saved, the endpoint passed verification (skipped if
no signing secret was ever generated), the URL resolves to a public address, and the account
is inside its plan's webhook limit.
envelope:
fields:
event: dotted event name (branch on this)
timestamp: ISO-8601 UTC, stamped when the delivery was built
account_id: integer
location_id: numeric string ("279381", not 279381; not coerced on interaction.* events)
data: event-specific object; optional fields are OMITTED when empty, never null
agency_account_id: integer, only when the account is managed by a parent agency account
exception: listing.submission uses its own shape (called out in the event reference)
signatures:
header: 'X-ListingsAPI-Signature: sha256=<digest>'
digest: base64(HMAC-SHA256(secret, raw_request_body))
verification_challenge: >-
One-time endpoint verification handshake answers with a lowercase HEX HMAC digest in the
body - base64 in the header, hex in the challenge reply. Docs flag the base64-vs-hex mixup
as the single most common integration bug (a wrong encoding yields a permanently
"unverified" endpoint with no error).
delivery:
attempts: 1
timeout_seconds: 5
retries: none
note: >-
One HTTP POST attempt with a 5-second response budget and no retries; failed-gate attempts
are still recorded with a status. Receivers should ack fast and process async.
events:
- name: listing.submission
resource: Listings
fires: A citation submission to a directory site resolves
- name: profile.created
resource: Locations
fires: A location is created
- name: profile.updated
resource: Locations
fires: A location is edited
- name: profile.deleted
resource: Locations
fires: A location is archived
- name: connection.location_connected
resource: Connected Accounts
fires: A Google or Facebook listing is linked
- name: connection.location_disconnected
resource: Connected Accounts
fires: A listing is unlinked
- name: connection.reauth_required
resource: Connected Accounts
fires: Credentials were invalidated
- name: connection.listing_inaccessible
resource: Connected Accounts
fires: Access to a listing was lost
- name: connection.google_verification_verified
resource: Connected Accounts
fires: Google verification succeeded
- name: connection.google_verification_failed
resource: Connected Accounts
fires: Google verification failed
- name: interaction.review
resource: Reviews
fires: A review arrives or changes
- name: interaction.response
resource: Reviews
fires: A response is posted or changes
- name: local_post.created
resource: Posts
fires: A post is created
- name: local_post.published
resource: Posts
fires: A post goes live on the connected profiles
- name: local_post.rejected
resource: Posts
fires: A post is rejected by a publisher
- name: local_post.deleted
resource: Posts
fires: A post is deleted
- name: analytics.daily_snapshot
resource: Analytics
fires: A daily analytics snapshot is ready
- name: analytics.weekly_snapshot
resource: Analytics
fires: A weekly analytics snapshot is ready
event_count: 18
events_note: >-
All 18 events from the event reference (https://docs.listingsapi.com/docs/webhooks-events),
which documents exact fields and an example payload per event.
asyncapi_note: No AsyncAPI document is published; this catalog is from the webhook docs.
Work with this as data
Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for asyncapi
4 MCP tools reach this
find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/listings-api-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.