SocialFetch

Social media scraping API for profiles, posts, comments, transcripts, and metrics across TikTok, Instagram, YouTube, and 13+ platforms. 100 free credits to start.

SearchLiveeip155:8453Exactvia cdp
TikTokSocial-data
Settlements · 30d
446↑ 52%
No per-endpoint history for this service yet, so this is payments indexed to its PROVIDER's wallet over 30 days.
$20.34
Verified settled volume
1,259 settlements proven x402 by their on-chain EIP-3009 marker.
$0.014
Listed price
As published in the catalog. Always read the live 402 before paying.
Calls · 30d
Upstream's own call count for this endpoint, not ours.
Unique payers · 30d
Never called
Upstream on-chain volume
Reported by the source catalog.
Paid to
0x02C2fCAfCe36B4AAdB39625866Bc6B1699d83043

The wallet the 402 directs payment to. Its whole payment record — every payer, every chain — is on the merchant page.

Asset 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

Provider

The payTo wallet does not resolve to a registered ERC-8004 agent. That is not a verdict on the service — most of the catalog is unregistered.

Live 402 challenge

Captured by the enrichment pass, not read just now. Prices can change — always read the 402 the endpoint answers with.

{
  "error": {
    "code": "payment_required",
    "message": "Missing API key. Include a valid x-api-key header to bill credits. See https://www.socialfetch.dev/docs/quickstart.",
    "requestId": "req_84926fd6-87d6-4943-8811-9b3d85936d48"
  }
}

Accepts

The payment requirements as published to the catalog. Read the live 402 before paying — a price here is a claim, not a quote.

0.014USDC≈ $0.014 USD
on Base · exact scheme

Pay 0.014 USDC on Base to 0x02C2…83043. The signed payment is good for 5 minutes.

USD Coin contract
0x8335…02913
Payment window
5 minutes
As published
14000 smallest units
The catalog’s raw entry
[
  {
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "extra": {
      "name": "USD Coin",
      "version": "2"
    },
    "payTo": "0x02C2fCAfCe36B4AAdB39625866Bc6B1699d83043",
    "amount": "14000",
    "scheme": "exact",
    "network": "eip155:8453",
    "maxTimeoutSeconds": 300
  }
]

Extensions

{
  "bazaar": {
    "info": {
      "input": {
        "type": "http",
        "method": "GET",
        "queryParams": {
          "query": "spotify"
        }
      },
      "output": {
        "type": "json",
        "example": {
          "data": {
            "ads": [
              {
                "id": "7646829987799334920",
                "ctr": 0.5,
                "cost": 1,
                "title": "I thought this was a gimmick until I tried it! A wrinkled shirt, one button, and a few minutes later... ready to wear.",
                "video": {
                  "id": null,
                  "urls": null,
                  "width": null,
                  "height": null,
                  "coverUrl": null,
                  "durationSeconds": null
                },
                "brandName": null,
                "likeCount": 92,
                "objective": "campaign_objective_reach",
                "industryKey": "label_22108000000"
              }
            ],
            "page": {
              "hasMore": true,
              "nextCursor": "eyJjIjoiMiIsImYiOnsicXVlcnkiOiJzcG90aWZ5IiwicmVnaW9uIjoiVVMiLCJwZXJpb2QiOiIzMCJ9fQ",
              "totalResultsEstimate": 326
            },
            "query": "spotify",
            "advertiserName": null
          },
          "meta": {
            "version": "v1",
            "requestId": "req_01tiktok_ad_library_search_found",
            "creditsCharged": 1
          }
        }
      }
    },
    "schema": {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "input"
      ],
      "properties": {
        "input": {
          "type": "object",
          "required": [
            "type",
            "method"
          ],
          "properties": {
            "type": {
              "type": "string",
              "const": "http"
            },
            "method": {
              "enum": [
                "GET"
              ],
              "type": "string"
            },
            "queryParams": {
              "type": "object",
              "properties": {
                "likes": {
                  "enum": [
                    "top-1-20",
                    "top-21-40",
                    "top-41-60",
                    "top-61-80",
                    "top-81-100"
                  ],
                  "type": "string",
                  "description": "Likes percentile filter for Top Ads."
                },
                "query": {
                  "type": "string",
                  "maxLength": 4096,
                  "description": "Optional keyword to search ad titles and content."
                },
                "cursor": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Opaque pagination cursor from a previous response."
                },
                "period": {
                  "enum": [
                    "7",
                    "30",
                    "180"
                  ],
                  "type": "string",
                  "description": "Time window in days for Top Ads."
                },
                "region": {
                  "enum": [
                    "DZ",
                    "AR",
                    "AU",
                    "AT",
                    "AZ",
                    "BH",
                    "BD",
                    "BY",
                    "BE",
                    "BO",
                    "BR",
                    "BG",
                    "KH",
                    "CA",
                    "CL",
                    "CO",
                    "CR",
                    "HR",
                    "CY",
                    "CZ",
                    "DK",
                    "DO",
                    "EC",
                    "EG",
                    "EE",
                    "FI",
                    "FR",
                    "DE",
                    "GR",
                    "GT",
                    "JO",
                    "HU",
                    "ID",
                    "IQ",
                    "IE",
                    "IL",
                    "IT",
                    "JP",
                    "KZ",
                    "KE",
                    "KW",
                    "LV",
                    "LB",
                    "MY",
                    "MX",
                    "MA",
                    "NL",
                    "NZ",
                    "NG",
                    "NO",
                    "OM",
                    "PK",
                    "PA",
                    "PY",
                    "PE",
                    "PH",
                    "PL",
                    "PT",
                    "PR",
                    "QA",
                    "LT",
                    "RO",
                    "SA",
                    "RS",
                    "SG",
                    "SK",
                    "SI",
                    "ZA",
                    "KR",
                    "ES",
                    "LK",
                    "SE",
                    "CH",
                    "TW",
                    "TH",
                    "TR",
                    "AE",
                    "GB",
                    "US",
                    "UY",
                    "VN"
                  ],
                  "type": "string",
                  "description": "Country code for Top Ads results. Defaults to US when omitted."
                },
                "orderBy": {
                  "enum": [
                    "for-you",
                    "impression",
                    "play-2s-rate",
                    "play-6s-rate",
                    "cvr",
                    "ctr",
                    "like"
                  ],
                  "type": "string",
                  "description": "Sort metric for Top Ads. Defaults to for-you when omitted."
                },
                "adFormat": {
                  "enum": [
                    "spark-ads",
                    "non-spark-ads"
                  ],
                  "type": "string",
                  "description": "Ad format filter for Top Ads."
                },
                "duration": {
                  "enum": [
                    "under-10s",
                    "10-20s",
                    "20-30s",
                    "30-40s",
                    "40-50s",
                    "over-50s"
                  ],
                  "type": "string",
                  "description": "Video duration filter for Top Ads."
                },
                "industry": {
                  "enum": [
                    "apparel-accessories",
                    "appliances",
                    "apps",
                    "baby-kids-maternity",
                    "beauty-personal-care",
                    "business-services",
                    "ecommerce-non-app",
                    "education",
                    "financial-services",
                    "food-beverage",
                    "games",
                    "health",
                    "home-improvement",
                    "household-products",
                    "life-services",
                    "news-entertainment",
                    "pets",
                    "sports-outdoor",
                    "tech-electronics",
                    "travel",
                    "vehicle-transportation"
                  ],
                  "type": "string",
                  "description": "Industry filter for Top Ads."
                },
                "objective": {
                  "enum": [
                    "app-installs",
                    "conversions",
                    "lead-generation",
                    "product-sales",
                    "reach",
                    "traffic",
                    "video-views"
                  ],
                  "type": "string",
                  "description": "Campaign objective filter for Top Ads."
                },
                "adLanguage": {
                  "enum": [
                    "en",
                    "es",
                    "ar",
                    "vi",
                    "th",
                    "de",
                    "id",
                    "pt",
                    "fr",
                    "ms",
                    "nl",
                    "ja",
                    "it",
                    "ro",
                    "zh-Hant",
                    "ko"
                  ],
                  "type": "string",
                  "description": "Ad language filter for Top Ads."
                },
                "advertiserName": {
                  "type": "string",
                  "maxLength": 4096,
                  "minLength": 1,
                  "description": "Search the public TikTok Ads Library by advertiser name. When set, results come from the public Ads Library instead of Top Ads."
                }
              }
            }
          },
          "additionalProperties": false
        },
        "output": {
          "type": "object",
          "required": [
            "type"
          ],
          "properties": {
            "type": {
              "type": "string"
            },
            "example": {
              "type": "object"
            }
          }
        }
      }
    }
  },
  "payment-identifier": {
    "info": {
      "required": false
    },
    "schema": {
      "type": "object",
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "required": [
        "required"
      ],
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[a-zA-Z0-9_-]+$",
          "maxLength": 128,
          "minLength": 16
        },
        "required": {
          "type": "boolean"
        }
      }
    }
  }
}

Provenance

Seen in the source catalog
2026-07-20 15:57Z
Last indexed by Roundhouse
2026-07-20 17:50Z
Last enriched (probe, favicon, geo)
2026-09-10 09:15Z
x402 version
2
Max timeout
300s
Liveness probe
HTTP 402
Report

Hand this page to an agent

Copy the prompt and paste it into Claude, an MCP client or your own agent — it will vet this service and call it over the free read API. No key, no account.

GET api.roundhouseai.io/v0/endpoints

No per-endpoint history for this service yet, so this is payments indexed to its PROVIDER's wallet over 30 days. Verified volume counts only settlements with an on-chain EIP-3009 marker.

Open skill.md
Show the prompt
Using Roundhouse, look up the x402 service SocialFetch and tell me whether it is
worth paying: what a call costs, whether the endpoint answered when last probed, and what
its payment record actually shows.

curl -s 'https://api.roundhouseai.io/v0/endpoints?q=SocialFetch'
curl -s 'https://api.roundhouseai.io/v0/merchants/<the payTo wallet returned above>'

Then call it: read the price from the live 402 at https://api.socialfetch.dev/v1/tiktok/ad-library/ads/search, never from
a cached figure, and pay with an x402 client.

The /v0 API needs an API key (`authorization: Bearer rh_live_…`) on everything except
/v0/unified* and /v0/endpoints. Mint a personal key for $0.01 at GET https://api.roundhouseai.io/v0/test/x402,
or use an organization key from https://roundhouseai.io/dashboard/team.

If you do not have Roundhouse tools or skills installed, read
https://roundhouseai.io/skill.md first — it is the whole procedure.