Meta Branded Content Scraper: Paid Partnerships
Pricing
from $3.23 / 1,000 partnerships
Meta Branded Content Scraper: Paid Partnerships
Meta branded content scraper, no login: every Instagram and Facebook post marked as a paid partnership for the brands or creators you name. Rows carry the creator, each brand partner, the date, type and link, with follower counts and optional captions and likes. Monitor new posts; CSV or API.
Pricing
from $3.23 / 1,000 partnerships
Rating
0.0
(0)
Developer
Automation Craft
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Meta Branded Content Scraper: Paid Partnerships
Meta branded content scraper: every Instagram and Facebook post that Meta's branded content library marks as a paid partnership, for any brand or creator you name. One row per post with the creator, every brand partner, the date, the type (reel, post or story) and the link, read from the library without a login, back to August 2023.
Type a brand or creator as you know it (Sephora, @alixearle, a profile URL or a library URL) and get the posts where that account is the creator or the paid brand partner. Use it to see which creators a competitor pays, to check a creator's past brand deals before you sign one, or to watch new partnership posts every day with a memory that delivers only what is new.
What it does
- Search by name, @handle, profile URL, library URL or account id, up to 200 accounts a run, on Instagram, Facebook or both (accounts without partnerships in the days asked are read free, about five a run: see "Accounts without partnerships").
- One row per paid partnership post: creator, each brand partner, date, type, post link, the account searched and its role (creator or brand partner), and a link to the library page that shows the row.
- An account row per account with partnerships: followers (Instagram) or page likes and category (Facebook) and the verified flag, as the library's own search box shows them.
- Post details (optional, Instagram): caption, like count, comment count and exact posting time read from the post's own page.
- The whole history from 2023-08-17 (the first day the library holds), or the days you choose, newest first.
- New posts only: with a memory name, later runs deliver and charge only posts not delivered before.
- A free row for everything that is not a result: an account not found, a name several accounts carry, an account with no partnerships, an id of the other app, and a coverage row per account that says what was read.
Quick start
- Open the Actor and type one or more brands or creators in Brands or creators (one per line):
sephora,@alixearle,https://www.facebook.com/buzzfeedtasty. - Choose Apps: Instagram, Facebook or both (empty means both).
- Optionally set From date and To date (for example
90 daysandtoday) and the most partnerships per account. - Click Start. Rows appear in the dataset as each account is read; export them as JSON, CSV or Excel, or call the API.
- To watch accounts over time, give a Memory name and schedule the task: each run then delivers only new partnership posts.
What you get
Every row has a type: partnership (a paid partnership post, the Partnership event), account (the account searched, the
Account event), coverage (what was read per account, free), status (a free note) or summary (the run's counters, free).
Partnership rows
| Field | What it holds | Filled |
|---|---|---|
platform | instagram or facebook | always |
contentId | Meta's id of the post (a string) | always |
contentType | reel, post or story on Instagram; post on Facebook | always |
date | the post's day as the library shows it (YYYY-MM-DD, US Pacific time) | always |
contentUrl | the post, reel or story address | always |
creatorName, creatorHandle, creatorUrl | the creator who posted it (the handle on Instagram, the profile name on Facebook) | always |
brandPartners, brandPartnerNames, brandPartnerCount | each paid brand partner: name, handle and profile URL | 686 of 687 (23 rows name two or more) |
accountId, accountHandle, accountName | the account you searched | always |
accountRole | creator, brand_partner or creator_and_brand_partner | 687 of 687 |
libraryUrl | the library page of that account and day, which shows the row | always |
input, inputPosition | what you typed and its place in your list | always |
postDetails, postedAt, caption, likeCount, likesHidden, commentCount, mediaKind, coauthors | with Post details on: read, not_available (stories and Facebook rows), post_not_shown or could_not_read, and the post's facts | pages read 48 of 48 Instagram posts and reels; likes shown on 38 (the creator hides them on 10) |
The fill column counts the 687 distinct rows of the platform test runs of 2026-10-12 (640 Instagram, 47 Facebook); Post details counts 40 pages of a feasibility run and 8 of a test run.
Example row (a real row of a platform run on 2026-10-12 with Post details on; the caption is shortened):
{"type": "partnership","platform": "instagram","contentId": "18129906301808772","contentType": "reel","date": "2026-10-09","contentUrl": "https://www.instagram.com/reel/DeSghfYSyUZ/","creatorName": "flawlesskevin","creatorHandle": "flawlesskevin","creatorUrl": "https://www.instagram.com/flawlesskevin/","brandPartners": [{"name": "sephora","handle": "sephora","url": "https://www.instagram.com/sephora/"}],"brandPartnerNames": "sephora","brandPartnerCount": 1,"accountId": "17841400318240372","accountHandle": "sephora","accountName": "Sephora","accountRole": "brand_partner","input": "sephora","inputPosition": 1,"libraryUrl": "https://www.facebook.com/ads/library/branded_content/?id=17841400318240372&target=instagram&start_date=2026-10-09&end_date=2026-10-10","postDetails": "read","postedAt": "2026-10-09T21:54:19.000Z","caption": "#ad No one should ever be bullied or harassed for who they are which is why I'm partnering up with @sephora for Project Hearts Not Hate...","likeCount": 2145,"likesHidden": false,"commentCount": 87,"mediaKind": "reel","coauthors": []}
Account and coverage rows
The account row carries followers (Instagram), pageLikes and category (Facebook), verified, profileUrl and the
account's library link. The free coverage row says, per account and app: the days asked, the results pages read, partnerships
read, delivered, already known to the memory or delivered earlier in the run, days skipped thanks to the memory, the newest and oldest day seen, busyDays, complete and stopReason (end_of_window, max_per_account,
max_partnerships, charge_limit, work_allowance, lookup_failed, memory_full, aborted, timeout, push_failed).
How much does it cost to scrape Meta's branded content library?
Pay per event. You pay for partnership rows and account rows; status, coverage and summary rows are free.
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
| Partnership (one paid partnership post, delivered for the first time) | $4.52 / 1,000 | $4.13 / 1,000 | $3.75 / 1,000 | $3.23 / 1,000 |
| Account (one account with partnerships, once per run) | $1.50 / 1,000 | $1.50 / 1,000 | $1.35 / 1,000 | $1.20 / 1,000 |
| Post detail (optional: caption, likes, comments of an Instagram post read) | $1.00 / 1,000 | $1.00 / 1,000 | $0.90 / 1,000 | $0.80 / 1,000 |
| Actor start (once per run) | $0.007 | $0.007 | $0.007 | $0.007 |
Platinum and Diamond plans pay the Gold price. The Actor start event has no plan discount.
The Store pricing card shows these same prices per 1,000 events: "$4.13 / 1,000" on the Partnership row means one partnership post costs 0.413 cents on the Bronze plan.
Worked example (Bronze): the 25 newest paid partnerships of one brand cost $0.007 + $0.0015 + 25 x $0.00413 = $0.112. The same brand's whole history of about 400 posts costs about $1.66. A daily monitor of 15 accounts with a memory, on a day with 5 new posts, costs $0.007 + 15 x $0.0015 + 5 x $0.00413 = $0.050.
What is never charged: a post already delivered under your memory name, a post delivered earlier in the same run (a post found for two accounts), accounts the library does not know, names several accounts carry, accounts with no partnership in your days (about five a run, see "Accounts without partnerships"), and every status, coverage and summary row. The Account event is charged only for an account that has paid partnership posts in the days you asked (or posts already delivered under your memory name).
Input
| Field | What it does |
|---|---|
accounts | Brands or creators, one per line: a name (Sephora), an @handle, a profile URL, a branded content library URL or an account id. Up to 200 (about five accounts without partnerships in the days asked are read per run, see below). |
platforms | instagram, facebook or both (the default). Profile and library URLs say their app themselves. |
startDate, endDate | The days to read, both included: YYYY-MM-DD, today, yesterday or "30 days", "6 months", "1 year". Empty: 2023-08-17 to today. |
maxPartnershipsPerAccount | New partnership rows per account and app (default 1,000). |
maxPartnerships | New partnership rows for the whole run (default 10,000). |
postDetails | Read each delivered Instagram post or reel's page for its caption, likes, comments and posting time (Post detail event). |
memoryName, resetMemory | Deliver and charge only posts not delivered under this name before; reset forgets them. |
The input also accepts these key names: startUrls, resultsLimit, onlyPostsNewerThan, onlyPostsOlderThan, maxItems. A library URL keeps the days written in it unless you set your own dates.
How names are matched
A name is looked up in the library's own search box on each app you chose. It is read only when exactly one suggestion has that
exact handle or that exact name (capital letters aside). Otherwise you get a free row: account_not_found with the suggestions
the search box showed, or account_ambiguous with the accounts among its suggestions (up to five) that carry the name (on Facebook,
"Sephora" is four pages).
Send the one you mean as @handle or profile URL. An account id is read directly, and its facts come from the search box.
Accounts without partnerships
Reading an account costs the run the same whether it has paid partnerships or not, but only an account with partnerships pays
(its Account event and its rows). Accounts without any partnership in the days asked are read at no charge up to a fixed budget per
run, paid by the Actor start event: about five such accounts (USD 0.001 of the run's own cost; a slow page uses more of it), and
every billed row and account adds to that budget. When the budget is spent before the end of your list, the run stops and a free
skipped row lists the accounts it did not read, which can include accounts that do have partnerships. Put the accounts you need
most first, give a list of mostly quiet accounts a wider date window (more of them then have partnerships and pay their own way),
or split it into smaller runs.
Monitoring new partnership posts
Give a memoryName and schedule the Actor. Each run delivers and charges only posts not delivered under that name before. The
memory also keeps which days of each account were read in full: later runs read the newest 7 days again (a post the library adds
a few days late is still caught) and skip the older days already read, so a daily run of an account with nothing new reads one
results page (when the account has no more than 20 partnership posts in those 7 days). Each account read with partnership posts still pays its Account event, which is what a check costs.
A memory belongs to this Actor and to its name. Two runs on one name at the same time do not share it: the second runs free and remembers nothing. A memory holds up to 150,000 partnership posts.
How complete is it?
The library shows 20 posts per page, newest first, for the days asked. The Actor reads the days in windows: each next window ends
on the oldest day of the page before (that day is read again in full), until the first day asked. Every row the library showed
at read time is delivered once. Measured on 2026-10-12: Sephora's whole Instagram history (404 posts) gave the same posts in two
walks with different windows; on Nike's Instagram, 211 of 215 posts were seen by both walks, because the library shows a few
posts to some sessions and not to others. The coverage row says whether an account was read to its first day
(complete: true).
- The library's "N results" count is not used: on long windows it is far higher than the posts it shows.
- A day with more than 20 posts of one account cannot be split: its first 20 are delivered and the day is listed in
busyDays(none was met in 2026-10 tests; the busiest day seen held 7). - Dates are Meta's US Pacific day of the post (40 of 40 checked against the posts' own times);
postedAt(Post details) is the exact time in UTC.
What this Actor does not do
- It reads only what the library shows logged out. Meta says some branded content needs a logged in age and location check; that content is not delivered.
- It gives no video view counts: the logged out Instagram post page does not show them for these reels.
- It gives no creator profile statistics (biography, posts count, interaction rates): the account row carries the followers or page likes, category and verified flag the library's search box shows, and Post details add each post's likes and comments.
- It gives no brand spend or sponsorship estimates: Meta's library publishes none, and this Actor uses no third party data.
- It gives no lower enterprise price: Platinum and Diamond plans pay the Gold price.
- A post deleted from Instagram or Facebook leaves the library, and a monitor reports new posts, never deletions.
- It does not read Instagram or Facebook profiles, comments or ads; see the Actors below.
FAQ
Do I need a Meta account to search for branded content?
No. The Actor reads Meta's public branded content library without a login, cookies or an account. Only content Meta hides behind its own age and location check is out of reach.
How can I find out which brands an influencer has worked with?
Put the creator's @handle in accounts. Every row where that creator posted a paid partnership names the brand partners, and
accountRole says creator. Use a brand's handle to see the creators it paid (accountRole is brand_partner).
Does the library show only active branded content or older posts too?
Older posts too: the library holds paid partnership posts from 2023-08-17 that are still on Instagram or Facebook. The Actor reads back to that day unless you set your own dates.
Is there a tool to follow a brand's new paid partnerships?
Yes: schedule this Actor with a memoryName. Each run delivers only partnership posts not delivered before and reads about one
page per account.
Why does this Actor run with limited permissions?
It needs nothing but its own storage: the run's dataset and, when you give a memory name, a named store it creates itself. Limited permissions keep it from touching any other data in your account.
API
curl -X POST "https://api.apify.com/v2/acts/automation_craft~meta-branded-content-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"accounts": ["sephora", "@alixearle"], "platforms": ["instagram"], "maxPartnershipsPerAccount": 50}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation_craft/meta-branded-content-scraper').call({ accounts: ['sephora'], platforms: ['instagram', 'facebook'], startDate: '90 days' });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.filter((x) => x.type === 'partnership'));
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("automation_craft/meta-branded-content-scraper").call(run_input={"accounts": ["sephora"], "memoryName": "competitors"})rows = [x for x in client.dataset(run["defaultDatasetId"]).iterate_items() if x["type"] == "partnership"]
More data tools by Automation Craft
- Meta Ads Library Scraper - Ad Library, All Filters
- Facebook Ads Library Scraper - Ad Library & Spy
- Instagram Ads Library Scraper - Creatives, Video
- Meta Ad Spend Scraper: Advertiser Spend by Country
- Instagram Posts Scraper: Profiles, Reels, No Login
- Facebook Posts Scraper - Page Posts, No Login
- Threads Scraper: Posts, Search, Tags, Replies
- TikTok Ads Library Scraper: EU Ads, No Login
Changelog
- 0.1 (2026-10-12): first version.