@brandazine/solari-sdk 0.2.12 → 0.2.13
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/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/tools.generated.d.ts +16 -16
- package/package.json +1 -1
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.13";
|
|
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.13";
|
|
5
5
|
export const TOKEN_ENV = "SOLARI_TOKEN";
|
|
6
6
|
const DEFAULT_TIMEOUT_MS = 150_000;
|
|
7
7
|
export class SolariError extends Error {
|
|
@@ -104,7 +104,7 @@ export interface CatalogInstagramContentSearchArgs {
|
|
|
104
104
|
/** Only posts on or before this UTC date, YYYY-MM-DD inclusive. */
|
|
105
105
|
"until"?: string | undefined;
|
|
106
106
|
}
|
|
107
|
-
/** Every tracked post carrying one exact tag — '#ootd' for a hashtag, '@handle' for mentions of an account — hydrated into full rows, newest-collected first with cursor pagination. Exact whole-tag matching over the entire tracked history and every region, where solari_catalog_instagram_content_search does free-text over four regions and about six months. 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. The tag index refreshes once a day: when a hashtag is missing or stale here, solari_fetch_instagram_hashtag_posts collects a live page of it. Works with any signed-in SOLARI account. */
|
|
107
|
+
/** Every tracked post carrying one exact tag — '#ootd' for a hashtag, '@handle' for mentions of an account — hydrated into full rows, newest-collected first with cursor pagination; like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). Exact whole-tag matching over the entire tracked history and every region, where solari_catalog_instagram_content_search does free-text over four regions and about six months. 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. The tag index refreshes once a day: when a hashtag is missing or stale here, solari_fetch_instagram_hashtag_posts collects a live page of it. Works with any signed-in SOLARI account. */
|
|
108
108
|
export interface CatalogInstagramTagSearchArgs {
|
|
109
109
|
/** One exact tag. '#ootd' or 'ootd' searches a hashtag; '@oliveyoung_official' searches mentions of that account. No spaces, no wildcards. */
|
|
110
110
|
"query": string;
|
|
@@ -206,7 +206,7 @@ export interface FetchInstagramAccountSearchArgs {
|
|
|
206
206
|
/** Name or handle fragment, with or without a leading @. */
|
|
207
207
|
"query": string;
|
|
208
208
|
}
|
|
209
|
-
/** Collects one page of an Instagram hashtag feed live, stores every post in the SOLARI catalog and returns them in feed order. Stored posts reach solari_catalog_instagram_tag_search only after its next daily refresh, so read this page's posts from the response itself. Every call goes out to Instagram, so use it when a hashtag is missing or stale in solari_catalog_instagram_tag_search, not as the default way to read a tag. tab picks the feed: recent (default), top, or clips for reels. One page is roughly 20 to 30 posts and takes several seconds; pass next_cursor back as cursor for the next page of the same hashtag and tab. The feed ends only when next_cursor is null: a page can come back with found 0 and a next_cursor, which means keep going. fetched_count is how many posts Instagram returned; found is lower when some could not be stored. A hashtag that is hidden, restricted, or unknown to Instagram answers is_hidden=true with no posts; Instagram does not tell these apart, so check the spelling with solari_fetch_instagram_hashtag_search. Each post carries assets with a direct-download asset_url. Works with any signed-in SOLARI account. */
|
|
209
|
+
/** Collects one page of an Instagram hashtag feed live, stores every post in the SOLARI catalog and returns them in feed order. Stored posts reach solari_catalog_instagram_tag_search only after its next daily refresh, so read this page's posts from the response itself. Every call goes out to Instagram, so use it when a hashtag is missing or stale in solari_catalog_instagram_tag_search, not as the default way to read a tag. tab picks the feed: recent (default), top, or clips for reels. One page is roughly 20 to 30 posts and takes several seconds; pass next_cursor back as cursor for the next page of the same hashtag and tab. The feed ends only when next_cursor is null: a page can come back with found 0 and a next_cursor, which means keep going. fetched_count is how many posts Instagram returned; found is lower when some could not be stored. A hashtag that is hidden, restricted, or unknown to Instagram answers is_hidden=true with no posts; Instagram does not tell these apart, so check the spelling with solari_fetch_instagram_hashtag_search. Like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). Each post carries assets with a direct-download asset_url. Works with any signed-in SOLARI account. */
|
|
210
210
|
export interface FetchInstagramHashtagPostsArgs {
|
|
211
211
|
/** One exact hashtag, with or without a leading #. No spaces, no wildcards. */
|
|
212
212
|
"hashtag": string;
|
|
@@ -227,7 +227,7 @@ 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 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. */
|
|
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, though Instagram leaves some reels off that tab while still showing them on the grid, so read type=posts as well when every reel must be counted; 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;
|
|
@@ -312,7 +312,7 @@ export interface FetchTiktokPostsArgs {
|
|
|
312
312
|
/** TikTok handle, with or without a leading @. */
|
|
313
313
|
"username": string;
|
|
314
314
|
}
|
|
315
|
-
/** Paginated row-level list of the identified sponsored posts one creator authored, newest first, with the target brand attached to each row — one row per post-brand pair, so a multi-brand post appears once per target. Each item carries post_id, slug and url, post_type, posted_at, caption text, like/comment/play counts, media_count, is_paid_partnership, and target_account_id/target_username. Filter to one brand with target (its account_id or Instagram handle). Widen the lookback with months (default 3, up to 24). Row-level companion to solari_insight_instagram_account_collabs, which groups the same history by brand. Identify the creator by account_id (SOLARI account UUID) or by username (Instagram handle); an unknown reference returns a not-found error. 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. */
|
|
315
|
+
/** Paginated row-level list of the identified sponsored posts one creator authored, newest first, with the target brand attached to each row — one row per post-brand pair, so a multi-brand post appears once per target. Each item carries post_id, slug and url, post_type, posted_at, caption text, 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, and target_account_id/target_username. Filter to one brand with target (its account_id or Instagram handle). Widen the lookback with months (default 3, up to 24). Row-level companion to solari_insight_instagram_account_collabs, which groups the same history by brand. Identify the creator by account_id (SOLARI account UUID) or by username (Instagram handle); an unknown reference returns a not-found error. 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. */
|
|
316
316
|
export interface InsightInstagramAccountAdPostsArgs {
|
|
317
317
|
/** account_id of the creator (SOLARI account UUID). Provide this or username. */
|
|
318
318
|
"account_id"?: string | undefined;
|
|
@@ -379,7 +379,7 @@ export interface InsightInstagramAccountDiscoverArgs {
|
|
|
379
379
|
/** How many top usernames to preview, default 20. Values above 60 are clamped to 60. The full list is always paged separately. */
|
|
380
380
|
"limit"?: number | undefined;
|
|
381
381
|
}
|
|
382
|
-
/** Pages the full creator list of one solari_insight_instagram_account_discover run. Each item carries account_id, username, full name, bio, follower count, 3-month median and total views, view growth, ad count, and the creator's top recent posts. Results stay available after the search, so re-sort or page without searching again. Works with any signed-in SOLARI account. */
|
|
382
|
+
/** Pages the full creator list of one solari_insight_instagram_account_discover run. Each item carries account_id, username, full name, bio, follower count, 3-month median and total views, view growth, ad count, and the creator's top recent posts (their like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder)). Results stay available after the search, so re-sort or page without searching again. Works with any signed-in SOLARI account. */
|
|
383
383
|
export interface InsightInstagramAccountDiscoverResultsArgs {
|
|
384
384
|
/** search_id returned by solari_insight_instagram_account_discover. */
|
|
385
385
|
"search_id": string;
|
|
@@ -397,7 +397,7 @@ export interface InsightInstagramAccountSimilarArgs {
|
|
|
397
397
|
/** Number of similar accounts to return, default 50. Values above 100 are clamped to 100. */
|
|
398
398
|
"limit"?: number | undefined;
|
|
399
399
|
}
|
|
400
|
-
/** Paginated row-level list of the identified sponsored posts targeting a brand, each hydrated with slug, caption, posted_at, like/comment counts, play_count for videos, and the authoring creator's username and account_id. sort=recent pages the full window newest-first with an exact total; sort=engagement ranks within a bounded recent window whose size is reported as ranking_window (non-null means the ordering covers a slice, not everything). Widen the lookback with months (default 3, up to 24). Row-level companion to solari_insight_instagram_brand_ad_stats. Takes the brand's Instagram handle (no @). 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. Returns 404 if the handle is not tracked. */
|
|
400
|
+
/** Paginated row-level list of the identified sponsored posts targeting a brand, each hydrated with slug, caption, posted_at, like/comment counts, play_count for videos, and the authoring creator's username and account_id; like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). sort=recent pages the full window newest-first with an exact total; sort=engagement ranks within a bounded recent window whose size is reported as ranking_window (non-null means the ordering covers a slice, not everything). Widen the lookback with months (default 3, up to 24). Row-level companion to solari_insight_instagram_brand_ad_stats. Takes the brand's Instagram handle (no @). 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. Returns 404 if the handle is not tracked. */
|
|
401
401
|
export interface InsightInstagramBrandAdPostsArgs {
|
|
402
402
|
/** Brand Instagram handle without the leading @. */
|
|
403
403
|
"username": string;
|
|
@@ -415,7 +415,7 @@ export interface InsightInstagramBrandAdStatsArgs {
|
|
|
415
415
|
/** Brand Instagram handle without the leading @. */
|
|
416
416
|
"username": string;
|
|
417
417
|
}
|
|
418
|
-
/** For one brand and up to 100 creator account_ids, returns each creator's sponsored posts targeting that brand — per creator: post_count, reels_count, images_count, follower_count, and the posts themselves (slug, caption, posted_at, like/comment counts) — sorted by total engagement. All-time history, one call instead of one per creator. Get creator account_ids from solari_insight_instagram_brand_top_collaborators or solari_insight_instagram_brand_overview. Identify the brand by account_id (SOLARI account UUID) or by username (Instagram handle); an unknown reference returns a not-found error. 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. */
|
|
418
|
+
/** For one brand and up to 100 creator account_ids, returns each creator's sponsored posts targeting that brand — per creator: post_count, reels_count, images_count, follower_count, and the posts themselves (slug, caption, posted_at, like/comment counts; like_count is null when likes_hidden=true: the author hid likes and Instagram gave only a placeholder) — sorted by total engagement. All-time history, one call instead of one per creator. Get creator account_ids from solari_insight_instagram_brand_top_collaborators or solari_insight_instagram_brand_overview. Identify the brand by account_id (SOLARI account UUID) or by username (Instagram handle); an unknown reference returns a not-found error. 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. */
|
|
419
419
|
export interface InsightInstagramBrandCollaboratorPostsArgs {
|
|
420
420
|
/** Brand account_id (SOLARI account UUID). Provide this or username. */
|
|
421
421
|
"account_id"?: string | undefined;
|
|
@@ -547,7 +547,7 @@ export interface InsightInstagramHashtagDetailArgs {
|
|
|
547
547
|
/** Optional brand Instagram handle, used like brand_account_id. Ignored when brand_account_id is set. */
|
|
548
548
|
"brand_username"?: string | undefined;
|
|
549
549
|
}
|
|
550
|
-
/** Posts carrying one hashtag inside a trend window, most viewed first or newest first — the examples behind a leaderboard entry. Each item carries post_id, slug, author account_id and username, posted_at, play count and like count. Unlike solari_catalog_instagram_tag_search, it is limited to the window and can follow a brand lens. Works with any signed-in SOLARI account. */
|
|
550
|
+
/** Posts carrying one hashtag inside a trend window, most viewed first or newest first — the examples behind a leaderboard entry. Each item carries post_id, slug, author account_id and username, posted_at, play count and like count; like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). Unlike solari_catalog_instagram_tag_search, it is limited to the window and can follow a brand lens. Works with any signed-in SOLARI account. */
|
|
551
551
|
export interface InsightInstagramHashtagPostsArgs {
|
|
552
552
|
/** Hashtag, with or without the leading #. */
|
|
553
553
|
"tag": string;
|
|
@@ -795,7 +795,7 @@ export interface SolariTools {
|
|
|
795
795
|
search<T = unknown>(args: CatalogInstagramContentSearchArgs): Promise<T>;
|
|
796
796
|
};
|
|
797
797
|
tag: {
|
|
798
|
-
/** Every tracked post carrying one exact tag — '#ootd' for a hashtag, '@handle' for mentions of an account — hydrated into full rows, newest-collected first with cursor pagination. Exact whole-tag matching over the entire tracked history and every region, where solari_catalog_instagram_content_search does free-text over four regions and about six months. 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. The tag index refreshes once a day: when a hashtag is missing or stale here, solari_fetch_instagram_hashtag_posts collects a live page of it. Works with any signed-in SOLARI account. */
|
|
798
|
+
/** Every tracked post carrying one exact tag — '#ootd' for a hashtag, '@handle' for mentions of an account — hydrated into full rows, newest-collected first with cursor pagination; like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). Exact whole-tag matching over the entire tracked history and every region, where solari_catalog_instagram_content_search does free-text over four regions and about six months. 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. The tag index refreshes once a day: when a hashtag is missing or stale here, solari_fetch_instagram_hashtag_posts collects a live page of it. Works with any signed-in SOLARI account. */
|
|
799
799
|
search<T = unknown>(args: CatalogInstagramTagSearchArgs): Promise<T>;
|
|
800
800
|
};
|
|
801
801
|
};
|
|
@@ -831,14 +831,14 @@ export interface SolariTools {
|
|
|
831
831
|
search<T = unknown>(args: FetchInstagramAccountSearchArgs): Promise<T>;
|
|
832
832
|
};
|
|
833
833
|
hashtag: {
|
|
834
|
-
/** Collects one page of an Instagram hashtag feed live, stores every post in the SOLARI catalog and returns them in feed order. Stored posts reach solari_catalog_instagram_tag_search only after its next daily refresh, so read this page's posts from the response itself. Every call goes out to Instagram, so use it when a hashtag is missing or stale in solari_catalog_instagram_tag_search, not as the default way to read a tag. tab picks the feed: recent (default), top, or clips for reels. One page is roughly 20 to 30 posts and takes several seconds; pass next_cursor back as cursor for the next page of the same hashtag and tab. The feed ends only when next_cursor is null: a page can come back with found 0 and a next_cursor, which means keep going. fetched_count is how many posts Instagram returned; found is lower when some could not be stored. A hashtag that is hidden, restricted, or unknown to Instagram answers is_hidden=true with no posts; Instagram does not tell these apart, so check the spelling with solari_fetch_instagram_hashtag_search. Each post carries assets with a direct-download asset_url. Works with any signed-in SOLARI account. */
|
|
834
|
+
/** Collects one page of an Instagram hashtag feed live, stores every post in the SOLARI catalog and returns them in feed order. Stored posts reach solari_catalog_instagram_tag_search only after its next daily refresh, so read this page's posts from the response itself. Every call goes out to Instagram, so use it when a hashtag is missing or stale in solari_catalog_instagram_tag_search, not as the default way to read a tag. tab picks the feed: recent (default), top, or clips for reels. One page is roughly 20 to 30 posts and takes several seconds; pass next_cursor back as cursor for the next page of the same hashtag and tab. The feed ends only when next_cursor is null: a page can come back with found 0 and a next_cursor, which means keep going. fetched_count is how many posts Instagram returned; found is lower when some could not be stored. A hashtag that is hidden, restricted, or unknown to Instagram answers is_hidden=true with no posts; Instagram does not tell these apart, so check the spelling with solari_fetch_instagram_hashtag_search. Like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). Each post carries assets with a direct-download asset_url. Works with any signed-in SOLARI account. */
|
|
835
835
|
posts<T = unknown>(args: FetchInstagramHashtagPostsArgs): Promise<T>;
|
|
836
836
|
/** Looks hashtags up on Instagram live by keyword and returns up to 20 candidates with the number of posts Instagram reports under each. Use it to find the exact spelling or the biggest variant of a tag before solari_catalog_instagram_tag_search or solari_fetch_instagram_hashtag_posts. Nothing is stored and there is no pagination. Works with any signed-in SOLARI account. */
|
|
837
837
|
search<T = unknown>(args: FetchInstagramHashtagSearchArgs): Promise<T>;
|
|
838
838
|
};
|
|
839
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. */
|
|
840
840
|
post<T = unknown>(args?: FetchInstagramPostArgs): Promise<T>;
|
|
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. */
|
|
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, though Instagram leaves some reels off that tab while still showing them on the grid, so read type=posts as well when every reel must be counted; 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. */
|
|
842
842
|
posts<T = unknown>(args: FetchInstagramPostsArgs): Promise<T>;
|
|
843
843
|
};
|
|
844
844
|
threads: {
|
|
@@ -878,7 +878,7 @@ export interface SolariTools {
|
|
|
878
878
|
instagram: {
|
|
879
879
|
account: {
|
|
880
880
|
ad: {
|
|
881
|
-
/** Paginated row-level list of the identified sponsored posts one creator authored, newest first, with the target brand attached to each row — one row per post-brand pair, so a multi-brand post appears once per target. Each item carries post_id, slug and url, post_type, posted_at, caption text, like/comment/play counts, media_count, is_paid_partnership, and target_account_id/target_username. Filter to one brand with target (its account_id or Instagram handle). Widen the lookback with months (default 3, up to 24). Row-level companion to solari_insight_instagram_account_collabs, which groups the same history by brand. Identify the creator by account_id (SOLARI account UUID) or by username (Instagram handle); an unknown reference returns a not-found error. 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. */
|
|
881
|
+
/** Paginated row-level list of the identified sponsored posts one creator authored, newest first, with the target brand attached to each row — one row per post-brand pair, so a multi-brand post appears once per target. Each item carries post_id, slug and url, post_type, posted_at, caption text, 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, and target_account_id/target_username. Filter to one brand with target (its account_id or Instagram handle). Widen the lookback with months (default 3, up to 24). Row-level companion to solari_insight_instagram_account_collabs, which groups the same history by brand. Identify the creator by account_id (SOLARI account UUID) or by username (Instagram handle); an unknown reference returns a not-found error. 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. */
|
|
882
882
|
posts<T = unknown>(args?: InsightInstagramAccountAdPostsArgs): Promise<T>;
|
|
883
883
|
};
|
|
884
884
|
/** Recent ad collaborations produced by one creator within a month window. Each item is a target brand (target_account_id, target_username) with collab_count, last_posted_at, and a sample collaboration post. Returns items, has_more, and total; page with limit/offset. Identify the creator by account_id (SOLARI account UUID) or by username (Instagram handle); an unknown reference returns a not-found error. Mirror view of solari_insight_instagram_brand_top_collaborators, which starts from the brand instead. Works with any signed-in SOLARI account. */
|
|
@@ -886,7 +886,7 @@ export interface SolariTools {
|
|
|
886
886
|
discover: {
|
|
887
887
|
/** Finds Instagram creators that fit a brief: topic phrases matched against captions, transcripts and visual style, bio traits, a reference creator to find lookalikes of, trending growth, and a product the creator should have advertised before — then filtered by follower, 3-month total view and 3-month median view ranges and excluded keywords. Use it to build a shortlist; use solari_catalog_instagram_account_search instead when you already have a name. Returns a search_id, the total found, the top usernames and result sections; page the full creator list (profile metrics and each creator's top recent posts) with solari_insight_instagram_account_discover_results. Broad briefs can take up to a minute. Works with any signed-in SOLARI account. */
|
|
888
888
|
<T = unknown>(args: InsightInstagramAccountDiscoverArgs): Promise<T>;
|
|
889
|
-
/** Pages the full creator list of one solari_insight_instagram_account_discover run. Each item carries account_id, username, full name, bio, follower count, 3-month median and total views, view growth, ad count, and the creator's top recent posts. Results stay available after the search, so re-sort or page without searching again. Works with any signed-in SOLARI account. */
|
|
889
|
+
/** Pages the full creator list of one solari_insight_instagram_account_discover run. Each item carries account_id, username, full name, bio, follower count, 3-month median and total views, view growth, ad count, and the creator's top recent posts (their like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder)). Results stay available after the search, so re-sort or page without searching again. Works with any signed-in SOLARI account. */
|
|
890
890
|
results<T = unknown>(args: InsightInstagramAccountDiscoverResultsArgs): Promise<T>;
|
|
891
891
|
};
|
|
892
892
|
/** Finds Instagram accounts similar to the given username based on relationship-graph overlap. Takes an Instagram handle (no @), not a UUID. Works with any signed-in SOLARI account. */
|
|
@@ -894,13 +894,13 @@ export interface SolariTools {
|
|
|
894
894
|
};
|
|
895
895
|
brand: {
|
|
896
896
|
ad: {
|
|
897
|
-
/** Paginated row-level list of the identified sponsored posts targeting a brand, each hydrated with slug, caption, posted_at, like/comment counts, play_count for videos, and the authoring creator's username and account_id. sort=recent pages the full window newest-first with an exact total; sort=engagement ranks within a bounded recent window whose size is reported as ranking_window (non-null means the ordering covers a slice, not everything). Widen the lookback with months (default 3, up to 24). Row-level companion to solari_insight_instagram_brand_ad_stats. Takes the brand's Instagram handle (no @). 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. Returns 404 if the handle is not tracked. */
|
|
897
|
+
/** Paginated row-level list of the identified sponsored posts targeting a brand, each hydrated with slug, caption, posted_at, like/comment counts, play_count for videos, and the authoring creator's username and account_id; like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). sort=recent pages the full window newest-first with an exact total; sort=engagement ranks within a bounded recent window whose size is reported as ranking_window (non-null means the ordering covers a slice, not everything). Widen the lookback with months (default 3, up to 24). Row-level companion to solari_insight_instagram_brand_ad_stats. Takes the brand's Instagram handle (no @). 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. Returns 404 if the handle is not tracked. */
|
|
898
898
|
posts<T = unknown>(args: InsightInstagramBrandAdPostsArgs): Promise<T>;
|
|
899
899
|
/** Exact sponsored-post and collaborating-creator counts for a brand's recent window, plus a bounded play-count sum. Use this for accurate ad-volume figures since solari_insight_instagram_brand_overview ID lists are capped; for the underlying row-level posts use solari_insight_instagram_brand_ad_posts. Takes the brand's Instagram handle (no @). Works with any signed-in SOLARI account. */
|
|
900
900
|
stats<T = unknown>(args: InsightInstagramBrandAdStatsArgs): Promise<T>;
|
|
901
901
|
};
|
|
902
902
|
collaborator: {
|
|
903
|
-
/** For one brand and up to 100 creator account_ids, returns each creator's sponsored posts targeting that brand — per creator: post_count, reels_count, images_count, follower_count, and the posts themselves (slug, caption, posted_at, like/comment counts) — sorted by total engagement. All-time history, one call instead of one per creator. Get creator account_ids from solari_insight_instagram_brand_top_collaborators or solari_insight_instagram_brand_overview. Identify the brand by account_id (SOLARI account UUID) or by username (Instagram handle); an unknown reference returns a not-found error. 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. */
|
|
903
|
+
/** For one brand and up to 100 creator account_ids, returns each creator's sponsored posts targeting that brand — per creator: post_count, reels_count, images_count, follower_count, and the posts themselves (slug, caption, posted_at, like/comment counts; like_count is null when likes_hidden=true: the author hid likes and Instagram gave only a placeholder) — sorted by total engagement. All-time history, one call instead of one per creator. Get creator account_ids from solari_insight_instagram_brand_top_collaborators or solari_insight_instagram_brand_overview. Identify the brand by account_id (SOLARI account UUID) or by username (Instagram handle); an unknown reference returns a not-found error. 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. */
|
|
904
904
|
posts<T = unknown>(args: InsightInstagramBrandCollaboratorPostsArgs): Promise<T>;
|
|
905
905
|
};
|
|
906
906
|
lookalike: {
|
|
@@ -931,7 +931,7 @@ export interface SolariTools {
|
|
|
931
931
|
hashtag: {
|
|
932
932
|
/** One hashtag in depth for a market and window: post count, unique creators, views, sponsored percent, share of all posts, growth against the previous window, momentum, the share series over time, the tags used together with it, and the creators who used it most (account_id, username, posts, views, followers). Use the same brand as the leaderboard to keep the same lens. Works with any signed-in SOLARI account. */
|
|
933
933
|
detail<T = unknown>(args: InsightInstagramHashtagDetailArgs): Promise<T>;
|
|
934
|
-
/** Posts carrying one hashtag inside a trend window, most viewed first or newest first — the examples behind a leaderboard entry. Each item carries post_id, slug, author account_id and username, posted_at, play count and like count. Unlike solari_catalog_instagram_tag_search, it is limited to the window and can follow a brand lens. Works with any signed-in SOLARI account. */
|
|
934
|
+
/** Posts carrying one hashtag inside a trend window, most viewed first or newest first — the examples behind a leaderboard entry. Each item carries post_id, slug, author account_id and username, posted_at, play count and like count; like_count is null when likes_hidden=true (the author hid likes and Instagram gave only a placeholder). Unlike solari_catalog_instagram_tag_search, it is limited to the window and can follow a brand lens. Works with any signed-in SOLARI account. */
|
|
935
935
|
posts<T = unknown>(args: InsightInstagramHashtagPostsArgs): Promise<T>;
|
|
936
936
|
/** Hashtag leaderboard for a market and window, in two lists: rising (share growing fastest against the previous window) and top (volume weighted by how much more it is used than usual). Each entry carries post count, unique creators, views, sponsored percent, growth multiple against the previous window, a NEW flag, a daily share series and momentum. Pass a brand to see the tags moving around that brand's creators instead of the whole market; lens and lens_reason say which view you got. Use solari_insight_instagram_hashtag_detail and solari_insight_instagram_hashtag_posts to drill into one tag. Works with any signed-in SOLARI account. */
|
|
937
937
|
trending<T = unknown>(args?: InsightInstagramHashtagTrendingArgs): Promise<T>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@brandazine/solari-sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.13",
|
|
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",
|