Listings API · AsyncAPI Specification

Listings Api Webhooks

Version

View Spec View on GitHub Business ListingsLocal SEOLocationsReviewsGoogle Business ProfileAnalyticscitation-managementLocal Marketingsocial-publishingMCPagent-nativeAsyncAPIEvents

AsyncAPI Specification

Raw ↑
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.
All 92 tools →

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.