DestinationsMeta's own verdict on the data you send

Meta's own verdict on the data you send

meta_capi destinations only. A 200 from the Conversions API means Meta ACCEPTED the event, not that it can use it: Meta separately scores every dataset on whether those events can be matched to real accounts, and a destination with a spotless delivery log can still be feeding Meta events it cannot match. This endpoint reads that scoring (Meta's Dataset Quality API) for the destination's pixel.

One token does both. Quality is read with the destination's OWN stored credential. Generate it in Events Manager under Settings → Conversions API → "Set up with Dataset Quality API" (the recommended option) and the same system-user token sends events and reads quality, scoped to that one dataset. A token generated with the plain option delivers normally and returns 409 insufficient_permission here — regenerate it and store it again.

Absent is not zero. Every metric is null when Meta reported nothing for it — most often dedupe feedback on a dataset with too little paired browser/server traffic to judge. null means unknown, and is never rendered as a failing score.

Meta keeps no history. The live response is the current score. history=N adds the last N days from Mythic's own daily snapshot, which is the only way to see when something moved.

Test fires are set aside. test_event_code keeps an event out of Meta's reporting, not out of its quality scoring — measured: a test delivery through POST /{id}/test is scored like any other event, and scores badly, because its customer parameters are synthetic. An event whose deliveries in the last 28 days were all test fires is therefore flagged test_events_only and excluded from summary; it stays in events and is named in summary.excluded_test_events, so the headline can always be reconciled against the list. An event with no deliveries of ours at all is never treated this way.

curl -X GET "https://mythic-analytics.gulp.workers.dev/client/v1/destinations/example_string/quality?history=0" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "success": true,
  "data": {
    "action_id": "123e4567-e89b-12d3-a456-426614174000",
    "dataset_id": "example_string",
    "events": [
      {
        "event_name": "John Doe",
        "event_match_quality": 3.14,
        "match_keys": [
          {
            "identifier": "example_string",
            "coverage_percentage": 3.14
          }
        ],
        "event_coverage_percentage": 3.14,
        "event_coverage_goal_percentage": 3.14,
        "additional_conversions_percentage": 3.14,
        "potential_additional_conversions_percentage": 3.14,
        "dedupe_key": "example_string",
        "browser_events_with_dedupe_key_percentage": 3.14,
        "server_events_with_dedupe_key_percentage": 3.14,
        "browser_coverage_from_dedupe_key_percentage": 3.14,
        "upload_frequency": "example_string",
        "flags": [
          {
            "code": "emq_low",
            "severity": "info",
            "message": "example_string"
          }
        ]
      }
    ],
    "summary": {
      "events_scored": 42,
      "events_returned": 42,
      "min_event_match_quality": 3.14,
      "worst_event": "example_string",
      "critical_flags": 42,
      "warning_flags": 42,
      "status": "ok",
      "excluded_test_events": [
        "example_string"
      ]
    },
    "history": [
      {
        "day": "2024-12-25",
        "event_name": "John Doe",
        "event_match_quality": 3.14,
        "event_coverage_percentage": 3.14,
        "server_dedupe_key_percentage": 3.14,
        "browser_dedupe_key_percentage": 3.14
      }
    ]
  }
}
GET
/client/v1/destinations/{id}/quality
GET
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

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.

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.
query
historyinteger

Include the last N days of daily snapshots alongside the live read. Default 0 (live only). Values outside 0-90 are clamped.

Min: 0 • Max: 90
Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

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

historyinteger

Include the last N days of daily snapshots alongside the live read. Default 0 (live only). Values outside 0-90 are clamped.

Responses

successboolean
dataobject