Google Business Profile · Capability

Google Business Profile API — Accounts

Google Business Profile API — Accounts. 12 operations. Lead operation: Google Business Profile List Accounts. Self-contained Naftiko capability covering one Google Business Profile business surface.

Run with Naftiko Google Business ProfileAccounts

What You Can Do

GET
Listaccounts — Google Business Profile List Accounts
/v1/accounts
GET
Getaccount — Google Business Profile Get Account
/v1/accounts/{accountid}
GET
Listlocations — Google Business Profile List Locations
/v1/accounts/{accountid}/locations
POST
Createlocation — Google Business Profile Create Location
/v1/accounts/{accountid}/locations
GET
Getlocation — Google Business Profile Get Location
/v1/accounts/{accountid}/locations/{locationid}
PATCH
Updatelocation — Google Business Profile Update Location
/v1/accounts/{accountid}/locations/{locationid}
DELETE
Deletelocation — Google Business Profile Delete Location
/v1/accounts/{accountid}/locations/{locationid}
GET
Listlocalposts — Google Business Profile List Local Posts
/v1/accounts/{accountid}/locations/{locationid}/localposts
POST
Createlocalpost — Google Business Profile Create Local Post
/v1/accounts/{accountid}/locations/{locationid}/localposts
GET
Listmedia — Google Business Profile List Media
/v1/accounts/{accountid}/locations/{locationid}/media
GET
Listreviews — Google Business Profile List Reviews
/v1/accounts/{accountid}/locations/{locationid}/reviews
PUT
Replytoreview — Google Business Profile Reply to Review
/v1/accounts/{accountid}/locations/{locationid}/reviews/{reviewid}/reply

MCP Tools

google-business-profile-list-accounts

Google Business Profile List Accounts

read-only idempotent
google-business-profile-get-account

Google Business Profile Get Account

read-only idempotent
google-business-profile-list-locations

Google Business Profile List Locations

read-only idempotent
google-business-profile-create-location

Google Business Profile Create Location

google-business-profile-get-location

Google Business Profile Get Location

read-only idempotent
google-business-profile-update-location

Google Business Profile Update Location

idempotent
google-business-profile-delete-location

Google Business Profile Delete Location

idempotent
google-business-profile-list-local

Google Business Profile List Local Posts

read-only idempotent
google-business-profile-create-local

Google Business Profile Create Local Post

google-business-profile-list-media

Google Business Profile List Media

read-only idempotent
google-business-profile-list-reviews

Google Business Profile List Reviews

read-only idempotent
google-business-profile-reply-review

Google Business Profile Reply to Review

idempotent

Capability Spec

openapi-accounts.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Google Business Profile API — Accounts
  description: 'Google Business Profile API — Accounts. 12 operations. Lead operation: Google Business Profile List Accounts.
    Self-contained Naftiko capability covering one Google Business Profile business surface.'
  tags:
  - Google Business Profile
  - Accounts
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    GOOGLE_BUSINESS_PROFILE_API_KEY: GOOGLE_BUSINESS_PROFILE_API_KEY
capability:
  consumes:
  - type: http
    namespace: openapi-accounts
    baseUri: https://mybusiness.googleapis.com/v4
    description: Google Business Profile API — Accounts business capability. Self-contained, no shared references.
    resources:
    - name: accounts
      path: /accounts
      operations:
      - name: listaccounts
        method: GET
        description: Google Business Profile List Accounts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: accounts-accountId
      path: /accounts/{accountId}
      operations:
      - name: getaccount
        method: GET
        description: Google Business Profile Get Account
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
    - name: accounts-accountId-locations
      path: /accounts/{accountId}/locations
      operations:
      - name: listlocations
        method: GET
        description: Google Business Profile List Locations
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
      - name: createlocation
        method: POST
        description: Google Business Profile Create Location
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: accounts-accountId-locations-locationId
      path: /accounts/{accountId}/locations/{locationId}
      operations:
      - name: getlocation
        method: GET
        description: Google Business Profile Get Location
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
        - name: locationId
          in: path
          type: string
          required: true
      - name: updatelocation
        method: PATCH
        description: Google Business Profile Update Location
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
        - name: locationId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletelocation
        method: DELETE
        description: Google Business Profile Delete Location
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
        - name: locationId
          in: path
          type: string
          required: true
    - name: accounts-accountId-locations-locationId-localPosts
      path: /accounts/{accountId}/locations/{locationId}/localPosts
      operations:
      - name: listlocalposts
        method: GET
        description: Google Business Profile List Local Posts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
        - name: locationId
          in: path
          type: string
          required: true
      - name: createlocalpost
        method: POST
        description: Google Business Profile Create Local Post
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
        - name: locationId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: accounts-accountId-locations-locationId-media
      path: /accounts/{accountId}/locations/{locationId}/media
      operations:
      - name: listmedia
        method: GET
        description: Google Business Profile List Media
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
        - name: locationId
          in: path
          type: string
          required: true
    - name: accounts-accountId-locations-locationId-reviews
      path: /accounts/{accountId}/locations/{locationId}/reviews
      operations:
      - name: listreviews
        method: GET
        description: Google Business Profile List Reviews
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
        - name: locationId
          in: path
          type: string
          required: true
    - name: accounts-accountId-locations-locationId-reviews-reviewId-reply
      path: /accounts/{accountId}/locations/{locationId}/reviews/{reviewId}/reply
      operations:
      - name: replytoreview
        method: PUT
        description: Google Business Profile Reply to Review
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: accountId
          in: path
          type: string
          required: true
        - name: locationId
          in: path
          type: string
          required: true
        - name: reviewId
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.GOOGLE_BUSINESS_PROFILE_API_KEY}}'
  exposes:
  - type: rest
    namespace: openapi-accounts-rest
    port: 8080
    description: REST adapter for Google Business Profile API — Accounts. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/accounts
      name: accounts
      description: REST surface for accounts.
      operations:
      - method: GET
        name: listaccounts
        description: Google Business Profile List Accounts
        call: openapi-accounts.listaccounts
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}
      name: accounts-accountid
      description: REST surface for accounts-accountId.
      operations:
      - method: GET
        name: getaccount
        description: Google Business Profile Get Account
        call: openapi-accounts.getaccount
        with:
          accountId: rest.accountId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}/locations
      name: accounts-accountid-locations
      description: REST surface for accounts-accountId-locations.
      operations:
      - method: GET
        name: listlocations
        description: Google Business Profile List Locations
        call: openapi-accounts.listlocations
        with:
          accountId: rest.accountId
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createlocation
        description: Google Business Profile Create Location
        call: openapi-accounts.createlocation
        with:
          accountId: rest.accountId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}/locations/{locationid}
      name: accounts-accountid-locations-locationid
      description: REST surface for accounts-accountId-locations-locationId.
      operations:
      - method: GET
        name: getlocation
        description: Google Business Profile Get Location
        call: openapi-accounts.getlocation
        with:
          accountId: rest.accountId
          locationId: rest.locationId
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatelocation
        description: Google Business Profile Update Location
        call: openapi-accounts.updatelocation
        with:
          accountId: rest.accountId
          locationId: rest.locationId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletelocation
        description: Google Business Profile Delete Location
        call: openapi-accounts.deletelocation
        with:
          accountId: rest.accountId
          locationId: rest.locationId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}/locations/{locationid}/localposts
      name: accounts-accountid-locations-locationid-localposts
      description: REST surface for accounts-accountId-locations-locationId-localPosts.
      operations:
      - method: GET
        name: listlocalposts
        description: Google Business Profile List Local Posts
        call: openapi-accounts.listlocalposts
        with:
          accountId: rest.accountId
          locationId: rest.locationId
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createlocalpost
        description: Google Business Profile Create Local Post
        call: openapi-accounts.createlocalpost
        with:
          accountId: rest.accountId
          locationId: rest.locationId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}/locations/{locationid}/media
      name: accounts-accountid-locations-locationid-media
      description: REST surface for accounts-accountId-locations-locationId-media.
      operations:
      - method: GET
        name: listmedia
        description: Google Business Profile List Media
        call: openapi-accounts.listmedia
        with:
          accountId: rest.accountId
          locationId: rest.locationId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}/locations/{locationid}/reviews
      name: accounts-accountid-locations-locationid-reviews
      description: REST surface for accounts-accountId-locations-locationId-reviews.
      operations:
      - method: GET
        name: listreviews
        description: Google Business Profile List Reviews
        call: openapi-accounts.listreviews
        with:
          accountId: rest.accountId
          locationId: rest.locationId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}/locations/{locationid}/reviews/{reviewid}/reply
      name: accounts-accountid-locations-locationid-reviews-reviewid-reply
      description: REST surface for accounts-accountId-locations-locationId-reviews-reviewId-reply.
      operations:
      - method: PUT
        name: replytoreview
        description: Google Business Profile Reply to Review
        call: openapi-accounts.replytoreview
        with:
          accountId: rest.accountId
          locationId: rest.locationId
          reviewId: rest.reviewId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: openapi-accounts-mcp
    port: 9090
    transport: http
    description: MCP adapter for Google Business Profile API — Accounts. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: google-business-profile-list-accounts
      description: Google Business Profile List Accounts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openapi-accounts.listaccounts
      outputParameters:
      - type: object
        mapping: $.
    - name: google-business-profile-get-account
      description: Google Business Profile Get Account
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openapi-accounts.getaccount
      with:
        accountId: tools.accountId
      outputParameters:
      - type: object
        mapping: $.
    - name: google-business-profile-list-locations
      description: Google Business Profile List Locations
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openapi-accounts.listlocations
      with:
        accountId: tools.accountId
      outputParameters:
      - type: object
        mapping: $.
    - name: google-business-profile-create-location
      description: Google Business Profile Create Location
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: openapi-accounts.createlocation
      with:
        accountId: tools.accountId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: google-business-profile-get-location
      description: Google Business Profile Get Location
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openapi-accounts.getlocation
      with:
        accountId: tools.accountId
        locationId: tools.locationId
      outputParameters:
      - type: object
        mapping: $.
    - name: google-business-profile-update-location
      description: Google Business Profile Update Location
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: openapi-accounts.updatelocation
      with:
        accountId: tools.accountId
        locationId: tools.locationId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: google-business-profile-delete-location
      description: Google Business Profile Delete Location
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: openapi-accounts.deletelocation
      with:
        accountId: tools.accountId
        locationId: tools.locationId
      outputParameters:
      - type: object
        mapping: $.
    - name: google-business-profile-list-local
      description: Google Business Profile List Local Posts
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openapi-accounts.listlocalposts
      with:
        accountId: tools.accountId
        locationId: tools.locationId
      outputParameters:
      - type: object
        mapping: $.
    - name: google-business-profile-create-local
      description: Google Business Profile Create Local Post
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: openapi-accounts.createlocalpost
      with:
        accountId: tools.accountId
        locationId: tools.locationId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: google-business-profile-list-media
      description: Google Business Profile List Media
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openapi-accounts.listmedia
      with:
        accountId: tools.accountId
        locationId: tools.locationId
      outputParameters:
      - type: object
        mapping: $.
    - name: google-business-profile-list-reviews
      description: Google Business Profile List Reviews
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: openapi-accounts.listreviews
      with:
        accountId: tools.accountId
        locationId: tools.locationId
      outputParameters:
      - type: object
        mapping: $.
    - name: google-business-profile-reply-review
      description: Google Business Profile Reply to Review
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: openapi-accounts.replytoreview
      with:
        accountId: tools.accountId
        locationId: tools.locationId
        reviewId: tools.reviewId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.