Meta match quality day by day
meta_capi destinations only. The daily series behind GET /client/v1/destinations/{id}/quality: one row per (day, event), newest first.
Why it exists. Meta returns the CURRENT score and keeps no history of its own, so "when did match quality drop" is unanswerable from the live read. Mythic snapshots every connected dataset daily; this is that series.
Gaps are real. A day with no row is a day nothing was captured (a sweep outage, or a token that could not read quality). No value is carried forward — a flat line through an outage would read as stability.
Each row is that day's LAST capture. null means Meta scored nothing that day, never zero. flags are the findings as judged on the day, not re-derived against today's thresholds.
curl -X GET "https://mythic-analytics.gulp.workers.dev/client/v1/destinations/example_string/quality/trend?days_back=30&event_name=John%20Doe" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"
import requests
import json
url = "https://mythic-analytics.gulp.workers.dev/client/v1/destinations/example_string/quality/trend?days_back=30&event_name=John%20Doe"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.get(url, headers=headers)
print(response.json())
const response = await fetch("https://mythic-analytics.gulp.workers.dev/client/v1/destinations/example_string/quality/trend?days_back=30&event_name=John%20Doe", {
method: "GET",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_TOKEN"
}
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://mythic-analytics.gulp.workers.dev/client/v1/destinations/example_string/quality/trend?days_back=30&event_name=John%20Doe", nil)
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://mythic-analytics.gulp.workers.dev/client/v1/destinations/example_string/quality/trend?days_back=30&event_name=John%20Doe')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri)
request['Content-Type'] = 'application/json'
request['Authorization'] = 'Bearer YOUR_API_TOKEN'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"action_id": "123e4567-e89b-12d3-a456-426614174000",
"days_back": 42,
"days": [
{
"day": "2024-12-25",
"event_name": "John Doe",
"action_id": "123e4567-e89b-12d3-a456-426614174000",
"dataset_id": "example_string",
"event_match_quality": 3.14,
"event_coverage_percentage": 3.14,
"event_coverage_goal_percentage": 3.14,
"server_dedupe_key_percentage": 3.14,
"browser_dedupe_key_percentage": 3.14,
"browser_coverage_from_dedupe_key_percentage": 3.14,
"additional_conversions_percentage": 3.14,
"critical_flags": 42,
"warning_flags": 42,
"info_flags": 42,
"test_events_only": 42,
"flag_codes": [
"example_string"
],
"upload_frequency": "example_string",
"captured_at": "2024-12-25T10:00:00Z"
}
]
}
}
{
"error": "Bad Request",
"message": "The request contains invalid parameters or malformed data",
"code": 400,
"details": [
{
"field": "email",
"message": "Invalid email format"
}
]
}
{
"error": "Not Found",
"message": "The requested resource was not found",
"code": 404
}
{
"error": "Error",
"message": "The analytics query failed",
"code": 502
}
{
"error": "Service Unavailable",
"message": "The service is temporarily unavailable. Please try again later",
"code": 503
}
/client/v1/destinations/{id}/quality/trendTarget server for requests. Edit to use your own host.
Client key as bearer token. Use an agency key (Bearer ak_...) for read-write access or a location secret key (Bearer sk_...) for read-only access. Scoped keys (mcp_) are accepted too and need destinations:read or destinations:write. See Using an mcp_ key over HTTP.
Bearer ak_...) for read-write access or a location secret key (Bearer sk_...) for read-only access. Scoped keys (mcp_) are accepted too and need destinations:read or destinations:write. See Using an mcp_ key over HTTP.
Days of history. Default 30, clamped to 1-365.
Restrict to one Meta event name, e.g. Purchase.
Request Preview
Response
Response will appear here after sending the request
Authentication
Bearer token. Client key as bearer token. Use an agency key (Bearer ak_...) for read-write access or a location secret key (Bearer sk_...) for read-only access. Scoped keys (mcp_) are accepted too and need destinations:read or destinations:write. See Using an mcp_ key over HTTP.
Path Parameters
Query Parameters
Days of history. Default 30, clamped to 1-365.
Restrict to one Meta event name, e.g. Purchase.