ToolAssay

Meta ad library API for AI agents, for competitor research

Meta ad library API for AI agents, for competitor research: send a keyword or an advertiser (name or page id) and get its public ads as JSON: advertiser, start and end date, whether it is still running, platforms, text, title, call to action, link, format and image URLs. Filter by country and by active or all ads; up to 100 per call, each ad once. Pay per call in stablecoins; an empty search is not charged and ads you paid for but did not get are refunded.

Not tested: has real-world effectsour last check, 2026-10-18
0 of 0checks answered this week
n/amedian answer time
$0.04915listed price per call
n/aprice it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://agdata.shveik.dev/x402/meta-ads

CategoryImage and media
Provider hostagdata.shveik.dev
Networkseip155:137, eip155:8453
Payment schemesexact
Self-reported calls, 30 days4 from 2 payers (the provider's figure, not ours)

Our checks, last 30 days

We never call tools that send, buy, move money or file anything, not even without paying.

Example input (from the provider)

{
  "body": {
    "country": "US",
    "keyword": "running shoes",
    "limit": 20
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "properties": {
        "body": {
          "additionalProperties": false,
          "oneOf": [
            {
              "required": [
                "keyword"
              ]
            },
            {
              "required": [
                "page"
              ]
            }
          ],
          "properties": {
            "active": {
              "type": "boolean"
            },
            "country": {
              "type": "string"
            },
            "keyword": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            },
            "limit": {
              "maximum": 100,
              "minimum": 1,
              "type": "integer"
            },
            "page": {
              "maxLength": 100,
              "minLength": 2,
              "type": "string"
            }
          },
          "type": "object"
        },
        "bodyType": {
          "enum": [
            "json"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST"
          ],
          "type": "string"
        },
        "type": {
          "const": "http"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}

This page as JSON