askill
matomo-api

matomo-apiSafety 90Repository

Matomo (Piwik) analytics platform API. Use for web analytics, tracking implementation, reporting API integration, plugin development, PHP/JavaScript tracking clients, and database schema understanding.

1 stars
1.2k downloads
Updated 2/15/2026

Package Files

Loading files...
SKILL.md

Matomo API Skill

Comprehensive API reference for Matomo (formerly Piwik), the open-source web analytics platform. Covers tracking APIs, reporting APIs, JavaScript/PHP clients, and database schema.

When to Use This Skill

This skill should be triggered when:

  • Implementing Matomo tracking on websites or applications
  • Building integrations with Matomo's Reporting API
  • Querying analytics data programmatically
  • Setting up event tracking, goal conversions, or ecommerce tracking
  • Working with Matomo's JavaScript or PHP tracking clients
  • Understanding Matomo's database structure for custom queries
  • Implementing consent management and privacy controls
  • Debugging Matomo tracking issues

Quick Reference

Tracking HTTP API Endpoint

https://your-matomo-domain.example/matomo.php

Required Parameters:

  • idsite - Website ID being tracked
  • rec=1 - Required to enable tracking

Common Parameters:

  • action_name - Page title for pageviews
  • url - Full URL of the current action
  • _id - 16-character hexadecimal visitor ID
  • rand - Random value to prevent caching
  • apiv=1 - API version

Event Tracking Parameters

  • e_c - Event category
  • e_a - Event action
  • e_n - Event name
  • e_v - Event value (numeric)

Goal Conversion

  • idgoal - Goal ID to trigger conversion
  • revenue - Monetary value for conversion

Ecommerce Parameters

  • ec_id - Order ID
  • ec_items - JSON array of items
  • revenue - Total order value
  • ec_st - Subtotal
  • ec_tx - Tax
  • ec_sh - Shipping
  • ec_dt - Discount

Reporting API Endpoint

https://your-matomo-domain.example/index.php?module=API&method=MODULE.METHOD&format=FORMAT

Standard Parameters:

ParameterValuesPurpose
idSiteInteger or comma-separatedWebsite ID(s)
periodday, week, month, year, rangeTime period
dateYYYY-MM-DD or magic keywordsSpecific date
formatxml, json, csv, tsv, html, rssOutput format
token_authYour API tokenAuthentication

Date Magic Keywords:

  • today, yesterday
  • lastWeek, lastMonth, lastYear
  • lastX (e.g., last7)
  • previousX (e.g., previous30)

JavaScript Tracking

// Page view
_paq.push(['trackPageView', 'Custom Page Title']);

// Event
_paq.push(['trackEvent', 'Category', 'Action', 'Name', Value]);

// Goal conversion
_paq.push(['trackGoal', goalId, customRevenue]);

// Site search
_paq.push(['trackSiteSearch', 'keyword', 'category', resultsCount]);

// Ecommerce order
_paq.push(['trackEcommerceOrder', orderId, grandTotal, subTotal, tax, shipping, discount]);

PHP Tracking

use MatomoTracker;

$tracker = new MatomoTracker($idSite, 'https://matomo.example.com/');
$tracker->setTokenAuth($token);
$tracker->setUserId($userId);
$tracker->doTrackPageView('Page Title');
$tracker->doTrackEvent('Category', 'Action', 'Name', $value);
$tracker->doTrackGoal($idGoal, $revenue);

Consent Management (JavaScript)

// Require consent before tracking
_paq.push(['requireConsent']);

// When user gives consent
_paq.push(['setConsentGiven']);

// Cookie-specific consent
_paq.push(['requireCookieConsent']);
_paq.push(['rememberCookieConsentGiven', hoursToExpire]);

// Opt-out
_paq.push(['optUserOut']);

Reference Files

This skill includes comprehensive documentation in references/:

  • tracking-http-api.md - HTTP Tracking API specification
  • reporting-api.md - Reporting API methods and parameters
  • javascript-client.md - JavaScript Tracking Client reference
  • php-client.md - PHP Tracking Client reference
  • database-schema.md - Database tables and relationships

Common Patterns

Bulk Tracking (HTTP)

POST https://matomo.example.com/matomo.php
{
  "requests": [
    "?idsite=1&rec=1&url=https://example.org/page1",
    "?idsite=1&rec=1&url=https://example.org/page2"
  ],
  "token_auth": "your_token_here"
}

Bulk API Requests (Reporting)

?module=API&method=API.getBulkRequest
&urls[0]=method%3DVisitsSummary.get%26idSite%3D1%26period%3Dday%26date%3Dtoday
&urls[1]=method%3DActions.getPageUrls%26idSite%3D1%26period%3Dday%26date%3Dtoday

Segmentation

# Visits from mobile devices in United States
&segment=deviceType==smartphone;countryCode==us

# Visits with specific event
&segment=eventCategory==Video;eventAction==Play

PHP Bulk Tracking

$tracker->enableBulkTracking();
$tracker->doTrackPageView('Page 1');
$tracker->doTrackPageView('Page 2');
$tracker->doTrackEvent('Category', 'Action');
$tracker->doBulkTrack(); // Send all at once

Key API Modules

Visitor Analytics

  • VisitsSummary - Overall visit metrics
  • UserCountry - Geographic data
  • DevicesDetection - Device and browser info
  • UserLanguage - Language preferences

Actions & Content

  • Actions - Pages, downloads, outlinks
  • Events - Custom event tracking
  • Contents - Content impression tracking

Conversions

  • Goals - Goal conversions and revenue
  • Ecommerce - Ecommerce transactions

Traffic Sources

  • Referrers - Traffic source analysis
  • MarketingCampaignsReporting - Campaign tracking

Real-time

  • Live - Real-time visitor data
  • Live.getLastVisitsDetails - Recent visitor details

Core Metrics

MetricDescription
nb_uniq_visitorsUnique visitors
nb_visitsTotal visits (30-min session)
nb_actionsPage views, downloads, outlinks
bounce_rateSingle-page visit percentage
avg_time_on_pageAverage page duration
revenueGoal/ecommerce revenue
conversion_rateGoal achievement ratio

Database Tables

Log Data (Raw)

  • log_visit - Individual visits
  • log_link_visit_action - Actions within visits
  • log_action - Action definitions (URLs, titles)
  • log_conversion - Goal conversions
  • log_conversion_item - Ecommerce items

Archive Data (Aggregated)

  • archive_numeric_YYYY_MM - Numeric metrics
  • archive_blob_YYYY_MM - Report data (compressed)

Configuration

  • site - Website configuration
  • goal - Goal definitions
  • segment - Saved segments
  • user - User accounts
  • access - User permissions

Authentication

Token Authentication

&token_auth=YOUR_TOKEN_HERE
  • Create tokens in: Administration > Personal > Security > Auth tokens
  • Never share URLs containing tokens publicly
  • Use POST requests with token in body for enhanced security

Features Requiring Auth

  • IP address override (cip)
  • Custom timestamp (cdt)
  • Geolocation override (country, region, city, lat, long)

Performance Tips

  1. Use Bulk Tracking - Batch multiple tracking calls
  2. Cache API Responses - Set appropriate cache headers
  3. Use Segments Sparingly - Complex segments impact performance
  4. Archive Data - Query archive tables for historical reports
  5. Limit Results - Use filter_limit to restrict row counts

Resources

Notes

  • Matomo was formerly known as Piwik
  • API supports both Matomo 4.x and 5.x versions
  • Session timeout default is 30 minutes
  • Visitor ID is 16-character hexadecimal
  • All tracking requests should include rec=1 parameter

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

95/100Analyzed 2/19/2026

A high-quality, dense technical reference for the Matomo Analytics API. It effectively aggregates HTTP endpoints, client library snippets (JS/PHP), and database schemas into a single actionable cheat sheet.

90
95
95
90
95

Metadata

Licenseunknown
Version-
Updated2/15/2026
Publishermajiayu000

Tags

apidatabaseobservabilitysecurity