Google Business Profile API

Provides programmatic access to manage business location information on Google, including accounts, locations, reviews, media, local posts, and verification workflows.

OpenAPI Specification

openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Google Business Profile API
  description: >-
    The Google Business Profile API provides an interface for managing business
    location information on Google. It enables developers to programmatically
    manage accounts, locations, reviews, media, posts, and more.
  version: 4.0.0
  contact:
    name: Google
    url: https://developers.google.com/my-business/reference/rest
servers:
  - url: https://mybusiness.googleapis.com/v4
paths:
  /accounts:
    get:
      operationId: listAccounts
      summary: Google Business Profile List Accounts
      description: Lists all accounts for the authenticated user.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAccountsResponse'
      tags:
        - Accounts
  /accounts/{accountId}:
    get:
      operationId: getAccount
      summary: Google Business Profile Get Account
      description: Gets the specified account.
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Account'
      tags:
        - Accounts
  /accounts/{accountId}/locations:
    get:
      operationId: listLocations
      summary: Google Business Profile List Locations
      description: Lists the locations for the specified account.
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListLocationsResponse'
      tags:
        - Accounts
    post:
      operationId: createLocation
      summary: Google Business Profile Create Location
      description: Creates a new location for the specified account.
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Location'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
      tags:
        - Accounts
  /accounts/{accountId}/locations/{locationId}:
    get:
      operationId: getLocation
      summary: Google Business Profile Get Location
      description: Gets the specified location.
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
        - name: locationId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
      tags:
        - Accounts
    patch:
      operationId: updateLocation
      summary: Google Business Profile Update Location
      description: Updates the specified location.
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
        - name: locationId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Location'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Location'
      tags:
        - Accounts
    delete:
      operationId: deleteLocation
      summary: Google Business Profile Delete Location
      description: Deletes a location.
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
        - name: locationId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
      tags:
        - Accounts
  /accounts/{accountId}/locations/{locationId}/reviews:
    get:
      operationId: listReviews
      summary: Google Business Profile List Reviews
      description: Returns a paginated list of reviews for the specified location.
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
        - name: locationId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListReviewsResponse'
      tags:
        - Accounts
  /accounts/{accountId}/locations/{locationId}/reviews/{reviewId}/reply:
    put:
      operationId: replyToReview
      summary: Google Business Profile Reply to Review
      description: Updates the reply to a specified review.
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
        - name: locationId
          in: path
          required: true
          schema:
            type: string
        - name: reviewId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                comment:
                  type: string
      responses:
        '200':
          description: Successful response
      tags:
        - Accounts
  /accounts/{accountId}/locations/{locationId}/media:
    get:
      operationId: listMedia
      summary: Google Business Profile List Media
      description: Returns a list of media items associated with a location.
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
        - name: locationId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
      tags:
        - Accounts
  /accounts/{accountId}/locations/{locationId}/localPosts:
    get:
      operationId: listLocalPosts
      summary: Google Business Profile List Local Posts
      description: Returns a list of local posts for a location.
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
        - name: locationId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
      tags:
        - Accounts
    post:
      operationId: createLocalPost
      summary: Google Business Profile Create Local Post
      description: Creates a new local post for a location.
      parameters:
        - name: accountId
          in: path
          required: true
          schema:
            type: string
        - name: locationId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LocalPost'
      responses:
        '200':
          description: Successful response
      tags:
        - Accounts
components:
  securitySchemes:
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          tokenUrl: https://oauth2.googleapis.com/token
          scopes:
            https://www.googleapis.com/auth/business.manage: Manage business listings
  schemas:
    Account:
      type: object
      properties:
        name:
          type: string
        accountName:
          type: string
        type:
          type: string
        role:
          type: string
        state:
          type: object
    Location:
      type: object
      properties:
        name:
          type: string
        locationName:
          type: string
        primaryPhone:
          type: string
        address:
          type: object
          properties:
            addressLines:
              type: array
              items:
                type: string
            locality:
              type: string
            administrativeArea:
              type: string
            postalCode:
              type: string
            regionCode:
              type: string
        primaryCategory:
          type: object
          properties:
            displayName:
              type: string
            categoryId:
              type: string
        websiteUrl:
          type: string
        regularHours:
          type: object
        locationState:
          type: object
        metadata:
          type: object
    Review:
      type: object
      properties:
        name:
          type: string
        reviewId:
          type: string
        reviewer:
          type: object
          properties:
            displayName:
              type: string
            profilePhotoUrl:
              type: string
        starRating:
          type: string
        comment:
          type: string
        createTime:
          type: string
        updateTime:
          type: string
        reviewReply:
          type: object
          properties:
            comment:
              type: string
            updateTime:
              type: string
    LocalPost:
      type: object
      properties:
        name:
          type: string
        summary:
          type: string
        topicType:
          type: string
        callToAction:
          type: object
        media:
          type: array
          items:
            type: object
        state:
          type: string
        createTime:
          type: string
        updateTime:
          type: string
    ListAccountsResponse:
      type: object
      properties:
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/Account'
        nextPageToken:
          type: string
    ListLocationsResponse:
      type: object
      properties:
        locations:
          type: array
          items:
            $ref: '#/components/schemas/Location'
        nextPageToken:
          type: string
    ListReviewsResponse:
      type: object
      properties:
        reviews:
          type: array
          items:
            $ref: '#/components/schemas/Review'
        averageRating:
          type: number
        totalReviewCount:
          type: integer
        nextPageToken:
          type: string
security:
  - OAuth2: []
tags:
  - name: Accounts