Vendasta Listing Profile Service API

The ListingProfileService API from Vendasta — 1 operation(s) for listingprofileservice.

Operations 1

POST /v1/listing-products/keyword/update Update Listing Profile #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/vendasta-listingprofileservice-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

vendasta-listingprofileservice-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Listing Products Listing Profile Service API
  version: 1.210.0
servers:
- description: Production
  url: https://prod.apigateway.co/grpc
tags:
- name: ListingProfileService
paths:
  /v1/listing-products/keyword/update:
    post:
      operationId: ListingProfileService_Update
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/v1UpdateListingProfileRequest'
        description: Applies one or more field-level changes to a business's listing profile. Changes are executed in order and then synced to connected directories.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                type: object
          description: A successful response.
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/rpcStatus'
          description: An unexpected error response.
      security:
      - OAuth2:
        - business-app
      summary: Update Listing Profile
      tags:
      - ListingProfileService
components:
  schemas:
    v1RichData:
      properties:
        bookingUrl:
          type: string
        brandsCarried:
          items:
            type: string
          type: array
        cellNumber:
          type: string
        conditionalFields:
          items:
            $ref: '#/components/schemas/v1ConditionalField'
          type: array
        description:
          type: string
        email:
          type: string
        faxNumber:
          type: string
        healthCareProfessionalInformation:
          $ref: '#/components/schemas/v1HealthCareProfessionalInformation'
        inferredAttributes:
          items:
            type: string
          type: array
        landmark:
          type: string
        paymentMethods:
          items:
            $ref: '#/components/schemas/RichDataPaymentMethods'
          type: array
        seoKeywords:
          items:
            type: string
          type: array
        serviceAvailability:
          $ref: '#/components/schemas/v1ServiceAvailability'
        servicesOffered:
          items:
            type: string
          type: array
        shortDescription:
          type: string
        syncingSeoKeywords:
          items:
            type: string
          type: array
        tollFreeNumber:
          type: string
      type: object
    RichDataPaymentMethods:
      default: AMERICAN_EXPRESS
      enum:
      - AMERICAN_EXPRESS
      - ANDROID_PAY
      - APPLE_PAY
      - CASH
      - CHECK
      - DEBIT
      - DINERS_CLUB
      - DISCOVER
      - MASTERCARD
      - PAYPAL
      - SAMSUNG_PAY
      - STORE_CARD
      - TRAVELERS_CHECK
      - VISA
      - CCS
      - SODEXO
      - GOPAY
      - V_PAY
      - FINANCING
      - INVOICE
      - PAYSEC
      - BITCOIN
      - NFC_MOBILE_PAYMENTS
      type: string
    v1SpecialHoursPeriod:
      properties:
        endDate:
          $ref: '#/components/schemas/v1GoogleDate'
        endTime:
          $ref: '#/components/schemas/v1TimeOfDay'
        startDate:
          $ref: '#/components/schemas/v1GoogleDate'
        startTime:
          $ref: '#/components/schemas/v1TimeOfDay'
        status:
          $ref: '#/components/schemas/v1SpecialHoursStatus'
      type: object
    v1ServiceAvailability:
      properties:
        appointmentsOnly:
          $ref: '#/components/schemas/v1IsAvailable'
        closedStatus:
          $ref: '#/components/schemas/v1ClosedStatus'
        closedStatusDate:
          format: date-time
          type: string
        curbsidePickup:
          $ref: '#/components/schemas/v1IsAvailable'
        delivery:
          $ref: '#/components/schemas/v1IsAvailable'
        ecommerceOnly:
          $ref: '#/components/schemas/v1IsAvailable'
        inStorePickup:
          $ref: '#/components/schemas/v1IsAvailable'
        noContactDelivery:
          $ref: '#/components/schemas/v1IsAvailable'
        reopeningDate:
          format: date-time
          type: string
        servesDineIn:
          $ref: '#/components/schemas/v1IsAvailable'
      type: object
    listing_productsv1Location:
      properties:
        address:
          type: string
        address2:
          type: string
        callTrackingNumber:
          items:
            type: string
          type: array
        city:
          type: string
        companyName:
          type: string
        country:
          type: string
        location:
          $ref: '#/components/schemas/v1Geo'
        primaryOperatingLanguage:
          description: 'The primary BCP 47 language the business operates in (e.g. "en", "fr-ca").

            Empty when unset. Consumers fall back to "en".'
          type: string
        serviceArea:
          $ref: '#/components/schemas/v1ServiceArea'
        serviceAreaBusiness:
          type: boolean
        state:
          type: string
        timezone:
          type: string
        website:
          type: string
        workNumber:
          items:
            type: string
          type: array
        zip:
          type: string
      type: object
    v1DayOfWeek:
      default: DAY_OF_WEEK_UNSPECIFIED
      description: "Represents a day of the week.\n\n - DAY_OF_WEEK_UNSPECIFIED: The day of the week is unspecified.\n - MONDAY: Monday\n - TUESDAY: Tuesday\n - WEDNESDAY: Wednesday\n - THURSDAY: Thursday\n - FRIDAY: Friday\n - SATURDAY: Saturday\n - SUNDAY: Sunday"
      enum:
      - DAY_OF_WEEK_UNSPECIFIED
      - MONDAY
      - TUESDAY
      - WEDNESDAY
      - THURSDAY
      - FRIDAY
      - SATURDAY
      - SUNDAY
      type: string
    v1HoursOfOperation:
      properties:
        hoursOfOperation:
          items:
            $ref: '#/components/schemas/HoursOfOperationSpan'
          type: array
      title: Deprecated
      type: object
    rpcStatus:
      properties:
        code:
          format: int32
          type: integer
        details:
          items:
            $ref: '#/components/schemas/protobufAny'
          type: array
        message:
          type: string
      type: object
    v1BingAttributes:
      properties:
        bingAttribute:
          items:
            $ref: '#/components/schemas/v1BingAttribute'
          type: array
      type: object
    vendastatypesFieldMask:
      description: "paths: \"f.a\"\n    paths: \"f.b.d\"\n\nHere `f` represents a field in some root message, `a` and `b`\nfields in the message found in `f`, and `d` a field found in the\nmessage in `f.b`.\n\nField masks are used to specify a subset of fields that should be\nreturned by a get operation or modified by an update operation.\nField masks also have a custom JSON encoding (see below).\n\n# Field Masks in Projections\n\nWhen used in the context of a projection, a response message or\nsub-message is filtered by the API to only contain those fields as\nspecified in the mask. For example, if the mask in the previous\nexample is applied to a response message as follows:\n\n    f {\n      a : 22\n      b {\n        d : 1\n        x : 2\n      }\n      y : 13\n    }\n    z: 8\n\nThe result will not contain specific values for fields x,y and z\n(their value will be set to the default, and omitted in proto text\noutput):\n\n\n    f {\n      a : 22\n      b {\n        d : 1\n      }\n    }\n\nA repeated field is not allowed except at the last position of a\npaths string.\n\nIf a FieldMask object is not present in a get operation, the\noperation applies to all fields (as if a FieldMask of all fields\nhad been specified).\n\nNote that a field mask does not necessarily apply to the\ntop-level response message. In case of a REST get operation, the\nfield mask applies directly to the response, but in case of a REST\nlist operation, the mask instead applies to each individual message\nin the returned resource list. In case of a REST custom method,\nother definitions may be used. Where the mask applies will be\nclearly documented together with its declaration in the API.  In\nany case, the effect on the returned resource/resources is required\nbehavior for APIs.\n\n# Field Masks in Update Operations\n\nA field mask in update operations specifies which fields of the\ntargeted resource are going to be updated. The API is required\nto only change the values of the fields as specified in the mask\nand leave the others untouched. If a resource is passed in to\ndescribe the updated values, the API ignores the values of all\nfields not covered by the mask.\n\nIf a repeated field is specified for an update operation, the existing\nrepeated values in the target resource will be overwritten by the new values.\nNote that a repeated field is only allowed in the last position of a `paths`\nstring.\n\nIf a sub-message is specified in the last position of the field mask for an\nupdate operation, then the existing sub-message in the target resource is\noverwritten. Given the target message:\n\n    f {\n      b {\n        d : 1\n        x : 2\n      }\n      c : 1\n    }\n\nAnd an update message:\n\n    f {\n      b {\n        d : 10\n      }\n    }\n\nthen if the field mask is:\n\n paths: \"f.b\"\n\nthen the result will be:\n\n    f {\n      b {\n        d : 10\n      }\n      c : 1\n    }\n\nHowever, if the update mask was:\n\n paths: \"f.b.d\"\n\nthen the result would be:\n\n    f {\n      b {\n        d : 10\n        x : 2\n      }\n      c : 1\n    }\n\nIn order to reset a field's value to the default, the field must\nbe in the mask and set to the default value in the provided resource.\nHence, in order to reset all fields of a resource, provide a default\ninstance of the resource and set all fields in the mask, or do\nnot provide a mask as described below.\n\nIf a field mask is not present on update, the operation applies to\nall fields (as if a field mask of all fields has been specified).\nNote that in the presence of schema evolution, this may mean that\nfields the client does not know and has therefore not filled into\nthe request will be reset to their default. If this is unwanted\nbehavior, a specific service may require a client to always specify\na field mask, producing an error if not.\n\nAs with get operations, the location of the resource which\ndescribes the updated values in the request message depends on the\noperation kind. In any case, the effect of the field mask is\nrequired to be honored by the API.\n\n## Considerations for HTTP REST\n\nThe HTTP kind of an update operation which uses a field mask must\nbe set to PATCH instead of PUT in order to satisfy HTTP semantics\n(PUT must only be used for full updates).\n\n# JSON Encoding of Field Masks\n\nIn JSON, a field mask is encoded as a single string where paths are\nseparated by a comma. Fields name in each path are converted\nto/from lower-camel naming conventions.\n\nAs an example, consider the following message declarations:\n\n    message Profile {\n      User user = 1;\n      Photo photo = 2;\n    }\n    message User {\n      string display_name = 1;\n      string address = 2;\n    }\n\nIn proto a field mask for `Profile` may look as such:\n\n    mask {\n      paths: \"user.display_name\"\n      paths: \"photo\"\n    }\n\nIn JSON, the same mask is represented as below:\n\n    {\n      mask: \"user.displayName,photo\"\n    }\n\n# Field Masks and Oneof Fields\n\nField masks treat fields in oneofs just as regular fields. Consider the\nfollowing message:\n\n    message SampleMessage {\n      oneof test_oneof {\n        string name = 4;\n        SubMessage sub_message = 9;\n      }\n    }\n\nThe field mask can be:\n\n    mask {\n      paths: \"name\"\n    }\n\nOr:\n\n    mask {\n      paths: \"sub_message\"\n    }\n\nNote that oneof type names (\"test_oneof\" in this case) cannot be used in\npaths."
      properties:
        paths:
          description: The set of field mask paths.
          items:
            type: string
          type: array
      title: '`FieldMask` represents a set of symbolic field paths, for example:'
      type: object
    v1BusinessHours:
      properties:
        hoursTypeId:
          description: 'The hours types are based on the type of business so we don''t give an exhaustive list of hours

            types here. We get the hours types for the business''s category using the Google endpoint

            https://developers.google.com/my-business/reference/businessinformation/rest/v1/categories/batchGet'
          title: 'hours type IDs are based on the Google hours types

            https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations#morehours'
          type: string
        regularHours:
          items:
            $ref: '#/components/schemas/v1RegularHoursPeriod'
          title: 'RegularHours is a collection of times that this location is open for business. Each

            period represents a range of hours when the location is open during the week. You may specify

            multiple entries for the same date if you are open for multiple periods (Example lunch and supper)'
          type: array
        specialHours:
          description: 'SpecialHours represents a set of time periods when a location''s operational hours differ from

            its regular business hours. This may be a holiday or special event. These hours replace the

            all regular hours for the day. The openTime and startDate must predate the closeTime and endDate.'
          items:
            $ref: '#/components/schemas/v1SpecialHoursPeriod'
          type: array
      type: object
    v1GoogleDate:
      description: '* A full date, with non-zero year, month, and day values

        * A month and day value, with a zero year, such as an anniversary

        * A year on its own, with zero month and day values

        * A year and month value, with a zero day, such as a credit card expiration

        date


        Related types are [google.type.TimeOfDay][google.type.TimeOfDay] and

        `google.protobuf.Timestamp`.'
      properties:
        day:
          description: 'Day of a month. Must be from 1 to 31 and valid for the year and month, or 0

            to specify a year by itself or a year and month where the day isn''t

            significant.'
          format: int32
          type: integer
        month:
          description: 'Month of a year. Must be from 1 to 12, or 0 to specify a year without a

            month and day.'
          format: int32
          type: integer
        year:
          description: 'Year of the date. Must be from 1 to 9999, or 0 to specify a date without

            a year.'
          format: int32
          type: integer
      title: 'Represents a whole or partial calendar date, such as a birthday. The time of

        day and time zone are either specified elsewhere or are insignificant. The

        date is relative to the Gregorian Calendar. This can represent one of the

        following:'
      type: object
    v1SocialURLs:
      properties:
        facebookUrl:
          type: string
        foursquareUrl:
          type: string
        googleplusUrl:
          type: string
        instagramUrl:
          type: string
        linkedinUrl:
          type: string
        pinterestUrl:
          type: string
        rssUrl:
          type: string
        twitterUrl:
          type: string
        youtubeUrl:
          type: string
      type: object
    v1BingAttribute:
      properties:
        name:
          title: The name of the Bing attribute in the form "attributes/is_owned_by_women"
          type: string
        value:
          title: "Contains the value of the attribute. This can be of 4 types:\n  bool\n  URL (represented as a string google.protobuf.Value)\n  enum (represented as a string google.protobuf.Value)\n  repeated_enum (represented as a struct google.protobuf.Value)\nhttps://bpprodpublicstorage.blob.core.windows.net/bingplacesapi/BingPlaces_API_Latest.pdf"
      type: object
    v1ServiceArea:
      properties:
        businessType:
          $ref: '#/components/schemas/v1ServiceAreaBusinessType'
        places:
          items:
            $ref: '#/components/schemas/v1GooglePlace'
          type: array
      type: object
    v1TimeOfDay:
      description: 'Represents a time of day. The date and time zone are either not significant

        or are specified elsewhere. An API may choose to allow leap seconds. Related

        types are [google.type.Date][google.type.Date] and

        `google.protobuf.Timestamp`.'
      properties:
        hours:
          description: 'Hours of day in 24 hour format. Should be from 0 to 23. An API may choose

            to allow the value "24:00:00" for scenarios like business closing time.'
          format: int32
          type: integer
        minutes:
          description: Minutes of hour of day. Must be from 0 to 59.
          format: int32
          type: integer
        nanos:
          description: Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
          format: int32
          type: integer
        seconds:
          description: 'Seconds of minutes of the time. Must normally be from 0 to 59. An API may

            allow the value 60 if it allows leap-seconds.'
          format: int32
          type: integer
      type: object
    v1LifecycleStage:
      default: LIFECYCLE_STAGE_UNSET
      description: 'Where an account is at in the lifecycle stage

        The sales domain has the same concept of a lifecycle stage. Updating this enum

        most likely means you need to update the one in sales as well.'
      enum:
      - LIFECYCLE_STAGE_UNSET
      - LIFECYCLE_STAGE_LEAD
      - LIFECYCLE_STAGE_PROSPECT
      - LIFECYCLE_STAGE_CUSTOMER
      type: string
    HealthCareProfessionalInformationGender:
      default: NotSpecified
      enum:
      - NotSpecified
      - Female
      - Male
      - Other
      type: string
    v1IsAvailable:
      default: UNSET
      enum:
      - UNSET
      - 'YES'
      - 'NO'
      type: string
    v1MarketingClassification:
      default: MARKETING_CLASSIFICATION_UNUSED
      enum:
      - MARKETING_CLASSIFICATION_UNUSED
      - MARKETING_CLASSIFICATION_SMB
      - MARKETING_CLASSIFICATION_SPAM
      - MARKETING_CLASSIFICATION_DUPLICATE
      - MARKETING_CLASSIFICATION_BLACKLISTED
      - MARKETING_CLASSIFICATION_OUT_OF_MARKET
      type: string
    HoursOfOperationSpan:
      properties:
        closes:
          type: string
        dayOfWeek:
          items:
            type: string
          type: array
        description:
          type: string
        opens:
          type: string
      type: object
    HealthCareProfessionalInformationIsProvider:
      default: IsProviderNotSpecified
      enum:
      - IsProviderNotSpecified
      - IsProviderTrue
      - IsProviderFalse
      type: string
    v1DoctorDotComCategory:
      properties:
        fullName:
          type: string
        id:
          format: int64
          type: string
        nuccTaxonomyCode:
          type: string
      type: object
    v1Geo:
      description: Represents a geo point location.
      properties:
        latitude:
          format: double
          type: number
        longitude:
          format: double
          type: number
      type: object
    v1GooglePlace:
      properties:
        city:
          title: The city or locality the Google Place is located in
          type: string
        placeId:
          title: The ID of the place
          type: string
        placeName:
          description: The localized name of the place. For example, Scottsdale, AZ.
          type: string
      title: Based on https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations#Location.PlaceInfo
      type: object
    v1UpdateListingProfileRequest:
      description: Applies one or more field-level changes to a business's listing profile. Changes are executed in order and then synced to connected directories.
      properties:
        businessId:
          description: Required. The business whose listing profile should be updated.
          type: string
        ifUnmodifiedSince:
          description: 'Optional. Optimistic-concurrency guard. If set, the update fails when the profile has been

            modified after this timestamp. Similar to HTTP If-Unmodified-Since.'
          format: date-time
          type: string
        languageCode:
          description: Optional. BCP-47 language code for locale-specific field values (e.g., "en", "fr").
          type: string
        updateOperations:
          description: Required. Ordered list of field-level changes to apply (e.g., set name, add category, update hours).
          items:
            $ref: '#/components/schemas/v1UpdateOperation'
          type: array
      required:
      - businessId
      - updateOperations
      title: UpdateListingProfileRequest
      type: object
    v1ExternalIdentifiers:
      properties:
        actionLists:
          items:
            type: string
          type: array
        additionalSalesPersonIds:
          items:
            type: string
          type: array
        customerIdentifier:
          type: string
        jobId:
          items:
            type: string
          type: array
        marketId:
          type: string
        origin:
          type: string
        partnerId:
          type: string
        salesPersonId:
          type: string
        socialProfileId:
          type: string
        tags:
          items:
            type: string
          type: array
        taxIds:
          items:
            type: string
          type: array
        updateOrigin:
          type: string
        vCategoryIds:
          items:
            type: string
          type: array
      type: object
    v1HealthCareProfessionalInformation:
      properties:
        dateOfBirth:
          format: date-time
          type: string
        doctorDotComCategories:
          items:
            $ref: '#/components/schemas/v1DoctorDotComCategory'
          type: array
        email:
          type: string
        fellowship:
          items:
            type: string
          type: array
        firstName:
          type: string
        gender:
          $ref: '#/components/schemas/HealthCareProfessionalInformationGender'
        hospitalAffiliations:
          items:
            type: string
          type: array
        initials:
          type: string
        insurancesAccepted:
          items:
            type: string
          type: array
        isProvider:
          $ref: '#/components/schemas/HealthCareProfessionalInformationIsProvider'
        isTakingPatients:
          type: boolean
        lastName:
          type: string
        medicalLicenseNumber:
          type: string
        nationalProviderIdentifier:
          type: string
        office:
          type: string
        professionalCredential:
          items:
            type: string
          type: array
        residency:
          items:
            type: string
          type: array
        school:
          items:
            type: string
          type: array
        specialty:
          items:
            type: string
          type: array
        standardizedTitle:
          type: string
        stateLicense:
          type: string
      type: object
    v1GoogleAttribute:
      properties:
        name:
          title: The name of the Google attribute in the form "attributes/is_owned_by_women"
          type: string
        value:
          title: "Contains the value of the attribute. This can be of 4 types:\n  bool\n  URL (represented as a string google.protobuf.Value)\n  enum (represented as a string google.protobuf.Value)\n  repeated_enum (represented as a struct google.protobuf.Value)\nhttps://developers.google.com/my-business/reference/businessinformation/rest/v1/AttributeValueType"
      title: 'Represents a single Google attribute

        reference docs:

        https://developers.google.com/my-business/reference/businessinformation/rest/v1/attributes/list#attributemetadata

        https://developers.google.com/my-business/reference/businessinformation/rest/v1/Attributes'
      type: object
    v1SpecialHoursStatus:
      default: SPECIAL_HOURS_STATUS_INVALID
      description: "- SPECIAL_HOURS_STATUS_INVALID: Indicates that the field was not sent on the API request. This is not valid to be used.\n - SPECIAL_HOURS_STATUS_OPEN: Indicates the business is open during the period indicated by\n`start_date`, `start_time`, `end_date`, and `end_time`\n - SPECIAL_HOURS_STATUS_CLOSED: Indicates that the business is closed for the entire period from `start_date` to `end_date`.\n`start_time` and `end_time` will be ignored.\n - SPECIAL_HOURS_STATUS_UNCONFIRMED_HOLIDAY: NOT IMPLEMENTED The UI for this status is not included in the first slice.\nIndicates that there is a holiday during the specified period and the business has not confirmed their hours.\nThese periods should not be sent to listing sites"
      enum:
      - SPECIAL_HOURS_STATUS_INVALID
      - SPECIAL_HOURS_STATUS_OPEN
      - SPECIAL_HOURS_STATUS_CLOSED
      - SPECIAL_HOURS_STATUS_UNCONFIRMED_HOLIDAY
      title: Describes the different modes that apply to special hour periods
      type: string
    protobufAny:
      additionalProperties: {}
      properties:
        '@type':
          type: string
      type: object
    v1GoogleServices:
      description: Wrapper for use in UpdateOperation oneof.
      properties:
        googleService:
          items:
            $ref: '#/components/schemas/v1GoogleService'
          type: array
      type: object
    v1MarketingInfo:
      properties:
        conversionPoint:
          type: string
        lifecycleStage:
          $ref: '#/components/schemas/v1LifecycleStage'
        marketingClassification:
          $ref: '#/components/schemas/v1MarketingClassification'
      title: MarketingInfo store marketing properties for an account group
      type: object
    v1UpdateOperation:
      description: 'UpdateOperation represents a single field-level change to a listing profile.

        Choose exactly one oneof field that covers the data you want to modify, then set

        field_mask to the specific sub-fields within that message.'
      properties:
        bingAttributes:
          $ref: '#/components/schemas/v1BingAttributes'
        businessHours:
          $ref: '#/components/schemas/v1BusinessHours'
        externalIdentifiers:
          $ref: '#/components/schemas/v1ExternalIdentifiers'
        fieldMask:
          $ref: '#/components/schemas/vendastatypesFieldMask'
        googleAttributes:
          $ref: '#/components/schemas/v1GoogleAttributes'
        googleServices:
          $ref: '#/components/schemas/v1GoogleServices'
        hoursOfOperation:
          $ref: '#/components/schemas/v1HoursOfOperation'
        legacyProductDetails:
          $ref: '#/components/schemas/v1LegacyProductDetails'
        marketingInfo:
          $ref: '#/components/schemas/v1MarketingInfo'
        nap:
          $ref: '#/components/schemas/listing_productsv1Location'
        richData:
          $ref: '#/components/schemas/v1RichData'
        socialUrls:
          $ref: '#/components/schemas/v1SocialURLs'
      type: object
    v1ConditionalField:
      properties:
        id:
          type: string
        value:
          type: string
      type: object
    v1ServiceAreaBusinessType:
      default: SERVICE_AREA_BUSINESS_TYPE_UNSPECIFIED
      description: "- SERVICE_AREA_BUSINESS_TYPE_UNSPECIFIED: Not specified.\n - SERVICE_AREA_BUSINESS_TYPE_CUSTOMER_LOCATION_ONLY: Offers service only in the surrounding area (not at the business address).\n - SERVICE_AREA_BUSINESS_TYPE_CUSTOMER_AND_BUSINESS_LOCATION: Offers service at the business address and the surrounding area."
      enum:
      - SERVICE_AREA_BUSINESS_TYPE_UNSPECIFIED
      - SERVICE_AREA_BUSINESS_TYPE_CUSTOMER_LOCATION_ONLY
      - SERVICE_AREA_BUSINESS_TYPE_CUSTOMER_AND_BUSINESS_LOCATION
      title: Based on https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations#Location.BusinessType
      type: string
    v1GoogleService:
      properties:
        displayName:
          description: 'The human-readable display name (e.g., "Beard trim"). Stored alongside the ID

            so downstream consumers can use it without a metadata API call.'
          type: string
        enabled:
          description: Whether the user has enabled (true) or disabled (false) this service.
          type: boolean
        serviceTypeId:
          description: The Google-provided service type ID (e.g., "job_type_id:beard_trimming").
          type: string
      title: 'Represents a single Google structured service that a user has explicitly toggled.

        Reference: https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations#structuredserviceitem'
      type: object
    v1ClosedStatus:
      default: UNSPECIFIED
      enum:
      - UNSPECIFIED
      - OPEN
      - LIMITED
      - TEMPORARY
      - PERMANENT
      title: ClosedStatus describes if the business is permanently or temporarily closed, or in a limited state
      type: string
    v1RegularHoursPeriod:
      properties:
        closeDay:
          $ref: '#/components/schemas/v1DayOfWeek'
        closeTime:
          $ref: '#/components/schemas/v1TimeOfDay'
        openDay:
          $ref: '#/components/schemas/v1DayOfWeek'
        openTime:
          $ref: '#/components/schemas/v1TimeOfDay'
      type: object
    v1GoogleAttributes:
      properties:
        googleAttribute:
          items:
            $ref: '#/components/schemas/v1GoogleAttribute'
          type: array
      type: object
    v1LegacyProductDetails:
      properties:
        adminNotes:
          type: string
        commonName:
          items:
            type: string
          type: array
        competitor:
          items:
            type: string
          type: array
        shareOfVoiceService:
          items:
            type: string
          type: array
      type: object
  securitySchemes:
    OAuth2:
      flows:
        authorizationCode:
          authorizationUrl: https://sso-api-prod.apigateway.co/oauth2/auth
          scopes:
            admin: Allows the application to perform administrative tasks that you have access to across the platform
            business-app: Allows the application to manage all features of Business App
          tokenUrl: https://sso-api-prod.apigateway.co/oauth2/token
      type: oauth2