---
name: looot-meta-ads-library
description: Read a company's Meta ads. Use when the user says things like "what ads is nike.com running on Facebook", "show me the active Instagram ads of this brand" or "find ads that mention this keyword". Runs through looot, billed per call.
---

# Read a company's Meta ads

Meta Ad Library API for an agent: it sends a company domain, a Facebook page or a keyword to a catalog endpoint and reads ad creative text, images and video back. Several providers sell the call, so the agent tries the cheapest first. You pay per call, and a failed call costs nothing.

This skill needs the looot skill set up first: https://looot.ai/skill.md

## Ask for these inputs

The job takes a company domain, a Facebook page or a keyword. Example: nike.com.

- A company domain, a Facebook page or a keyword
- The country

## Run it

1. Find the endpoint: `looot discover --mode auto --query "meta ad library"`. The endpoints listed below are the known matches.
2. Read the price and the input schema before spending: `looot inspect <endpoint-id>`. Tell the user the price, then run.
3. Run it: `looot run scrapecreators-facebook-adlibrary-company-ads-get --input '{"companyName":"Nike","country":"US"}' --idempotency-key <new-key> --wait`. Reuse the same key only to retry the same request.
4. Read the run's `status` and `error`, not the HTTP status. A run can return `failed` with a normal response.
5. If a run fails with a provider error or times out, try the next endpoint from the list below, cheapest first. If it fails on your input (a 4xx style error), fix the input. Do not retry it on other providers.

## Endpoints

Each endpoint reads the same job from a different provider. They differ in inputs, fields and price. Run `looot inspect` on the ones that take the input you hold, start with the cheapest, and move to the next on a provider error.

- `scrapecreators-facebook-adlibrary-company-ads-get`: lists all ads currently running for a company by name or page ID, with filters for country, media type, date range and language
- `adyntel-facebook`: lists a company's ads on Facebook and Instagram from its domain or Facebook URL, with a country code
- `scrapecreators-facebook-adlibrary-search-ads-get`: searches the library by keyword and returns matching ads with the creative, the platform and the call to action
- `searchapi-io-meta-ad-library`: searches across Facebook, Instagram, Audience Network, Messenger and Threads, with filters for country, ad type, active status, media type and platform
- `adyntel-facebook-ad-search`: finds ads by keyword and returns the number of ads, the ad type, the media types, the platform and the active status

## What comes back

- Ad creative text, images and video
- Active or ended status
- Platforms the ad runs on
- Start date
- Advertiser page

## Answer rule

List each ad with its copy, format, platform and start date. Say whether each is active or ended.

## Before you start

- Filter by country. The library is searchable per country, and a global pull returns a pile you cannot read.
- Ask for active ads when you want what runs now. Ended ads stay in the library, and they tell a different story about what the company tried.
- Use the ad id to go deeper. One provider returns an ad's details and its video transcript, and both start from the id a search returns.

## Cost rules

- Searching and inspecting are free. Running is billed per call at the price `looot inspect` shows.
- Say the price before the first run, and the total after a batch.
- Never loop a failing call. Stop after two failures and report what failed.

## When not to use this skill

Use `looot-google-serp` instead when you want what the company shows in Google search, not its Meta ads.

Page for people: https://looot.ai/agent-skills/meta-ads-library
