Ferrule

Google Analytics

9 tools OpenAPI spec ↗

MCPREST
POSTrun_report/properties/:property/reports:run

Run a standard report on a GA4 property. Returns dimension and metric data for the given date range. Supports filtering, sorting, pagination, and aggregation.

Request

Path Parameters

NameTypeRequiredDescription
propertystringYesGA4 property ID (e.g. 123456)

Query Parameters

NameTypeRequiredDescription
dimensionsobjectNoArray of dimension objects, e.g. [{name: 'city'}]. See GA4 dimension reference.
metricsobjectNoArray of metric objects, e.g. [{name: 'activeUsers'}]. See GA4 metric reference.
dateRangesobjectNoArray of date range objects, e.g. [{startDate: '2024-01-01', endDate: '2024-01-31'}].
dimensionFilterobjectNoFilter clause for dimensions.
metricFilterobjectNoFilter clause for metrics.
offsetstringNoRow offset for pagination (as string).
limitstringNoMaximum rows to return (as string).
metricAggregationsobjectNoArray of aggregation types: TOTAL, MINIMUM, MAXIMUM, COUNT.
orderBysobjectNoArray of order-by specifications.
currencyCodestringNoCurrency code for monetary metrics (e.g. 'USD').
cohortSpecobjectNoCohort specification for cohort reports.
keepEmptyRowsbooleanNoIf true, include rows with all zero metric values.
returnPropertyQuotabooleanNoIf true, include property quota info in the response.
comparisonsobjectNoArray of comparison objects.

Response

dimensionHeadersobject
metricHeadersobject
rowsobject
totalsobject
maximumsobject
minimumsobject
rowCountobject
metadataobject
propertyQuotaobject
kindobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-analyticsdata",
      "method": "run_report"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-analyticsdata",
    "arguments": {
      "method": "run_report",
      "params": {
        "property": "<property>"
      }
    }
  }
}
POSTrun_pivot_report/properties/:property/reports:runPivot

Run a pivot report on a GA4 property. Returns data organized in pivot tables with dimension and metric headers.

Request

Path Parameters

NameTypeRequiredDescription
propertystringYesGA4 property ID (e.g. 123456)

Query Parameters

NameTypeRequiredDescription
dimensionsobjectNoArray of dimension objects.
metricsobjectNoArray of metric objects.
dateRangesobjectNoArray of date range objects.
pivotsobjectNoArray of pivot objects defining how dimensions are organized in the report.
dimensionFilterobjectNoFilter clause for dimensions.
metricFilterobjectNoFilter clause for metrics.
currencyCodestringNoCurrency code.
cohortSpecobjectNoCohort specification.
keepEmptyRowsbooleanNoIf true, include rows with all zero metric values.
returnPropertyQuotabooleanNoIf true, include property quota info.
comparisonsobjectNoArray of comparison objects.

Response

pivotHeadersobject
dimensionHeadersobject
metricHeadersobject
rowsobject
aggregatesobject
metadataobject
propertyQuotaobject
kindobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-analyticsdata",
      "method": "run_pivot_report"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-analyticsdata",
    "arguments": {
      "method": "run_pivot_report",
      "params": {
        "property": "<property>"
      }
    }
  }
}
POSTrun_realtime_report/properties/:property/reports:runRealtime

Run a realtime report on a GA4 property. Returns current user activity data. Realtime data is available for the last 30 minutes.

Request

Path Parameters

NameTypeRequiredDescription
propertystringYesGA4 property ID (e.g. 123456)

Query Parameters

NameTypeRequiredDescription
dimensionsobjectNoArray of dimension objects.
metricsobjectNoArray of metric objects.
dimensionFilterobjectNoFilter clause for dimensions.
metricFilterobjectNoFilter clause for metrics.
limitstringNoMaximum rows to return.
metricAggregationsobjectNoArray of aggregation types.
orderBysobjectNoArray of order-by specifications.
returnPropertyQuotabooleanNoIf true, include property quota info.
minuteRangesobjectNoArray of minute range objects for filtering realtime data windows.

Response

dimensionHeadersobject
metricHeadersobject
rowsobject
totalsobject
maximumsobject
minimumsobject
rowCountobject
propertyQuotaobject
kindobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-analyticsdata",
      "method": "run_realtime_report"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-analyticsdata",
    "arguments": {
      "method": "run_realtime_report",
      "params": {
        "property": "<property>"
      }
    }
  }
}
POSTbatch_run_reports/properties/:property/reports:batchRun

Run multiple standard reports in a single batch request on a GA4 property. More efficient than making individual run_report calls.

Request

Path Parameters

NameTypeRequiredDescription
propertystringYesGA4 property ID (e.g. 123456)

Query Parameters

NameTypeRequiredDescription
requestsobjectNoArray of report request objects. Each request has the same structure as run_report params (dimensions, metrics, dateRanges, etc.).

Response

reportsobject
kindobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-analyticsdata",
      "method": "batch_run_reports"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-analyticsdata",
    "arguments": {
      "method": "batch_run_reports",
      "params": {
        "property": "<property>"
      }
    }
  }
}
POSTbatch_run_pivot_reports/properties/:property/reports:batchRunPivot

Run multiple pivot reports in a single batch request on a GA4 property. More efficient than making individual run_pivot_report calls.

Request

Path Parameters

NameTypeRequiredDescription
propertystringYesGA4 property ID (e.g. 123456)

Query Parameters

NameTypeRequiredDescription
requestsobjectNoArray of pivot report request objects. Each request has the same structure as run_pivot_report params.

Response

pivotReportsobject
kindobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-analyticsdata",
      "method": "batch_run_pivot_reports"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-analyticsdata",
    "arguments": {
      "method": "batch_run_pivot_reports",
      "params": {
        "property": "<property>"
      }
    }
  }
}
GETget_metadata/properties/:property/metadata

Get metadata about available dimensions and metrics for a GA4 property. Use property ID '0' for universal metadata available to all properties.

Request

Path Parameters

NameTypeRequiredDescription
propertystringYesGA4 property ID. Use '0' for universal metadata available to all properties.

Response

nameobject
dimensionsobject
metricsobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-analyticsdata",
      "method": "get_metadata"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-analyticsdata",
    "arguments": {
      "method": "get_metadata",
      "params": {
        "property": "<property>"
      }
    }
  }
}
POSTcheck_compatibility/properties/:property/compatibility:check

Check compatibility of dimensions and metrics for a GA4 property. Returns which combinations are compatible for reporting.

Request

Path Parameters

NameTypeRequiredDescription
propertystringYesGA4 property ID (e.g. 123456)

Query Parameters

NameTypeRequiredDescription
dimensionsobjectNoArray of dimension objects to check compatibility.
metricsobjectNoArray of metric objects to check compatibility.
dimensionFilterobjectNoFilter clause for dimensions.
metricFilterobjectNoFilter clause for metrics.
compatibilityFilterstringNoFilter to COMPATIBLE or INCOMPATIBLE results.

Response

dimensionCompatibilitiesobject
metricCompatibilitiesobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-analyticsdata",
      "method": "check_compatibility"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-analyticsdata",
    "arguments": {
      "method": "check_compatibility",
      "params": {
        "property": "<property>"
      }
    }
  }
}
GETlist_accounts/accounts

List all GA4 accounts accessible to the authenticated user. Use this to discover account IDs, then pass them to list_properties to find property IDs usable with the reporting tools.

Request

Query Parameters

NameTypeRequiredDescription
pageSizeintegerNoMax accounts per page. Default 50, maximum 200.
pageTokenstringNoPage token returned from a previous call to continue pagination.
showDeletedbooleanNoIf true, include soft-deleted accounts.

Response

accountsobject
nextPageTokenobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-analyticsdata",
      "method": "list_accounts"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-analyticsdata",
    "arguments": {
      "method": "list_accounts",
      "params": {}
    }
  }
}
GETlist_properties/accounts/:account/properties

List GA4 properties under a given account. Pass an account ID (e.g. '123456') to list its properties. The returned 'name' field (e.g. 'properties/987654321') contains the property ID to use with run_report and other reporting tools.

Request

Path Parameters

NameTypeRequiredDescription
accountstringYesGA4 account ID (digits only, e.g. '123456').

Query Parameters

NameTypeRequiredDescription
pageSizeintegerNoMax properties per page. Default 50, maximum 200.
pageTokenstringNoPage token returned from a previous call to continue pagination.
showDeletedbooleanNoIf true, include soft-deleted properties.

Response

propertiesobject
nextPageTokenobject

Examples

1. Describe method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "describe_method",
    "arguments": {
      "service": "google-analyticsdata",
      "method": "list_properties"
    }
  }
}

2. Call method

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "call_google-analyticsdata",
    "arguments": {
      "method": "list_properties",
      "params": {
        "account": "<account>"
      }
    }
  }
}