Google Analytics · Capability

Google Analytics Admin API — properties

Google Analytics Admin API — properties. 22 operations. Lead operation: properties. Self-contained Naftiko capability covering one Google Analytics business surface.

Run with Naftiko Google Analyticsproperties

What You Can Do

GET
Analyticsadminpropertieslist — Returns child Properties under the specified parent Account. Only "GA4" properties will be returned. Properties will be excluded if the caller does not have access. Soft-deleted (ie: "trashed") properties are excluded by default. Returns an
/v1/v1beta/properties
POST
Analyticsadminpropertiescreate — Creates an "GA4" property with the specified location and attributes.
/v1/v1beta/properties
POST
Analyticsadminpropertiesrunaccessreport — Returns a customized report of data access records. The report provides records of each time a user reads Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested for a property. R
/v1/v1beta/entity-runaccessreport
DELETE
Analyticsadminpropertiesgoogleadslinksdelete — Deletes a GoogleAdsLink on a property
/v1/v1beta/{name}
GET
Analyticsadminpropertiesdatastreamsmeasurementprotocolsecretsget — Lookup for a single "GA4" MeasurementProtocolSecret.
/v1/v1beta/{name}
PATCH
Analyticsadminpropertiesgoogleadslinkspatch — Updates a GoogleAdsLink on a property
/v1/v1beta/{name}
POST
Analyticsadminpropertiescustommetricsarchive — Archives a CustomMetric on a property.
/v1/v1beta/name-archive
GET
Analyticsadminpropertiesconversioneventslist — Returns a list of conversion events in the specified parent property. Returns an empty list if no conversion events are found.
/v1/v1beta/{parent}/conversionevents
POST
Analyticsadminpropertiesconversioneventscreate — Creates a conversion event with the specified attributes.
/v1/v1beta/{parent}/conversionevents
GET
Analyticsadminpropertiescustomdimensionslist — Lists CustomDimensions on a property.
/v1/v1beta/{parent}/customdimensions
POST
Analyticsadminpropertiescustomdimensionscreate — Creates a CustomDimension.
/v1/v1beta/{parent}/customdimensions
GET
Analyticsadminpropertiescustommetricslist — Lists CustomMetrics on a property.
/v1/v1beta/{parent}/custommetrics
POST
Analyticsadminpropertiescustommetricscreate — Creates a CustomMetric.
/v1/v1beta/{parent}/custommetrics
GET
Analyticsadminpropertiesdatastreamslist — Lists DataStreams on a property.
/v1/v1beta/{parent}/datastreams
POST
Analyticsadminpropertiesdatastreamscreate — Creates a DataStream.
/v1/v1beta/{parent}/datastreams
GET
Analyticsadminpropertiesfirebaselinkslist — Lists FirebaseLinks on a property. Properties can have at most one FirebaseLink.
/v1/v1beta/{parent}/firebaselinks
POST
Analyticsadminpropertiesfirebaselinkscreate — Creates a FirebaseLink. Properties can have at most one FirebaseLink.
/v1/v1beta/{parent}/firebaselinks
GET
Analyticsadminpropertiesgoogleadslinkslist — Lists GoogleAdsLinks on a property.
/v1/v1beta/{parent}/googleadslinks
POST
Analyticsadminpropertiesgoogleadslinkscreate — Creates a GoogleAdsLink.
/v1/v1beta/{parent}/googleadslinks
GET
Analyticsadminpropertiesdatastreamsmeasurementprotocolsecretslist — Returns child MeasurementProtocolSecrets under the specified parent Property.
/v1/v1beta/{parent}/measurementprotocolsecrets
POST
Analyticsadminpropertiesdatastreamsmeasurementprotocolsecretscreate — Creates a measurement protocol secret.
/v1/v1beta/{parent}/measurementprotocolsecrets
POST
Analyticsadminpropertiesacknowledgeuserdatacollection — Acknowledges the terms of user data collection for the specified property. This acknowledgement must be completed (either in the Google Analytics UI or through this API) before MeasurementProtocolSecret resources may be created.
/v1/v1beta/property-acknowledgeuserdatacollection

MCP Tools

returns-child-properties-under-specified

Returns child Properties under the specified parent Account. Only "GA4" properties will be returned. Properties will be excluded if the caller does not have access. Soft-deleted (ie: "trashed") properties are excluded by default. Returns an

read-only idempotent
creates-ga4-property-specified-location

Creates an "GA4" property with the specified location and attributes.

returns-customized-report-data-access

Returns a customized report of data access records. The report provides records of each time a user reads Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested for a property. R

deletes-googleadslink-property

Deletes a GoogleAdsLink on a property

idempotent
lookup-single-ga4-measurementprotocolsecret

Lookup for a single "GA4" MeasurementProtocolSecret.

read-only idempotent
updates-googleadslink-property

Updates a GoogleAdsLink on a property

idempotent
archives-custommetric-property

Archives a CustomMetric on a property.

returns-list-conversion-events-specified

Returns a list of conversion events in the specified parent property. Returns an empty list if no conversion events are found.

read-only idempotent
creates-conversion-event-specified-attributes

Creates a conversion event with the specified attributes.

lists-customdimensions-property

Lists CustomDimensions on a property.

read-only idempotent
creates-customdimension

Creates a CustomDimension.

lists-custommetrics-property

Lists CustomMetrics on a property.

read-only idempotent
creates-custommetric

Creates a CustomMetric.

lists-datastreams-property

Lists DataStreams on a property.

read-only idempotent
creates-datastream

Creates a DataStream.

lists-firebaselinks-property-properties-can

Lists FirebaseLinks on a property. Properties can have at most one FirebaseLink.

read-only idempotent
creates-firebaselink-properties-can-have

Creates a FirebaseLink. Properties can have at most one FirebaseLink.

lists-googleadslinks-property

Lists GoogleAdsLinks on a property.

read-only idempotent
creates-googleadslink

Creates a GoogleAdsLink.

returns-child-measurementprotocolsecrets-under-specified

Returns child MeasurementProtocolSecrets under the specified parent Property.

read-only idempotent
creates-measurement-protocol-secret

Creates a measurement protocol secret.

acknowledges-terms-user-data-collection

Acknowledges the terms of user data collection for the specified property. This acknowledgement must be completed (either in the Google Analytics UI or through this API) before MeasurementProtocolSecret resources may be created.

Capability Spec

admin-properties.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Google Analytics Admin API — properties
  description: 'Google Analytics Admin API — properties. 22 operations. Lead operation: properties. Self-contained Naftiko
    capability covering one Google Analytics business surface.'
  tags:
  - Google Analytics
  - properties
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    GOOGLE_ANALYTICS_API_KEY: GOOGLE_ANALYTICS_API_KEY
capability:
  consumes:
  - type: http
    namespace: admin-properties
    baseUri: https://analyticsadmin.googleapis.com
    description: Google Analytics Admin API — properties business capability. Self-contained, no shared references.
    resources:
    - name: v1beta-properties
      path: /v1beta/properties
      operations:
      - name: analyticsadminpropertieslist
        method: GET
        description: 'Returns child Properties under the specified parent Account. Only "GA4" properties will be returned.
          Properties will be excluded if the caller does not have access. Soft-deleted (ie: "trashed") properties are excluded
          by default. Returns an'
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: filter
          in: query
          type: string
          description: 'Required. An expression for filtering the results of the request. Fields eligible for filtering are:
            `parent:`(The resource name of the parent account/property)'
        - name: pageSize
          in: query
          type: integer
          description: The maximum number of resources to return. The service may return fewer than this value, even if there
            are additional pages. If unspecified, at most 50 resource
        - name: pageToken
          in: query
          type: string
          description: A page token, received from a previous `ListProperties` call. Provide this to retrieve the subsequent
            page. When paginating, all other parameters provided to `L
        - name: showDeleted
          in: query
          type: boolean
          description: 'Whether to include soft-deleted (ie: "trashed") Properties in the results. Properties can be inspected
            to determine whether they are deleted or not.'
      - name: analyticsadminpropertiescreate
        method: POST
        description: Creates an "GA4" property with the specified location and attributes.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1beta-entity}:runAccessReport
      path: /v1beta/{entity}:runAccessReport
      operations:
      - name: analyticsadminpropertiesrunaccessreport
        method: POST
        description: Returns a customized report of data access records. The report provides records of each time a user reads
          Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested
          for a property. R
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: entity
          in: path
          type: string
          description: The Data Access Report supports requesting at the property level or account level. If requested at
            the account level, Data Access Reports include all access for
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1beta-name
      path: /v1beta/{name}
      operations:
      - name: analyticsadminpropertiesgoogleadslinksdelete
        method: DELETE
        description: Deletes a GoogleAdsLink on a property
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: 'Required. Example format: properties/1234/googleAdsLinks/5678'
          required: true
      - name: analyticsadminpropertiesdatastreamsmeasurementprotocolsecretsget
        method: GET
        description: Lookup for a single "GA4" MeasurementProtocolSecret.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: 'Required. The name of the measurement protocol secret to lookup. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets/{measurementP'
          required: true
      - name: analyticsadminpropertiesgoogleadslinkspatch
        method: PATCH
        description: Updates a GoogleAdsLink on a property
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: 'Output only. Format: properties/{propertyId}/googleAdsLinks/{googleAdsLinkId} Note: googleAdsLinkId
            is not the Google Ads customer ID.'
          required: true
        - name: updateMask
          in: query
          type: string
          description: Required. The list of fields to be updated. Field names must be in snake case (e.g., "field_to_update").
            Omitted fields will not be updated. To replace the enti
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1beta-name}:archive
      path: /v1beta/{name}:archive
      operations:
      - name: analyticsadminpropertiescustommetricsarchive
        method: POST
        description: Archives a CustomMetric on a property.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: 'Required. The name of the CustomMetric to archive. Example format: properties/1234/customMetrics/5678'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1beta-parent-conversionEvents
      path: /v1beta/{parent}/conversionEvents
      operations:
      - name: analyticsadminpropertiesconversioneventslist
        method: GET
        description: Returns a list of conversion events in the specified parent property. Returns an empty list if no conversion
          events are found.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: path
          type: string
          description: 'Required. The resource name of the parent property. Example: ''properties/123'''
          required: true
        - name: pageSize
          in: query
          type: integer
          description: The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The
            maximum value is 200; (higher values will be coerced to th
        - name: pageToken
          in: query
          type: string
          description: A page token, received from a previous `ListConversionEvents` call. Provide this to retrieve the subsequent
            page. When paginating, all other parameters provided
      - name: analyticsadminpropertiesconversioneventscreate
        method: POST
        description: Creates a conversion event with the specified attributes.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: path
          type: string
          description: 'Required. The resource name of the parent property where this conversion event will be created. Format:
            properties/123'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1beta-parent-customDimensions
      path: /v1beta/{parent}/customDimensions
      operations:
      - name: analyticsadminpropertiescustomdimensionslist
        method: GET
        description: Lists CustomDimensions on a property.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: path
          type: string
          description: 'Required. Example format: properties/1234'
          required: true
        - name: pageSize
          in: query
          type: integer
          description: The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The
            maximum value is 200 (higher values will be coerced to the
        - name: pageToken
          in: query
          type: string
          description: A page token, received from a previous `ListCustomDimensions` call. Provide this to retrieve the subsequent
            page. When paginating, all other parameters provided
      - name: analyticsadminpropertiescustomdimensionscreate
        method: POST
        description: Creates a CustomDimension.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: path
          type: string
          description: 'Required. Example format: properties/1234'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1beta-parent-customMetrics
      path: /v1beta/{parent}/customMetrics
      operations:
      - name: analyticsadminpropertiescustommetricslist
        method: GET
        description: Lists CustomMetrics on a property.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: path
          type: string
          description: 'Required. Example format: properties/1234'
          required: true
        - name: pageSize
          in: query
          type: integer
          description: The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The
            maximum value is 200 (higher values will be coerced to the
        - name: pageToken
          in: query
          type: string
          description: A page token, received from a previous `ListCustomMetrics` call. Provide this to retrieve the subsequent
            page. When paginating, all other parameters provided to
      - name: analyticsadminpropertiescustommetricscreate
        method: POST
        description: Creates a CustomMetric.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: path
          type: string
          description: 'Required. Example format: properties/1234'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1beta-parent-dataStreams
      path: /v1beta/{parent}/dataStreams
      operations:
      - name: analyticsadminpropertiesdatastreamslist
        method: GET
        description: Lists DataStreams on a property.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: path
          type: string
          description: 'Required. Example format: properties/1234'
          required: true
        - name: pageSize
          in: query
          type: integer
          description: The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The
            maximum value is 200 (higher values will be coerced to the
        - name: pageToken
          in: query
          type: string
          description: A page token, received from a previous `ListDataStreams` call. Provide this to retrieve the subsequent
            page. When paginating, all other parameters provided to `
      - name: analyticsadminpropertiesdatastreamscreate
        method: POST
        description: Creates a DataStream.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: path
          type: string
          description: 'Required. Example format: properties/1234'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1beta-parent-firebaseLinks
      path: /v1beta/{parent}/firebaseLinks
      operations:
      - name: analyticsadminpropertiesfirebaselinkslist
        method: GET
        description: Lists FirebaseLinks on a property. Properties can have at most one FirebaseLink.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: path
          type: string
          description: 'Required. Format: properties/{property_id} Example: properties/1234'
          required: true
        - name: pageSize
          in: query
          type: integer
          description: The maximum number of resources to return. The service may return fewer than this value, even if there
            are additional pages. If unspecified, at most 50 resource
        - name: pageToken
          in: query
          type: string
          description: A page token, received from a previous `ListFirebaseLinks` call. Provide this to retrieve the subsequent
            page. When paginating, all other parameters provided to
      - name: analyticsadminpropertiesfirebaselinkscreate
        method: POST
        description: Creates a FirebaseLink. Properties can have at most one FirebaseLink.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: path
          type: string
          description: 'Required. Format: properties/{property_id} Example: properties/1234'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1beta-parent-googleAdsLinks
      path: /v1beta/{parent}/googleAdsLinks
      operations:
      - name: analyticsadminpropertiesgoogleadslinkslist
        method: GET
        description: Lists GoogleAdsLinks on a property.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: path
          type: string
          description: 'Required. Example format: properties/1234'
          required: true
        - name: pageSize
          in: query
          type: integer
          description: The maximum number of resources to return. If unspecified, at most 50 resources will be returned. The
            maximum value is 200 (higher values will be coerced to the
        - name: pageToken
          in: query
          type: string
          description: A page token, received from a previous `ListGoogleAdsLinks` call. Provide this to retrieve the subsequent
            page. When paginating, all other parameters provided t
      - name: analyticsadminpropertiesgoogleadslinkscreate
        method: POST
        description: Creates a GoogleAdsLink.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: path
          type: string
          description: 'Required. Example format: properties/1234'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1beta-parent-measurementProtocolSecrets
      path: /v1beta/{parent}/measurementProtocolSecrets
      operations:
      - name: analyticsadminpropertiesdatastreamsmeasurementprotocolsecretslist
        method: GET
        description: Returns child MeasurementProtocolSecrets under the specified parent Property.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: path
          type: string
          description: 'Required. The resource name of the parent stream. Format: properties/{property}/dataStreams/{dataStream}/measurementProtocolSecrets'
          required: true
        - name: pageSize
          in: query
          type: integer
          description: 'The maximum number of resources to return. If unspecified, at most 10 resources will be returned.
            The maximum value is 10. Higher values will be coerced to the '
        - name: pageToken
          in: query
          type: string
          description: A page token, received from a previous `ListMeasurementProtocolSecrets` call. Provide this to retrieve
            the subsequent page. When paginating, all other parameter
      - name: analyticsadminpropertiesdatastreamsmeasurementprotocolsecretscreate
        method: POST
        description: Creates a measurement protocol secret.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: parent
          in: path
          type: string
          description: 'Required. The parent resource where this secret will be created. Format: properties/{property}/dataStreams/{dataStream}'
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1beta-property}:acknowledgeUserDataCollection
      path: /v1beta/{property}:acknowledgeUserDataCollection
      operations:
      - name: analyticsadminpropertiesacknowledgeuserdatacollection
        method: POST
        description: Acknowledges the terms of user data collection for the specified property. This acknowledgement must
          be completed (either in the Google Analytics UI or through this API) before MeasurementProtocolSecret resources
          may be created.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: property
          in: path
          type: string
          description: Required. The property for which to acknowledge user data collection.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    authentication:
      type: bearer
      token: '{{env.GOOGLE_ANALYTICS_API_KEY}}'
  exposes:
  - type: rest
    namespace: admin-properties-rest
    port: 8080
    description: REST adapter for Google Analytics Admin API — properties. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/v1beta/properties
      name: v1beta-properties
      description: REST surface for v1beta-properties.
      operations:
      - method: GET
        name: analyticsadminpropertieslist
        description: 'Returns child Properties under the specified parent Account. Only "GA4" properties will be returned.
          Properties will be excluded if the caller does not have access. Soft-deleted (ie: "trashed") properties are excluded
          by default. Returns an'
        call: admin-properties.analyticsadminpropertieslist
        with:
          filter: rest.filter
          pageSize: rest.pageSize
          pageToken: rest.pageToken
          showDeleted: rest.showDeleted
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: analyticsadminpropertiescreate
        description: Creates an "GA4" property with the specified location and attributes.
        call: admin-properties.analyticsadminpropertiescreate
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1beta/entity-runaccessreport
      name: v1beta-entity-runaccessreport
      description: REST surface for v1beta-entity}:runAccessReport.
      operations:
      - method: POST
        name: analyticsadminpropertiesrunaccessreport
        description: Returns a customized report of data access records. The report provides records of each time a user reads
          Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested
          for a property. R
        call: admin-properties.analyticsadminpropertiesrunaccessreport
        with:
          entity: rest.entity
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1beta/{name}
      name: v1beta-name
      description: REST surface for v1beta-name.
      operations:
      - method: DELETE
        name: analyticsadminpropertiesgoogleadslinksdelete
        description: Deletes a GoogleAdsLink on a property
        call: admin-properties.analyticsadminpropertiesgoogleadslinksdelete
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: analyticsadminpropertiesdatastreamsmeasurementprotocolsecretsget
        description: Lookup for a single "GA4" MeasurementProtocolSecret.
        call: admin-properties.analyticsadminpropertiesdatastreamsmeasurementprotocolsecretsget
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: analyticsadminpropertiesgoogleadslinkspatch
        description: Updates a GoogleAdsLink on a property
        call: admin-properties.analyticsadminpropertiesgoogleadslinkspatch
        with:
          name: rest.name
          updateMask: rest.updateMask
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1beta/name-archive
      name: v1beta-name-archive
      description: REST surface for v1beta-name}:archive.
      operations:
      - method: POST
        name: analyticsadminpropertiescustommetricsarchive
        description: Archives a CustomMetric on a property.
        call: admin-properties.analyticsadminpropertiescustommetricsarchive
        with:
          name: rest.name
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1beta/{parent}/conversionevents
      name: v1beta-parent-conversionevents
      description: REST surface for v1beta-parent-conversionEvents.
      operations:
      - method: GET
        name: analyticsadminpropertiesconversioneventslist
        description: Returns a list of conversion events in the specified parent property. Returns an empty list if no conversion
          events are found.
        call: admin-properties.analyticsadminpropertiesconversioneventslist
        with:
          parent: rest.parent
          pageSize: rest.pageSize
          pageToken: rest.pageToken
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: analyticsadminpropertiesconversioneventscreate
        description: Creates a conversion event with the specified attributes.
        call: admin-properties.analyticsadminpropertiesconversioneventscreate
        with:
          parent: rest.parent
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1beta/{parent}/customdimensions
      name: v1beta-parent-customdimensions
      description: REST surface for v1beta-parent-customDimensions.
      operations:
      - method: GET
        name: analyticsadminpropertiescustomdimensionslist
        description: Lists CustomDimensions on a property.
        call: admin-properties.analyticsadminpropertiescustomdimensionslist
        with:
          parent: rest.parent
          pageSize: rest.pageSize
          pageToken: rest.pageToken
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: analyticsadminpropertiescustomdimensionscreate
        description: Creates a CustomDimension.
        call: admin-properties.analyticsadminpropertiescustomdimensionscreate
        with:
          parent: rest.parent
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1beta/{parent}/custommetrics
      name: v1beta-parent-custommetrics
      description: REST surface for v1beta-parent-customMetrics.
      operations:
      - method: GET
        name: analyticsadminpropertiescustommetricslist
        description: Lists CustomMetrics on a property.
        call: admin-properties.analyticsadminpropertiescustommetricslist
        with:
          parent: rest.parent
          pageSize: rest.pageSize
          pageToken: rest.pageToken
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: analyticsadminpropertiescustommetricscreate
        description: Creates a CustomMetric.
        call: admin-properties.analyticsadminpropertiescustommetricscreate
        with:
          parent: rest.parent
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1beta/{parent}/datastreams
      name: v1beta-parent-datastreams
      description: REST surface for v1beta-parent-dataStreams.
      operations:
      - method: GET
        name: analyticsadminpropertiesdatastreamslist
        description: Lists DataStreams on a property.
        call: admin-properties.analyticsadminpropertiesdatastreamslist
        with:
          parent: rest.parent
          pageSize: rest.pageSize
          pageToken: rest.pageToken
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: analyticsadminpropertiesdatastreamscreate
        description: Creates a DataStream.
        call: admin-properties.analyticsadminpropertiesdatastreamscreate
        with:
          parent: rest.parent
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1beta/{parent}/firebaselinks
      name: v1beta-parent-firebaselinks
      description: REST surface for v1beta-parent-firebaseLinks.
      operations:
      - method: GET
        name: analyticsadminpropertiesfirebaselinkslist
        description: Lists FirebaseLinks on a property. Properties can have at most one FirebaseLink.
        call: admin-properties.analyticsadminpropertiesfirebaselinkslist
        with:
          parent: rest.parent
          pageSize: rest.pageSize
          pageToken: rest.pageToken
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: analyticsadminpropertiesfirebaselinkscreate
        description: Creates a FirebaseLink. Properties can have at most one FirebaseLink.
        call: admin-properties.analyticsadminpropertiesfirebaselinkscreate
        with:
          parent: rest.parent
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1beta/{parent}/googleadslinks
      name: v1beta-parent-googleadslinks
      description: REST surface for v1beta-parent-googleAdsLinks.
      operations:
      - method: GET
        name: analyticsadminpropertiesgoogleadslinkslist
        description: Lists GoogleAdsLinks on a property.
        call: admin-properties.analyticsadminpropertiesgoogleadslinkslist
        with:
          parent: rest.parent
          pageSize: rest.pageSize
          pageToken: rest.pageToken
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: analyticsadminpropertiesgoogleadslinkscreate
        description: Creates a GoogleAdsLink.
        call: admin-properties.analyticsadminpropertiesgoogleadslinkscreate
        with:
          parent: rest.parent
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1beta/{parent}/measurementprotocolsecrets
      name: v1beta-parent-measurementprotocolsecrets
      description: REST surface for v1beta-parent-measurementProtocolSecrets.
      operations:
      - method: GET
        name: analyticsadminpropertiesdatastreamsmeasurementprotocolsecretslist
        description: Returns child MeasurementProtocolSecrets under the specified parent Property.
        call: admin-properties.analyticsadminpropertiesdatastreamsmeasurementprotocolsecretslist
        with:
          parent: rest.parent
          pageSize: rest.pageSize
          pageToken: rest.pageToken
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: analyticsadminpropertiesdatastreamsmeasurementprotocolsecretscreate
        description: Creates a measurement protocol secret.
        call: admin-properties.analyticsadminpropertiesdatastreamsmeasurementprotocolsecretscreate
        with:
          parent: rest.parent
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1beta/property-acknowledgeuserdatacollection
      name: v1beta-property-acknowledgeuserdatacollection
      description: REST surface for v1beta-property}:acknowledgeUserDataCollection.
      operations:
      - method: POST
        name: analyticsadminpropertiesacknowledgeuserdatacollection
        description: Acknowledges the terms of user data collection for the specified property. This acknowledgement must
          be completed (either in the Google Analytics UI or through this API) before MeasurementProtocolSecret resources
          may be created.
        call: admin-properties.analyticsadminpropertiesacknowledgeuserdatacollection
        with:
          property: rest.property
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: admin-properties-mcp
    port: 9090
    transport: http
    description: MCP adapter for Google Analytics Admin API — properties. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: returns-child-properties-under-specified
      description: 'Returns child Properties under the specified parent Account. Only "GA4" properties will be returned. Properties
        will be excluded if the caller does not have access. Soft-deleted (ie: "trashed") properties are excluded by default.
        Returns an'
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: admin-properties.analyticsadminpropertieslist
      with:
        filter: tools.filter
        pageSize: tools.pageSize
        pageToken: tools.pageToken
        showDeleted: tools.showDeleted
      outputParameters:
      - type: object
        mapping: $.
    - name: creates-ga4-property-specified-location
      description: Creates an "GA4" property with the specified location and attributes.
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: admin-properties.analyticsadminpropertiescreate
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: returns-customized-report-data-access
      description: Returns a customized report of data access records. The report provides records of each time a user reads
        Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports

# --- truncated at 32 KB (40 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/google-analytics/refs/heads/main/capabilities/admin-properties.yaml