Skip to main content
Glama
dev.socialscrape/socialscrape

dev.socialscrape/socialscrape

Official

Ad libraries

ad_libraries
Read-onlyIdempotent

Search ads and advertisers across Facebook/Meta, Google, LinkedIn, and TikTok, then read individual ad details or transcripts; supports pagination, date filters, and cached results.

Instructions

Ad libraries (Facebook/Meta, Google, LinkedIn, TikTok): search ads and advertisers, read one ad. The resource starts with the library: facebook.search, google.company.ads.

Pick a resource, then pass its parameters as top-level arguments (extras in params). Each call costs the credits shown below and the result says what was charged and what is left; failures are free. List resources return a cursor: pass it back unchanged for the next page. Pass max_age_days to accept a cached copy for free.

Resources:

  • facebook.ad(id|url): Facebook Ad Library ad details. 1 credit. Optional: get_transcript.

  • facebook.ad.transcript(id|url): Facebook Ad Library ad transcript. 1 credit (captions); AI transcription 1 credit up to 2 minutes, then 5 per started minute of the whole video. Optional: allow_long_transcription.

  • facebook.company.ads(id|company_name): Facebook Ad Library ads by page. 1 credit. Paged. Optional: status, media_type, start_date, end_date.

  • facebook.search(query): Facebook Ad Library search. 1 credit. Paged. Optional: match, ad_type, status, media_type, start_date, end_date.

  • facebook.search.companies(query): Facebook Ad Library advertiser search. 1 credit. Paged.

  • google.ad(url): Google Ads Transparency ad details. 1 credit.

  • google.advertisers.search(query): Google Ads Transparency advertiser search. 1 credit. Paged.

  • google.company.ads(id|domain): Google Ads Transparency ads by advertiser. 1 credit. Paged. Optional: topic, platform, format, start_date, end_date.

  • linkedin.ad(url|id): LinkedIn Ad Library ad details. 1 credit.

  • linkedin.search(): LinkedIn Ad Library search. 1 credit. Paged. Optional: company, company_id, countries, start_date, end_date.

  • tiktok.ad(id|url): TikTok Ad Library ad details. 1 credit.

  • tiktok.search(query|advertiser_name): TikTok Ad Library search. 1 credit. Paged. Optional: adv_biz_ids, start_date, end_date.

Input Schema

NameRequiredDescriptionDefault
idNoThe platform's id for the item, where a URL is not used. Used by: facebook.ad, facebook.ad.transcript, facebook.company.ads, google.company.ads, linkedin.ad, tiktok.ad
urlNoURL of the item the resource is about (profile, post, video, event...). Used by: facebook.ad, facebook.ad.transcript, google.ad, linkedin.ad, tiktok.ad
sortNoOrder of results: `impressions` is most impressions first (ScrapeCreators' default), `newest` is most recent. Changing it restarts the cursor chain. Used by: facebook.company.ads, facebook.search
queryNoSearch terms. Used by: facebook.search, facebook.search.companies, google.advertisers.search, linkedin.search, tiktok.search
cursorNoOpaque cursor from the previous page; pass it back unchanged
paramsNoAny other parameter for the chosen resource, by name, e.g. {"start_date": "2026-01-01"}. Optional parameters of each resource are in the tool description; call describe for types and allowed values.
regionNoTwo-letter country code (ISO 3166-1) for results that vary by country. Used by: facebook.company.ads, facebook.search, google.advertisers.search, google.company.ads, linkedin.search, tiktok.search
statusNoAd status. Used by: facebook.company.ads, facebook.search
end_dateNoImpressions window end, YYYY-MM-DD. Used by: facebook.company.ads, facebook.search, google.company.ads, linkedin.search, tiktok.search
languageNoOnly ads in this language, a 2-letter code (EN, ES, FR). Used by: facebook.company.ads, facebook.search
resourceYesWhich Ad libraries data to fetch. The tool description lists what each needs.
media_typeNoCreative type. `meme` is Meta's word for text on an image. Used by: facebook.company.ads, facebook.search
start_dateNoImpressions window start, YYYY-MM-DD. Used by: facebook.company.ads, facebook.search, google.company.ads, linkedin.search, tiktok.search
max_age_daysNoAccept a cached copy fetched within this many days, for 0 credits (0 to 30).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.1

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent annotations, the description discloses that each call charges credits, that failures are free, that cached results are free via `max_age_days`, and that transcript AI pricing scales (1 credit up to 2 minutes, then 5 per started minute). It also explains cursor behavior and that changing `sort` restarts the cursor chain. This is exactly the cost and side-effect context annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose, then calling conventions, then a scannable bulleted resource list. It is appropriately sized for a 12-resource multiplexer, though the repeated '1 credit. Paged.' on nearly every bullet is mild redundancy that could be factored out.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex 12-resource, 14-parameter tool with no output schema, the description covers selection, required inputs per resource, optional filters, credit pricing, caching, pagination, and transcript cost escalation. An agent has everything needed to choose a resource and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning by grouping which resources require `id` vs `url`, enumerating each resource's optional parameters, and explaining that `params` holds extras with an example. It mostly reinforces the schema's `Used by` notes, but the per-resource requirement mapping is useful beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names the specific resource family (ad libraries across Facebook/Meta, Google, LinkedIn, TikTok) and the actions (search ads and advertisers, read one ad), then shows the naming convention `facebook.search, google.company.ads`. An agent can immediately tell this is the paid-ads transparency tool rather than an organic-content tool like the `facebook` or `linkedin` siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains the calling pattern (pick a `resource`, pass its parameters top-level, extras in `params`), the cost tradeoff (`max_age_days` for a free cached copy, failures free), and cursor reuse for pagination. What is missing is an explicit statement of when to prefer this over a sibling like `facebook` or `linkedin` for non-ad data, so it is clear context without explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.