Serveur MCP

Influship

io.github.Influship/influship-mcp

Ce que fait ce MCP

Discovers, profiles, compares, and evaluates social-media creators, and retrieves their posts, engagement data, captions, and video transcripts.

autocomplete_creators
Autocomplete creator names, usernames, or display names from partial input. Use this for fast lookup when the user types a partial handle or name and you need to resolve it to canonical creator IDs (e.g., "find @cris" or "who's that fitness coach called Jane?"). Cheap and fast — prefer over `search_creators` for handle-style queries where the user already knows roughly who they want. Use `get_profile` instead when the user gives an exact platform+username pair. Use `search_creators` for the same fuzzy creator lookup behavior with a less typeahead- specific name. Use `semantic_search_creators` only for discovery by topic, niche, audience, geography, or content style, not for resolving a known creator. Examples: - User: "Who is that fitness coach called Jane?" -> use this tool. - User: "Find @cris..." -> use this tool to resolve the partial handle. - User: "Pull @niickjackson on Instagram" -> use `get_profile`, not this tool. Returns a short list of matching creators with their IDs, platforms, and display names. Use the IDs returned here as input to `get_creator`, `find_lookalike_creators`, or `match_creators` for downstream operations.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['q'], 'properties': {'q': {'type': 'string', 'example': 'fitness', 'maxLength': 100, 'minLength': 2, 'description': 'Search query (min 2 characters)'}, 'limit': {'type': 'integer', 'default': 5, 'example': 5, 'maximum': 50, 'minimum': 1, 'description': 'Maximum results to return'}, 'scope': {'enum': ['creator_only', 'matched_platforms', 'all_platforms'], 'type': 'string', 'default': 'all_platforms', 'example': 'all_platforms', 'description': 'Which platforms to include in results'}, 'platform': {'allOf': [{'$ref': '#/definitions/Platform'}], 'description': 'Filter by platform'}}, 'definitions': {'Platform': {'enum': ['instagram'], 'type': 'string', 'example': 'instagram', 'description': 'Social media platform'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
find_lookalike_creators
Find creators SIMILAR to one or more seed creators. Use this when the user already knows a creator they like and wants more like them (e.g., "find creators like @therock", "find more creators like these three I just booked"). Seeds are blended via creator-profile + visual-style + fact embeddings to surface similar accounts. Seeds are passed in `seed_creator_ids` (canonical UUIDs) and/or `seed_profiles` (platform + username; resolve handles via `autocomplete_creators` first if needed). Returns a ranked list of similar creators with scores. `limit` caps results (default 25, max 100). Use the flat follower, engagement-rate, and verified fields to constrain results. A `seed_not_found` response means the supplied creator is not available for similarity matching; choose another seed instead of retrying it. Use `semantic_search_creators` instead when you have a topic/niche but no seed. Use `match_creators` when you have specific candidates and want to score their fit against a brief. Examples: - User: "Find creators like @niickjackson on Instagram" -> use this tool with `seed_profiles: [{ platform: "instagram", username: "niickjackson" }]`. - User: "Find news creators with 1M+ followers" -> use `semantic_search_creators`, not this tool.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Maximum results to return.'}, 'cursor': {'type': 'string', 'description': 'Pagination cursor from a previous response.'}, 'verified': {'type': 'boolean', 'description': 'When set, only return verified or unverified creators.'}, 'max_followers': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Maximum follower count.'}, 'min_followers': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Minimum follower count.'}, 'seed_profiles': {'type': 'array', 'items': {'type': 'object', 'required': ['platform', 'username'], 'properties': {'weight': {'type': 'number', 'default': 1, 'maximum': 1, 'minimum': 0, 'description': 'Relative seed weight from 0 to 1. Omit for the default weight of 1.'}, 'platform': {'allOf': [{'$ref': '#/definitions/Platform'}], 'description': 'Social platform for the username.'}, 'username': {'type': 'string', 'maxLength': 50, 'minLength': 1, 'description': 'Platform username or handle without the @ sign.'}}, 'additionalProperties': False}, 'maxItems': 10, 'description': 'Seed creators identified by platform and username.'}, 'seed_creator_ids': {'type': 'array', 'items': {'type': 'object', 'required': ['creator_id'], 'properties': {'weight': {'type': 'number', 'default': 1, 'maximum': 1, 'minimum': 0, 'description': 'Relative seed weight from 0 to 1. Omit for the default weight of 1.'}, 'creator_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Canonical Influship creator UUID.'}}, 'additionalProperties': False}, 'maxItems': 10, 'description': 'Seed creators identified by canonical Influship creator UUID.'}, 'max_engagement_rate': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Maximum engagement rate as a percentage from 0 to 100.'}, 'min_engagement_rate': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Minimum engagement rate as a percentage from 0 to 100.'}}, 'definitions': {'Platform': {'enum': ['instagram'], 'type': 'string', 'example': 'instagram', 'description': 'Social media platform'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_creator
Fetch the full record for a single creator by ID or exact platform username. Use this when you already have either: - a canonical creator UUID returned by `search_creators`, `semantic_search_creators`, `autocomplete_creators`, or `find_lookalike_creators`; or - an exact platform+username pair such as platform "instagram" and username "niickjackson". Pass `include: ['profiles']` to also receive the creator's social profile summaries when using a creator UUID. For platform+username inputs, this tool resolves through the profile endpoint and returns the profile record plus the underlying creator record, so you already get the matched profile context. Examples: - User: "Get creator 123e4567-e89b-12d3-a456-426614174000" -> call with id. - User: "Get @niickjackson on Instagram" -> call with platform "instagram" and username "niickjackson", or use `get_profile` if profile metrics are the main need. - User: "Tell me about @niickjackson and include his profiles" -> use platform "instagram" and username "niickjackson"; then use `get_profile`/`get_posts` for platform-specific metrics and content if needed. Use `lookup_profiles` for batch exact profile lookups.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'id': {'type': 'string', 'format': 'uuid', 'example': '123e4567-e89b-12d3-a456-426614174000', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Creator unique identifier'}, 'include': {'type': 'array', 'items': {'enum': ['profiles'], 'type': 'string'}, 'example': ['profiles'], 'description': 'Additional data to include in response'}, 'platform': {'allOf': [{'$ref': '#/definitions/Platform'}], 'description': 'Social platform for the username.'}, 'username': {'type': 'string', 'description': 'Public username or handle. A leading @ is accepted.'}}, 'definitions': {'Platform': {'enum': ['instagram'], 'type': 'string', 'example': 'instagram', 'description': 'Social media platform'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_instagram_post
Fetch raw Instagram post-page data by shortcode. Use this when the user needs fresh raw Instagram post metadata that is not guaranteed on regular cached post-list endpoints yet, including coauthors, tagged users, paid partnership metadata, product mentions, music attribution, location, display resources, and video versions.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['shortcode'], 'properties': {'shortcode': {'type': 'string', 'minLength': 1, 'description': 'Instagram post shortcode from a /p/, /reel/, or /tv/ URL'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_instagram_posts
Fetch raw Instagram post-page data for a bounded list of shortcodes through the raw API. Transient upstream recovery is handled automatically within the request deadline. Returns one item per requested shortcode with per-item success or error details.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['shortcodes'], 'properties': {'shortcodes': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 20, 'minItems': 1, 'description': 'Instagram post shortcodes from /p/, /reel/, or /tv/ URLs'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_instagram_post_transcript
Transcribe an Instagram video post by shortcode through the raw API. The response includes raw post metadata on a transcript cache miss. A cache hit omits the post field; use `get_instagram_post` when you need post metadata with a cached transcript.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['shortcode'], 'properties': {'language': {'type': 'string', 'minLength': 2, 'description': 'Optional transcript language code. Omit to auto-detect.'}, 'shortcode': {'type': 'string', 'minLength': 1, 'description': 'Instagram post shortcode from a /p/, /reel/, or /tv/ URL'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_instagram_post_transcripts
Transcribe a bounded list of Instagram video posts by shortcode through the raw API. Each successful item includes transcript data. The nested post field is present on cache misses and omitted on cache hits; use `get_instagram_posts` when you also need post metadata for every shortcode.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['shortcodes'], 'properties': {'language': {'type': 'string', 'minLength': 2, 'description': 'Optional transcript language code. Omit to auto-detect.'}, 'shortcodes': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 10, 'minItems': 1, 'description': 'Instagram video post shortcodes from /p/, /reel/, or /tv/ URLs'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_posts
Fetch a creator's posts, sorted and paginated. Use this when the user asks to see what a creator has posted (e.g., "show me Jane's last 20 posts", "what are this creator's top-engagement reels?", "pull recent posts from creator-id ABC"). Identify the creator by either `creator_id` (UUID) OR (`platform` + `username`). `sort` defaults to "recent" (newest first); use "top_engagement" for the highest- engagement posts, or one of "most_likes" / "most_views" / "most_comments" for a specific metric. `limit` defaults to 12 and is capped at 50. Pass `cursor` from a previous response's `next_cursor` to paginate. Returns post records (caption, media URL, like/comment/view counts, timestamps), plus `has_more` and `next_cursor` for pagination. Examples: - User: "Show @niickjackson's recent Instagram posts" -> use this tool with platform "instagram" and username "niickjackson". - User: "Is @niickjackson a fit for Pixel?" -> use this after `get_profile` when the fit analysis needs recent content evidence, then call `match_creators`.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'sort': {'allOf': [{'$ref': '#/definitions/PostSort'}], 'default': 'recent', 'description': 'Sort order'}, 'limit': {'type': 'integer', 'default': 12, 'example': 12, 'maximum': 50, 'minimum': 1, 'description': 'Maximum posts to return'}, 'cursor': {'type': 'string', 'description': 'Opaque keyset cursor from next_cursor. A cursor is bound to the sort order that produced it; using it with another sort returns 400.'}, 'platform': {'allOf': [{'$ref': '#/definitions/Platform'}], 'description': 'Platform (required with username)'}, 'username': {'type': 'string', 'example': 'fitness_coach_jane', 'maxLength': 50, 'minLength': 1, 'description': 'Username (required with platform)'}, 'creator_id': {'type': 'string', 'format': 'uuid', 'example': '123e4567-e89b-12d3-a456-426614174000', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Creator ID (use this OR platform+username)'}}, 'definitions': {'Platform': {'enum': ['instagram'], 'type': 'string', 'example': 'instagram', 'description': 'Social media platform'}, 'PostSort': {'enum': ['recent', 'top_engagement', 'most_likes', 'most_views', 'most_comments'], 'type': 'string', 'example': 'recent', 'description': 'Stable post ordering. top_engagement uses (likes + comments) / views, with posts that have no measurable views sorted last.'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_profile
Fetch a single social profile by (platform, username). Always use this first when the user gives an exact handle on a specific platform (for example "@niickjackson on Instagram") and you need the full profile: bio, follower/engagement metrics, recent activity, growth, and the canonical creator ID. Pass exactly the username they typed without the @ sign — case-insensitive matching is handled server-side. Do not use `search_creators` for an exact platform+username lookup. Examples: - User: "Pull @niickjackson on Instagram" -> use this tool with platform "instagram" and username "niickjackson". - User: "Tell me about instagram.com/niickjackson" -> parse the platform and username, then use this tool. - User: "Is @niickjackson a fit for Pixel?" -> use this tool first, then call `get_posts` and/or `match_creators` if the task needs content or fit analysis. Returns the profile record plus the underlying creator record. If you already have a creator UUID, use `get_creator` instead. For batch lookups by handle, use `lookup_profiles`.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['platform', 'username'], 'properties': {'platform': {'allOf': [{'$ref': '#/definitions/Platform'}], 'description': 'Social platform for the username.'}, 'username': {'type': 'string', 'description': 'Public username or handle. A leading @ is accepted.'}}, 'definitions': {'Platform': {'enum': ['instagram'], 'type': 'string', 'example': 'instagram', 'description': 'Social media platform'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_sample_creator
Get sample creator
Use this when a user wants to see what Influship can return before linking an account. Fetches one configured sample creator with social profile context. This is a preview tool and should not be used for search, discovery, matching, or comparison requests. After showing the preview, explain only that live creator discovery and comparison require connecting an existing Influship account. Do not discuss plans, pricing, credits, upgrades, or purchasing.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['view', 'creator', 'posts', 'postsUnavailable'], 'properties': {'view': {'type': 'string', 'const': 'profile'}, 'posts': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'platform', 'url', 'postedAt', 'type', 'caption', 'thumbnailUrl', 'likes', 'comments', 'views', 'engagementRate'], 'properties': {'id': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'type': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'likes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'views': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'caption': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'comments': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'platform': {'type': 'string'}, 'postedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'thumbnailUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'engagementRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 6}, 'creator': {'type': 'object', 'required': ['id', 'name', 'bio', 'avatarUrl', 'aiSummary', 'analysisUpdatedAt', 'analysisFactCount', 'audienceSummary', 'contentThemes', 'vibe', 'profiles'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'bio': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'vibe': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'profiles': {'type': 'array', 'items': {'type': 'object', 'required': ['platform', 'username', 'url', 'followers', 'engagementRate', 'verified', 'dataUpdatedAt'], 'properties': {'url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'platform': {'type': 'string'}, 'username': {'type': 'string'}, 'verified': {'type': 'boolean'}, 'followers': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'dataUpdatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'engagementRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'aiSummary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'avatarUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'contentThemes': {'type': 'array', 'items': {'type': 'string'}}, 'audienceSummary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'analysisFactCount': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'analysisUpdatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'postsUnavailable': {'type': 'boolean'}}, 'additionalProperties': False}
get_tiktok_music
Get TikTok sound details
Fetch sound clip metadata by music_id. Unknown fields are null. Audio and cover URLs are temporary, not durable downloads. This is a metered request.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['music_id'], 'properties': {'music_id': {'type': 'string', 'pattern': '^[1-9][0-9]{0,24}$', 'description': 'TikTok sound clip ID, not a recording or album ID'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_tiktok_profile
Get TikTok profile
Fetch a current, normalized TikTok profile by username. Returns identity, biography, verification, and audience metrics. A leading @ is accepted and usernames are normalized. This is a metered live-data request.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['username'], 'properties': {'username': {'type': 'string'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_tiktok_video
Get TikTok video
Fetch normalized details and current engagement metrics for a TikTok video URL. Canonical video URLs and TikTok share URLs are accepted. Returned media URLs are temporary. Content always resolves against the US region. Each successful request costs 0.2 account credits.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'$ref': '#/definitions/TikTokVideoUrl'}, 'region': {'type': 'string', 'const': 'US', 'default': 'US'}}, 'definitions': {'TikTokUrl': {'type': 'string', 'format': 'uri'}, 'TikTokVideoUrl': {'type': 'string', 'allOf': [{'$ref': '#/definitions/TikTokUrl'}], 'format': 'uri'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_tiktok_video_captions
Get TikTok video captions
Fetch available captions without generating a transcript. Missing captions return an error. Successful requests, including cached captions, cost 0.2 credits.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'$ref': '#/definitions/TikTokVideoUrl'}}, 'definitions': {'TikTokUrl': {'type': 'string', 'format': 'uri'}, 'TikTokVideoUrl': {'type': 'string', 'allOf': [{'$ref': '#/definitions/TikTokUrl'}], 'format': 'uri'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_tiktok_videos
Get TikTok videos
Fetch 1–20 TikTok video URLs in input order, with per-item success or error results. Duplicate entries remain distinct. Each successful entry costs 0.2 account credits.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['urls'], 'properties': {'urls': {'type': 'array', 'items': {'$ref': '#/definitions/TikTokVideoUrl'}, 'maxItems': 20, 'minItems': 1}}, 'definitions': {'TikTokUrl': {'type': 'string', 'format': 'uri'}, 'TikTokVideoUrl': {'type': 'string', 'allOf': [{'$ref': '#/definitions/TikTokUrl'}], 'format': 'uri'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_tiktok_video_transcript
Get TikTok video transcript
Fetch or generate a normalized TikTok video transcript. Returns plain text and timestamped segments. A previously collected transcript can be reused. Each successful request costs 2.5 account credits, including a reused result, and may take longer when transcription must be generated.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'$ref': '#/definitions/TikTokVideoUrl'}}, 'definitions': {'TikTokUrl': {'type': 'string', 'format': 'uri'}, 'TikTokVideoUrl': {'type': 'string', 'allOf': [{'$ref': '#/definitions/TikTokUrl'}], 'format': 'uri'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_tiktok_video_transcripts
Get TikTok video transcripts
Fetch transcripts for 1–10 TikTok URLs in input order, with per-item results. Auto mode costs 2.5 account credits per successful entry. Captions mode never generates transcripts and costs 0.2 per successful entry. Duplicate entries remain distinct.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['urls'], 'properties': {'mode': {'enum': ['auto', 'captions'], 'type': 'string', 'default': 'auto'}, 'urls': {'type': 'array', 'items': {'$ref': '#/definitions/TikTokVideoUrl'}, 'maxItems': 10, 'minItems': 1}}, 'definitions': {'TikTokUrl': {'type': 'string', 'format': 'uri'}, 'TikTokVideoUrl': {'type': 'string', 'allOf': [{'$ref': '#/definitions/TikTokUrl'}], 'format': 'uri'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_youtube_channel
Get YouTube channel
Fetch a current YouTube channel by handle, channel ID, or URL. Optionally includes recent videos. This is a metered live-data request.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channel'], 'properties': {'channel': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'A handle, channel ID, or YouTube channel URL.'}, 'video_limit': {'type': 'integer', 'default': 12, 'maximum': 50, 'minimum': 1}, 'include_videos': {'type': 'boolean', 'default': True}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_youtube_channel_transcripts
Get YouTube channel transcripts
Fetch transcripts for a selected batch of videos from a YouTube channel. Choose the video count, ordering, language, and whether timestamped segments are included. This is a metered batch request.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['channel'], 'properties': {'channel': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'A handle, channel ID, or YouTube channel URL.'}, 'sort_by': {'enum': ['popular', 'newest', 'oldest'], 'type': 'string', 'default': 'newest'}, 'language': {'type': 'string', 'default': 'en', 'maxLength': 20, 'minLength': 2}, 'video_limit': {'type': 'integer', 'default': 5, 'maximum': 20, 'minimum': 1}, 'include_segments': {'type': 'boolean', 'default': False}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_youtube_typeahead
Get YouTube search suggestions
Fetch current localized YouTube query suggestions for a partial phrase. Useful for expanding topic seeds before search. This is a metered live-data request.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['q'], 'properties': {'q': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'country_code': {'type': 'string', 'maxLength': 2, 'minLength': 2}, 'language_code': {'type': 'string', 'default': 'en', 'maxLength': 5, 'minLength': 2}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_youtube_video
Get YouTube video
Fetch fresh metadata and engagement for a YouTube video ID. Returns exact publication data when available, plus views, likes, comments, duration, tags, categories, and channel identity. This is a metered live-data request.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['video_id'], 'properties': {'video_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]{11}$'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
get_youtube_video_transcript
Get YouTube video transcript
Fetch a normalized transcript for a YouTube video ID. Returns plain text, timestamped segments, and available caption languages. This is a metered request and may take longer when captions must be resolved.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['video_id'], 'properties': {'language': {'type': 'string', 'default': 'auto', 'maxLength': 20, 'minLength': 2}, 'video_id': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]{11}$'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
list_tiktok_comment_replies
List TikTok comment replies
Fetch one page of replies to a numeric parent comment ID. Keep the video URL and parent ID unchanged when passing the returned cursor. Each successful page costs 0.2 credits.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url', 'comment_id'], 'properties': {'url': {'$ref': '#/definitions/TikTokVideoUrl'}, 'cursor': {'type': 'string', 'maxLength': 2048, 'minLength': 1}, 'comment_id': {'type': 'string', 'pattern': '^[1-9][0-9]{0,24}$'}}, 'definitions': {'TikTokUrl': {'type': 'string', 'format': 'uri'}, 'TikTokVideoUrl': {'type': 'string', 'allOf': [{'$ref': '#/definitions/TikTokUrl'}], 'format': 'uri'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
list_tiktok_hashtag_videos
List TikTok hashtag videos
Fetch one page of videos under a hashtag, supplied without #. Continue with next_cursor and the same hashtag. Duplicate results are preserved. Media links are temporary. Each successful page, including an empty page, costs 0.2 account credits.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['hashtag'], 'properties': {'cursor': {'type': 'string', 'maxLength': 2048, 'minLength': 1}, 'hashtag': {'type': 'string', 'pattern': '^[^#\\s\\u0000-\\u001f\\u007f-\\u009f]+$', 'maxLength': 100, 'minLength': 1}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
list_tiktok_music_videos
List TikTok sound videos
Fetch one page of videos using a sound clip music_id. Continue with next_cursor and the same music_id; cursors are opaque. Duplicate results are preserved. Media links are temporary. Each successful page, including an empty page, costs 0.2 account credits.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['music_id'], 'properties': {'cursor': {'type': 'string', 'maxLength': 2048, 'minLength': 1}, 'music_id': {'type': 'string', 'pattern': '^[1-9][0-9]{0,24}$', 'description': 'TikTok sound clip ID, not a recording or album ID'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
list_tiktok_profile_videos
List TikTok profile videos
Fetch one cursor-paginated page of current TikTok videos for a username. Use the returned cursor to paginate and choose latest or popular ordering. Media URLs are temporary. Content always resolves against the US region. Each successful page, including an empty page, costs 0.2 account credits. A private account returns a forbidden error rather than an empty page; do not retry it.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['username'], 'properties': {'cursor': {'type': 'string', 'maxLength': 2048, 'minLength': 1}, 'region': {'type': 'string', 'const': 'US', 'default': 'US'}, 'sort_by': {'enum': ['latest', 'popular'], 'type': 'string', 'default': 'latest'}, 'username': {'type': 'string'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
list_tiktok_video_comments
List TikTok video comments
Fetch one cursor-paginated page of current comments for a TikTok video URL. Pass the returned cursor to retrieve the next page. This is a metered live-data request.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['url'], 'properties': {'url': {'$ref': '#/definitions/TikTokVideoUrl'}, 'cursor': {'type': 'string', 'maxLength': 2048, 'minLength': 1}}, 'definitions': {'TikTokUrl': {'type': 'string', 'format': 'uri'}, 'TikTokVideoUrl': {'type': 'string', 'allOf': [{'$ref': '#/definitions/TikTokUrl'}], 'format': 'uri'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
lookup_profiles
Batch-fetch up to 100 profiles by (platform, username) pairs. Use this when the user has a list of handles and you need profile data for all of them at once (e.g., "give me follower counts for these 30 accounts I'm considering" or "which of @a @b @c are real accounts?"). One round-trip beats 30 calls to `get_profile`. Use this for exact batch handle lookup, not semantic discovery. For one exact platform+username pair, use `get_profile`. For partial or fuzzy handle/name input, use `search_creators` or `autocomplete_creators`. Use `semantic_search_creators` only for topical/niche/audience discovery where false-positive semantic matches are acceptable. Examples: - User: "Compare @a, @b, and @c on Instagram" -> use this tool for the exact handle batch. - User: "Give me follower counts for these 30 accounts" -> use this tool. - User: "Find wellness creators in Austin" -> use `semantic_search_creators`, not this tool. The response splits results into `data` (profiles found) and `not_found` (the (platform, username) pairs that weren't recognized). Profiles are returned in no particular order — re-correlate via the platform/username fields if you need to preserve input order.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'examples': [{'profiles': [{'platform': 'instagram', 'username': 'fitness_coach_jane'}, {'platform': 'instagram', 'username': 'wellness_guru'}, {'platform': 'instagram', 'username': 'healthy_eating_tips'}]}], 'required': ['profiles'], 'properties': {'profiles': {'type': 'array', 'items': {'$ref': '#/definitions/ProfileLookupItem'}, 'maxItems': 100, 'minItems': 1, 'description': 'Profiles to lookup'}}, 'definitions': {'Platform': {'enum': ['instagram'], 'type': 'string', 'example': 'instagram', 'description': 'Social media platform'}, 'ProfileLookupItem': {'type': 'object', 'required': ['platform', 'username'], 'properties': {'platform': {'$ref': '#/definitions/Platform'}, 'username': {'type': 'string', 'example': 'fitness_coach_jane', 'maxLength': 50, 'minLength': 1, 'description': 'Username to lookup'}}}}, 'description': 'Batch lookup profiles request'}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
match_creators
Score how well specific creators fit a campaign brief or search intent. Use this when the user already has candidate creators in mind and wants to evaluate fit (e.g., "rate these 5 creators for a vegan cookbook launch", "which of these is the best match for my crypto audience?"). For each creator the API returns a match score (0-1), a good/neutral/avoid decision, and structured reasons. Pass candidates in `creator_ids` (canonical UUIDs) and/or `profiles` (platform + username). `intent_query` is the brief the LLM reasons against; `intent_context` is optional extra context (target audience, brand values, prior collabs). Use `semantic_search_creators` when you don't have candidates yet and need topical or niche discovery. Use `search_creators` first when you only need to resolve rough creator names/handles into candidates. Use `find_lookalike_creators` when you want creators similar to known good fits. Examples: - User: "Is @niickjackson a fit for Pixel?" -> use this tool after resolving the exact Instagram profile with `get_profile`; call `get_posts` first if recent content context is needed. - User: "Rate these five creators for a vegan cookbook launch" -> use this tool.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['intent_query'], 'properties': {'profiles': {'type': 'array', 'items': {'type': 'object', 'required': ['platform', 'username'], 'properties': {'platform': {'allOf': [{'$ref': '#/definitions/Platform'}], 'description': 'Social platform for the username.'}, 'username': {'type': 'string', 'maxLength': 50, 'minLength': 1, 'description': 'Platform username or handle without the @ sign.'}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Candidate creators identified by platform and username.'}, 'creator_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'maxItems': 100, 'description': 'Candidate creators identified by canonical Influship creator UUID.'}, 'intent_query': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'Campaign brief or matching intent.'}, 'intent_context': {'type': 'string', 'maxLength': 2000, 'description': 'Optional extra campaign context, audience, brand values, or prior collabs.'}}, 'definitions': {'Platform': {'enum': ['instagram'], 'type': 'string', 'example': 'instagram', 'description': 'Social media platform'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
render_creator_comparison
Compare creator fit
Use this when the user has 2–4 canonical creator IDs and a specific campaign brief. It fetches current creator details, scores each creator against the brief, and renders a side-by-side comparison. This may consume Influship account or API usage.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['creator_ids', 'campaign_brief'], 'properties': {'context': {'type': 'string', 'maxLength': 1000, 'minLength': 1, 'description': 'Optional brand constraints or evaluation context.'}, 'creator_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'maxItems': 4, 'minItems': 2, 'description': 'Two to four canonical creator IDs to compare.'}, 'campaign_brief': {'type': 'string', 'maxLength': 500, 'minLength': 3, 'description': 'Specific campaign, audience, product, and desired creator fit.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['view', 'title', 'brief', 'creators'], 'properties': {'view': {'type': 'string', 'const': 'comparison'}, 'brief': {'type': 'string'}, 'title': {'type': 'string'}, 'creators': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'bio', 'avatarUrl', 'aiSummary', 'analysisUpdatedAt', 'analysisFactCount', 'audienceSummary', 'contentThemes', 'vibe', 'profiles', 'matchScore', 'decision', 'reasons'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'bio': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'vibe': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'reasons': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'provenance', 'evidenceQuote'], 'properties': {'text': {'type': 'string'}, 'provenance': {'enum': ['post_evidence', 'profile_fact', 'inferred'], 'type': 'string'}, 'evidenceQuote': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 4}, 'decision': {'enum': ['good', 'neutral', 'avoid'], 'type': 'string'}, 'profiles': {'type': 'array', 'items': {'type': 'object', 'required': ['platform', 'username', 'url', 'followers', 'engagementRate', 'verified', 'dataUpdatedAt'], 'properties': {'url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'platform': {'type': 'string'}, 'username': {'type': 'string'}, 'verified': {'type': 'boolean'}, 'followers': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'dataUpdatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'engagementRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'aiSummary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'avatarUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'matchScore': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'contentThemes': {'type': 'array', 'items': {'type': 'string'}}, 'audienceSummary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'analysisFactCount': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'analysisUpdatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 4, 'minItems': 2}}, 'additionalProperties': False}
render_creator_profile
Show creator profile
Use this when the user wants a visual deep dive on one canonical creator ID. It fetches the current creator record plus up to six recent posts and may consume Influship account or API usage.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['creator_id'], 'properties': {'creator_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Canonical Influship creator ID.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['view', 'creator', 'posts', 'postsUnavailable'], 'properties': {'view': {'type': 'string', 'const': 'profile'}, 'posts': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'platform', 'url', 'postedAt', 'type', 'caption', 'thumbnailUrl', 'likes', 'comments', 'views', 'engagementRate'], 'properties': {'id': {'type': 'string'}, 'url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'type': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'likes': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'views': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'caption': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'comments': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'platform': {'type': 'string'}, 'postedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'thumbnailUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'engagementRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 6}, 'creator': {'type': 'object', 'required': ['id', 'name', 'bio', 'avatarUrl', 'aiSummary', 'analysisUpdatedAt', 'analysisFactCount', 'audienceSummary', 'contentThemes', 'vibe', 'profiles'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'bio': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'vibe': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'profiles': {'type': 'array', 'items': {'type': 'object', 'required': ['platform', 'username', 'url', 'followers', 'engagementRate', 'verified', 'dataUpdatedAt'], 'properties': {'url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'platform': {'type': 'string'}, 'username': {'type': 'string'}, 'verified': {'type': 'boolean'}, 'followers': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'dataUpdatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'engagementRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'aiSummary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'avatarUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'contentThemes': {'type': 'array', 'items': {'type': 'string'}}, 'audienceSummary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'analysisFactCount': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'analysisUpdatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'postsUnavailable': {'type': 'boolean'}}, 'additionalProperties': False}
render_creator_shortlist
Show creator shortlist
Use this when discovery or lookup tools have returned results and the user would benefit from scanning 1–8 creator cards. Pass search_id after semantic_search_creators so the exact ranking, confidence, and evidence are preserved. Pass creator_ids only for name/handle lookup results. Always call an Influship data tool first; do not invent IDs. This fetches stored creator details and may consume Influship account or API usage.
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'brief': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'Campaign brief or discovery intent that produced this shortlist.'}, 'title': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Short factual title for this shortlist.'}, 'search_id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$', 'description': 'Search ID returned by semantic_search_creators. Prefer this for discovery results so exact ranking and evidence are preserved.'}, 'creator_ids': {'type': 'array', 'items': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'maxItems': 8, 'minItems': 1, 'description': 'Canonical creator IDs returned by an Influship lookup tool.'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['view', 'title', 'brief', 'creators', 'omittedCount'], 'properties': {'view': {'type': 'string', 'const': 'shortlist'}, 'brief': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'title': {'type': 'string'}, 'creators': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'bio', 'avatarUrl', 'aiSummary', 'analysisUpdatedAt', 'analysisFactCount', 'audienceSummary', 'contentThemes', 'vibe', 'profiles', 'searchMatch'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'bio': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string'}, 'vibe': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'profiles': {'type': 'array', 'items': {'type': 'object', 'required': ['platform', 'username', 'url', 'followers', 'engagementRate', 'verified', 'dataUpdatedAt'], 'properties': {'url': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'platform': {'type': 'string'}, 'username': {'type': 'string'}, 'verified': {'type': 'boolean'}, 'followers': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'dataUpdatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'engagementRate': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': False}}, 'aiSummary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'avatarUrl': {'anyOf': [{'type': 'string', 'format': 'uri'}, {'type': 'null'}]}, 'searchMatch': {'anyOf': [{'type': 'object', 'required': ['score', 'confidence', 'lowConfidence', 'reasons', 'locationUnverified'], 'properties': {'score': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'reasons': {'type': 'array', 'items': {'type': 'object', 'required': ['text', 'provenance', 'evidenceQuote'], 'properties': {'text': {'type': 'string'}, 'provenance': {'enum': ['post_evidence', 'profile_fact', 'inferred'], 'type': 'string'}, 'evidenceQuote': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 4}, 'confidence': {'type': 'number', 'maximum': 1, 'minimum': 0}, 'lowConfidence': {'type': 'boolean'}, 'locationUnverified': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'contentThemes': {'type': 'array', 'items': {'type': 'string'}}, 'audienceSummary': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'analysisFactCount': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, {'type': 'null'}]}, 'analysisUpdatedAt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 8}, 'omittedCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}
search_creators
Find a creator by name/handle, while preserving legacy semantic creator search. Use this as the default creator lookup tool when the user gives a creator-ish string but not a canonical creator UUID: a handle, partial handle, display name, creator name, or profile-ish text. This is cheap, fast, and backed by the creator lookup index. If the user gives an exact handle on a specific platform (for example "@niickjackson on Instagram"), prefer `get_profile` first because it returns the full platform profile. If you need to resolve a rough creator name or partial handle first, use this tool with `query_type: "creator_lookup"`. For backward compatibility, this tool still accepts the old semantic-search fields (`platforms`, follower/engagement filters, `creator_kinds`) and routes legacy calls to the semantic endpoint unless the query clearly contains a handle/profile URL. For new topical/niche discovery calls such as "fitness creators in NYC" or "vegan recipe creators with high engagement", prefer `semantic_search_creators` because its name is explicit and less likely to be confused with exact creator lookup. Examples: - User: "Find @cris" -> use this tool with query "cris" and query_type "creator_lookup". - User: "Who is that fitness coach called Jane?" -> use this tool with query "Jane" and query_type "creator_lookup". - User: "Pull @niickjackson on Instagram" -> use `get_profile` with platform "instagram" and username "niickjackson". - User: "Find news creators with 1M+ followers" -> use `semantic_search_creators`, not this tool. Returns either autocomplete-style creator lookup results or legacy semantic results, depending on routing. Use returned creator IDs with `get_creator`, `find_lookalike_creators`, or `match_creators`; use returned platform usernames with `get_profile` or `get_posts`.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Maximum results to return.'}, 'query': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'Natural-language semantic discovery query by topic, niche, audience, geography, or content style. Do not pass exact handles or usernames here; use get_profile, lookup_profiles, or autocomplete_creators instead.'}, 'scope': {'enum': ['creator_only', 'matched_platforms', 'all_platforms'], 'type': 'string', 'default': 'all_platforms', 'description': 'Which linked platforms to include in each lookup result.'}, 'platform': {'allOf': [{'$ref': '#/definitions/Platform'}], 'description': 'Optional platform to narrow username matching.'}, 'verified': {'type': 'boolean', 'description': 'When set, only return verified or unverified creators.'}, 'platforms': {'type': 'array', 'items': {'$ref': '#/definitions/Platform'}, 'description': 'Platforms to search. Omit for all.'}, 'query_type': {'enum': ['auto', 'creator_lookup', 'semantic_discovery'], 'type': 'string', 'default': 'auto', 'description': 'Use creator_lookup for specific names/handles and semantic_discovery for topical/niche discovery. Auto routes exact handles and profile URLs to lookup, and keeps legacy semantic-search behavior otherwise.'}, 'creator_kinds': {'type': 'array', 'items': {'enum': ['INFLUENCER', 'THEME_PAGE'], 'type': 'string'}, 'minItems': 1, 'description': 'Optional creator kind filter. Omit for no creator-kind filter.'}, 'max_followers': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Maximum follower count.'}, 'min_followers': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Minimum follower count.'}, 'max_engagement_rate': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Maximum engagement rate as a percentage from 0 to 100.'}, 'min_engagement_rate': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Minimum engagement rate as a percentage from 0 to 100.'}}, 'definitions': {'Platform': {'enum': ['instagram'], 'type': 'string', 'example': 'instagram', 'description': 'Social media platform'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': {}}
search_tiktok_users
Search TikTok users
Fetch one page of TikTok user search results. Unknown profile fields are null. Continue with next_cursor and the same query; cursors are opaque. Each successful page, including an empty page, costs 0.2 account credits.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'pattern': '^[^\\u0000-\\u001f\\u007f-\\u009f]+$', 'maxLength': 100, 'minLength': 1}, 'cursor': {'type': 'string', 'maxLength': 2048, 'minLength': 1}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
search_tiktok_videos
Search TikTok videos
Fetch one relevance-ordered page of TikTok videos. Continue with next_cursor and the same query. Duplicate results are preserved. Media links are temporary. Each successful page, including an empty page, costs 0.2 account credits.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'query': {'type': 'string', 'pattern': '^[^\\u0000-\\u001f\\u007f-\\u009f]+$', 'maxLength': 100, 'minLength': 1}, 'cursor': {'type': 'string', 'maxLength': 2048, 'minLength': 1}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
search_youtube
Search YouTube
Search current YouTube results with discovery filters and cursor pagination. Filter by upload window, popularity, result type, duration, country, and language. Pass next_cursor back as cursor for the next page. Each page is one metered request.
Lecture seule Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['q'], 'properties': {'q': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'cursor': {'type': 'string', 'maxLength': 4000, 'minLength': 1}, 'sort_by': {'enum': ['relevance', 'popular'], 'type': 'string', 'default': 'relevance'}, 'duration': {'enum': ['any', 'short', 'medium', 'long'], 'type': 'string', 'default': 'any'}, 'upload_date': {'enum': ['any', 'last_hour', 'today', 'this_week', 'this_month', 'this_year'], 'type': 'string', 'default': 'any'}, 'content_type': {'enum': ['all', 'videos'], 'type': 'string', 'default': 'all'}, 'country_code': {'type': 'string', 'maxLength': 2, 'minLength': 2}, 'language_code': {'type': 'string', 'default': 'en', 'maxLength': 5, 'minLength': 2}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
semantic_search_creators
Semantic discovery search for influencers/content creators using natural-language queries. Use this only when the user asks to discover creators by topic, audience, geography, niche, content style, or campaign criteria (e.g., "fitness creators in NYC", "vegan recipe creators with high engagement", "tech reviewers who cover phones"). The query is matched against creator profiles, extracted facts, and visual style via hybrid vector search. Do not use this for exact handles, usernames, or known creator names. If the user gives a specific platform and handle (for example "@niickjackson on Instagram"), use `get_profile` first. For rough name/handle lookup, use `search_creators`. For multiple known handles, use `lookup_profiles`. Semantic search can return lookalike or topical matches and is allowed to miss an exact username. Examples: - User: "Find news creators with 1M+ followers" -> use this tool. - User: "Find creators in LA who make cinematic travel videos" -> use this tool. - User: "Pull @niickjackson on Instagram" -> use `get_profile`, not this tool. - User: "Is @niickjackson a fit for Pixel?" -> use `get_profile` first, optionally `get_posts`, then `match_creators`. Returns a ranked list of creators (id, platform, username, follower count, engagement rate, top categories, evidence facts). Use the flat follower, engagement-rate, and verified fields to constrain results when the user gives concrete numeric constraints. Use `find_lookalike_creators` instead when you want creators SIMILAR to known ones. Use `match_creators` when you want to SCORE specific creators against a brief.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'default': 25, 'maximum': 100, 'minimum': 1, 'description': 'Maximum results to return.'}, 'query': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'Natural-language semantic discovery query by topic, niche, audience, geography, or content style. Do not pass exact handles or usernames here; use get_profile, lookup_profiles, or autocomplete_creators instead.'}, 'verified': {'type': 'boolean', 'description': 'When set, only return verified or unverified creators.'}, 'platforms': {'type': 'array', 'items': {'$ref': '#/definitions/Platform'}, 'description': 'Platforms to search. Omit for all.'}, 'creator_kinds': {'type': 'array', 'items': {'enum': ['INFLUENCER', 'THEME_PAGE'], 'type': 'string'}, 'minItems': 1, 'description': 'Optional creator kind filter. Omit for no creator-kind filter.'}, 'max_followers': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Maximum follower count.'}, 'min_followers': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Minimum follower count.'}, 'max_engagement_rate': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Maximum engagement rate as a percentage from 0 to 100.'}, 'min_engagement_rate': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Minimum engagement rate as a percentage from 0 to 100.'}}, 'definitions': {'Platform': {'enum': ['instagram'], 'type': 'string', 'example': 'instagram', 'description': 'Social media platform'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'ok': {'type': 'boolean'}, 'data': {}, 'count': {'type': 'number'}, 'results': {'type': 'array', 'items': {}}, 'has_more': {'type': 'boolean'}, 'not_found': {'type': 'array', 'items': {}}, 'next_cursor': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'suggested_followups': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'reason'], 'properties': {'tool': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': {}}
Modifié
list_tiktok_profile_videos
19 September 2026 02:42
Ajouté
render_creator_comparison
17 September 2026 12:42
Ajouté
render_creator_profile
17 September 2026 12:42
Ajouté
render_creator_shortlist
17 September 2026 12:42
Ajouté
get_youtube_typeahead
17 September 2026 12:42
Ajouté
get_youtube_video
17 September 2026 12:42
Ajouté
search_youtube
17 September 2026 12:42
Ajouté
get_youtube_channel_transcripts
17 September 2026 12:42
Ajouté
get_youtube_video_transcript
17 September 2026 12:42
Ajouté
get_youtube_channel
17 September 2026 12:42
Ajouté
get_tiktok_video_transcript
17 September 2026 12:42
Ajouté
list_tiktok_comment_replies
17 September 2026 12:42
Ajouté
list_tiktok_video_comments
17 September 2026 12:42
Ajouté
get_tiktok_video
17 September 2026 12:42
Ajouté
list_tiktok_music_videos
17 September 2026 12:42
Ajouté
list_tiktok_hashtag_videos
17 September 2026 12:42
Ajouté
get_tiktok_video_captions
17 September 2026 12:42
Ajouté
search_tiktok_videos
17 September 2026 12:42
Ajouté
search_tiktok_users
17 September 2026 12:42
Ajouté
get_tiktok_music
17 September 2026 12:42
Ajouté
get_tiktok_video_transcripts
17 September 2026 12:42
Ajouté
get_tiktok_videos
17 September 2026 12:42
Ajouté
list_tiktok_profile_videos
17 September 2026 12:42
Ajouté
get_tiktok_profile
17 September 2026 12:42
Ajouté
get_instagram_post_transcripts
17 September 2026 12:42
Ajouté
get_instagram_post_transcript
17 September 2026 12:42
Ajouté
get_instagram_posts
17 September 2026 12:42
Ajouté
get_instagram_post
17 September 2026 12:42
Ajouté
get_posts
17 September 2026 12:42
Ajouté
lookup_profiles
17 September 2026 12:42