Yext Listings API

The Listings API from Yext — 26 operation(s) for listings.

OpenAPI Specification

yext-listings-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Yext Admin Account Settings Listings API
  version: '2.0'
servers:
- url: https://api.yextapis.com/v2
security:
- api_key: []
- api-key: []
tags:
- name: Listings
paths:
  /accounts/{accountId}/listings/publishers:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    get:
      operationId: listPublishers
      parameters:
      - name: subset
        in: query
        schema:
          type: string
          default: RELEVANT_ONLY
        description: 'One of the following:

          - ALL - return all publishers

          - RELEVANT_ONLY - only return publishers based on available subscriptions and supported countries

          '
      - name: entityType
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - LOCATION
            - HEALTHCARE_PROFESSIONAL
            - HEALTHCARE_FACILITY
            - RESTAURANT
            - ATM
            - EVENT
            - HOTEL
        description: 'When specified, only publishers that support the specified entity types will be returned


          **Example:** `LOCATION,EVENT`

          '
      tags:
      - Listings
      summary: 'Publishers: List'
      description: 'Retrieve a list of publishers included in an account''s subscription

        '
      responses:
        '200':
          $ref: '#/components/responses/ListPublishersResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/accuracy:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    get:
      operationId: listListingAccuracy
      parameters:
      - name: entityId
        in: query
        required: true
        schema:
          type: string
        description: ID of the entity to retrieve listing accuracy results for.
      - name: publisherIds
        in: query
        schema:
          type: array
          items:
            type: string
        description: 'List of publisher IDs. If no IDs are specified, the endpoint queries live publishers supported by Listings Accuracy and returns only publishers with a latest completed verifier result for the entity.


          If a publisher ID is specified but is unknown or is not live and supported by Listings Accuracy, the request fails. If a specified publisher is valid but has no latest completed verifier data, that publisher is omitted from `listingAccuracy`.


          To request multiple publishers, repeat this query parameter once per publisher.

          '
        example:
        - MAPQUEST
        - FACEBOOK
      tags:
      - Listings
      summary: 'Listings Accuracy: List'
      description: 'Retrieve the latest completed listing accuracy comparison results for an entity.


        Results include field-level comparison data for each publisher with a latest completed verifier result. Requested publishers that are valid but have no latest completed verifier data are omitted from the response.

        '
      responses:
        '200':
          $ref: '#/components/responses/ListListingAccuracyResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/listings:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    get:
      operationId: listListings
      parameters:
      - name: limit
        in: query
        schema:
          type: integer
          default: 100
          maximum: 100
        description: Number of results to return
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/entitiesPageToken'
      - $ref: '#/components/parameters/listingsLocationIds'
      - $ref: '#/components/parameters/listingsPublisherIds'
      - name: statuses
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - WAITING_ON_YEXT
            - WAITING_ON_CUSTOMER
            - WAITING_ON_PUBLISHER
            - LIVE
            - UNAVAILABLE
            - OPTED_OUT
        description: 'When specified, only Listings with the provided statuses will be returned


          **Example:** `WAITING_ON_YEXT,WAITING_ON_CUSTOMER`

          '
      - name: language
        in: query
        schema:
          type: string
          default: en
        description: 'One of the language codes that we support:

          - cs - Czech

          - da - Danish

          - nl - Dutch

          - en - English

          - en_GB - English (UK)

          - fi - Finnish

          - fr - French (France)

          - de - German (Germany)

          - hu - Hungarian

          - it - Italian

          - ja - Japanese

          - no - Norwegian

          - pt - Portuguese (Portugal)

          - sk - Slovak

          - es - Spanish (Spain)

          - sv - Swedish

          - tr - Turkish

          - zh_Hans - Chinese (Simplified)

          - zh_Hant - Chinese (Traditional)

          '
      tags:
      - Listings
      summary: 'Listings: List'
      description: 'Retrieve all Listings matching the given criteria including status and reasons why a Listing may be unavailable


        The results will first be sorted by publisher and then by Location.


        **Support for `all` macro:** If you would like to use this endpoint to take action on your account and all of its sub-accounts, you can use the `all` macro in place of your account ID in your request URLs. For more information, see the "Account ID" section of "Policies and Conventions" at the top of this page.

        '
      responses:
        '200':
          $ref: '#/components/responses/ListListingsResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/listings/optin:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    put:
      operationId: optInListings
      parameters:
      - $ref: '#/components/parameters/listingsLocationIds'
      - $ref: '#/components/parameters/listingsPublisherIds'
      tags:
      - Listings
      summary: 'Listings: Opt In'
      description: 'Opts designated locations into designated publishers


        **NOTE:** The number of Location IDs multiplied by the number of Publisher IDs is capped at 100. If you exceed this, you will receive a 400 error response.

        '
      responses:
        '200':
          $ref: '#/components/responses/EmptyResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/listings/optout:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    put:
      operationId: optOutListings
      parameters:
      - $ref: '#/components/parameters/listingsLocationIds'
      - $ref: '#/components/parameters/listingsPublisherIds'
      tags:
      - Listings
      summary: 'Listings: Opt Out'
      description: 'Opts designated locations out of designated publishers


        **NOTE:** The number of Location IDs multiplied by the number of Publisher IDs is capped at 100. If you exceed this, you will receive a 400 error response.

        '
      responses:
        '200':
          $ref: '#/components/responses/EmptyResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/listings/confirmsync:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    put:
      operationId: confirmSyncListings
      parameters:
      - $ref: '#/components/parameters/listingsLocationIds'
      - $ref: '#/components/parameters/listingsPublisherIds'
      - name: pageToken
        in: query
        schema:
          type: string
        description: 'If the **`v`** param is after `20260401`, a **`pageToken`** will be returned if the result is over 1000 listings. This token can be used in the next request to process the next batch of listings.

          '
        style: simple
      tags:
      - Listings
      summary: 'Listings: Confirm Sync'
      description: 'Approves designated locations to sync to designated publishers. See [here](https://hitchhikers.yext.com/docs/listings/confirm-sync/) for more details about confirm sync.


        **NOTE:** If the **`v`** param is after `20260401`, Yext will filter to all applicable listings in the provided filter. If the result is over 1000 listings, a **`pageToken`** will be provided to allow processing of the next batch.

        '
      responses:
        '200':
          $ref: '#/components/responses/ConfirmSyncResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/listings/forcesync:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    put:
      operationId: forceSyncListings
      parameters:
      - $ref: '#/components/parameters/listingsLocationIds'
      - $ref: '#/components/parameters/listingsPublisherIds'
      tags:
      - Listings
      summary: 'Listings: Force Sync'
      description: 'Trigger designated locations to sync to designated publishers. See [here](https://help.yext.com/hc/en-us/articles/360020003051-Force-Sync-a-Listing) for more details about force sync.


        **NOTE:** The number of Location IDs multiplied by the number of Publisher IDs is capped at 1000. If you exceed this, you will receive a 400 error response.

        '
      responses:
        '200':
          $ref: '#/components/responses/EmptyResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/publishersuggestions:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    get:
      operationId: listPublisherSuggestions
      parameters:
      - name: limit
        in: query
        schema:
          type: integer
          default: 10
          maximum: 50
        description: Number of results to return
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/listingsLocationIds'
      - $ref: '#/components/parameters/listingsPublisherIds'
      - name: statuses
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - WAITING_ON_CUSTOMER
            - ACCEPTED
            - REJECTED
            - EXPIRED
        description: 'When specified, only Publisher Suggestions with the provided statuses will be returned


          **Example:** WAITING_ON_CUSTOMER,EXPIRED

          '
        style: simple
      tags:
      - Listings
      summary: 'Publisher Suggestions: List'
      description: Retrieve suggestions publishers have submitted for the Locations in an account
      responses:
        '200':
          $ref: '#/components/responses/ListPublisherSuggestionsResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/publishersuggestions/{suggestionId}:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    - name: suggestionId
      in: path
      schema:
        type: string
      required: true
    get:
      operationId: getPublisherSuggestion
      tags:
      - Listings
      summary: 'Publisher Suggestions: Get'
      description: Fetches details of a specific Publisher Suggestion
      responses:
        '200':
          $ref: '#/components/responses/PublisherSuggestionResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
    put:
      operationId: updatePublisherSuggestion
      parameters:
      - name: status
        in: query
        schema:
          type: string
          enum:
          - ACCEPTED
          - REJECTED
        required: true
        description: The status of the Publisher Suggestion
      tags:
      - Listings
      summary: 'Publisher Suggestions: Update'
      description: 'Accept or reject a Publisher Suggestion.


        **NOTE:** When sending requests to this endpoint, you must provide your Yext user ID in the **`Yext-User-Id`** header.

        '
      responses:
        '200':
          $ref: '#/components/responses/EmptyResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/duplicates:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    get:
      operationId: listDuplicates
      parameters:
      - name: limit
        in: query
        schema:
          type: integer
          default: 10
          maximum: 50
        description: Number of results to return
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/listingsLocationIds'
      - $ref: '#/components/parameters/listingsPublisherIds'
      - name: statuses
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - POSSIBLE_DUPLICATE
            - SUPPRESSION_REQUESTED
            - SUPPRESSED
            - UNAVAILABLE
        description: 'When specified, only Duplicates with the provided statuses will be returned


          **Example:** POSSIBLE_DUPLICATE,SUPPRESSION_REQUESTED

          '
        style: simple
      tags:
      - Listings
      summary: 'Duplicates: List'
      description: 'Retrieve Duplicates for an account


        If the **`v`** parameter is `20180802` or later: only duplicates of live listings (**`status`**: `LIVE`) will be included

        '
      responses:
        '200':
          $ref: '#/components/responses/ListDuplicatesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
    post:
      operationId: createDuplicate
      parameters:
      - $ref: '#/components/parameters/listingsLocationId'
      - $ref: '#/components/parameters/listingsPublisherIdQuery'
      - name: url
        in: query
        schema:
          type: string
        required: true
        description: URL of the Duplicate listing
      tags:
      - Listings
      summary: 'Duplicates: Create'
      description: 'Creates a new Duplicate with **`status`** `SUPPRESSION_REQUESTED`.


        **NOTE:** When sending requests to this endpoint, you must provide your Yext user ID in the **`Yext-User-Id`** header.

        '
      responses:
        '201':
          $ref: '#/components/responses/IdResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/duplicates/{duplicateId}:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    - name: duplicateId
      in: path
      schema:
        type: string
      required: true
    delete:
      operationId: deleteDuplicate
      tags:
      - Listings
      summary: 'Duplicates: Delete'
      description: 'Indicates that a Duplicate should be ignored.


        **NOTE:** When sending requests to this endpoint, you must provide your Yext user ID in the **`Yext-User-Id`** header.

        '
      responses:
        '200':
          $ref: '#/components/responses/EmptyResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
    put:
      operationId: suppressDuplicate
      tags:
      - Listings
      summary: 'Duplicates: Suppress'
      description: 'Request suppression of a Duplicate.


        **NOTE:** When sending requests to this endpoint, you must provide your Yext user ID in the **`Yext-User-Id`** header.

        '
      responses:
        '200':
          $ref: '#/components/responses/EmptyResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/verifications/{publisherId}/{locale}/methods:
    get:
      operationId: listMethods
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/v'
      - $ref: '#/components/parameters/listingsPublisherId'
      - $ref: '#/components/parameters/locale'
      - $ref: '#/components/parameters/listingsVerficationEntityIds'
      - $ref: '#/components/parameters/pageToken'
      - $ref: '#/components/parameters/verificationLimit'
      - $ref: '#/components/parameters/offset'
      tags:
      - Listings
      summary: 'Verification Methods: List'
      description: 'Retrieve verification methods for entities in an account

        '
      responses:
        '200':
          $ref: '#/components/responses/ListMethodsResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/verifications/{publisherId}/statuses:
    get:
      operationId: listStatuses
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/v'
      - $ref: '#/components/parameters/listingsPublisherId'
      - $ref: '#/components/parameters/listingsVerficationEntityIds'
      - $ref: '#/components/parameters/pageToken'
      - $ref: '#/components/parameters/verificationLimit'
      - $ref: '#/components/parameters/offset'
      tags:
      - Listings
      summary: 'Verification Statuses: List'
      description: 'Retrieve verification statuses for entities in an account

        '
      responses:
        '200':
          $ref: '#/components/responses/ListStatusesResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/verifications/{publisherId}/{locale}/initiate:
    post:
      operationId: InitiateVerification
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/VerificationInitiation'
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/v'
      - $ref: '#/components/parameters/listingsPublisherId'
      - $ref: '#/components/parameters/locale'
      tags:
      - Listings
      summary: 'Verification: Initiate'
      description: 'Initiate verification for entities in an account.

        This request will trigger verification codes being sent to the specified addresses,

        phone numbers, or email addresses.

        '
      responses:
        '200':
          $ref: '#/components/responses/InitiateVerificationResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/verifications/{publisherId}/complete:
    post:
      operationId: CompleteVerification
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/VerificationCompletion'
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/v'
      - $ref: '#/components/parameters/listingsPublisherId'
      tags:
      - Listings
      summary: 'Verification: Complete'
      description: 'Provides verification codes to complete the verification for entities in an account.

        '
      responses:
        '200':
          $ref: '#/components/responses/CompleteVerificationResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/admins/{publisherId}:
    get:
      operationId: listAdmins
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/v'
      - $ref: '#/components/parameters/listingsPublisherId'
      - $ref: '#/components/parameters/listingsVerficationEntityIds'
      - $ref: '#/components/parameters/pageToken'
      - $ref: '#/components/parameters/verificationLimit'
      - $ref: '#/components/parameters/offset'
      tags:
      - Listings
      summary: 'Listing Admins: List'
      description: 'Retrieve listing admins for entities in an account.

        '
      responses:
        '200':
          $ref: '#/components/responses/ListAdminsResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/admins/{publisherId}/invite:
    post:
      operationId: InviteAdmins
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/AdminInvite'
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/v'
      - $ref: '#/components/parameters/listingsPublisherId'
      tags:
      - Listings
      summary: 'Listing Admin: Invite'
      description: 'Sends invitations to new listing admins for entities in an account.

        For Google Business Profile listings, the admins will be given owner-level access.

        '
      responses:
        '200':
          $ref: '#/components/responses/InviteAdminsResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/entitylistings:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    get:
      operationId: listEntityListings
      parameters:
      - $ref: '#/components/parameters/listingsEntityIds'
      - $ref: '#/components/parameters/listingsEventPublisherIds'
      - name: statuses
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - NOT_SYNCED
            - SYNC_IN_PROGRESS
            - LIVE
            - UPDATE_IN_PROGRESS
            - CANCELING_SYNC
            - NOT_APPLICABLE
            - DELETE_PENDING
            - DELETE_FAILED
            - DELETED
            - SYNC_STOPPED
        description: 'Defaults to all Listings whose **`status`** is not `DELETED` or `SYNC_STOPPED`.


          When specified, only Listings with the provided statuses will be returned.

          '
      - name: language
        in: query
        schema:
          type: string
          default: en
        description: 'One of the following language codes:

          - `cs` - Czech

          - `da` - Danish

          - `nl` - Dutch

          - `en` - English

          - `en_GB` - English (UK)

          - `fi` - Finnish

          - `fr` - French (France)

          - `de` - German (Germany)

          - `hu` - Hungarian

          - `it` - Italian

          - `ja` - Japanese

          - `no` - Norwegian

          - `pt` - Portuguese (Portugal)

          - `sk` - Slovak

          - `es` - Spanish (Spain)

          - `sv` - Swedish

          - `tr` - Turkish

          - `zh_Hans` - Chinese (Simplified)

          - `zh_Hant` - Chinese (Traditional)

          '
      - $ref: '#/components/parameters/pageToken'
      - name: limit
        in: query
        schema:
          type: integer
          default: 100
          maximum: 100
        description: Number of results to return
      - $ref: '#/components/parameters/offset'
      tags:
      - Listings
      summary: 'Entity Listings: List'
      description: 'Retrieve all Entity Listings matching the given criteria. Includes the status of each Listing and reasons why a Listing may not be live. This endpoint currently only supports Event Listings.


        The results will first be sorted by publisher and then by Entity.


        **Support for `all` macro:** If you would like to use this endpoint to take action on your account and all of its sub-accounts, you can use the `all` macro in place of your account ID in your request URLs. For more information, see the "Account ID" section of "Policies and Conventions" at the top of this page.

        '
      responses:
        '200':
          $ref: '#/components/responses/ListEntityListingsResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/listings/delete:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/v'
    delete:
      operationId: deleteListings
      parameters:
      - $ref: '#/components/parameters/listingsEntityIds'
      - $ref: '#/components/parameters/listingsEventPublisherIds'
      tags:
      - Listings
      summary: 'Entity Listings: Delete'
      description: 'Deletes event listings from publishers. If deletion is not supported by the publisher, then service is removed instead.


        **NOTE:** You can delete a maximum of 100 listings in a single request. If the number of Entity IDs multiplied by the number of Publisher IDs in your request exceeds 100, you will receive a 400 error response.


        **Support for `all` macro:** If you would like to use this endpoint to take action on your account and all of its sub-accounts, you can use the `all` macro in place of your account ID in your request URLs. For more information, see the "Account ID" section of "Policies and Conventions" at the top of this page.

        '
      responses:
        '200':
          $ref: '#/components/responses/EmptyResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/questions:
    parameters:
    - $ref: '#/components/parameters/accountId'
    get:
      operationId: listQuestions
      tags:
      - Listings
      summary: 'Questions: List

        '
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/v'
      - $ref: '#/components/parameters/QuestionAnswerFilter'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/pageToken'
      description: 'Retrieve a list of Questions within an account.


        **NOTE**: The Google Q&A API was discontinued on November 3rd, 2025. This endpoint now only returns existing questions stored in Yext.

        '
      responses:
        '201':
          $ref: '#/components/responses/ListQuestionsResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /accounts/{accountId}/questions/{questionId}:
    parameters:
    - $ref: '#/components/parameters/accountId'
    - $ref: '#/components/parameters/questionId'
    get:
      operationId: getQuestion
      summary: 'Question: Get'
      parameters:
      - $ref: '#/components/parameters/accountId'
      - $ref: '#/components/parameters/v'
      - $ref: '#/components/parameters/questionId'
      tags:
      - Listings
      description: 'Retrieve information for a Question


        **NOTE**: The Google Q&A API was discontinued on November 3rd, 2025. This endpoint now only returns existing questions stored in Yext.

        '
      responses:
        '201':
          $ref: '#/components/responses/QuestionResponse'
        default:
          $ref: '#/components/responses/ErrorResponse'
  /listings/search:
    parameters:
    - $ref: '#/components/parameters/name'
    - $ref: '#/components/parameters/address'
    - $ref: '#/components/parameters/address2'
    - $ref: '#/components/parameters/sublocality'
    - $ref: '#/components/parameters/locality'
    - $ref: '#/components/parameters/region'
    - $ref: '#/components/parameters/postal_code'
    - $ref: '#/components/parameters/country'
    - $ref: '#/components/parameters/phone'
    - $ref: '#/components/parameters/latlng'
    - $ref: '#/components/parameters/firstName'
    - $ref: '#/components/parameters/lastName'
    - $ref: '#/components/parameters/npi'
    - $ref: '#/components/parameters/type'
    get:
      operationId: Search
      tags:
      - Listings
      summary: Search
      description: 'Yext uses SEARCH to search your site for existing listings. We expect the SEARCH API response to match the search results on your website or mobile app.

        You should support at least the following search requests:

        * Phone and Country Code

        * Name and Lat/Lng OR Name and Address

        '
      responses:
        '200':
          $ref: '#/components/responses/SearchResponse'
        '400':
          $ref: '#/components/responses/ErrorResponseNew'
        '500':
          $ref: '#/components/responses/ServerError'
  /listings/details:
    parameters:
    - name: id
      in: query
      required: true
      schema:
        type: string
      description: 'The unique identifier of a listing on your site.

        '
    get:
      operationId: Details
      tags:
      - Listings
      summary: Details
      description: 'Yext uses DETAILS to retrieve listings details from your site using a known existing listing ID. The Details API should be able to retrieve data for both Yext-powered listings and listings that are in your site’s native format.


        *NB* For any of the array fields, if there are no items, please default to an empty array, instead of omitting the field, or returning `null`.


        If the `type` of the listing is `HealthcareProfessional` or `HealthcareFacility`, additional fields are required.

        '
      responses:
        '200':
          $ref: '#/components/responses/DetailsResponse'
        '400':
          $ref: '#/components/responses/ErrorResponseNew'
        '404':
          $ref: '#/components/responses/404NotFoundResponse'
        '500':
          $ref: '#/components/responses/ServerError'
  /listings/order:
    post:
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListingDelivery'
      operationId: Order
      tags:
      - Listings
      summary: Order
      description: "Yext uses ORDER to establish a relationship between an entity in our system with a listing in your system. By sending the ORDER request, Yext will either create a new Listing on your site or claim and update an existing listing that represents the entity. You should include all fields that we pass to you in your listing. Once Yext has successfully sent an ORDER request, the listing content should be “locked”, preventing non-Yext updates to the Yext-updated fields. \n* Like all of the other real-time API methods, while the ORDER operation uses the POST method, it actually needs to be idempotent for a given yextId. \n* In the event that a ORDER acknowledgment gets lost, Yext will retry the ORDER operation, which may create duplicates in your index. Therefore, if Yext sends two consecutive ORDER commands using the same yextId, you should re-use the generated id from the first ORDER operation (i.e., you must not create a duplicate listing). \n* If we send an ORDER request for a listing that has already been claimed by Yext (i.e., the listing's yextId is associated with an id in your system), you should treat the ORDER as an UPDATE and respond accordingly.\n* For a full list of fields available, including those specific to healthcare and hotels, please reach out to your Yext partner manager or pubops-team@yext.com\n"
      responses:
        '200':
          $ref: '#/components/responses/LiveResponse'
        '409':
          $ref: '#/components/responses/BlockedResponse'
        '500':
          $ref: '#/components/responses/ServerError'
  /listings/{listingId}:
    parameters:
    - name: listingId
      in: path
      required: true
      schema:
        type: string
      description: 'The unique identifier of a listing on your site is known as the listingId.

        '
    put:
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListingDelivery'
      operationId: Update
      tags:
      - Listings
      summary: Update
      description: 'Yext uses UPDATE to update existing Listings on your site.

        * For a full list of fields available, including those specific to healthcare and hotels, please reach out to your Yext partner manager or pubops-team@yext.com

        '
      responses:
        '200':
          $ref: '#/components/responses/LiveResponse'
        '404':
          $ref: '#/components/responses/404NotFoundResponse'
        '409':
          $ref: '#/components/responses/BlockedResponse'
        '500':
          $ref: '#/components/responses/ServerError'
    delete:
      operationId: Cancel
      tags:
      - Listings
      summary: Cancel
      description: 'The CANCEL request is used to notify you when a business cancels their Yext subscription for a given location. This API call effectively undoes an ORDER

# --- truncated at 32 KB (219 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/yext/refs/heads/main/openapi/yext-listings-api-openapi.yml