The ad intelligence your agents need to win.
Every ad as text, every advertiser enriched. The competitive edge your agents run on.
Every advertiser, fully enriched.
Go past the ads. Every advertiser comes back with the full business and audience picture: web traffic, sales & spend scale, Reddit sentiment, personas, social. The signals a raw scrape will never have.
See the difference →The ad library your agents can actually read.
Every ad is pre-analyzed into text: hooks, scenes, creative DNA, offer, landing page. Your agent reads the analysis instead of processing raw video, so it studies thousands of ads for ~10× fewer tokens.
What a raw ad-library scraper will never give you.
Three ways to put it to work.
Enrich any advertiser to size markets and qualify accounts.
Real business signals, not guesses.
“The enrichment (traffic, sales scale, sentiment) is exactly what our GTM team needed to qualify accounts fast.”
Point agents at thousands of pre-analyzed ads and reason over the whole market.
The whole market, queryable.
“Our agent reasons over thousands of ads without ever touching a video. Token spend on creative research dropped about 10×.”
Enrich and monitor the advertisers you target: their creatives, business signals, and the competitive landscape around them.
Any advertiser, and their whole landscape.
“We point it at any advertiser we're tracking and get the whole picture (creatives, signals, and their competitive set) in one nightly job. It beats what our analysts pieced together by hand.”
Over MCP or API.
Bring Upspring into any agent over MCP, or call the REST API directly.
# Winning supplement ads from high-traffic advertisers curl -G https://public-api.upspring.ai/v1/ads \ -H "Authorization: Bearer $UPSPRING_KEY" \ -d vertical=supplements \ -d traffic_tier=A \ -d is_active=true \ -d sort=strength -d limit=10
{
"data": [{
"advertiser": { "name": "Nutriva", "traffic_tier": "A" },
"media_type": "video",
"hook_text": "Bloated by 3pm? Here's why.",
"dimensions": {
"hook_archetype": { "label": "Problem-agitation" },
"persona": { "label": "Women 30–45, wellness" },
"offer": { "label": "Subscribe & save 20%" }
},
"strength": { "impressions": 5, "engagement": "high" }
}],
"meta": { "next_cursor": "eyJ…" }
}
upk_ keys · OpenAPI · cursor pagination.
Questions, answered.
A read-only REST API over Upspring's advertiser database: every ad and every advertiser, pre-analyzed and LLM-ready, with rich enrichment on any advertiser. Your code (or agent) queries the analyzed answer as plain JSON. No LLM needed on your side.
A scraper hands you raw media and metadata. You still pay to analyze all of it. Upspring hands you the analyzed answer: every ad as text (hooks, scenes, creative DNA) and every advertiser enriched with spend, traffic, sales scale, sentiment and personas. Raw ads versus competitive intelligence.
Beyond each ad's creative breakdown, you also get the offer and product behind it, landing-page coherence (does the page deliver what the ad promises), advertiser briefs, and similar ads & advertisers, plus full per-advertiser enrichment.
We collect everything publicly available on a brand, enrich it with third-party data sources, and combine it with our internal dataset of advertisers to build estimation models for spend, traffic, sales scale and more.
We read what real customers say across sources like Reddit, plus the advertiser's own site and reviews, and distill it into a sentiment score and the recurring themes behind it.
We score every ad with an internal model trained on millions of ads, combined with third-party data enrichment, so the ranking reflects real engagement signals, not just how long an ad has been running.
Yes. Add the official Upspring MCP server to Claude Code, Claude Desktop, Cursor, or any MCP client, and advertiser intelligence becomes native tools your agent can call. See the MCP section above.
Request access and we'll mint a upk_ key for you. Self-serve signup is coming.