Creator and content intelligence, in one API.
Search and analyze social content across TikTok, YouTube and Instagram, vet creators with AI, and stream snapshots to your own stack. One API key, predictable JSON.
One question. The whole answer.
Every figure on this panel came back from the call printed below it. No dashboard, no export, no pipeline: one request, and the shape of a topic across TikTok, YouTube and Instagram.
$ GET /api/v1/content/statistics/?search=skincare%20routine&posted_within_days=90
posts per week
12 weeks to 2026-10-28Posts, not views. A post keeps gathering views for weeks after it is published, so plotting views would bend the newest weeks downwards and say nothing true about them.
where it is posted
one call per platformSame question, three answers: TikTok carries 2.5x YouTube's engagement rate on this term.
engagement rate, 12 weeks
Read over the 90 days to 2026-10-28. Run the call and you will land on the same figures, give or take what has been published since.
Search
Instantly find all videos about any brand or topic.
Insights
Video-first AI that turns videos into consumer insights.
Reporting
Clear data on how your brand is doing versus competitors.
Social suite
Find Content, Creators and More.
One API for social content and creators.
Read content and creator data on demand, or subscribe and let Zelf push snapshots to you. The same filters work everywhere.
GET /api/v1/content/
- search
- platform
- language
- posted_within_days
- view_count_min
- order_by
Call it directly, or import it.
One key in a header and an envelope back, or an official client that holds the base URL, reads the key from the environment and hands you typed objects. Same request either way.
Install
pip install zelf-sdk
ZelfAPIClient
reads ZELF_API_KEY
Typed objects
page.results[0]
Install
pip install zelf-sdk
ZelfAPIClient
reads ZELF_API_KEY
Typed objects
page.results[0]
pip install zelf-sdkimport os
from zelf import ZelfAPIClient
client = ZelfAPIClient(api_key=os.environ["ZELF_API_KEY"])
result = client.content.list(
search="skincare routine",
platform=["tiktok"],
posted_within_days=30,
order_by=["view_count"],
)
print(result)- auth
- A single x-api-key header. No tokens to refresh.
- shape
- Every endpoint answers in the same envelope.
- languages
- Python, TypeScript, Go, Rust, Ruby and C#.
Or point an agent at it.
Zelf speaks MCP, so an AI agent can search content, read statistics and vet creators on your behalf, inside the scopes you approved.
AI agent
any MCP client
Zelf MCP
OAuth 2.1, scoped
Tools
search_content, content_statistics
Grounded answer
real rows, not guesses
AI agent
any MCP client
Zelf MCP
OAuth 2.1, scoped
Tools
search_content, content_statistics
Grounded answer
real rows, not guesses
- consent
- You approve read, and write separately, on a consent screen.
- scope
- Write covers analyses and vettings only, and spends your quota.
- grounding
- The agent answers from rows it fetched, with ids you can check.
- Claude
- ChatGPT
- Gemini
- Cursor
- VS Code
- Zed
- Warp
- Any MCP client
Every one of them takes the same URL: one line of JSON in the client's config, or a single command in the terminal ones.
- You
How is matcha doing on TikTok this quarter?
calls content_statistics(search="matcha", platform=["tiktok"], posted_within_days=90)
returns 171,012 posts · 5.44B views · 7.55% engagement
- AI agent
Matcha ran hot on TikTok: 171,012 posts in the last 90 days, 5.44B views, and a 7.55% engagement rate, about 4.2x what the same term earns on YouTube.
Or let it come to you.
Subscribe once and Zelf runs the query on a schedule, then posts the result to your endpoint. Nothing to poll.
Subscription
filters and schedule
Scheduled run
daily, on those filters
Signed POST
HMAC, timestamped
Receiver
NDJSON to download
Subscription
filters and schedule
Scheduled run
daily, on those filters
Signed POST
HMAC, timestamped
Receiver
NDJSON to download
- signing
- Every delivery is HMAC-signed with a timestamp you verify.
- retries
- Failures are retried with backoff, so you never poll.
- receipts
- Deliveries are listed and replayable from the dashboard.
Predictable, documented, and safe to depend on.
One API key
Authenticate every request with a single x-api-key header. No OAuth dance, no tokens to refresh.
Consistent responses
Every response uses the same envelope: results, item_count, page, and a log_id you can quote in support.
Rich filtering
Filter and sort by metrics, platform, language, and a rolling time window, up to one year back.
Signed webhooks
Deliveries are HMAC-signed with a timestamp and retried with backoff, so you never poll.
Get access to Zelf.
Access is granted on request. Book a 30-minute demo and we will set up your account and API key.