INFLU
Read-only fashion intelligence for Instagram creator momentum, brand radar and rising trends; requires a Business plan and API key.
Hosted MCP Server
npx add-mcp 'https://app.influ.site/api/v1/mcp'Installs into Claude Code, Codex, Cursor and more
Documentation
Trend API
Pull Trend Radar, Brand Radar and creator momentum into your own dashboards, sheets and tools. Read-only, versioned, JSON over HTTPS.
Explore the Codex and Claude Code plugins →
v1
Read-only · Bearer key
60 requests / minute / key
1. Access
The API is part of the Business plan for agencies and retailers. Talk to us to switch it on. Once it is on, create a key in the app under Settings → API keys. The full key is shown once; we store only a fingerprint of it, so copy it somewhere safe. You can hold up to five active keys and revoke any of them at once from the same page.
2. Authentication
Send the key in the Authorization header on every request. Keys start with influ_live_. Call the API from your server, never from a browser or a mobile app, and never commit a key to source control.
Authorization: Bearer influ_live_••••••••••••
Base URL: https://app.influ.site/api/v1
3. Responses
Every success is a JSON envelope. refreshed_at is when the underlying snapshot was built (the radars rebuild every 3 hours), so polling faster than that returns the same data. disclaimer says the scores and labels are estimates from public data; show it, or our wording, wherever you display them.
{
"data": [ ... ],
"meta": { "api_version": "v1", "count": 10, "kind": "garment", "limit": 10 },
"refreshed_at": "2026-09-26T00:05:00Z",
"disclaimer": "Scores, stages, labels and predictions are estimates from public data and may be wrong. ..."
}
Field names are stable within v1. Weekly series are 8 numbers, newest first: index 0 is the last 7 days, index 7 is 49 to 56 days ago.
4. Endpoints
GET /trends
Rising fashion terms from Trend Radar, fastest first. Velocity is this week’s share of fashion posts over the mean share of the previous four weeks.
kind
Optional. One of garment, footwear, accessory, aesthetic, colour, fabric, hashtag. All kinds when absent.
limit
Optional. 1 to 100, default 40.
Fields
term kind label stage is_new velocity posts_week creators_week views_week share_week weekly_posts weekly_fashion_posts top_creators
curl -s "https://app.influ.site/api/v1/trends?kind=garment&limit=10" \
-H "Authorization: Bearer $INFLU_API_KEY"
GET /brands
Brands fashion creators tagged, @mentioned, co-authored with or were paid by in the last 7 days, from Brand Radar.
sort
Optional. One of mentions, velocity, paid. Default mentions.
limit
Optional. 1 to 100, default 40.
Fields
handle display_name is_verified verified_by is_new velocity posts_week creators_week paid_week views_week share_week signals_week weekly_posts weekly_creators weekly_paid weekly_fashion_posts top_creators
curl -s "https://app.influ.site/api/v1/brands?sort=velocity&limit=20" \
-H "Authorization: Bearer $INFLU_API_KEY"
GET /brands/{handle}
One brand by Instagram handle (with or without the @). Same fields as the list.
handle
Required. The brand’s Instagram handle.
Fields
handle display_name is_verified verified_by is_new velocity posts_week creators_week paid_week views_week share_week signals_week weekly_posts weekly_creators weekly_paid weekly_fashion_posts top_creators
curl -s "https://app.influ.site/api/v1/brands/acnestudios" \
-H "Authorization: Bearer $INFLU_API_KEY"
GET /creators/{creator_uuid}/momentum
A creator’s momentum, velocity and lifecycle phase. Private and opted-out creators are a 404, like a creator we do not track.
creator_uuid
Required. The creator id (a UUID), as returned in top_creators.
Fields
creator_uuid username follower_count primary_vertical creator_score momentum_score momentum_label growth_momentum_label velocity_label acceleration_label phase_label followers_per_day followers_acceleration posts_30d last_post_at score_computed_at
curl -s "https://app.influ.site/api/v1/creators/6f1d2c3b-1111-4222-8333-444455556666/momentum" \
-H "Authorization: Bearer $INFLU_API_KEY"
GET /trends/forecast
Trend Forecast for the same terms as /trends: whether each is still climbing, roughly when it peaks, and a 2-week band (an 80% range of its share of fashion posts). Low confidence carries no stage, band or peak.
kind
Optional. One of garment, footwear, accessory, aesthetic, colour, fabric, hashtag. All kinds when absent.
limit
Optional. 1 to 100, default 40.
Fields
term kind label confidence stage outlook direction slope acceleration peak_weeks band
curl -s "https://app.influ.site/api/v1/trends/forecast?kind=garment&limit=10" \
-H "Authorization: Bearer $INFLU_API_KEY"
GET /brands/{handle}/match
Rising creators in a brand’s lane who have not worked with it yet: they tag or mention its closest brands. meta.closest_brands lists those brands; plan-gated labels are null and named in meta.gated_fields.
handle
Required. The brand’s Instagram handle.
limit
Optional. 1 to 60, default 24.
Fields
creator_uuid username follower_count fashion_subcategory momentum_label phase_label matched_brands matched_count neighbour_total lane_posts match_score reason
curl -s "https://app.influ.site/api/v1/brands/acnestudios/match?limit=10" \
-H "Authorization: Bearer $INFLU_API_KEY"
GET /creators/{creator_uuid}/sponsors
Sponsor track record: paid-partnership posts against organic posts over 90 days (median views as a multiple of followers), and the brands that sponsored the creator most over 180 days. Plans with deep creator metrics.
creator_uuid
Required. The creator id (a UUID).
Fields
creator_uuid username status window_days paid_posts organic_posts paid_median_reach organic_median_reach paid_vs_organic verdict sponsors sponsors_window_days
curl -s "https://app.influ.site/api/v1/creators/6f1d2c3b-1111-4222-8333-444455556666/sponsors" \
-H "Authorization: Bearer $INFLU_API_KEY"
GET /creators/{creator_uuid}/affiliations
Who a creator is connected to over 90 days: accounts they tag (tags_out), co-post partners (co_posts) and tracked creators who tag them (inbound). Each entry has handle, creator_uuid, name, is_brand, posts, tagged_posts, coauthor_posts, last_seen; creator_uuid is null for accounts we do not track. Plans with deep creator metrics.
creator_uuid
Required. The creator id (a UUID).
Fields
creator_uuid window_days posts_held last_post_at tags_out co_posts inbound
curl -s "https://app.influ.site/api/v1/creators/6f1d2c3b-1111-4222-8333-444455556666/affiliations" \
-H "Authorization: Bearer $INFLU_API_KEY"
On the creator endpoint, a field your plan does not cover is returned as null and named in meta.gated_fields.
5. Rate limits
Each key may make 60 requests per minute (sliding window). Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (seconds). Over the limit you get a 429 with a Retry-After header in seconds; wait that long and retry.
Each account may also pull 20,000 rows a day across all its keys (a list counts its items, a single brand or creator counts 1). Every response carries X-Row-Units (rows in this response) and X-Rows-Remaining (rows left today). Once the day's rows are spent you get a 429 with code daily_row_limit_exceeded until midnight UTC; Retry-After says how long that is.
Metered accounts spend an API allowance instead of the daily row cap. Send an Idempotency-Key header (printable ASCII, no spaces, up to 200 characters) with every request: a new value for each call you want counted, and the same value when you retry one, so a retry is never charged twice. Without it the request is refused with a 400 idempotency_key_required. Each response carries X-Allowance-Used, X-Allowance-Remaining and X-Allowance-Reset. When the allowance and any extra usage are spent you get a 429 with code allowance_exhausted, and a list that the balance only partly covers comes back shorter with X-Limit-Clamped set. If automatic reload is on in billing settings, running out buys another 1,000 units instead, and the request answers 409 allowance_payment_pending until the payment is confirmed; retry it with the same Idempotency-Key.
6. Errors
{ "error": { "code": "rate_limited", "message": "Rate limit exceeded for this API key." } }
400invalid_parameterA query parameter is not one of the allowed values.
401missing_api_key / invalid_api_key / revoked_api_key / expired_api_keyNo key, an unknown key, a revoked key, or a key past its expiry date.
403plan_not_entitledYour plan does not include API access, or the data the endpoint returns (sponsors and affiliations need deep creator metrics).
403insufficient_scopeThe key was made without the scope this endpoint reads (trends, brands or creators). Over MCP, tools outside the key's scopes are not listed and a call to one is refused.
400idempotency_key_requiredMetered accounts must send a bounded Idempotency-Key header on every request.
404not_foundNo brand or creator with that id.
429rate_limitedOver the rate limit. Wait for the seconds in Retry-After.
429daily_row_limit_exceededThe account used its rows for the day. Resets at midnight UTC.
429allowance_exhaustedThe API allowance and any extra usage are spent. Wait for the seconds in Retry-After.
409allowance_payment_pendingThe allowance ran out and an automatic extra usage payment is being confirmed. Retry with the same Idempotency-Key after the seconds in Retry-After.
402allowance_payment_requiredThe allowance ran out and an extra usage payment needs the account owner in billing settings.
503unavailableA temporary outage. Retry after the seconds in Retry-After.
7. Use with Claude and other MCP clients
The same data is available as a Model Context Protocol server, so Claude, Cursor, n8n and other agent tools can ask for rising trends in plain language with no glue code. It is a remote server over Streamable HTTP at https://app.influ.site/api/v1/mcp, and it uses the same key, plan, rate limits and fields as the REST endpoints. Every message you send it counts as one request toward the rate limit.
For Codex or Claude Code, download the Influ plugins. Extract the bundle and follow its setup guide to connect an eligible API key. Node.js 22 or newer is required; calls may use allowance.
To update, extract the latest bundle into the same marketplace folder, replacing its files. Then run the commands for your client and restart it. Codex reinstalls the plugin from that folder; Claude Code refreshes the marketplace before updating the plugin.
# Codex
codex plugin remove influ@influ
codex plugin add influ@influ
# Claude Code
claude plugin marketplace update influ
claude plugin update influ@influ
Most clients take a JSON block like this (swap in your key):
{
"mcpServers": {
"influ": {
"type": "http",
"url": "https://app.influ.site/api/v1/mcp",
"headers": { "Authorization": "Bearer influ_live_••••••••••••" }
}
}
}
For metered accounts, direct HTTP clients must also send an Idempotency-Key on each tools/call: use a new key for each new call and reuse it only when retrying that same call. A static header shared by every call is not suitable. The Influ plugins above supply a distinct key for each call and do not automatically retry uncertain calls.
In Claude Code, from a terminal:
claude mcp add --transport http influ https://app.influ.site/api/v1/mcp \
--header "Authorization: Bearer $INFLU_API_KEY"
In n8n, add an MCP Client Tool node with this endpoint, the HTTP Streamable transport, and header authentication set to Authorization = Bearer <your key>. Clients that only accept a URL with no custom headers cannot use the server yet.
Tools
rising_trendsRising fashion trends. Same rows as GET /trends. Arguments: kind, limit.
brand_radarBrand radar. Same rows as GET /brands. Arguments: sort, handle, limit.
creator_momentumCreator momentum. Same rows as GET /creators/{creator_uuid}/momentum. Arguments: creator_uuid.
trend_forecastTrend forecast. Same rows as GET /trends/forecast. Arguments: kind, limit.
brand_matchBrand-creator match. Same rows as GET /brands/{handle}/match. Arguments: handle, limit.
creator_sponsorsCreator sponsor track record. Same rows as GET /creators/{creator_uuid}/sponsors. Arguments: creator_uuid.
creator_affiliationsCreator affiliations. Same rows as GET /creators/{creator_uuid}/affiliations. Arguments: creator_uuid.
Each result carries the REST envelope as structured content, with rows under data. List tools return 25 rows by default and at most 100. The tools are read-only.
8. Research workflows
Download the executable Node.js examples. Run with Node.js 24 or later. The default fixture mode makes no network calls and uses synthetic empty results, not live research evidence. The examples initialise MCP, check tools/list, and preserve structured data, gated fields, refresh timestamps and allowance headers.
node research-workflows.mjs weekly
node research-workflows.mjs sourcing
node research-workflows.mjs creator
- Weekly evidence: rising_trends, brand_radar and trend_forecast, up to three rows each. The caller schedules it; the example is a single run.
- Brand sourcing: brand_match, up to three candidates. No relationship observed in collected posts does not establish no previous partnership, and shared creators do not measure audience overlap.
- Creator review: creator_momentum, creator_sponsors and creator_affiliations for an explicit creator UUID from a prior result. Sponsor and affiliation tools additionally require deep creator metrics.
Live mode requires a current API-access entitlement and a securely supplied INFLU_API_KEY. Set INFLU_ALLOW_METERED_READS=yes only when you intend to spend allowance. Set INFLU_BRAND_HANDLE for sourcing or INFLU_CREATOR_UUID for creator review. Then run, for example, node research-workflows.mjs weekly live weekly-2026-10-25. Keep the run ID and inputs identical when retrying an uncertain request; use a new run ID for a new observation. Do not reuse an old run ID as a way to fetch fresh data free of charge.
Authentication, plan and allowance failures stop further calls. Other tool failures retain earlier successful results and produce a partial result with exit code 2; they are never reported as an empty successful dataset. There is no automatic retry. Respect Retry-After and inspect allowance headers, including X-Limit-Clamped. A refreshed_at value is not proof that every source post was observed at that instant; null timestamps and gated fields remain unknown. Forecasts are estimates, sponsor performance uses a 90-day window with top sponsors over 180 days, and affiliations describe observed connections over 90 days.
9. Fair use
API data is covered by our Acceptable Use Policy: internal use, no resale, no sharing keys between organisations, and attribution as “Data from INFLU (influ.site)” where you show it.