@brandazine/solari-sdk 0.2.10 → 0.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/tools.generated.d.ts +56 -22
- package/dist/tools.generated.js +2 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -21,6 +21,8 @@ const tools = await solari.listTools();
|
|
|
21
21
|
|
|
22
22
|
For Threads, `solari.tools.fetch.threads.account.search({ query })` finds handles by name and `.post.search({ query })` returns Threads' top posts for a keyword (both live on every call, one page, not cached); `.account({ username })`, `.posts({ username, limit })`, and `.post({ url })` (or `{ code }`) read the profile, its newest posts, or one post with its first replies straight from the response. A first collection takes 5 to 30 seconds; repeat calls within an hour return the stored copy unless `refresh: true`.
|
|
23
23
|
|
|
24
|
+
For TikTok live search, `solari.tools.fetch.tiktok.account.search({ query })` finds accounts by name and `.post.search({ query })` finds videos by keyword, in TikTok's own order (live on every call, not cached, nothing stored). When `has_more` is true, pass `next_cursor` back as `cursor` with the same query for the next page. Account hits carry `account_id` when already in the catalog, else `.account({ username })` adds one; `.post({ url })` collects and stores a video hit.
|
|
25
|
+
|
|
24
26
|
Follower and engagement trends: `solari.tools.catalog.instagram.account.history({ username, since })` returns follower, following, and post counts at each collection (`captured_at`) plus `current.collected_at`, and `solari.tools.catalog.instagram.content.history({ username, posted_since })` (or `{ post_ids }`, `{ slugs }`, `{ urls }`) returns each post's like, comment, play, and reshare counts over time. One point per UTC day by default (`granularity: "all"` for every collection); gaps between points are normal.
|
|
25
27
|
|
|
26
28
|
Create an API key on your [SOLARI My page](https://solari.brandazine.com/me/api-keys) (long-lived, `solari_sk_…`, shown once), or mint a short-lived token with `solari auth token` on a machine signed in to the [solari CLI](https://solari.sh/docs). With no `token` option the client reads `SOLARI_TOKEN`.
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { SolariToolMap, SolariToolName, SolariTools, SolariToolsWithoutRequ
|
|
|
2
2
|
export * from "./tools.generated.js";
|
|
3
3
|
export declare const DEFAULT_BASE_URL = "https://solari.sh";
|
|
4
4
|
export declare const API_PREFIX = "/mcp/api/v1";
|
|
5
|
-
export declare const SDK_VERSION = "0.2.
|
|
5
|
+
export declare const SDK_VERSION = "0.2.12";
|
|
6
6
|
export declare const TOKEN_ENV = "SOLARI_TOKEN";
|
|
7
7
|
export interface SolariTool {
|
|
8
8
|
name: string;
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export * from "./tools.generated.js";
|
|
2
2
|
export const DEFAULT_BASE_URL = "https://solari.sh";
|
|
3
3
|
export const API_PREFIX = "/mcp/api/v1";
|
|
4
|
-
export const SDK_VERSION = "0.2.
|
|
4
|
+
export const SDK_VERSION = "0.2.12";
|
|
5
5
|
export const TOKEN_ENV = "SOLARI_TOKEN";
|
|
6
6
|
const DEFAULT_TIMEOUT_MS = 150_000;
|
|
7
7
|
export class SolariError extends Error {
|
|
@@ -11,7 +11,7 @@ export interface CatalogInstagramAccountHistoryArgs {
|
|
|
11
11
|
/** day keeps the last point of each UTC day; all returns every recorded point. */
|
|
12
12
|
"granularity"?: "day" | "all" | undefined;
|
|
13
13
|
}
|
|
14
|
-
/** Posts by one collected Instagram account, newest first, with pagination and filters. Identify the account by account_id (UUID from solari_catalog_instagram_account_search) or by username (Instagram handle). Each item has post_id (SOLARI post UUID), slug and url (public Instagram permalink), post_type (reel, video, photo, or carousel), posted_at, caption
|
|
14
|
+
/** Posts by one collected Instagram account, newest first, with pagination and filters. Stored posts can be sparse or stale: when completeness or freshness matters (every recent post, current reel views), call solari_fetch_instagram_posts instead, which collects them live. Identify the account by account_id (UUID from solari_catalog_instagram_account_search) or by username (Instagram handle). Each item has post_id (SOLARI post UUID), slug and url (public Instagram permalink), post_type (reel, video, photo, or carousel), posted_at, caption, like/comment/play counts, likes_hidden (true when the author hid likes; like_count is then null, as Instagram gives only a placeholder), media_count, is_paid_partnership, a medias array (every media in carousel order, each with media_type, media/thumbnail URLs, video_duration, and tags — accounts and hashtags tagged on it, with account_id when tracked), and a representative thumbnail_url. The response carries found, account_id, username, total, has_more, and items; page with limit and offset, narrow with since/until (UTC dates, inclusive) and post_type. posts_collected_at is how far stored posts reach, stored_post_count below profile_post_count means collection is incomplete, and refreshes_regularly says whether it is re-collected on a schedule; when the requested dates run past posts_collected_at, note says later posts are not in the catalog yet — an empty result then does not mean the account posted nothing; collect them live with solari_fetch_instagram_posts. This reads the catalog only; found=false means the handle is not in the catalog (note says when Instagram no longer has it) — call solari_fetch_instagram_posts with that username first. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
15
15
|
export interface CatalogInstagramAccountPostsArgs {
|
|
16
16
|
/** account_id of the account (SOLARI account UUID). Provide this or username. */
|
|
17
17
|
"account_id"?: string | undefined;
|
|
@@ -28,7 +28,7 @@ export interface CatalogInstagramAccountPostsArgs {
|
|
|
28
28
|
/** Only posts of this format. reel is short-form single-video; video is non-reel video. */
|
|
29
29
|
"post_type"?: "reel" | "video" | "photo" | "carousel" | undefined;
|
|
30
30
|
}
|
|
31
|
-
/** Full SOLARI catalog profile for one collected Instagram account: username, full name, bio, follower/following/post counts, verified flag, inferred account_type, view metrics (median and total views, ad count, month-over-month growth, region percentiles), plus embedded previews of recent posts and recent ad collaborations. Identify the account by account_id (UUID from solari_catalog_instagram_account_search) or by username (Instagram handle). collected_at is when the profile was last collected from Instagram and refreshes_regularly says whether it is re-collected on a schedule. This reads the catalog only; an unknown handle is not-found — call solari_fetch_instagram_account with that username first, then retry; a not-found that says the handle was renamed or deleted means Instagram has no account under that name, so search by display name instead. Works with any signed-in SOLARI account. */
|
|
31
|
+
/** Full SOLARI catalog profile for one collected Instagram account: username, full name, bio, follower/following/post counts, verified flag, inferred account_type, view metrics (median and total views, ad count, month-over-month growth, region percentiles), plus embedded previews of recent posts and recent ad collaborations (their like_count is null when likes_hidden=true: the author hid likes and Instagram gave only a placeholder). Identify the account by account_id (UUID from solari_catalog_instagram_account_search) or by username (Instagram handle). collected_at is when the profile was last collected from Instagram and refreshes_regularly says whether it is re-collected on a schedule. This reads the catalog only; an unknown handle is not-found — call solari_fetch_instagram_account with that username first, then retry; a not-found that says the handle was renamed or deleted means Instagram has no account under that name, so search by display name instead. Works with any signed-in SOLARI account. */
|
|
32
32
|
export interface CatalogInstagramAccountProfileArgs {
|
|
33
33
|
/** account_id of the account (SOLARI account UUID). Provide this or username. */
|
|
34
34
|
"account_id"?: string | undefined;
|
|
@@ -48,14 +48,14 @@ export interface CatalogInstagramAccountSearchArgs {
|
|
|
48
48
|
/** Optional region code such as KR, JP, or US. Leave unset unless the user asked for one country: it filters results to that region and drops the rest. */
|
|
49
49
|
"region"?: string | undefined;
|
|
50
50
|
}
|
|
51
|
-
/** Batch companion to solari_catalog_instagram_content_detail: hydrates up to 100 posts by their SOLARI post UUIDs in a single call. Each row carries slug, caption, posted_at, like/comment counts, play_count for videos, and the author's username and account_id. Untracked ids are omitted, so found can be lower than requested. Feed it post_id lists from solari_insight_instagram_brand_overview (full=true), solari_catalog_instagram_account_posts, solari_catalog_instagram_content_search, or the trend feeds. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
51
|
+
/** Batch companion to solari_catalog_instagram_content_detail: hydrates up to 100 posts by their SOLARI post UUIDs in a single call. Each row carries slug, caption, posted_at, like/comment counts, play_count for videos, and the author's username and account_id; like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). Untracked ids are omitted, so found can be lower than requested. Feed it post_id lists from solari_insight_instagram_brand_overview (full=true), solari_catalog_instagram_account_posts, solari_catalog_instagram_content_search, or the trend feeds. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
52
52
|
export interface CatalogInstagramContentBatchArgs {
|
|
53
53
|
/** SOLARI post UUIDs to hydrate, at most 100 per call. Not Instagram shortcodes/slugs. */
|
|
54
54
|
"post_ids": Array<string>;
|
|
55
55
|
/** Item order: posted_at descending (recent) or like+comment engagement descending. */
|
|
56
56
|
"sort"?: "recent" | "engagement" | undefined;
|
|
57
57
|
}
|
|
58
|
-
/** Detail for one Instagram post in the SOLARI catalog, in the same item shape as solari_insight_instagram_content_trending entries. Identify the post by post_id (SOLARI post UUID from solari_catalog_instagram_account_posts, solari_catalog_instagram_content_search, solari_insight_instagram_content_trending, or solari_insight_instagram_content_rising), by slug (the public Instagram shortcode), or by url (the public post URL). This reads the catalog only; item is null when the post is not stored — call solari_fetch_instagram_post with the same url or slug to collect it and learn its author, or solari_fetch_instagram_posts when you already know the author's username. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
58
|
+
/** Detail for one Instagram post in the SOLARI catalog, in the same item shape as solari_insight_instagram_content_trending entries. like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). Identify the post by post_id (SOLARI post UUID from solari_catalog_instagram_account_posts, solari_catalog_instagram_content_search, solari_insight_instagram_content_trending, or solari_insight_instagram_content_rising), by slug (the public Instagram shortcode), or by url (the public post URL). This reads the catalog only; item is null when the post is not stored — call solari_fetch_instagram_post with the same url or slug to collect it and learn its author, or solari_fetch_instagram_posts when you already know the author's username. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
59
59
|
export interface CatalogInstagramContentDetailArgs {
|
|
60
60
|
/** The SOLARI post_id UUID. Provide this, slug, or url. */
|
|
61
61
|
"post_id"?: string | undefined;
|
|
@@ -64,7 +64,7 @@ export interface CatalogInstagramContentDetailArgs {
|
|
|
64
64
|
/** Public Instagram post URL such as https://www.instagram.com/p/<shortcode>/ or .../reel/<shortcode>/. Ignored when post_id or slug is set. */
|
|
65
65
|
"url"?: string | undefined;
|
|
66
66
|
}
|
|
67
|
-
/** Recorded engagement of Instagram posts over time, for growth curves and engagement comparisons. Each item is one post (post_id, slug, url, posted_at, account_id, username) with points: like_count, comment_count, play_count, reshare_count, likes_hidden, and deleted, oldest first, each with captured_at: the moment the catalog collected those values. Choose posts with post_ids, slugs, or urls (up to 50 combined; missing lists the ones not in the catalog — collect them with solari_fetch_instagram_post), or give an account (account_id or username) to trace its newest posts, narrowed by posted_since/posted_until and limit (default 20, max 50). since/until narrow the recorded points (UTC dates, inclusive). granularity=day (default) keeps the last point of each UTC day per post; all returns every point; truncated=true means older points were dropped. Posts are re-collected mostly in their first days, so older posts have few points. likes_hidden=true means the author hid like
|
|
67
|
+
/** Recorded engagement of Instagram posts over time, for growth curves and engagement comparisons. Each item is one post (post_id, slug, url, posted_at, account_id, username) with points: like_count, comment_count, play_count, reshare_count, likes_hidden, and deleted, oldest first, each with captured_at: the moment the catalog collected those values. Choose posts with post_ids, slugs, or urls (up to 50 combined; missing lists the ones not in the catalog — collect them with solari_fetch_instagram_post), or give an account (account_id or username) to trace its newest posts, narrowed by posted_since/posted_until and limit (default 20, max 50). since/until narrow the recorded points (UTC dates, inclusive). granularity=day (default) keeps the last point of each UTC day per post; all returns every point; truncated=true means older points were dropped. Posts are re-collected mostly in their first days, so older posts have few points. likes_hidden=true means the author hid like counts: Instagram then returns a placeholder instead of the real number, so like_count comes back null — do not treat it as a measured value or as zero likes. This reads the catalog only. Works with any signed-in SOLARI account. */
|
|
68
68
|
export interface CatalogInstagramContentHistoryArgs {
|
|
69
69
|
/** SOLARI post UUIDs. Combine with slugs and urls, up to 50 posts in total. */
|
|
70
70
|
"post_ids"?: Array<string> | undefined;
|
|
@@ -89,7 +89,7 @@ export interface CatalogInstagramContentHistoryArgs {
|
|
|
89
89
|
/** day keeps the last point of each UTC day per post; all returns every recorded point. */
|
|
90
90
|
"granularity"?: "day" | "all" | undefined;
|
|
91
91
|
}
|
|
92
|
-
/** Lexical keyword search over tracked posts: matches captions, creator bios, and video transcription text (Korean-aware analysis plus n-gram partial matching), ranked by relevance with match highlights. Each item carries post_id, author account_id/username, caption, transcription text, engagement counts, and score — feed post_id into solari_catalog_instagram_content_detail or solari_catalog_instagram_content_batch and the account reference into the account tools. Coverage: only regions KR, JP, US, and TW are searchable, holding roughly the most recent 6 months of posts; total is exact up to 10,000 and saturates there. Narrow with since/until (UTC dates). Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
92
|
+
/** Lexical keyword search over tracked posts: matches captions, creator bios, and video transcription text (Korean-aware analysis plus n-gram partial matching), ranked by relevance with match highlights. Each item carries post_id, author account_id/username, caption, transcription text, engagement counts (like_count is null when likes_hidden=true: the author hid likes and Instagram gave only a placeholder), and score — feed post_id into solari_catalog_instagram_content_detail or solari_catalog_instagram_content_batch and the account reference into the account tools. Coverage: only regions KR, JP, US, and TW are searchable, holding roughly the most recent 6 months of posts; total is exact up to 10,000 and saturates there. Narrow with since/until (UTC dates). Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
93
93
|
export interface CatalogInstagramContentSearchArgs {
|
|
94
94
|
/** Free-text keyword query matched against captions, creator bios, and video transcriptions. */
|
|
95
95
|
"query": string;
|
|
@@ -227,10 +227,16 @@ export interface FetchInstagramPostArgs {
|
|
|
227
227
|
/** Public Instagram shortcode, the segment after /p/, /reel/, or /tv/ in a post URL. Wins over url when both are set. */
|
|
228
228
|
"slug"?: string | undefined;
|
|
229
229
|
}
|
|
230
|
-
/** Collects
|
|
230
|
+
/** Collects one tab of an Instagram account live at call time and returns the collected posts in the same call, in tab order, each with views (play_count), likes and comments, in the same item shape as solari_catalog_instagram_account_posts; like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). type picks the tab: posts (default) is the profile grid; reels is the reels tab, the one to use for view-count questions; tagged_posts is other accounts' posts that tag this account, and each of those items carries author_username and author_account_id. pages reads 1 to 3 pages of the tab per call, roughly 12 posts each, starting from the newest; when collection.next_cursor is set the tab goes further back, so call again with cursor=<next_cursor> and the same username and type to continue. Prefer this over solari_catalog_instagram_account_posts whenever completeness or freshness matters, because the stored catalog can be sparse or stale. A call usually takes 5 to 45 seconds. play_count is null when Instagram gave no view count, as for most photos. A private account returns no items and collection.skipped_reason=private. An unknown handle is collected first; found=false means Instagram has no account under that name. Everything collected is also stored in the catalog. Works with any signed-in SOLARI account. */
|
|
231
231
|
export interface FetchInstagramPostsArgs {
|
|
232
232
|
/** Instagram handle, with or without a leading @. */
|
|
233
233
|
"username": string;
|
|
234
|
+
/** Tab to collect: posts (profile grid, default), reels (reels tab, use for view counts), or tagged_posts (other accounts' posts that tag this account). */
|
|
235
|
+
"type"?: "posts" | "reels" | "tagged_posts" | undefined;
|
|
236
|
+
/** Pages of the tab to collect, default 1, roughly 12 posts per page. Values above 3 are clamped to 3. */
|
|
237
|
+
"pages"?: number | undefined;
|
|
238
|
+
/** collection.next_cursor from a previous call with the same username and type; continues further back instead of starting from the newest posts. */
|
|
239
|
+
"cursor"?: string | undefined;
|
|
234
240
|
}
|
|
235
241
|
/** Reads one Meta Threads account by exact username and returns its profile: display name, biography, follower count, verified and private flags, bio links, profile picture and URL. When you only know a name, find the handle with solari_fetch_threads_account_search first. A handle SOLARI has never collected is collected live now, which takes roughly 5 to 30 seconds, and fetched_on_demand=true marks that case; repeat calls within an hour return the stored copy (fetched_on_demand=false) unless refresh=true forces a new collection. stale=true means the live collection failed and an older stored copy is returned; collected_at says when. Media URLs right after a collection may be temporary, so read them promptly. Nothing is enrolled in ongoing tracking. A handle with no Threads profile answers a not-found error. Works with any signed-in SOLARI account. */
|
|
236
242
|
export interface FetchThreadsAccountArgs {
|
|
@@ -278,11 +284,29 @@ export interface FetchTiktokAccountArgs {
|
|
|
278
284
|
/** TikTok handle, with or without a leading @. */
|
|
279
285
|
"username": string;
|
|
280
286
|
}
|
|
287
|
+
/** Looks TikTok accounts up live by name or handle fragment and returns thin hits in TikTok's own order: username, nickname, bio, verified flag, follower count, profile picture and URL (limit up to 30, default 10). Use it when solari_catalog_tiktok_account_search does not know the account, or when you know a name but not the exact handle. Hits already in the SOLARI catalog carry account_id for the solari_catalog_tiktok_* tools; for the rest account_id is null, so call solari_fetch_tiktok_account with the chosen username to add it. When has_more is true, pass next_cursor back as cursor with the same query for the next page; next_cursor is null on the last page. Nothing is stored. Every call asks TikTok live, takes a few seconds, and is not cached. An empty items list means TikTok matched nothing. Works with any signed-in SOLARI account. */
|
|
288
|
+
export interface FetchTiktokAccountSearchArgs {
|
|
289
|
+
/** Name or handle fragment, with or without a leading @. */
|
|
290
|
+
"query": string;
|
|
291
|
+
/** Maximum hits to return, default 10. Values above 30 are clamped to 30. */
|
|
292
|
+
"limit"?: number | undefined;
|
|
293
|
+
/** next_cursor from the previous response for the same query. Omit for the first page. */
|
|
294
|
+
"cursor"?: string | undefined;
|
|
295
|
+
}
|
|
281
296
|
/** Collects one TikTok post into the SOLARI catalog by its public URL and returns it with its author. Use it when solari_catalog_tiktok_content_detail answers item=null for a link you were given and you do not know who posted it. Accepts https://www.tiktok.com/@<handle>/video/<id> links and vm.tiktok.com / vt.tiktok.com short links. If the post is already stored, nothing is scraped. A first-time collect takes a few seconds. The author arrives as a name-only account: call solari_fetch_tiktok_account with the returned username to crawl their profile and posts. item is null when TikTok has no public post at that URL. The post carries assets with a direct-download asset_url. Works with any signed-in SOLARI account. */
|
|
282
297
|
export interface FetchTiktokPostArgs {
|
|
283
298
|
/** Public TikTok post URL such as https://www.tiktok.com/@<handle>/video/<id>, or a vm.tiktok.com / vt.tiktok.com short link. */
|
|
284
299
|
"url": string;
|
|
285
300
|
}
|
|
301
|
+
/** Searches TikTok live for videos matching a keyword and returns thin hits in TikTok's own relevance order: video_id, url, author username, caption, posted_at, play, like, comment and share counts, duration and cover image (limit up to 30, default 20). Use it when you want what people post on TikTok about a topic, brand or phrase and have no handle to start from. Hits are not stored and carry no post_id; call solari_fetch_tiktok_post with a hit's url to collect and store the full post with its author. When has_more is true, pass next_cursor back as cursor with the same query for the next page; next_cursor is null on the last page. Every call asks TikTok live, takes a few seconds, and is not cached. An empty items list, with a note, means TikTok found no public video for the keyword. Works with any signed-in SOLARI account. */
|
|
302
|
+
export interface FetchTiktokPostSearchArgs {
|
|
303
|
+
/** Keyword or phrase to search TikTok videos for. */
|
|
304
|
+
"query": string;
|
|
305
|
+
/** Maximum videos to return, default 20. Values above 30 are clamped to 30. */
|
|
306
|
+
"limit"?: number | undefined;
|
|
307
|
+
/** next_cursor from the previous response for the same query. Omit for the first page. */
|
|
308
|
+
"cursor"?: string | undefined;
|
|
309
|
+
}
|
|
286
310
|
/** Collects posts for one TikTok account into the SOLARI catalog by exact username. This is not a post listing: use solari_catalog_tiktok_account_posts to read stored rows. If the handle is already stored, nothing is scraped. A first-time ingest can take 10 to 40 seconds and only recent posts exist until the crawl finishes. Works with any signed-in SOLARI account. */
|
|
287
311
|
export interface FetchTiktokPostsArgs {
|
|
288
312
|
/** TikTok handle, with or without a leading @. */
|
|
@@ -458,7 +482,7 @@ export interface InsightInstagramContentAggregateArgs {
|
|
|
458
482
|
/** Maximum groups returned when group_by is set, default 20. Values above 50 are clamped to 50. */
|
|
459
483
|
"limit"?: number | undefined;
|
|
460
484
|
}
|
|
461
|
-
/** Instagram posts whose recent performance is accelerating faster than baseline in the region. Same shape as solari_insight_instagram_content_trending including cursor pagination and optional brand personalization via a brand account_id or username. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
485
|
+
/** Instagram posts whose recent performance is accelerating faster than baseline in the region. Same shape as solari_insight_instagram_content_trending including cursor pagination and optional brand personalization via a brand account_id or username. like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
462
486
|
export interface InsightInstagramContentRisingArgs {
|
|
463
487
|
/** Region code such as KR, JP, or US. */
|
|
464
488
|
"region"?: string | undefined;
|
|
@@ -497,7 +521,7 @@ export interface InsightInstagramContentTrendClustersArgs {
|
|
|
497
521
|
/** Rerank clusters by brand affinity when account_id is provided. */
|
|
498
522
|
"brand_aware"?: boolean | undefined;
|
|
499
523
|
}
|
|
500
|
-
/** Instagram posts currently trending in the region, enriched with creator profile fields. Supports cursor pagination via next_cursor from the previous response. Optionally personalizes ranking with a brand account_id or username. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. Use solari_insight_instagram_content_rising for velocity-led accelerating posts instead. */
|
|
524
|
+
/** Instagram posts currently trending in the region, enriched with creator profile fields. like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). Supports cursor pagination via next_cursor from the previous response. Optionally personalizes ranking with a brand account_id or username. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. Use solari_insight_instagram_content_rising for velocity-led accelerating posts instead. */
|
|
501
525
|
export interface InsightInstagramContentTrendingArgs {
|
|
502
526
|
/** Region code such as KR, JP, or US. */
|
|
503
527
|
"region"?: string | undefined;
|
|
@@ -690,7 +714,9 @@ export interface SolariToolMap {
|
|
|
690
714
|
"solari_fetch_threads_post_search": FetchThreadsPostSearchArgs;
|
|
691
715
|
"solari_fetch_threads_posts": FetchThreadsPostsArgs;
|
|
692
716
|
"solari_fetch_tiktok_account": FetchTiktokAccountArgs;
|
|
717
|
+
"solari_fetch_tiktok_account_search": FetchTiktokAccountSearchArgs;
|
|
693
718
|
"solari_fetch_tiktok_post": FetchTiktokPostArgs;
|
|
719
|
+
"solari_fetch_tiktok_post_search": FetchTiktokPostSearchArgs;
|
|
694
720
|
"solari_fetch_tiktok_posts": FetchTiktokPostsArgs;
|
|
695
721
|
"solari_insight_instagram_account_ad_posts": InsightInstagramAccountAdPostsArgs;
|
|
696
722
|
"solari_insight_instagram_account_collabs": InsightInstagramAccountCollabsArgs;
|
|
@@ -751,21 +777,21 @@ export interface SolariTools {
|
|
|
751
777
|
account: {
|
|
752
778
|
/** Recorded profile values of one collected Instagram account over time, for follower growth and trend comparisons. points lists follower_count, following_count, post_count, is_verified, and is_private, oldest first, each with captured_at: the moment the catalog collected those values. current holds the catalog's current values, and current.collected_at says when the profile was last collected from Instagram; check it before treating the numbers as today's. granularity=day (default) keeps the last point of each UTC day; all returns every recorded point. The range is since/until (UTC dates, inclusive) and defaults to the last 90 days; truncated=true means older points were dropped, so narrow since. Points exist only when the account was collected, so gaps are normal, and most accounts have no points from 2025-08-26 to 2025-09-27. Identify the account by account_id (UUID from solari_catalog_instagram_account_search) or by username. This reads the catalog only; found=false means the handle is not in the catalog — call solari_fetch_instagram_account first, which cannot backfill past values. Works with any signed-in SOLARI account. */
|
|
753
779
|
history<T = unknown>(args?: CatalogInstagramAccountHistoryArgs): Promise<T>;
|
|
754
|
-
/** Posts by one collected Instagram account, newest first, with pagination and filters. Identify the account by account_id (UUID from solari_catalog_instagram_account_search) or by username (Instagram handle). Each item has post_id (SOLARI post UUID), slug and url (public Instagram permalink), post_type (reel, video, photo, or carousel), posted_at, caption
|
|
780
|
+
/** Posts by one collected Instagram account, newest first, with pagination and filters. Stored posts can be sparse or stale: when completeness or freshness matters (every recent post, current reel views), call solari_fetch_instagram_posts instead, which collects them live. Identify the account by account_id (UUID from solari_catalog_instagram_account_search) or by username (Instagram handle). Each item has post_id (SOLARI post UUID), slug and url (public Instagram permalink), post_type (reel, video, photo, or carousel), posted_at, caption, like/comment/play counts, likes_hidden (true when the author hid likes; like_count is then null, as Instagram gives only a placeholder), media_count, is_paid_partnership, a medias array (every media in carousel order, each with media_type, media/thumbnail URLs, video_duration, and tags — accounts and hashtags tagged on it, with account_id when tracked), and a representative thumbnail_url. The response carries found, account_id, username, total, has_more, and items; page with limit and offset, narrow with since/until (UTC dates, inclusive) and post_type. posts_collected_at is how far stored posts reach, stored_post_count below profile_post_count means collection is incomplete, and refreshes_regularly says whether it is re-collected on a schedule; when the requested dates run past posts_collected_at, note says later posts are not in the catalog yet — an empty result then does not mean the account posted nothing; collect them live with solari_fetch_instagram_posts. This reads the catalog only; found=false means the handle is not in the catalog (note says when Instagram no longer has it) — call solari_fetch_instagram_posts with that username first. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
755
781
|
posts<T = unknown>(args?: CatalogInstagramAccountPostsArgs): Promise<T>;
|
|
756
|
-
/** Full SOLARI catalog profile for one collected Instagram account: username, full name, bio, follower/following/post counts, verified flag, inferred account_type, view metrics (median and total views, ad count, month-over-month growth, region percentiles), plus embedded previews of recent posts and recent ad collaborations. Identify the account by account_id (UUID from solari_catalog_instagram_account_search) or by username (Instagram handle). collected_at is when the profile was last collected from Instagram and refreshes_regularly says whether it is re-collected on a schedule. This reads the catalog only; an unknown handle is not-found — call solari_fetch_instagram_account with that username first, then retry; a not-found that says the handle was renamed or deleted means Instagram has no account under that name, so search by display name instead. Works with any signed-in SOLARI account. */
|
|
782
|
+
/** Full SOLARI catalog profile for one collected Instagram account: username, full name, bio, follower/following/post counts, verified flag, inferred account_type, view metrics (median and total views, ad count, month-over-month growth, region percentiles), plus embedded previews of recent posts and recent ad collaborations (their like_count is null when likes_hidden=true: the author hid likes and Instagram gave only a placeholder). Identify the account by account_id (UUID from solari_catalog_instagram_account_search) or by username (Instagram handle). collected_at is when the profile was last collected from Instagram and refreshes_regularly says whether it is re-collected on a schedule. This reads the catalog only; an unknown handle is not-found — call solari_fetch_instagram_account with that username first, then retry; a not-found that says the handle was renamed or deleted means Instagram has no account under that name, so search by display name instead. Works with any signed-in SOLARI account. */
|
|
757
783
|
profile<T = unknown>(args?: CatalogInstagramAccountProfileArgs): Promise<T>;
|
|
758
784
|
/** Resolves a brand/creator name or Instagram handle to candidate tracked accounts via fast deterministic index search — like a typeahead, all candidates are returned — and also searches profile bio text. query_type picks what the query is matched against: auto (default) matches handles by prefix and profile display names (Korean or English) by text match; username or full_name narrows to just one of those; bio runs a full-text search over profile bio text, which is how you discover accounts by what they say about themselves ("skincare", "협찬 문의", "コスメ") rather than by name. Ranked by match quality and follower count. Returns found plus items ordered best-first (items[0] is the top match), each with account_id (the SOLARI account UUID every other tool takes), username, full_name, biography, follower_count, region, is_verified, and profile_pic_url; found=false with empty items means nothing matched. In the name modes the query must actually appear in the handle or display name — phonetic aliases and abbreviations do not resolve, so retry with the native spelling (for example the English brand name). Set brands_only=true when resolving a brand name to filter out fan and meme accounts; pair it with query_type=bio to sweep a category of brands. Leave region unset unless the user asked for one country — it drops every account outside that region. Works with any signed-in SOLARI account. Use this first to resolve any entity mentioned by name. */
|
|
759
785
|
search<T = unknown>(args: CatalogInstagramAccountSearchArgs): Promise<T>;
|
|
760
786
|
};
|
|
761
787
|
content: {
|
|
762
|
-
/** Batch companion to solari_catalog_instagram_content_detail: hydrates up to 100 posts by their SOLARI post UUIDs in a single call. Each row carries slug, caption, posted_at, like/comment counts, play_count for videos, and the author's username and account_id. Untracked ids are omitted, so found can be lower than requested. Feed it post_id lists from solari_insight_instagram_brand_overview (full=true), solari_catalog_instagram_account_posts, solari_catalog_instagram_content_search, or the trend feeds. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
788
|
+
/** Batch companion to solari_catalog_instagram_content_detail: hydrates up to 100 posts by their SOLARI post UUIDs in a single call. Each row carries slug, caption, posted_at, like/comment counts, play_count for videos, and the author's username and account_id; like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). Untracked ids are omitted, so found can be lower than requested. Feed it post_id lists from solari_insight_instagram_brand_overview (full=true), solari_catalog_instagram_account_posts, solari_catalog_instagram_content_search, or the trend feeds. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
763
789
|
batch<T = unknown>(args: CatalogInstagramContentBatchArgs): Promise<T>;
|
|
764
|
-
/** Detail for one Instagram post in the SOLARI catalog, in the same item shape as solari_insight_instagram_content_trending entries. Identify the post by post_id (SOLARI post UUID from solari_catalog_instagram_account_posts, solari_catalog_instagram_content_search, solari_insight_instagram_content_trending, or solari_insight_instagram_content_rising), by slug (the public Instagram shortcode), or by url (the public post URL). This reads the catalog only; item is null when the post is not stored — call solari_fetch_instagram_post with the same url or slug to collect it and learn its author, or solari_fetch_instagram_posts when you already know the author's username. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
790
|
+
/** Detail for one Instagram post in the SOLARI catalog, in the same item shape as solari_insight_instagram_content_trending entries. like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). Identify the post by post_id (SOLARI post UUID from solari_catalog_instagram_account_posts, solari_catalog_instagram_content_search, solari_insight_instagram_content_trending, or solari_insight_instagram_content_rising), by slug (the public Instagram shortcode), or by url (the public post URL). This reads the catalog only; item is null when the post is not stored — call solari_fetch_instagram_post with the same url or slug to collect it and learn its author, or solari_fetch_instagram_posts when you already know the author's username. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
765
791
|
detail<T = unknown>(args?: CatalogInstagramContentDetailArgs): Promise<T>;
|
|
766
|
-
/** Recorded engagement of Instagram posts over time, for growth curves and engagement comparisons. Each item is one post (post_id, slug, url, posted_at, account_id, username) with points: like_count, comment_count, play_count, reshare_count, likes_hidden, and deleted, oldest first, each with captured_at: the moment the catalog collected those values. Choose posts with post_ids, slugs, or urls (up to 50 combined; missing lists the ones not in the catalog — collect them with solari_fetch_instagram_post), or give an account (account_id or username) to trace its newest posts, narrowed by posted_since/posted_until and limit (default 20, max 50). since/until narrow the recorded points (UTC dates, inclusive). granularity=day (default) keeps the last point of each UTC day per post; all returns every point; truncated=true means older points were dropped. Posts are re-collected mostly in their first days, so older posts have few points. likes_hidden=true means the author hid like
|
|
792
|
+
/** Recorded engagement of Instagram posts over time, for growth curves and engagement comparisons. Each item is one post (post_id, slug, url, posted_at, account_id, username) with points: like_count, comment_count, play_count, reshare_count, likes_hidden, and deleted, oldest first, each with captured_at: the moment the catalog collected those values. Choose posts with post_ids, slugs, or urls (up to 50 combined; missing lists the ones not in the catalog — collect them with solari_fetch_instagram_post), or give an account (account_id or username) to trace its newest posts, narrowed by posted_since/posted_until and limit (default 20, max 50). since/until narrow the recorded points (UTC dates, inclusive). granularity=day (default) keeps the last point of each UTC day per post; all returns every point; truncated=true means older points were dropped. Posts are re-collected mostly in their first days, so older posts have few points. likes_hidden=true means the author hid like counts: Instagram then returns a placeholder instead of the real number, so like_count comes back null — do not treat it as a measured value or as zero likes. This reads the catalog only. Works with any signed-in SOLARI account. */
|
|
767
793
|
history<T = unknown>(args?: CatalogInstagramContentHistoryArgs): Promise<T>;
|
|
768
|
-
/** Lexical keyword search over tracked posts: matches captions, creator bios, and video transcription text (Korean-aware analysis plus n-gram partial matching), ranked by relevance with match highlights. Each item carries post_id, author account_id/username, caption, transcription text, engagement counts, and score — feed post_id into solari_catalog_instagram_content_detail or solari_catalog_instagram_content_batch and the account reference into the account tools. Coverage: only regions KR, JP, US, and TW are searchable, holding roughly the most recent 6 months of posts; total is exact up to 10,000 and saturates there. Narrow with since/until (UTC dates). Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
794
|
+
/** Lexical keyword search over tracked posts: matches captions, creator bios, and video transcription text (Korean-aware analysis plus n-gram partial matching), ranked by relevance with match highlights. Each item carries post_id, author account_id/username, caption, transcription text, engagement counts (like_count is null when likes_hidden=true: the author hid likes and Instagram gave only a placeholder), and score — feed post_id into solari_catalog_instagram_content_detail or solari_catalog_instagram_content_batch and the account reference into the account tools. Coverage: only regions KR, JP, US, and TW are searchable, holding roughly the most recent 6 months of posts; total is exact up to 10,000 and saturates there. Narrow with since/until (UTC dates). Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
769
795
|
search<T = unknown>(args: CatalogInstagramContentSearchArgs): Promise<T>;
|
|
770
796
|
};
|
|
771
797
|
tag: {
|
|
@@ -812,7 +838,7 @@ export interface SolariTools {
|
|
|
812
838
|
};
|
|
813
839
|
/** Collects one Instagram post into the SOLARI catalog by its public URL or shortcode and returns it with its author. Use it when solari_catalog_instagram_content_detail answers item=null for a link you were given and you do not know who posted it. If the post is already stored, nothing is scraped. A first-time collect takes a few seconds. The author arrives as a name-only account: call solari_fetch_instagram_account with the returned username to crawl their profile and posts. item is null when Instagram has no public post at that reference. The post carries assets with a direct-download asset_url. Works with any signed-in SOLARI account. */
|
|
814
840
|
post<T = unknown>(args?: FetchInstagramPostArgs): Promise<T>;
|
|
815
|
-
/** Collects
|
|
841
|
+
/** Collects one tab of an Instagram account live at call time and returns the collected posts in the same call, in tab order, each with views (play_count), likes and comments, in the same item shape as solari_catalog_instagram_account_posts; like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). type picks the tab: posts (default) is the profile grid; reels is the reels tab, the one to use for view-count questions; tagged_posts is other accounts' posts that tag this account, and each of those items carries author_username and author_account_id. pages reads 1 to 3 pages of the tab per call, roughly 12 posts each, starting from the newest; when collection.next_cursor is set the tab goes further back, so call again with cursor=<next_cursor> and the same username and type to continue. Prefer this over solari_catalog_instagram_account_posts whenever completeness or freshness matters, because the stored catalog can be sparse or stale. A call usually takes 5 to 45 seconds. play_count is null when Instagram gave no view count, as for most photos. A private account returns no items and collection.skipped_reason=private. An unknown handle is collected first; found=false means Instagram has no account under that name. Everything collected is also stored in the catalog. Works with any signed-in SOLARI account. */
|
|
816
842
|
posts<T = unknown>(args: FetchInstagramPostsArgs): Promise<T>;
|
|
817
843
|
};
|
|
818
844
|
threads: {
|
|
@@ -832,10 +858,18 @@ export interface SolariTools {
|
|
|
832
858
|
posts<T = unknown>(args: FetchThreadsPostsArgs): Promise<T>;
|
|
833
859
|
};
|
|
834
860
|
tiktok: {
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
861
|
+
account: {
|
|
862
|
+
/** Adds one TikTok account to the SOLARI catalog by exact username. This is not a search and not a profile reader: use solari_catalog_tiktok_account_search to resolve a name, then solari_catalog_tiktok_account_profile to read it. If the handle is already stored, nothing is scraped. A first-time ingest can take 10 to 40 seconds; only recent posts exist until the crawl finishes. Works with any signed-in SOLARI account. */
|
|
863
|
+
<T = unknown>(args: FetchTiktokAccountArgs): Promise<T>;
|
|
864
|
+
/** Looks TikTok accounts up live by name or handle fragment and returns thin hits in TikTok's own order: username, nickname, bio, verified flag, follower count, profile picture and URL (limit up to 30, default 10). Use it when solari_catalog_tiktok_account_search does not know the account, or when you know a name but not the exact handle. Hits already in the SOLARI catalog carry account_id for the solari_catalog_tiktok_* tools; for the rest account_id is null, so call solari_fetch_tiktok_account with the chosen username to add it. When has_more is true, pass next_cursor back as cursor with the same query for the next page; next_cursor is null on the last page. Nothing is stored. Every call asks TikTok live, takes a few seconds, and is not cached. An empty items list means TikTok matched nothing. Works with any signed-in SOLARI account. */
|
|
865
|
+
search<T = unknown>(args: FetchTiktokAccountSearchArgs): Promise<T>;
|
|
866
|
+
};
|
|
867
|
+
post: {
|
|
868
|
+
/** Collects one TikTok post into the SOLARI catalog by its public URL and returns it with its author. Use it when solari_catalog_tiktok_content_detail answers item=null for a link you were given and you do not know who posted it. Accepts https://www.tiktok.com/@<handle>/video/<id> links and vm.tiktok.com / vt.tiktok.com short links. If the post is already stored, nothing is scraped. A first-time collect takes a few seconds. The author arrives as a name-only account: call solari_fetch_tiktok_account with the returned username to crawl their profile and posts. item is null when TikTok has no public post at that URL. The post carries assets with a direct-download asset_url. Works with any signed-in SOLARI account. */
|
|
869
|
+
<T = unknown>(args: FetchTiktokPostArgs): Promise<T>;
|
|
870
|
+
/** Searches TikTok live for videos matching a keyword and returns thin hits in TikTok's own relevance order: video_id, url, author username, caption, posted_at, play, like, comment and share counts, duration and cover image (limit up to 30, default 20). Use it when you want what people post on TikTok about a topic, brand or phrase and have no handle to start from. Hits are not stored and carry no post_id; call solari_fetch_tiktok_post with a hit's url to collect and store the full post with its author. When has_more is true, pass next_cursor back as cursor with the same query for the next page; next_cursor is null on the last page. Every call asks TikTok live, takes a few seconds, and is not cached. An empty items list, with a note, means TikTok found no public video for the keyword. Works with any signed-in SOLARI account. */
|
|
871
|
+
search<T = unknown>(args: FetchTiktokPostSearchArgs): Promise<T>;
|
|
872
|
+
};
|
|
839
873
|
/** Collects posts for one TikTok account into the SOLARI catalog by exact username. This is not a post listing: use solari_catalog_tiktok_account_posts to read stored rows. If the handle is already stored, nothing is scraped. A first-time ingest can take 10 to 40 seconds and only recent posts exist until the crawl finishes. Works with any signed-in SOLARI account. */
|
|
840
874
|
posts<T = unknown>(args: FetchTiktokPostsArgs): Promise<T>;
|
|
841
875
|
};
|
|
@@ -883,7 +917,7 @@ export interface SolariTools {
|
|
|
883
917
|
content: {
|
|
884
918
|
/** Counts and engagement rollups over tracked posts, for questions answered by numbers rather than by individual posts: posts per account per month, which hashtags dominate a topic, average likes by format. Group by account, post_type, hashtag, mention, caption_keyword, or transcription_keyword, and optionally split each group by day, week, or month. post_count always comes back; request metrics for like/comment/view sums and averages, mean follower count, and distinct account counts. Narrow the set with a free-text query, usernames, hashtags, mentions, or post_types. Filtering by mentions and grouping by account answers which accounts tagged a given handle. Coverage: regions KR, JP, US, and TW, holding roughly the most recent 6 months — a since older than that is clamped and the applied value is echoed back. Buckets are largest-first; truncated=true means more groups existed than limit returned. Use solari_catalog_instagram_content_search when the posts themselves are needed instead of counts. Works with any signed-in SOLARI account. */
|
|
885
919
|
aggregate<T = unknown>(args?: InsightInstagramContentAggregateArgs): Promise<T>;
|
|
886
|
-
/** Instagram posts whose recent performance is accelerating faster than baseline in the region. Same shape as solari_insight_instagram_content_trending including cursor pagination and optional brand personalization via a brand account_id or username. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
920
|
+
/** Instagram posts whose recent performance is accelerating faster than baseline in the region. Same shape as solari_insight_instagram_content_trending including cursor pagination and optional brand personalization via a brand account_id or username. like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. */
|
|
887
921
|
rising<T = unknown>(args?: InsightInstagramContentRisingArgs): Promise<T>;
|
|
888
922
|
/** Instagram posts that look and read like one given post — same subject, format and mood — ranked best first, for collecting references around a post you already have. Each item carries post_id, slug, author account_id, thumbnail and media URL, media type, play count, posted_at and is_ad (whether it was identified as sponsored). Identify the post by post_id (SOLARI post UUID from any content tool). Covers roughly the last 4 months; pages reach at most 180 results. Use solari_insight_instagram_brand_lookalike_content to start from a brand's ads instead. Works with any signed-in SOLARI account. */
|
|
889
923
|
similar<T = unknown>(args: InsightInstagramContentSimilarArgs): Promise<T>;
|
|
@@ -891,7 +925,7 @@ export interface SolariTools {
|
|
|
891
925
|
/** The SOLARI trend digest: recent content trend clusters for a region with cluster metadata and member posts, optionally reranked by brand affinity when a brand account_id or username is supplied. Works with any signed-in SOLARI account. */
|
|
892
926
|
clusters<T = unknown>(args?: InsightInstagramContentTrendClustersArgs): Promise<T>;
|
|
893
927
|
};
|
|
894
|
-
/** Instagram posts currently trending in the region, enriched with creator profile fields. Supports cursor pagination via next_cursor from the previous response. Optionally personalizes ranking with a brand account_id or username. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. Use solari_insight_instagram_content_rising for velocity-led accelerating posts instead. */
|
|
928
|
+
/** Instagram posts currently trending in the region, enriched with creator profile fields. like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). Supports cursor pagination via next_cursor from the previous response. Optionally personalizes ranking with a brand account_id or username. Each post carries assets: its media files in order, each with a direct-download asset_url for the full-size image or video; when a response is too large, assets is replaced by an assets_omitted count — request fewer posts to keep it. Works with any signed-in SOLARI account. Use solari_insight_instagram_content_rising for velocity-led accelerating posts instead. */
|
|
895
929
|
trending<T = unknown>(args?: InsightInstagramContentTrendingArgs): Promise<T>;
|
|
896
930
|
};
|
|
897
931
|
hashtag: {
|
package/dist/tools.generated.js
CHANGED
|
@@ -28,7 +28,9 @@ export const SOLARI_TOOL_NAMES = [
|
|
|
28
28
|
"solari_fetch_threads_post_search",
|
|
29
29
|
"solari_fetch_threads_posts",
|
|
30
30
|
"solari_fetch_tiktok_account",
|
|
31
|
+
"solari_fetch_tiktok_account_search",
|
|
31
32
|
"solari_fetch_tiktok_post",
|
|
33
|
+
"solari_fetch_tiktok_post_search",
|
|
32
34
|
"solari_fetch_tiktok_posts",
|
|
33
35
|
"solari_insight_instagram_account_ad_posts",
|
|
34
36
|
"solari_insight_instagram_account_collabs",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brandazine/solari-sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.12",
|
|
4
4
|
"description": "TypeScript client for the SOLARI API — creator and brand intelligence across Instagram and TikTok, plus Meta Threads profiles and posts.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://solari.sh/api",
|