Supermetrics

v1.0.1

Official Supermetrics skill. Query marketing data from 100+ platforms including Google Analytics, Meta Ads, Google Ads, and LinkedIn. Requires API key.

3· 1.8k·0 current·0 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
The SKILL.md and the Python client both implement a Supermetrics API client and require SUPERMETRICS_API_KEY — that is coherent with the stated purpose. However the registry metadata shown above lists no required env vars or primary credential, and the package claims to be 'Official Supermetrics' while source/homepage are unknown. That mismatch (claimed officialness + missing provenance + metadata omission) is an integrity/provenance concern.
Instruction Scope
Runtime instructions and the code are scoped to calling Supermetrics endpoints (POST /mcp/{tool_name} and GET /health) and returning results. The client only reads SUPERMETRICS_API_KEY (from the environment or a single .env file under ~/.openclaw/skills/<slug>/.env). It does not access other system paths or unrelated environment variables, nor does it send data to unexpected third-party endpoints in the reviewed code.
Install Mechanism
No install spec is present and the skill is provided as code only — nothing is downloaded or written by an installer. This has lower installation risk.
!
Credentials
The code and SKILL.md require SUPERMETRICS_API_KEY, which is proportionate for an API client. However the registry metadata (above) omitted required env vars/primary credential even though SKILL.md declares SUPERMETRICS_API_KEY — this inconsistency is suspicious and could cause the platform to not surface the credential requirement to users. The client will also try to read a .env file at ~/.openclaw/skills/supermetrics-openclawd/.env if the env var is not set.
Persistence & Privilege
The skill does not request always: true, does not modify other skills or system-wide agent settings, and does not persist credentials beyond reading an environment variable or its own .env file. Autonomous invocation is allowed (platform default) and not by itself a flag in this package.
What to consider before installing
This package appears to implement a normal Supermetrics API client and only needs SUPERMETRICS_API_KEY, but there are provenance and metadata inconsistencies you should resolve before installing: 1) Verify the skill's publisher/source — it claims to be 'Official' but has no homepage or authoritative source listed. Prefer an integration obtained directly from Supermetrics or a trusted registry entry. 2) Confirm the platform will prompt you to provide SUPERMETRICS_API_KEY (the registry metadata omitted it); do not paste other secrets. 3) Note the code will read a .env file at ~/.openclaw/skills/supermetrics-openclawd/.env if the env var is absent — ensure that file does not contain additional unrelated secrets. 4) Check that the BASE_URL (https://mcp.supermetrics.com) matches Supermetrics' documented endpoints. If you cannot verify publisher authenticity, run the skill in a restricted environment, provide a least-privilege API key (revocable), and monitor network usage and logs. If you want higher assurance, ask the publisher for a homepage/repo or use an official Supermetrics integration.

Like a lobster shell, security has layers — review code before you run it.

latestvk975083nk0dvp8d5v2hyxwstmh80f4k7
1.8kdownloads
3stars
2versions
Updated 1mo ago
v1.0.1
MIT-0

Supermetrics Marketing Data

Query marketing data from 100+ platforms including Google Analytics, Meta Ads, Google Ads, and LinkedIn.

Usage

Import the helper module:

from supermetrics import (
    discover_sources,
    discover_accounts,
    discover_fields,
    query_data,
    get_results,
    get_today,
    search,
    health,
)

Functions

discover_sources()

List all available marketing platforms.

result = discover_sources()
for src in result['data']['sources']:
    print(f"{src['id']}: {src['name']}")

discover_accounts(ds_id)

Get connected accounts for a data source.

Common data source IDs:

IDPlatform
FAMeta Ads (Facebook)
AWGoogle Ads
GAWAGoogle Analytics
GA4Google Analytics 4
LILinkedIn Ads
ACMicrosoft Advertising (Bing)
result = discover_accounts("GAWA")
for acc in result['data']['accounts']:
    print(f"{acc['account_id']}: {acc['account_name']}")

discover_fields(ds_id, field_type=None)

Get available metrics and dimensions.

# Get all fields
result = discover_fields("GAWA")

# Get only metrics
result = discover_fields("GAWA", "metric")

# Get only dimensions
result = discover_fields("GAWA", "dimension")

query_data(...)

Execute a marketing data query. Returns schedule_id for async retrieval.

result = query_data(
    ds_id="GAWA",
    ds_accounts="123456789",
    fields=["date", "sessions", "pageviews", "users"],
    date_range_type="last_7_days"
)
schedule_id = result['data']['schedule_id']

Parameters:

  • ds_id (required): Data source ID
  • ds_accounts (required): Account ID(s) from discover_accounts()
  • fields (required): Field ID(s) from discover_fields()
  • date_range_type: last_7_days, last_30_days, last_3_months, custom
  • start_date, end_date: For custom date range (YYYY-MM-DD)
  • filters: Filter expression (e.g., "country == United States")
  • timezone: IANA timezone (e.g., "America/New_York")

Filter operators:

  • ==, != - equals, not equals
  • >, >=, <, <= - comparisons
  • =@, !@ - contains, does not contain
  • =~, !~ - regex match

get_results(schedule_id)

Retrieve query results.

result = get_results(schedule_id)
for row in result['data']['data']:
    print(row)

get_today()

Get current UTC date for date calculations.

result = get_today()
print(result['data']['date'])  # "2026-02-03"

search(query)

Search across Supermetrics resources for guidance and suggestions.

result = search("facebook ads metrics")
print(result['data'])

health()

Check Supermetrics server health status.

result = health()
print(result['data']['status'])  # "healthy"

Workflow Example

from supermetrics import (
    discover_accounts,
    discover_fields,
    query_data,
    get_results,
)

# 1. Find accounts
accounts = discover_accounts("GAWA")
account_id = accounts['data']['accounts'][0]['account_id']

# 2. See available fields
fields = discover_fields("GAWA", "metric")
print([f['id'] for f in fields['data']['metrics'][:5]])

# 3. Query data
query = query_data(
    ds_id="GAWA",
    ds_accounts=account_id,
    fields=["date", "sessions", "users", "pageviews"],
    date_range_type="last_7_days"
)

# 4. Get results
data = get_results(query['data']['schedule_id'])
for row in data['data']['data']:
    print(row)

Response Format

All functions return:

{"success": True, "data": {...}}  # Success
{"success": False, "error": "..."}  # Error

Comments

Loading comments...