POST/api/v4/connected-accounts/confirm-matches

Confirm connection matches

Confirms suggested location-to-listing matches returned by the connection suggestions endpoint.

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

Parameters

Body

NameTypeRequiredDescription
inputobjectrequiredWrapper object. The entire request body must be nested under `input`.
input.matchRecordIdsarray of stringsrequiredIDs of the suggested matches to confirm, taken from the `id` of each record returned by the connection suggestions endpoint. At least one ID is required.

Sample request

Ready-to-paste body. Replace placeholder IDs and values with yours.

{
  "input": {
    "matchRecordIds": [
      "0d5e306f-0da0-46e3-929f-fd3c67ccd8cc"
    ]
  }
}

Responses

200Request accepted. `success` is `true` when every match was confirmed; when some IDs could not be confirmed they are listed in `failedIds` and `success` is `false`.
{
  "data": {
    "confirmConnectMatches": {
      "failedIds": null,
      "success": true
    }
  }
}
400Bad request, the body was not wrapped in `input`, or `matchRecordIds` was omitted (GraphQL: `Field value.matchRecordIds of required type [ID!]! was not provided`).
401Unauthenticated, missing or invalid API key.

Accepts suggested location-to-listing pairings and confirms them, establishing the live connection between Listings API locations and their corresponding Google Business Profile or Facebook listings. Once confirmed, the listing begins syncing with the matched Listings API location.

Request shape. The body must be wrapped in an input object, and the only field is matchRecordIds, an array of match record IDs ([ID!]!, required). Pass the id of each record returned by GET /connected-accounts/{connectedAccountId}/connection-suggestions. There is no connectedAccountId field on this request; the account is inferred from the match records themselves. Sending a flat (unwrapped) body, or the older matchIds/connectedAccountId fields, is rejected with an HTTP 400 GraphQL validation error.

This endpoint is the final step of the bulk-connect workflow: connect the account, run POST /connected-accounts/trigger-matches to generate suggestions, review them with the connection-suggestions endpoint, then confirm the approved records here.

Use case: bulk-accepting reviewed matches. After an agency imports a client's Google account and reviews the suggested pairings in your own UI, submit the approved matchRecordIds in one call instead of confirming each in the Listings API dashboard. Send only the IDs the operator approved so unreviewed or wrong suggestions are left untouched.

Confirming a match does not immediately push data to Google or Facebook; it links the Listings API location to the publisher listing so subsequent listing updates flow through. A successful call returns success: true with failedIds: null. When one or more IDs could not be confirmed (for example, an unknown or already-consumed match record), those IDs are returned in failedIds and success is false, so you can retry or surface only the failures. For manually picking a single listing without going through suggestions, use the connect-listing endpoint instead.

curl -X POST 'https://listingsapi.com/api/v4/connected-accounts/confirm-matches' \
  -H "Authorization: API $LISTINGSAPI_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "input": {
      "matchRecordIds": [
        "0d5e306f-0da0-46e3-929f-fd3c67ccd8cc"
      ]
    }
  }'