# Changelog
Source: https://docs.konbiniapi.com/changelog
KonbiniAPI changelog — product updates, new endpoints, and platform announcements. Stay up to date with the latest changes to the API.
KonbiniAPI now covers five platforms. All new endpoints are also available
as MCP tools.
**[LinkedIn](/reference/api/linkedin) support.** New platform covering users,
posts, articles, comments, company pages, and post transcripts.
**[X Communities](/reference/api/x) support.** Fetch community details,
posts, and media with the new Communities endpoints.
**Pagination for X timelines.** User post and highlight timelines are now
paginated, with `count` exposed where X supports it.
**Video download URL for TikTok.** New
[GET /v1/tiktok/videos//download](/reference/api/tiktok) endpoint
returns a direct, header-free video download link — no cookies, no auth
headers, no browser fingerprinting required on your end. The link is
temporary (a few hours). Also available as an
[MCP tool](/reference/mcp/tools/tiktok/get-video-download-url).
**Extra credits on paid plans.** Paid plans can now enable extra usage
beyond their monthly credit allowance instead of hard-stopping at the
limit, billed at cycle end and capped at the plan's own price. Manage it
from the new in-app billing page.
**Batch endpoints for Reddit.** Fetch up to 100 subreddits, posts, or
comments in a single request using the 3 new batch endpoints:
[POST /v1/reddit/subreddits/batch](/reference/api/reddit),
[POST /v1/reddit/posts/batch](/reference/api/reddit), and
[POST /v1/reddit/comments/batch](/reference/api/reddit).
Each ID submitted costs 1 credit (e.g. 10 IDs = 10 credits). Also available as MCP tools.
KonbiniAPI now covers four platforms. All new endpoints are also available
as [MCP tools](/reference/mcp/tools/overview).
**[X](/reference/api/x) support.** 4 endpoints covering users, posts, and
highlights.
**[Reddit](/reference/api/reddit) support.** 19 endpoints covering users,
subreddits, posts, comments, feeds, and search.
**Improved reliability and response times for [TikTok](/reference/api/tiktok)
and [Instagram](/reference/api/instagram).** Both platforms received
significant infrastructure improvements this month, resulting in faster
responses and higher uptime.
**Free tier.** A [free plan](https://konbiniapi.com/pricing) with 100
credits is now available at sign-up with no card required.
**Email and password sign-in.** You can now create an account and sign in
with email and password in addition to Google and GitHub.
**MCP server.** KonbiniAPI is now available as a hosted remote MCP server at
`https://mcp.konbiniapi.com`. You can connect AI agents and automation tools
directly with remote HTTP, using OAuth for most modern clients or a Bearer
API key when needed. See the [MCP overview](/reference/mcp/overview) for
setup guides and supported tools.
**[TikTok](/reference/api/tiktok) support.** 20 endpoints covering users,
videos, comments, audios, tags, collections, search, live streams, and
transcripts.
**[Instagram](/reference/api/instagram) support.** 10 endpoints covering
users, posts, reels, comments, highlights, locations, and search.
All responses use the ActivityStreams 2.0 format, giving you a single
consistent structure across both platforms.
# Authentication
Source: https://docs.konbiniapi.com/getting-started/authentication
Learn how to authenticate with KonbiniAPI using Bearer tokens. Get your API key from the dashboard and include it in the Authorization header.
All API endpoints require a Bearer token in the `Authorization` header.
## Getting your API key
Sign up and get your API key at [app.konbiniapi.com](https://app.konbiniapi.com). Keys use the `knbn_` prefix.
## Making authenticated requests
Include your key in the `Authorization` header:
```bash theme={null}
curl https://api.konbiniapi.com/v1/tiktok/users/example \
-H "Authorization: Bearer knbn_your_api_key"
```
## Key management
* Each account has one API key
* Keys can be rotated without losing your credit balance — credits are tied to your account, not the key
* Revoked keys are rejected instantly
Keep your API key secret. Do not expose it in client-side code or public repositories.
# Credits
Source: https://docs.konbiniapi.com/getting-started/credits
Learn how KonbiniAPI credits and billing work. One request equals one credit, no multipliers. Failed requests are automatically refunded.
Every API request costs **1 credit**. No multipliers, no hidden costs.
## Tracking usage
Every authenticated response includes two headers:
| Header | Description |
| --------------------- | --------------------------------------------- |
| `X-Credits-Remaining` | Credits left in your account |
| `X-Credits-Used` | Credits charged for this request (`1` or `0`) |
## Refunds
Requests that fail due to validation errors, server errors, or upstream platform issues are automatically refunded:
| Scenario | Status | Credits charged |
| ----------------------- | ------ | --------------- |
| Successful request | 2xx | 1 |
| Validation error | 400 | 0 |
| Server error | 5xx | 0 |
| Upstream platform error | 502 | 0 |
## Rate limits
There are no per-second or per-minute rate limits. You can make concurrent requests freely. The only limit is your credit balance — when credits reach zero, requests return `402`.
## When credits run out
If your account has no remaining credits, requests return a `402` status with the error code `credits_exhausted`. Upgrade your plan at [app.konbiniapi.com](https://app.konbiniapi.com) to continue.
## Pricing
Credits are included with monthly subscription plans. Unused credits do not roll over.
| Plan | Price/mo | Credits/mo | Per 1k credits |
| ----- | -------- | -------------- | -------------- |
| Free | \$0 | 100 (one-time) | — |
| Plus | \$49 | 25,000 | \$1.96 |
| Pro | \$99 | 55,000 | \$1.80 |
| Max | \$199 | 160,000 | \$1.24 |
| Ultra | \$499 | 450,000 | \$1.11 |
Credits reset each billing cycle when your subscription renews.
# Errors
Source: https://docs.konbiniapi.com/getting-started/errors
KonbiniAPI error codes and response format. Machine-readable error codes with human-readable messages for every failure scenario.
When a request fails, the response body contains an `errors` array with machine-readable codes and human-readable messages.
## Error response format
```json theme={null}
{
"errors": [
{
"code": "not_found",
"message": "User not found"
}
],
"data": null
}
```
## Error codes
### Authentication errors
| Code | Status | Description |
| ------------------ | ------ | ------------------------------------------- |
| `missing_api_key` | 401 | Missing or malformed `Authorization` header |
| `invalid_api_key` | 401 | API key does not exist |
| `api_key_disabled` | 403 | API key has been disabled |
| `api_key_expired` | 403 | API key has expired |
### Billing errors
| Code | Status | Description |
| ------------------- | ------ | -------------------- |
| `credits_exhausted` | 402 | No credits remaining |
### Request errors
| Code | Status | Description |
| ------------------ | ------ | ----------------------- |
| `validation_error` | 400 | Invalid parameters |
| `not_found` | 404 | Resource not found |
| `route_not_found` | 404 | Endpoint does not exist |
### Server errors
| Code | Status | Description |
| --------------------- | ------ | --------------------------- |
| `platform_error` | 502 | Upstream platform error |
| `service_unavailable` | 503 | API temporarily unavailable |
| `internal_error` | 500 | Unexpected server error |
Requests that fail with `400`, `5xx`, or `502` are not charged credits.
# Pagination
Source: https://docs.konbiniapi.com/getting-started/pagination
Navigate through large result sets with cursor-based pagination. Learn how to use next page tokens to retrieve all results from KonbiniAPI endpoints.
All list endpoints use **cursor-based pagination**. This ensures consistent results even when the underlying data changes between requests.
## Parameters
| Parameter | Type | Description |
| --------- | ------- | -------------------------------------------------- |
| `cursor` | string | Cursor for the next page. Omit for the first page. |
| `count` | integer | Number of items per page. |
## Response fields
Paginated responses use the `OrderedCollectionPage` type:
```json theme={null}
{
"@context": ["https://www.w3.org/ns/activitystreams#", "https://konbiniapi.com/ns/social#"],
"type": "OrderedCollectionPage",
"partOf": "https://api.konbiniapi.com/v1/tiktok/users/example/videos",
"totalItems": 342,
"cursor": "abc123",
"nextCursor": "def456",
"next": "https://api.konbiniapi.com/v1/tiktok/users/example/videos?cursor=def456&count=30",
"itemCount": 30,
"orderedItems": [...]
}
```
| Field | Description |
| -------------- | -------------------------------------------------------------------------- |
| `totalItems` | Total number of items in the collection (may be `null` for some endpoints) |
| `itemCount` | Number of items in this page |
| `nextCursor` | Cursor for the next page, `null` if there are no more pages |
| `next` | Pre-built URL to fetch the next page |
| `orderedItems` | The items in this page |
## Iterating through pages
Use the `next` URL directly, or pass `nextCursor` as the `cursor` parameter in your next request. When `nextCursor` is `null`, you've reached the last page.
```bash theme={null}
# First page
curl "https://api.konbiniapi.com/v1/tiktok/users/example/videos?count=30" \
-H "Authorization: Bearer knbn_your_api_key"
# Next page (using nextCursor from previous response)
curl "https://api.konbiniapi.com/v1/tiktok/users/example/videos?cursor=def456&count=30" \
-H "Authorization: Bearer knbn_your_api_key"
```
# Quickstart
Source: https://docs.konbiniapi.com/getting-started/quickstart
Get started with KonbiniAPI in under a minute. Create an account, grab your API key, and make your first request to fetch social media data.
**Not a developer?** You can use KonbiniAPI directly from ChatGPT, Claude, Zapier, and other AI tools — no API calls or code needed. [Get started with MCP →](/reference/mcp/overview)
Sign up at [app.konbiniapi.com](https://app.konbiniapi.com) and copy your API key.
Fetch a TikTok user profile:
```bash theme={null}
curl https://api.konbiniapi.com/v1/tiktok/users/khaby.lame \
-H "Authorization: Bearer knbn_your_api_key"
```
```json theme={null}
{
"@context": [
"https://www.w3.org/ns/activitystreams#",
"https://konbiniapi.com/ns/social#"
],
"type": "Person",
"id": "https://www.tiktok.com/@khaby.lame",
"name": "Khabane lame",
"preferredUsername": "khaby.lame",
"followerCount": 162400000,
"isVerified": true
}
```
## Next steps
Learn how responses are structured.
See how credits are consumed.
Navigate through large result sets.
Explore all available endpoints.
# Response format
Source: https://docs.konbiniapi.com/getting-started/response-format
Understand how KonbiniAPI responses are structured using the W3C ActivityStreams 2.0 standard. Consistent JSON shape across all platforms.
All responses follow the [W3C ActivityStreams 2.0](https://www.w3.org/TR/activitystreams-core/) specification with KonbiniAPI extensions.
## Context
Every response includes an `@context` array identifying the vocabularies used:
```json theme={null}
{
"@context": [
"https://www.w3.org/ns/activitystreams#",
"https://konbiniapi.com/ns/social#"
]
}
```
The first context is the standard ActivityStreams vocabulary. The second adds platform-specific properties like `followerCount`, `isVerified`, and `viewCount`.
## Object types
### Detail endpoints
Endpoints that return a single resource (e.g. a user or video) return the object directly:
```json theme={null}
{
"@context": [...],
"type": "Person",
"id": "https://www.tiktok.com/@example",
"name": "Example User",
"preferredUsername": "example",
"followerCount": 50000,
"isVerified": true
}
```
### List endpoints
Endpoints that return multiple items use `OrderedCollectionPage`:
```json theme={null}
{
"@context": [...],
"type": "OrderedCollectionPage",
"totalItems": 342,
"itemCount": 30,
"nextCursor": "abc123",
"orderedItems": [...]
}
```
See [pagination](/getting-started/pagination) for details on navigating through pages.
## Common properties
Properties are consistent across platforms:
| Property | Description |
| ------------------- | ------------------------------------------------------------- |
| `type` | ActivityStreams object type (`Person`, `Video`, `Note`, etc.) |
| `id` | Canonical URL for the resource |
| `url` | Web URL for the resource |
| `entityId` | Platform-specific ID used as a parameter in related endpoints |
| `name` | Display name |
| `preferredUsername` | Username/handle |
| `summary` | Bio or description |
| `published` | ISO 8601 timestamp |
| `icon` | Avatar or thumbnail |
| `image` | Cover image or media |
| `attachment` | Related media or links |
The same code that processes a TikTok user works for an Instagram, X, Reddit, or LinkedIn user — the field names and structure are identical.
## Chaining requests with entityId
Every object in a response includes an `entityId` field — a platform-specific identifier you can use as a parameter when calling related endpoints.
```json theme={null}
{
"type": "Video",
"entityId": "7300000000000000001",
"name": "My video",
...
}
```
For example, if you fetch a user's video list and want to get the comments for a specific video, use that video's `entityId` as the `videoId` parameter in the comments endpoint. The same pattern applies across all resource types and platforms.
Always use `entityId` to chain requests. Do not try to extract IDs from the `id` or `url` fields — those are canonical URLs, not parameter values.
# What is KonbiniAPI?
Source: https://docs.konbiniapi.com/index
KonbiniAPI gives you unified access to Instagram, TikTok, X, Reddit, and LinkedIn data — via a REST API for developers, or MCP for AI agents and automation tools without any code.
KonbiniAPI is a unified data layer for Instagram, TikTok, X, Reddit, and LinkedIn. There are two ways to use it:
Standard HTTP, Bearer token auth, consistent JSON. Works with any language
or framework.
Connect KonbiniAPI to ChatGPT, Claude, Zapier, n8n, Cursor, and others via
MCP. No code needed — just ask.
## Using the REST API
KonbiniAPI normalizes all data into [ActivityStreams 2.0](https://www.w3.org/TR/activitystreams-core/) — an open W3C standard used by the Fediverse and ActivityPub. Every endpoint returns the same predictable structure regardless of platform.
Make your first request in under a minute.
Bearer token auth — one API key for all endpoints.
Understand the ActivityStreams 2.0 response structure.
Browse all endpoints across all five platforms.
## Using with AI agents & automation
KonbiniAPI is available as a hosted **MCP server** at `mcp.konbiniapi.com`. Once connected, your AI agent or automation workflow can fetch social data across all five platforms on demand — no integration code required.
Add the MCP server in ChatGPT settings and ask for social data in plain
language.
Connect in Claude Desktop or Claude.ai and fetch data in any conversation.
Use KonbiniAPI as an MCP action inside your existing automation workflows.
Use KonbiniAPI inside your coding assistant or AI-powered editor.
## Supported platforms
Users, videos, comments, audios, tags, collections, search, live streams,
and transcripts.
Users, posts, reels, comments, highlights, locations, and search.
Users, subreddits, posts, comments, feeds, and search.
Users, posts, highlights, and communities.
Users, companies, posts, articles, and video transcripts.
# Instagram API
Source: https://docs.konbiniapi.com/reference/api/instagram
Use the Instagram API to fetch users, posts, reels, comments, highlights, locations, and search results in a consistent format.
KonbiniAPI gives you a stable way to work with Instagram data through a single,
consistent ActivityStreams 2.0 response format.
## What you can fetch
Use the Instagram API to retrieve:
* user profiles, posts, reels, tagged posts, and highlights
* individual posts and their comments
* search results
* locations
* highlight stories
## How to use it
Start with these pages:
* [Quickstart](/getting-started/quickstart) for your first request
* [Authentication](/getting-started/authentication) for Bearer token setup
* [Response format](/getting-started/response-format) for the shared ActivityStreams 2.0 schema
* [API overview](/reference/api/overview) for the full API reference
## Browse Instagram endpoints
Open the **Instagram** section in the API sidebar to browse the generated
endpoint reference for each route.
# Get highlight stories
Source: https://docs.konbiniapi.com/reference/api/instagram/get-highlight-stories
/openapi.json get /v1/instagram/highlights/{highlightId}
Returns all story items within a highlight reel, including images and videos. The highlight ID comes from the highlights list endpoint.
# Get post comments
Source: https://docs.konbiniapi.com/reference/api/instagram/get-post-comments
/openapi.json get /v1/instagram/posts/{postId}/comments
Returns top-level comments on an Instagram post. Fixed page size of 15 (platform limit). Includes comment text, author info, like counts, and timestamps.
# Get post details
Source: https://docs.konbiniapi.com/reference/api/instagram/get-post-details
/openapi.json get /v1/instagram/posts/{postId}
Returns details for a single post by its shortcode, including media, captions, and engagement counts. Supports photos, videos, and carousels.
# Get posts by location
Source: https://docs.konbiniapi.com/reference/api/instagram/get-posts-by-location
/openapi.json get /v1/instagram/locations/{locationId}
Returns recent posts tagged at a location. Fixed page size of 21 (platform limit). The location ID is a numeric Facebook Places ID.
# Get user posts
Source: https://docs.konbiniapi.com/reference/api/instagram/get-user-posts
/openapi.json get /v1/instagram/users/{username}/posts
Returns a paginated list of posts from an Instagram user's profile feed. Maximum 12 posts per page. Includes photos, videos, carousels, and engagement counts.
# Get user profile
Source: https://docs.konbiniapi.com/reference/api/instagram/get-user-profile
/openapi.json get /v1/instagram/users/{username}
Returns profile information for an Instagram user including bio, follower counts, profile picture, and account metadata. Look up any public Instagram account by username.
# Get user reels
Source: https://docs.konbiniapi.com/reference/api/instagram/get-user-reels
/openapi.json get /v1/instagram/users/{username}/reels
Returns a paginated list of reels from an Instagram user's profile. Maximum 12 reels per page. Includes video URLs, captions, and engagement counts.
# Get user story highlights
Source: https://docs.konbiniapi.com/reference/api/instagram/get-user-story-highlights
/openapi.json get /v1/instagram/users/{username}/highlights
Returns the list of story highlight reels on a user's profile. Use the highlight endpoint to get individual stories within a highlight.
# Get user tagged posts
Source: https://docs.konbiniapi.com/reference/api/instagram/get-user-tagged-posts
/openapi.json get /v1/instagram/users/{username}/tagged
Returns Instagram posts where the user has been tagged by other accounts. Maximum 12 posts per page. Includes full post details and engagement counts.
# Search media
Source: https://docs.konbiniapi.com/reference/api/instagram/search-media
/openapi.json get /v1/instagram/search
Searches Instagram for trending reels and videos matching a keyword. Maximum 24 results per page. Some valid keywords may return no results, since this surfaces trending content rather than a full-text search.
# LinkedIn API
Source: https://docs.konbiniapi.com/reference/api/linkedin
Use the LinkedIn API to fetch users, companies, posts, articles, and transcripts in a consistent format.
KonbiniAPI gives you a stable way to work with LinkedIn data through a single,
consistent ActivityStreams 2.0 response format.
## What you can fetch
Use the LinkedIn API to retrieve:
* user profiles, posts, and articles
* company profiles and posts
* individual posts and post transcripts
## How to use it
Start with these pages:
* [Quickstart](/getting-started/quickstart) for your first request
* [Authentication](/getting-started/authentication) for Bearer token setup
* [Response format](/getting-started/response-format) for the shared ActivityStreams 2.0 schema
* [API overview](/reference/api/overview) for the full API reference
## Browse LinkedIn endpoints
Open the **LinkedIn** section in the API sidebar to browse the generated endpoint
reference for each route.
# Get company page
Source: https://docs.konbiniapi.com/reference/api/linkedin/get-company-page
/openapi.json get /v1/linkedin/companies/{company}
Returns public information for a LinkedIn company page including description, location, employee count, and logo.
# Get company posts
Source: https://docs.konbiniapi.com/reference/api/linkedin/get-company-posts
/openapi.json get /v1/linkedin/companies/{company}/posts
Returns recent posts from a LinkedIn company page, newest first. Use `cursor` to page through further results.
# Get post
Source: https://docs.konbiniapi.com/reference/api/linkedin/get-post
/openapi.json get /v1/linkedin/posts/{postId}
Returns a public LinkedIn post including author, engagement counts, and up to ~5 inline comments.
# Get post video transcript
Source: https://docs.konbiniapi.com/reference/api/linkedin/get-post-video-transcript
/openapi.json get /v1/linkedin/posts/{postId}/transcript
Returns the caption/transcript for a video post, when the post carries captions. Returns 404 if the post has no video or no captions.
# Get user articles
Source: https://docs.konbiniapi.com/reference/api/linkedin/get-user-articles
/openapi.json get /v1/linkedin/users/{username}/articles
Returns a public LinkedIn member's published articles. This endpoint is not paginated — everything available is returned in a single response.
# Get user posts
Source: https://docs.konbiniapi.com/reference/api/linkedin/get-user-posts
/openapi.json get /v1/linkedin/users/{username}/posts
Returns a public LinkedIn member's recent posts and shares. This endpoint is not paginated — everything available is returned in a single response.
# Get user profile
Source: https://docs.konbiniapi.com/reference/api/linkedin/get-user-profile
/openapi.json get /v1/linkedin/users/{username}
Returns profile information for a public LinkedIn member: headline, location, and a simple list of job titles and school/employer names. Fields the member has restricted are omitted.
# API overview
Source: https://docs.konbiniapi.com/reference/api/overview
KonbiniAPI normalizes Instagram, TikTok, X, Reddit, and LinkedIn data into a consistent ActivityStreams 2.0 format. 67 endpoints for profiles, posts, comments, search, and more.
## Base URL
```
https://api.konbiniapi.com
```
## OpenAPI schema
Download the latest OpenAPI schema to generate clients or import the API into
your tooling.
Download `openapi.json`
## Authentication
All API endpoints require Bearer token authentication. Include your API key in the `Authorization` header:
```bash theme={null}
curl https://api.konbiniapi.com/v1/tiktok/users/example \
-H "Authorization: Bearer YOUR_API_KEY"
```
Get your API key at [app.konbiniapi.com](https://app.konbiniapi.com).
## Credits
Every authenticated response includes credit tracking headers:
* `X-Credits-Remaining` - Credits remaining in your account
* `X-Credits-Used` - Credits consumed by the request
Each successful request costs 1 credit. Requests that fail with 400, 5xx, or upstream errors are refunded (`X-Credits-Used: 0`).
## Platforms
### TikTok
Use the [TikTok API](/reference/api/tiktok) to fetch users, videos, comments,
audios, tags, collections, search results, live streams, and transcripts.
### Instagram
Use the [Instagram API](/reference/api/instagram) to fetch users, posts,
reels, comments, highlights, locations, and search results.
### Reddit
Use the [Reddit API](/reference/api/reddit) to fetch users, subreddits, posts,
comments, feeds, and search results.
### X
Use the [X API](/reference/api/x) to fetch users, posts, highlights, and
communities.
### LinkedIn
Use the [LinkedIn API](/reference/api/linkedin) to fetch users, companies,
posts, articles, and video transcripts.
# Reddit API
Source: https://docs.konbiniapi.com/reference/api/reddit
Use the Reddit API to fetch users, subreddits, posts, comments, feeds, and search results in a consistent format.
KonbiniAPI gives you a stable way to work with Reddit data through a single,
consistent ActivityStreams 2.0 response format.
## What you can fetch
Use the Reddit API to retrieve:
* user profiles, posts, comments, and overview
* subreddit profiles, posts, comments, sticky posts, rules, and search
* individual posts, comments, replies, and duplicates
* feeds (popular, new, rising)
* search results for posts, users, and subreddits
* up to 100 subreddits, posts, or comments at once using the batch endpoints
## How to use it
Start with these pages:
* [Quickstart](/getting-started/quickstart) for your first request
* [Authentication](/getting-started/authentication) for Bearer token setup
* [Response format](/getting-started/response-format) for the shared ActivityStreams 2.0 schema
* [API overview](/reference/api/overview) for the full API reference
## Browse Reddit endpoints
Open the **Reddit** section in the API sidebar to browse the generated endpoint
reference for each route.
# Get comment
Source: https://docs.konbiniapi.com/reference/api/reddit/get-comment
/openapi.json get /v1/reddit/posts/{postId}/comments/{commentId}
Returns a public Reddit comment with author info, scores, reply presence, and media when available.
# Get comment replies
Source: https://docs.konbiniapi.com/reference/api/reddit/get-comment-replies
/openapi.json get /v1/reddit/posts/{postId}/comments/{commentId}/replies
Returns direct replies to a Reddit comment using cursor-based pagination.
# Get comments in batch
Source: https://docs.konbiniapi.com/reference/api/reddit/get-comments-in-batch
/openapi.json post /v1/reddit/comments/batch
Returns up to 100 Reddit comments by ID in a single request. Costs 1 credit per ID submitted.
# Get duplicate posts
Source: https://docs.konbiniapi.com/reference/api/reddit/get-duplicate-posts
/openapi.json get /v1/reddit/posts/{postId}/duplicates
Returns duplicate submissions and crossposts associated with a Reddit post.
# Get feed
Source: https://docs.konbiniapi.com/reference/api/reddit/get-feed
/openapi.json get /v1/reddit/feeds/{feed}
Returns posts from a top-level Reddit feed such as best, hot, new, top, rising, or controversial.
# Get post
Source: https://docs.konbiniapi.com/reference/api/reddit/get-post
/openapi.json get /v1/reddit/posts/{postId}
Returns a public Reddit post with title, body, author info, engagement counts, and attachments.
# Get post comments
Source: https://docs.konbiniapi.com/reference/api/reddit/get-post-comments
/openapi.json get /v1/reddit/posts/{postId}/comments
Returns top-level comments on a Reddit post. Supports Reddit comment ordering and cursor-based pagination.
# Get posts in batch
Source: https://docs.konbiniapi.com/reference/api/reddit/get-posts-in-batch
/openapi.json post /v1/reddit/posts/batch
Returns up to 100 Reddit posts by ID in a single request. Costs 1 credit per ID submitted.
# Get subreddit
Source: https://docs.konbiniapi.com/reference/api/reddit/get-subreddit
/openapi.json get /v1/reddit/subreddits/{subreddit}
Returns public subreddit metadata including title, description, icon, banner, and subscriber count.
# Get subreddit comments
Source: https://docs.konbiniapi.com/reference/api/reddit/get-subreddit-comments
/openapi.json get /v1/reddit/subreddits/{subreddit}/comments
Returns public comments from a subreddit. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial.
# Get subreddit posts
Source: https://docs.konbiniapi.com/reference/api/reddit/get-subreddit-posts
/openapi.json get /v1/reddit/subreddits/{subreddit}/posts
Returns public posts from a subreddit. Supports hot, new, top, rising, and controversial ordering, with optional time windows for top and controversial.
# Get subreddit rules
Source: https://docs.konbiniapi.com/reference/api/reddit/get-subreddit-rules
/openapi.json get /v1/reddit/subreddits/{subreddit}/rules
Returns structured community rules for a subreddit.
# Get subreddit sticky posts
Source: https://docs.konbiniapi.com/reference/api/reddit/get-subreddit-sticky-posts
/openapi.json get /v1/reddit/subreddits/{subreddit}/sticky
Returns sticky posts for a subreddit across all available slots.
# Get subreddits in batch
Source: https://docs.konbiniapi.com/reference/api/reddit/get-subreddits-in-batch
/openapi.json post /v1/reddit/subreddits/batch
Returns up to 100 Reddit subreddits by ID in a single request. Costs 1 credit per ID submitted.
# Get user comments
Source: https://docs.konbiniapi.com/reference/api/reddit/get-user-comments
/openapi.json get /v1/reddit/users/{username}/comments
Returns public comments made by a Reddit user. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial.
# Get user overview
Source: https://docs.konbiniapi.com/reference/api/reddit/get-user-overview
/openapi.json get /v1/reddit/users/{username}/overview
Returns a mixed Reddit user activity feed including posts and comments. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial.
# Get user posts
Source: https://docs.konbiniapi.com/reference/api/reddit/get-user-posts
/openapi.json get /v1/reddit/users/{username}/posts
Returns public posts submitted by a Reddit user. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial.
# Get user profile
Source: https://docs.konbiniapi.com/reference/api/reddit/get-user-profile
/openapi.json get /v1/reddit/users/{username}
Returns public Reddit user profile information including bio, avatar, verification flags, and account creation date.
# Search posts
Source: https://docs.konbiniapi.com/reference/api/reddit/search-posts
/openapi.json get /v1/reddit/search/posts
Searches public Reddit posts across the platform. Supports relevance, hot, top, new, and comments sorting with optional time windows.
# Search subreddit posts
Source: https://docs.konbiniapi.com/reference/api/reddit/search-subreddit-posts
/openapi.json get /v1/reddit/subreddits/{subreddit}/search
Searches public Reddit posts within a subreddit. Supports relevance, hot, top, new, and comments sorting with optional time windows.
# Search subreddits
Source: https://docs.konbiniapi.com/reference/api/reddit/search-subreddits
/openapi.json get /v1/reddit/search/subreddits
Searches public Reddit subreddits across the platform.
# Search users
Source: https://docs.konbiniapi.com/reference/api/reddit/search-users
/openapi.json get /v1/reddit/search/users
Searches public Reddit users across the platform.
# TikTok API
Source: https://docs.konbiniapi.com/reference/api/tiktok
Use the TikTok API to fetch users, videos, comments, audios, tags, collections, search results, live streams, and transcripts in a consistent format.
KonbiniAPI gives you a stable way to work with TikTok data through a single,
consistent ActivityStreams 2.0 response format.
## What you can fetch
Use the TikTok API to retrieve:
* user profiles
* user videos, likes, reposts, collections, stories, following, followers, and live streams
* individual videos, comments, replies, and transcripts
* tags and tagged videos
* collections
* audios and audio videos
* search results for users and videos
## How to use it
Start with these pages:
* [Quickstart](/getting-started/quickstart) for your first request
* [Authentication](/getting-started/authentication) for Bearer token setup
* [Response format](/getting-started/response-format) for the shared ActivityStreams 2.0 schema
* [API overview](/reference/api/overview) for the full API reference
## Browse TikTok endpoints
Open the **TikTok** section in the API sidebar to browse the generated endpoint
reference for each route.
# Get audio details
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-audio-details
/openapi.json get /v1/tiktok/audios/{audioId}
Returns metadata for a TikTok audio track including title, artist, duration, usage count, and cover image. Look up any sound by its audio ID.
# Get collection videos
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-collection-videos
/openapi.json get /v1/tiktok/collections/{collectionId}
Returns a paginated list of videos in a TikTok collection (playlist or mix). Maximum 35 per page. Includes full video details and engagement counts.
# Get comment replies
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-comment-replies
/openapi.json get /v1/tiktok/videos/{videoId}/comments/{commentId}/replies
Returns a paginated list of replies to a TikTok comment. Maximum 50 per page. Includes author info, like counts, and reply timestamps.
# Get user collections
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-user-collections
/openapi.json get /v1/tiktok/users/{username}/collections
Returns a paginated list of video collections (playlists and mixes) on a TikTok user's profile. Includes collection name, cover image, and video count.
# Get user followers list
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-user-followers-list
/openapi.json get /v1/tiktok/users/{username}/followers
Returns a paginated list of accounts following a TikTok user. Maximum 30 per page. Includes profile details for each follower account.
# Get user following list
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-user-following-list
/openapi.json get /v1/tiktok/users/{username}/following
Returns a paginated list of accounts a TikTok user follows. Maximum 30 per page. Includes profile details for each followed account.
# Get user liked videos
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-user-liked-videos
/openapi.json get /v1/tiktok/users/{username}/likes
Returns a paginated list of videos liked by a TikTok user. Note: Users may have their likes set to private, in which case an empty list will be returned.
# Get user live stream
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-user-live-stream
/openapi.json get /v1/tiktok/users/{username}/live
Returns the current live stream for a user, including stream URLs and viewer count. Returns 404 if the user is not currently live.
# Get user profile
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-user-profile
/openapi.json get /v1/tiktok/users/{username}
Returns profile information for a TikTok user including bio, follower counts, verification status, and profile picture. Look up any public TikTok account by username.
# Get user reposts
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-user-reposts
/openapi.json get /v1/tiktok/users/{username}/reposts
Returns a paginated list of videos reposted by a TikTok user. Note: Users may have their reposts set to private, in which case an empty list will be returned.
# Get user stories
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-user-stories
/openapi.json get /v1/tiktok/users/{username}/stories
Returns a paginated list of active stories for a TikTok user. Stories expire after 24 hours and include both images and videos with engagement data.
# Get user videos
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-user-videos
/openapi.json get /v1/tiktok/users/{username}/videos
Returns a paginated list of videos from a user's profile. Supports sorting by newest, popular, or oldest. Maximum 35 videos per page.
# Get video comments
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-video-comments
/openapi.json get /v1/tiktok/videos/{videoId}/comments
Returns a paginated list of top-level comments on a video. Maximum 50 per page. Use the replies endpoint to fetch threaded replies.
# Get video details
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-video-details
/openapi.json get /v1/tiktok/videos/{videoId}
Returns details for a single TikTok video including engagement counts, media files in multiple qualities, audio track, author info, and hashtags.
# Get video download URL
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-video-download-url
/openapi.json get /v1/tiktok/videos/{videoId}/download
Returns a video file URL you can download directly with a plain GET request — no cookies, no auth headers, no browser fingerprinting needed on your end. Not permanent, only valid for a few hours.
# Get video transcript
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-video-transcript
/openapi.json get /v1/tiktok/videos/{videoId}/transcripts/{language}
Returns the transcript for a video. Use `original` as the language to return the auto-generated transcript, or provide a BCP47 language code for machine-translated subtitles. Returns WebVTT format.
# Get videos with audio
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-videos-with-audio
/openapi.json get /v1/tiktok/audios/{audioId}/videos
Returns a paginated list of TikTok videos using a specific audio track. Maximum 30 per page. Discover trending content by sound or music.
# Get videos with tag
Source: https://docs.konbiniapi.com/reference/api/tiktok/get-videos-with-tag
/openapi.json get /v1/tiktok/tags/{tagName}
Returns TikTok videos associated with a hashtag or challenge. The tag name is resolved to an internal ID automatically. Includes video details and engagement counts.
# Search content
Source: https://docs.konbiniapi.com/reference/api/tiktok/search-content
/openapi.json get /v1/tiktok/search
General search that returns mixed results including videos and user profiles. Supports sorting and publish-time filters.
# Search users
Source: https://docs.konbiniapi.com/reference/api/tiktok/search-users
/openapi.json get /v1/tiktok/search/users
Searches TikTok for user profiles matching a query. Fixed page size of 10 (platform limit). Returns profile details including follower counts and verification status.
# Search videos
Source: https://docs.konbiniapi.com/reference/api/tiktok/search-videos
/openapi.json get /v1/tiktok/search/videos
Searches TikTok for videos matching a query. Supports filtering by publish time and sorting by relevance, likes, or date.
# X API
Source: https://docs.konbiniapi.com/reference/api/x
Use the X API to fetch users, posts, and highlights as visible to not logged in users, in a consistent format.
KonbiniAPI gives you a stable way to work with X data through a single,
consistent ActivityStreams 2.0 response format.
## What you can fetch
Use the X API to retrieve:
* user profiles and highlights
* user posts
* individual posts
* communities, and their posts and media
X announced it would shut down Communities in April 2026, then extended the
deadline to May 30, 2026. That deadline has passed with no execution and no
new date. Communities are still live and members are still posting as of this
writing, but X could act on the original announcement at any time. Treat the
Communities endpoints as a source that may be withdrawn at short notice.
## How to use it
Start with these pages:
* [Quickstart](/getting-started/quickstart) for your first request
* [Authentication](/getting-started/authentication) for Bearer token setup
* [Response format](/getting-started/response-format) for the shared ActivityStreams 2.0 schema
* [API overview](/reference/api/overview) for the full API reference
## Browse X endpoints
Open the **X** section in the API sidebar to browse the generated endpoint
reference for each route.
# Get community
Source: https://docs.konbiniapi.com/reference/api/x/get-community
/openapi.json get /v1/x/communities/{communityId}
Returns public metadata for an X community, including description, member count, topic, creator, and banner image.
# Get community media
Source: https://docs.konbiniapi.com/reference/api/x/get-community-media
/openapi.json get /v1/x/communities/{communityId}/media
Returns public posts from an X community's Media tab as visible to not logged in users.
# Get community posts
Source: https://docs.konbiniapi.com/reference/api/x/get-community-posts
/openapi.json get /v1/x/communities/{communityId}/posts
Returns public posts from an X community timeline as visible to not logged in users.
# Get post
Source: https://docs.konbiniapi.com/reference/api/x/get-post
/openapi.json get /v1/x/posts/{postId}
Returns a public X post including text, author, engagement counts, and media attachments.
# Get user highlights
Source: https://docs.konbiniapi.com/reference/api/x/get-user-highlights
/openapi.json get /v1/x/users/{username}/highlights
Returns the public Highlights tab selection as visible to not logged in users. This feed is not guaranteed to be chronological. Pages may overlap: a pinned post is repeated on every page, so deduplicate by id when paging.
# Get user posts
Source: https://docs.konbiniapi.com/reference/api/x/get-user-posts
/openapi.json get /v1/x/users/{username}/posts
Returns public posts from a user's profile as visible to not logged in users. This feed is not guaranteed to be chronological and is often a ranked public selection. Pages may overlap: a pinned post is repeated on every page, so deduplicate by id when paging.
# Get user profile
Source: https://docs.konbiniapi.com/reference/api/x/get-user-profile
/openapi.json get /v1/x/users/{username}
Returns profile information for a public X account including bio, follower counts, verification flags, and profile images.
# MCP overview
Source: https://docs.konbiniapi.com/reference/mcp/overview
Use KonbiniAPI directly from AI agents and coding assistants via the Model Context Protocol. No API calls, no headers — just ask.
KonbiniAPI is available as a hosted [MCP server](https://modelcontextprotocol.io) at `https://mcp.konbiniapi.com`. That lets AI agents like Claude, ChatGPT, Cursor, Codex, and Zed call KonbiniAPI directly without you writing integration code or running the server locally.
Once connected, your AI agent can fetch TikTok, Instagram, X, Reddit, and LinkedIn data just by being asked. No manual API calls, no auth headers, no JSON parsing.
## What the agent can do
The MCP server exposes one typed tool per supported endpoint:
Use tools like `instagram_get_user`, `tiktok_get_user_videos`, `x_get_post`,
`reddit_get_subreddit`, or `linkedin_get_user` directly in your client.
Use `projection_preset`, `data_fields`, and `item_fields` to keep tool
results focused and save tokens.
## How it works
Connect your MCP-compatible client to `https://mcp.konbiniapi.com`, authorize it once, and then call KonbiniAPI tools directly from your agent. Most clients support OAuth. Some clients also let you connect with a KonbiniAPI API key instead.
Each successful endpoint-tool call uses the same credits as the matching direct REST API call and returns MCP metadata when available.
## Recommended connection modes
Best option for most clients. Use the hosted MCP URL directly and sign in
through the browser once.
For clients that support remote MCP but not OAuth yet. Keep the server
remote and send your KonbiniAPI API key as a Bearer token header.
## Setup guides
Choose the client or tool you want to use with KonbiniAPI's hosted MCP server.
These guides are grouped by use case and focus on the easiest remote setup with
`https://mcp.konbiniapi.com`.
### Chat
Set up with ChatGPT.
Set up with Claude Desktop or Claude.ai.
Connect your own agent or framework.
### Code
Set up with Claude Code.
Set up with OpenAI Codex CLI or the Codex app.
Set up with Cursor.
Set up with VS Code agent mode or GitHub Copilot.
Set up with Antigravity.
Set up with the Gemini CLI.
Set up with Windsurf.
Set up with the Cline VS Code extension.
Set up with Replit Agent and Replit's MCP settings.
Set up with Zed's agent panel and custom servers.
### Automation
If you use KonbiniAPI inside workflow builders or agent orchestration tools, use
the hosted MCP directly there too.
Connect KonbiniAPI to Zapier with MCP Client.
Use KonbiniAPI inside n8n workflows or AI agents.
Call KonbiniAPI tools from Make scenarios and agents.
Add KonbiniAPI to Pipedream workflows and app integrations.
# Antigravity
Source: https://docs.konbiniapi.com/reference/mcp/setup/antigravity
Connect KonbiniAPI to Antigravity using the Model Context Protocol.
Antigravity supports MCP servers via HTTP with OAuth. KonbiniAPI supports dynamic client registration, so no manual credentials are needed.
In Antigravity, click the **"..."** dropdown at the top of the agent panel, select **Manage MCP Servers**, then click **View raw config**.
This opens `~/.gemini/antigravity/mcp_config.json`.
```json theme={null}
{
"mcpServers": {
"konbiniapi": {
"serverUrl": "https://mcp.konbiniapi.com"
}
}
}
```
Open Agent Settings with `Cmd+,` (Mac) or `Ctrl+,` (Windows/Linux), navigate to the **Customizations** tab, and click **Authenticate** next to KonbiniAPI.
Complete the login in your browser, copy the authorization code, paste it back into the settings panel, and click **Submit**.
Once authenticated, KonbiniAPI tools are available to Antigravity's agent automatically. Access tokens are stored locally and refreshed automatically when they expire.
# ChatGPT
Source: https://docs.konbiniapi.com/reference/mcp/setup/chatgpt
Connect KonbiniAPI to ChatGPT using the Model Context Protocol.
ChatGPT supports remote MCP servers through custom apps. Availability depends on your plan and whether developer mode is enabled.
Once the app has been added and authorized, KonbiniAPI tools are available in all ChatGPT apps: web, desktop, and mobile.
* **Plus / Pro**: enable developer mode, then add KonbiniAPI as a personal app.
* **Business / Enterprise / Edu**: admins and authorized builders can create, test, and publish custom apps for the workspace.
Go to [chatgpt.com](https://chatgpt.com) and log in to your account.
Once inside the ChatGPT web app, open **Settings → Apps** and turn on **Developer mode** if you have a Plus or Pro plan.
From **Settings → Apps**, click **Create app** or **Add app**, depending on your plan.
```text theme={null}
KonbiniAPI
```
```text theme={null}
https://mcp.konbiniapi.com
```
Select **OAuth** as the authentication method.
Mark the checkbox and click **Create**.
ChatGPT will redirect you to KonbiniAPI to log in and grant access. Once the browser flow completes, the app is active.
If the KonbiniAPI consent screen doesn't open automatically, click the **Connect** button next to the app name.
**KonbiniAPI tools are now available in all ChatGPT apps: web, desktop, and mobile.**
You can ask it to fetch TikTok or Instagram data directly in chat, or enable the app from ChatGPT's tools menu when starting a task.
# Claude
Source: https://docs.konbiniapi.com/reference/mcp/setup/claude
Connect KonbiniAPI to Claude and Claude Desktop using the Model Context Protocol.
Anthropic's [remote MCP custom connector
guide](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp)
says remote custom connectors are available on Claude, Cowork, and Claude
Desktop in beta. Free users are limited to one custom connector.
## Claude and Claude Desktop
Anthropic's current custom connector flow supports remote MCP on Claude and
Claude Desktop. KonbiniAPI works through the hosted remote server with OAuth.
In Claude, open **Customize** and click the **Connectors** button on the left side bar.
Click the **+** button, then **Add custom connector**.
```text theme={null}
KonbiniAPI
```
```text theme={null}
https://mcp.konbiniapi.com
```
Click **Add**.
Claude will redirect you to KonbiniAPI to log in and grant access. Once the
OAuth flow completes, the connector is available in Claude and Claude
Desktop.
Use the **+** menu, then **Connectors**, and enable `konbiniapi` for the
conversation where you want Claude to use it.
## Team and Enterprise
On Team and Enterprise plans, an owner usually adds the custom connector first
in **Organization settings → Connectors**, then each user connects their own
account from **Customize → Connectors**.
For Claude Code, see [Claude Code](/reference/mcp/setup/claude-code).
# Claude Code
Source: https://docs.konbiniapi.com/reference/mcp/setup/claude-code
Connect KonbiniAPI to Claude Code using the hosted remote MCP server.
Claude Code supports hosted MCP servers over HTTP with OAuth directly from the
CLI.
```bash theme={null}
claude mcp add --transport http konbiniapi https://mcp.konbiniapi.com
```
Inside a Claude Code session, run `/mcp` and follow the browser-based OAuth
flow to link your KonbiniAPI account.
Run `/mcp` in Claude Code and confirm `konbiniapi` is available.
To make the server available across all projects, add the `--scope user` flag:
```bash theme={null}
claude mcp add --transport http --scope user konbiniapi https://mcp.konbiniapi.com
```
# Cline
Source: https://docs.konbiniapi.com/reference/mcp/setup/cline
Connect KonbiniAPI to Cline using the hosted remote MCP server.
Cline supports remote MCP servers directly, including hosted HTTP servers with
OAuth.
In VS Code, open the **Cline** panel, click the **MCP Servers** button, and
choose **Remote Servers**.
Enter the following values:
| Field | Value |
| -------------- | ---------------------------- |
| Name | `konbiniapi` |
| Transport Type | `Streamable HTTP` |
| URL | `https://mcp.konbiniapi.com` |
Save the server, then trigger it from Cline. The browser-based OAuth flow
will open so you can link your KonbiniAPI account.
# Codex
Source: https://docs.konbiniapi.com/reference/mcp/setup/codex
Connect KonbiniAPI to OpenAI Codex CLI and the Codex app using the Model Context Protocol.
Codex works with KonbiniAPI's hosted remote MCP.
## Codex CLI
Run:
```bash theme={null}
codex mcp add konbiniapi --url https://mcp.konbiniapi.com
```
Complete the login flow:
```bash theme={null}
codex mcp login konbiniapi
```
Inside a Codex session, run `/mcp` to confirm the server is active.
If you prefer editing the config file directly, add the server to
`~/.codex/config.toml`:
```toml theme={null}
[mcp_servers.konbiniapi]
url = "https://mcp.konbiniapi.com"
```
For project-scoped config, use `.codex/config.toml` in your project root
instead.
***
## Codex app
In the Codex app, go to **Settings → MCP servers** and click **Add server**.
```text theme={null}
KonbiniAPI
```
Select the **Streamable HTTP** protocol.
```text theme={null}
https://mcp.konbiniapi.com
```
Leave the other fields empty (bearer token, headers, etc.) and click **Save**.
The app will open a browser window to link your KonbiniAPI account.
# Cursor
Source: https://docs.konbiniapi.com/reference/mcp/setup/cursor
Connect KonbiniAPI to Cursor using the Model Context Protocol. Fetch social media data directly from your editor.
Cursor supports MCP servers via HTTP with OAuth. No API key required — your KonbiniAPI account is linked once through a browser flow.
In Cursor, go to **Settings → MCP** and click **Add new MCP server**.
Enter the following:
| Field | Value |
| ----- | ---------------------------- |
| Name | `konbiniapi` |
| Type | `HTTP` |
| URL | `https://mcp.konbiniapi.com` |
Cursor will open a browser window to log in to KonbiniAPI and grant access. Once done, the server is active.
The KonbiniAPI tools are now available to Cursor's agent. You can ask it to fetch user profiles, videos, posts, comments, and more from TikTok and Instagram as part of your workflow.
# Custom agents
Source: https://docs.konbiniapi.com/reference/mcp/setup/custom-agents
Connect your own AI agent or framework to KonbiniAPI via the Model Context Protocol HTTP endpoint.
If you're building your own agent or using a framework that supports MCP, you can connect directly to the KonbiniAPI MCP server.
## Endpoint
```
https://mcp.konbiniapi.com
```
The server uses the [Streamable HTTP transport](https://modelcontextprotocol.io/specification/draft/basic/transports) and requires a Bearer token on every request.
## Authentication
The server implements [OAuth 2.0 with dynamic client registration](https://modelcontextprotocol.io/specification/draft/basic/authorization). Most MCP-compatible frameworks handle this automatically.
If your framework supports OAuth discovery, point it at the server URL and it will handle the flow:
```
GET https://mcp.konbiniapi.com/.well-known/oauth-protected-resource
GET https://mcp.konbiniapi.com/.well-known/oauth-authorization-server
```
The access token issued at the end of the flow is a native `knbn_` API key — it can also be used directly against the REST API.
## Making requests
Once authenticated, send MCP JSON-RPC requests to `POST /`:
```bash theme={null}
curl https://mcp.konbiniapi.com \
-H "Authorization: Bearer knbn_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "tiktok_get_user",
"arguments": {
"username": "khaby.lame",
"projection_preset": "minimal"
}
},
"id": 1
}'
```
## OpenAI Responses API
If you are building with the OpenAI Responses API, pass KonbiniAPI as an MCP
tool and send your KonbiniAPI API key in the `authorization` field:
```json theme={null}
{
"model": "gpt-5",
"input": "Fetch the TikTok profile for khaby.lame and keep the response minimal.",
"tools": [
{
"type": "mcp",
"server_label": "konbiniapi",
"server_url": "https://mcp.konbiniapi.com",
"authorization": "knbn_your_api_key",
"require_approval": "never"
}
]
}
```
That keeps KonbiniAPI remote while still working in environments where your app
manages OAuth or API keys itself.
## Testing with MCP Inspector
The [MCP Inspector](https://github.com/modelcontextprotocol/inspector) is a useful tool for exploring and testing the server:
```bash theme={null}
npx @modelcontextprotocol/inspector
```
Set the transport to **Streamable HTTP** and the URL to `https://mcp.konbiniapi.com`.
## Tools reference
See the [tools reference](/reference/mcp/tools/overview) for the full list of available tools, their parameters, and example inputs.
# Gemini CLI
Source: https://docs.konbiniapi.com/reference/mcp/setup/gemini-cli
Connect KonbiniAPI to the Gemini CLI using the Model Context Protocol.
The Gemini CLI supports MCP servers via HTTP with OAuth.
Open or create `~/.gemini/settings.json` and add the following:
```json theme={null}
{
"mcpServers": {
"konbiniapi": {
"httpUrl": "https://mcp.konbiniapi.com",
"timeout": 10000
}
}
}
```
In the Gemini CLI, run the following command:
```text theme={null}
/mcp auth konbiniapi
```
Confirm the prompt, then complete the browser sign-in flow to grant
KonbiniAPI access.
# Make
Source: https://docs.konbiniapi.com/reference/mcp/setup/make
Connect KonbiniAPI's hosted MCP server to Make scenarios with MCP Client.
Make supports MCP in both directions. To use KonbiniAPI inside Make, you want
the **Make MCP Client**, which lets a scenario call tools hosted on a remote MCP
server.
In your scenario, add the **MCP Client** module.
Point it to:
```text theme={null}
https://mcp.konbiniapi.com
```
Use the authentication flow Make supports for the module:
* OAuth if you want to authorize your KonbiniAPI account in-browser
* Token or bearer-style auth if you prefer a direct KonbiniAPI API key
Make loads the available tools from KonbiniAPI automatically. Pick the tool
you want and map the inputs in the scenario UI.
## Recommended KonbiniAPI pattern
* Choose the specific typed tool you need, such as `instagram_get_user` or `tiktok_search_videos`
* Use `projection_preset`, `data_fields`, and `item_fields` to reduce payload size
* Store or transform the returned JSON in downstream Make modules
Official sources:
* [Make MCP Client overview](https://www.make.com/en/blog/mcp-client)
* [Make MCP Client integration page](https://www.make.com/en/integrations/mcp-client)
# n8n
Source: https://docs.konbiniapi.com/reference/mcp/setup/n8n
Connect KonbiniAPI's hosted MCP server to n8n workflows and AI agents.
n8n supports MCP as both a client and a server. For KonbiniAPI, the useful part
is n8n's MCP client support, which lets your workflows and AI agents call
KonbiniAPI tools from the hosted remote MCP.
## Use KonbiniAPI in regular workflows
Use the **MCP Client** node if you want MCP tools to behave like normal steps in
an n8n workflow.
In your workflow, add the **MCP Client** node.
Configure:
* **MCP Endpoint URL**: `https://mcp.konbiniapi.com`
* **Server Transport**: choose the HTTP transport your n8n version exposes for MCP client connections
In the node credentials, choose one of these:
* **OAuth2** if you want n8n to complete the browser-based OAuth flow
* **Bearer** if you want to use a KonbiniAPI API key directly
Select the KonbiniAPI tool you want to call, then map the inputs from your
workflow data.
## Use KonbiniAPI with n8n AI agents
Use the **MCP Client Tool** node if you want KonbiniAPI to appear as tools for
an n8n AI Agent.
Add **MCP Client Tool** and connect it to your AI Agent.
Use `https://mcp.konbiniapi.com` as the MCP server URL.
Use **OAuth2** or **Bearer** credentials, depending on whether you want an
OAuth login flow or a direct KonbiniAPI API key.
Include all tools, or select only the KonbiniAPI tools you want the agent to
use.
## Recommended KonbiniAPI pattern
* Pick the typed tool that matches the task, such as `instagram_get_user` or `tiktok_get_user_videos`
* Use `projection_preset`, `data_fields`, and `item_fields` to keep results small
* Parse the returned JSON string in the next step if your workflow needs fields individually
Official sources:
* [n8n MCP Client node docs](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-langchain.mcpClient/)
* [n8n MCP Client Tool node docs](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolmcp/)
# Pipedream
Source: https://docs.konbiniapi.com/reference/mcp/setup/pipedream
Use KonbiniAPI's hosted MCP server from Pipedream workflows and app integrations.
Pipedream supports MCP heavily for developer-facing automation and app
integration workflows. If you want to orchestrate KonbiniAPI together with other
tools or user-authenticated app actions, Pipedream is a strong fit.
Configure your MCP-aware Pipedream app or workflow to connect to:
```text theme={null}
https://mcp.konbiniapi.com
```
Use either:
* KonbiniAPI OAuth, if your Pipedream MCP flow supports browser auth
* A KonbiniAPI API key as bearer auth, if you want a simpler static setup
Load the tool list from the server, then call the typed tool you need, such
as `instagram_get_user` or `tiktok_get_video_comments`.
## Best fit
Pipedream makes the most sense when:
* you are building a customer-facing workflow or AI product
* you need KonbiniAPI together with many other app integrations
* you want remote MCP without local infrastructure
Official sources:
* [Pipedream MCP overview](https://pipedream.com/docs/connect/mcp)
* [Pipedream developer MCP docs](https://pipedream.com/docs/connect/mcp/developers)
# Replit
Source: https://docs.konbiniapi.com/reference/mcp/setup/replit
Connect KonbiniAPI to Replit Agent using the hosted remote MCP server.
Replit supports remote MCP servers directly from its integrations settings.
In Replit, open **Integrations → MCP Servers** and click **Add MCP Server**.
Enter `https://mcp.konbiniapi.com` as the server URL and save the server as
`konbiniapi`.
Test or use the server from Replit Agent. Replit will launch the
browser-based auth flow so you can link your KonbiniAPI account.
# VS Code
Source: https://docs.konbiniapi.com/reference/mcp/setup/vscode
Connect KonbiniAPI to VS Code agent mode using the Model Context Protocol.
VS Code supports MCP servers natively in agent mode (1.99+), independently of GitHub Copilot.
Create `.vscode/mcp.json` in your workspace (shared with your team via source control), or open the Command Palette and run `MCP: Open User Configuration` for a global config.
```json theme={null}
{
"servers": {
"konbiniapi": {
"type": "http",
"url": "https://mcp.konbiniapi.com"
}
}
}
```
Open the Chat panel, switch to **Agent** mode, and start a prompt. VS Code will trigger the OAuth flow to link your KonbiniAPI account on first use.
GitHub Copilot uses the same MCP configuration. If you've already set this up
for VS Code agent mode, Copilot will pick it up automatically.
# Windsurf
Source: https://docs.konbiniapi.com/reference/mcp/setup/windsurf
Connect KonbiniAPI to Windsurf using the Model Context Protocol.
Windsurf supports hosted MCP servers over HTTP with OAuth.
In Windsurf, open the **Cascade** panel and go to **MCP Servers**, or edit
the global config file directly at `~/.codeium/mcp_config.json`.
```json theme={null}
{
"mcpServers": {
"konbiniapi": {
"serverUrl": "https://mcp.konbiniapi.com"
}
}
}
```
Save the config and use KonbiniAPI from Cascade. Windsurf will open the
browser-based OAuth flow the first time the server needs authorization.
# Zapier
Source: https://docs.konbiniapi.com/reference/mcp/setup/zapier
Connect KonbiniAPI's hosted MCP server to Zapier using MCP Client.
Zapier's **MCP Client** lets you connect remote MCP servers to Zaps. KonbiniAPI
works as a remote MCP server there, so you do not need to run anything locally.
Zapier marks MCP Client as beta as of January 23, 2026.
In Zapier, go to **Apps**, click **Add connection**, then search for
**MCP Client**.
Fill the connection fields with:
* **Server URL**: `https://mcp.konbiniapi.com`
* **Transport**: `Streamable HTTP`
Pick one:
* **OAuth: Yes** to use the browser-based KonbiniAPI login flow
* **Bearer Token** if you want to use a KonbiniAPI API key instead
Continue the connection flow and grant Zapier access to your KonbiniAPI account.
Choose the KonbiniAPI tool you want to run, such as `instagram_get_user` or
`tiktok_get_user_videos`, then map the top-level tool inputs in Zapier.
Official source:
* [Zapier MCP Client docs](https://help.zapier.com/hc/en-us/articles/38777069364109-Connect-remote-MCP-servers-to-Zapier-using-MCP-Client)
# Zed
Source: https://docs.konbiniapi.com/reference/mcp/setup/zed
Connect KonbiniAPI to Zed using a custom remote MCP server.
Zed supports remote MCP servers natively. If you add a remote server URL
without an `Authorization` header, Zed will handle the standard OAuth flow for
you.
In Zed, open the **Agent Panel**, then open **Settings** and click **Add
Custom Server**.
You can add the server in the UI, or edit your Zed settings JSON directly:
```json theme={null}
{
"context_servers": {
"konbiniapi": {
"url": "https://mcp.konbiniapi.com"
}
}
}
```
Start using the server from the agent panel. Zed will prompt you to
authenticate through the browser and then store the connection for reuse.
KonbiniAPI tools are then available to Zed's agent for endpoint discovery,
documentation lookup, and live TikTok or Instagram API calls.
# Get highlight stories
Source: https://docs.konbiniapi.com/reference/mcp/tools/instagram/get-highlight-stories
Returns all story items within a highlight reel, including images and videos. The highlight ID comes from the highlights list endpoint.
## What it does
Returns all story items within a highlight reel, including images and videos. The highlight ID comes from the highlights list endpoint.
## Tool details
| Field | Value |
| ------------- | -------------------------------------------- |
| Tool name | `instagram_get_highlight_stories` |
| Platform | Instagram |
| REST endpoint | `GET /v1/instagram/highlights/{highlightId}` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `highlightId` | `string` | Yes | Instagram highlight ID |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "instagram_get_highlight_stories",
"arguments": {
"highlightId": "18067016518767507",
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"totalItems",
"entityId",
"name"
],
"item_fields": [
"entityId",
"published",
"summary",
"url",
"attachment"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `entityId`
* `name`
* `image`
* `totalItems`
* `orderedItems`
## Available item fields
* `type`
* `url`
* `entityId`
* `published`
* `summary`
* `isSponsored`
* `image`
* `attachment`
* `duration`
* `attributedTo`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get posts by location
Source: https://docs.konbiniapi.com/reference/mcp/tools/instagram/get-location-posts
Returns recent posts tagged at a location. Fixed page size of 21 (platform limit). The location ID is a numeric Facebook Places ID.
## What it does
Returns recent posts tagged at a location. Fixed page size of 21 (platform limit). The location ID is a numeric Facebook Places ID.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------ |
| Tool name | `instagram_get_location_posts` |
| Platform | Instagram |
| REST endpoint | `GET /v1/instagram/locations/{locationId}` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `locationId` | `string` | Yes | Instagram/Facebook location ID (numeric) |
| `count` | `integer` | No | Page size (fixed at 21 by the platform) Default: `21`. |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "instagram_get_location_posts",
"arguments": {
"locationId": "213385402",
"count": 21,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"totalItems",
"entityId",
"name",
"published",
"content"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `likeCount`
* `commentCount`
* `attributedTo`
* `location`
* `tag`
* `language`
* `isEdited`
* `isSponsored`
* `viewCount`
* `duration`
* `contentFormat`
* `attachment`
* `image`
* `audio`
* `name`
* `totalItems`
* `items`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get post details
Source: https://docs.konbiniapi.com/reference/mcp/tools/instagram/get-post
Returns details for a single post by its shortcode, including media, captions, and engagement counts. Supports photos, videos, and carousels.
## What it does
Returns details for a single post by its shortcode, including media, captions, and engagement counts. Supports photos, videos, and carousels.
## Tool details
| Field | Value |
| ------------- | ---------------------------------- |
| Tool name | `instagram_get_post` |
| Platform | Instagram |
| REST endpoint | `GET /v1/instagram/posts/{postId}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `postId` | `string` | Yes | Post shortcode (from instagram.com/p//) |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "instagram_get_post",
"arguments": {
"postId": "DM8Q1ABC123",
"projection_preset": "minimal",
"data_fields": [
"totalItems",
"entityId",
"name",
"published"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `likeCount`
* `commentCount`
* `attributedTo`
* `location`
* `tag`
* `language`
* `isEdited`
* `isSponsored`
* `viewCount`
* `duration`
* `contentFormat`
* `attachment`
* `image`
* `audio`
* `name`
* `totalItems`
* `items`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get post comments
Source: https://docs.konbiniapi.com/reference/mcp/tools/instagram/get-post-comments
Returns top-level comments on an Instagram post. Fixed page size of 15 (platform limit). Includes comment text, author info, like counts, and timestamps.
## What it does
Returns top-level comments on an Instagram post. Fixed page size of 15 (platform limit). Includes comment text, author info, like counts, and timestamps.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------- |
| Tool name | `instagram_get_post_comments` |
| Platform | Instagram |
| REST endpoint | `GET /v1/instagram/posts/{postId}/comments` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `postId` | `string` | Yes | Post shortcode (from instagram.com/p//) |
| `count` | `integer` | No | Page size (fixed at 15 by the platform) Default: `15`. |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "instagram_get_post_comments",
"arguments": {
"postId": "DM8Q1ABC123",
"count": 15,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"likeCount",
"id"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `entityId`
* `content`
* `published`
* `likeCount`
* `replyCount`
* `attributedTo`
* `inReplyTo`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user profile
Source: https://docs.konbiniapi.com/reference/mcp/tools/instagram/get-user
Returns profile information for an Instagram user including bio, follower counts, profile picture, and account metadata. Look up any public Instagram account by username.
## What it does
Returns profile information for an Instagram user including bio, follower counts, profile picture, and account metadata. Look up any public Instagram account by username.
## Tool details
| Field | Value |
| ------------- | ------------------------------------ |
| Tool name | `instagram_get_user` |
| Platform | Instagram |
| REST endpoint | `GET /v1/instagram/users/{username}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | Instagram username (with or without @ symbol) |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "instagram_get_user",
"arguments": {
"username": "khaby.lame",
"projection_preset": "minimal",
"data_fields": [
"entityId",
"name",
"preferredUsername",
"summary"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `preferredUsername`
* `summary`
* `attachment`
* `isPrivate`
* `isVerified`
* `isPaidVerified`
* `isBusiness`
* `isProfessional`
* `category`
* `pronouns`
* `hasVideos`
* `hasChannel`
* `hasMicroblog`
* `followerCount`
* `followingCount`
* `mediaCount`
* `videoCount`
* `highlightCount`
* `icon`
* `image`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user story highlights
Source: https://docs.konbiniapi.com/reference/mcp/tools/instagram/get-user-highlights
Returns the list of story highlight reels on a user's profile. Use the highlight endpoint to get individual stories within a highlight.
## What it does
Returns the list of story highlight reels on a user's profile. Use the highlight endpoint to get individual stories within a highlight.
## Tool details
| Field | Value |
| ------------- | ----------------------------------------------- |
| Tool name | `instagram_get_user_highlights` |
| Platform | Instagram |
| REST endpoint | `GET /v1/instagram/users/{username}/highlights` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | Instagram username (with or without @ symbol) |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "instagram_get_user_highlights",
"arguments": {
"username": "khaby.lame",
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"totalItems",
"entityId",
"name",
"image",
"id"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `entityId`
* `name`
* `image`
* `totalItems`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user posts
Source: https://docs.konbiniapi.com/reference/mcp/tools/instagram/get-user-posts
Returns a paginated list of posts from an Instagram user's profile feed. Maximum 12 posts per page. Includes photos, videos, carousels, and engagement counts.
## What it does
Returns a paginated list of posts from an Instagram user's profile feed. Maximum 12 posts per page. Includes photos, videos, carousels, and engagement counts.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------ |
| Tool name | `instagram_get_user_posts` |
| Platform | Instagram |
| REST endpoint | `GET /v1/instagram/users/{username}/posts` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | Instagram username (with or without @ symbol) |
| `count` | `integer` | No | Number of posts to fetch (maximum: 12) Default: `12`. |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "instagram_get_user_posts",
"arguments": {
"username": "khaby.lame",
"count": 12,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"totalItems",
"entityId",
"name",
"published",
"content"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `likeCount`
* `commentCount`
* `attributedTo`
* `location`
* `tag`
* `language`
* `isEdited`
* `isSponsored`
* `viewCount`
* `duration`
* `contentFormat`
* `attachment`
* `image`
* `audio`
* `name`
* `totalItems`
* `items`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user reels
Source: https://docs.konbiniapi.com/reference/mcp/tools/instagram/get-user-reels
Returns a paginated list of reels from an Instagram user's profile. Maximum 12 reels per page. Includes video URLs, captions, and engagement counts.
## What it does
Returns a paginated list of reels from an Instagram user's profile. Maximum 12 reels per page. Includes video URLs, captions, and engagement counts.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------ |
| Tool name | `instagram_get_user_reels` |
| Platform | Instagram |
| REST endpoint | `GET /v1/instagram/users/{username}/reels` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | Instagram username (with or without @ symbol) |
| `count` | `integer` | No | Number of reels to fetch (maximum: 12) Default: `12`. |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "instagram_get_user_reels",
"arguments": {
"username": "khaby.lame",
"count": 12,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"totalItems",
"entityId",
"name",
"published",
"content"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `likeCount`
* `commentCount`
* `attributedTo`
* `location`
* `tag`
* `language`
* `isEdited`
* `isSponsored`
* `viewCount`
* `duration`
* `contentFormat`
* `attachment`
* `image`
* `audio`
* `name`
* `totalItems`
* `items`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user tagged posts
Source: https://docs.konbiniapi.com/reference/mcp/tools/instagram/get-user-tagged
Returns Instagram posts where the user has been tagged by other accounts. Maximum 12 posts per page. Includes full post details and engagement counts.
## What it does
Returns Instagram posts where the user has been tagged by other accounts. Maximum 12 posts per page. Includes full post details and engagement counts.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------- |
| Tool name | `instagram_get_user_tagged` |
| Platform | Instagram |
| REST endpoint | `GET /v1/instagram/users/{username}/tagged` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | Instagram username (with or without @ symbol) |
| `count` | `integer` | No | Number of posts to fetch (maximum: 12) Default: `12`. |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "instagram_get_user_tagged",
"arguments": {
"username": "khaby.lame",
"count": 12,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"totalItems",
"entityId",
"name",
"published",
"content"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `likeCount`
* `commentCount`
* `attributedTo`
* `location`
* `tag`
* `language`
* `isEdited`
* `isSponsored`
* `viewCount`
* `duration`
* `contentFormat`
* `attachment`
* `image`
* `audio`
* `name`
* `totalItems`
* `items`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Search media
Source: https://docs.konbiniapi.com/reference/mcp/tools/instagram/search-media
Searches Instagram for trending reels and videos matching a keyword. Maximum 24 results per page. Some valid keywords may return no results, since this surfaces trending content rather than a full-text search.
## What it does
Searches Instagram for trending reels and videos matching a keyword. Maximum 24 results per page. Some valid keywords may return no results, since this surfaces trending content rather than a full-text search.
## Tool details
| Field | Value |
| ------------- | -------------------------- |
| Tool name | `instagram_search_media` |
| Platform | Instagram |
| REST endpoint | `GET /v1/instagram/search` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `query` | `string` | Yes | Search query |
| `count` | `integer` | No | Number of results to fetch (maximum: 24) Default: `24`. |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "instagram_search_media",
"arguments": {
"query": "cooking",
"count": 24,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"totalItems",
"entityId",
"name",
"published",
"content"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `likeCount`
* `commentCount`
* `attributedTo`
* `location`
* `tag`
* `language`
* `isEdited`
* `isSponsored`
* `viewCount`
* `duration`
* `contentFormat`
* `attachment`
* `image`
* `audio`
* `name`
* `totalItems`
* `items`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get company page
Source: https://docs.konbiniapi.com/reference/mcp/tools/linkedin/get-company
Returns public information for a LinkedIn company page including description, location, employee count, and logo.
## What it does
Returns public information for a LinkedIn company page including description, location, employee count, and logo.
## Tool details
| Field | Value |
| ------------- | -------------------------------------- |
| Tool name | `linkedin_get_company` |
| Platform | LinkedIn |
| REST endpoint | `GET /v1/linkedin/companies/{company}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `company` | `string` | Yes | Company vanity name |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "linkedin_get_company",
"arguments": {
"company": "",
"projection_preset": "minimal",
"data_fields": [
"name",
"preferredUsername",
"summary",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `name`
* `preferredUsername`
* `summary`
* `location`
* `address`
* `memberCount`
* `icon`
* `tagline`
* `attachment`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get company posts
Source: https://docs.konbiniapi.com/reference/mcp/tools/linkedin/get-company-posts
Returns recent posts from a LinkedIn company page, newest first. Use `cursor` to page through further results.
## What it does
Returns recent posts from a LinkedIn company page, newest first. Use `cursor` to page through further results.
## Tool details
| Field | Value |
| ------------- | -------------------------------------------- |
| Tool name | `linkedin_get_company_posts` |
| Platform | LinkedIn |
| REST endpoint | `GET /v1/linkedin/companies/{company}/posts` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `company` | `string` | Yes | Company vanity name |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "linkedin_get_company_posts",
"arguments": {
"company": "",
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"likeCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `likeCount`
* `attributedTo`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get post
Source: https://docs.konbiniapi.com/reference/mcp/tools/linkedin/get-post
Returns a public LinkedIn post including author, engagement counts, and up to ~5 inline comments.
## What it does
Returns a public LinkedIn post including author, engagement counts, and up to \~5 inline comments.
## Tool details
| Field | Value |
| ------------- | --------------------------------- |
| Tool name | `linkedin_get_post` |
| Platform | LinkedIn |
| REST endpoint | `GET /v1/linkedin/posts/{postId}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `postId` | `string` | Yes | LinkedIn post activity ID: the full slug (from linkedin.com/posts/), a bare `urn:li:activity:{id}` (from linkedin.com/feed/update//), or a bare numeric activity ID (e.g. `7476310414297968640`) |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "linkedin_get_post",
"arguments": {
"postId": "DM8Q1ABC123",
"projection_preset": "minimal",
"data_fields": [
"entityId",
"published",
"content",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `likeCount`
* `replyCount`
* `attributedTo`
* `image`
* `attachment`
* `replies`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get post video transcript
Source: https://docs.konbiniapi.com/reference/mcp/tools/linkedin/get-post-transcript
Returns the caption/transcript for a video post, when the post carries captions. Returns 404 if the post has no video or no captions.
## What it does
Returns the caption/transcript for a video post, when the post carries captions. Returns 404 if the post has no video or no captions.
## Tool details
| Field | Value |
| ------------- | -------------------------------------------- |
| Tool name | `linkedin_get_post_transcript` |
| Platform | LinkedIn |
| REST endpoint | `GET /v1/linkedin/posts/{postId}/transcript` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `postId` | `string` | Yes | LinkedIn post activity ID: the full slug (from linkedin.com/posts/), a bare `urn:li:activity:{id}` (from linkedin.com/feed/update//), or a bare numeric activity ID (e.g. `7476310414297968640`) |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "linkedin_get_post_transcript",
"arguments": {
"postId": "DM8Q1ABC123",
"projection_preset": "minimal",
"data_fields": [
"content",
"url",
"type",
"id"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `mediaType`
* `size`
* `content`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user profile
Source: https://docs.konbiniapi.com/reference/mcp/tools/linkedin/get-user
Returns profile information for a public LinkedIn member: headline, location, and a simple list of job titles and school/employer names. Fields the member has restricted are omitted.
## What it does
Returns profile information for a public LinkedIn member: headline, location, and a simple list of job titles and school/employer names. Fields the member has restricted are omitted.
## Tool details
| Field | Value |
| ------------- | ----------------------------------- |
| Tool name | `linkedin_get_user` |
| Platform | LinkedIn |
| REST endpoint | `GET /v1/linkedin/users/{username}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | LinkedIn username |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "linkedin_get_user",
"arguments": {
"username": "khaby.lame",
"projection_preset": "minimal",
"data_fields": [
"name",
"preferredUsername",
"summary",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `name`
* `preferredUsername`
* `summary`
* `location`
* `address`
* `followerCount`
* `icon`
* `role`
* `affiliation`
* `education`
* `language`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user articles
Source: https://docs.konbiniapi.com/reference/mcp/tools/linkedin/get-user-articles
Returns a public LinkedIn member's published articles. This endpoint is not paginated — everything available is returned in a single response.
## What it does
Returns a public LinkedIn member's published articles. This endpoint is not paginated — everything available is returned in a single response.
## Tool details
| Field | Value |
| ------------- | -------------------------------------------- |
| Tool name | `linkedin_get_user_articles` |
| Platform | LinkedIn |
| REST endpoint | `GET /v1/linkedin/users/{username}/articles` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | LinkedIn username |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "linkedin_get_user_articles",
"arguments": {
"username": "khaby.lame",
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"totalItems",
"url",
"type"
],
"item_fields": [
"name",
"url",
"likeCount",
"image",
"attributedTo"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `totalItems`
* `orderedItems`
## Available item fields
* `type`
* `url`
* `name`
* `image`
* `likeCount`
* `attributedTo`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user posts
Source: https://docs.konbiniapi.com/reference/mcp/tools/linkedin/get-user-posts
Returns a public LinkedIn member's recent posts and shares. This endpoint is not paginated — everything available is returned in a single response.
## What it does
Returns a public LinkedIn member's recent posts and shares. This endpoint is not paginated — everything available is returned in a single response.
## Tool details
| Field | Value |
| ------------- | ----------------------------------------- |
| Tool name | `linkedin_get_user_posts` |
| Platform | LinkedIn |
| REST endpoint | `GET /v1/linkedin/users/{username}/posts` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | LinkedIn username |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "linkedin_get_user_posts",
"arguments": {
"username": "khaby.lame",
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"totalItems",
"url",
"type"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"likeCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `totalItems`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `likeCount`
* `attributedTo`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# MCP tools
Source: https://docs.konbiniapi.com/reference/mcp/tools/overview
Browse the generated KonbiniAPI MCP tool reference. One typed tool exists for each supported Instagram, TikTok, X, Reddit, and LinkedIn endpoint.
KonbiniAPI's MCP server exposes one typed tool per supported endpoint. This
reference stays aligned with the current MCP tool catalog. Agents can call
the matching tool directly from their MCP client.
## Shared optional inputs
All endpoint tools expose endpoint parameters as top-level typed inputs. They
also share the same projection controls so you can keep payloads small,
save tokens, and keep results deterministic.
| Parameter | Type | Description |
| ------------------- | ---------- | -------------------------------------------------------------------------------------------------------------------- |
| `projection_preset` | `string` | Optional. Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | Optional. Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | Optional. Only on collection tools. Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Projection options
Use projections to keep tool results focused on the data your agent actually
needs. Smaller payloads mean fewer tokens consumed per call.
| Preset | Best for | What it keeps |
| ------------ | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `full` | Full payload access | Returns the full API response without projection. |
| `minimal` | Default lookups | Keeps a small set of commonly useful identity fields. On collection tools, it also keeps paging fields such as `cursor`, `nextCursor`, `itemCount`, and `orderedItems`. |
| `identity` | Profiles and account metadata | Focuses on identity and profile fields such as names, bios, verification state, and audience counts. |
| `engagement` | Metrics and comparisons | Focuses on counts such as views, likes, comments, shares, reposts, saves, and follower totals. |
| `content` | Media and captions | Focuses on content fields such as text, media attachments, tags, duration, authorship, and language. |
### Adding fields on top
* Use `data_fields` to add top-level keys from `data` on top of the selected preset.
* Use `item_fields` on collection tools to add keys from each item in `data.orderedItems[]`.
* If you know exactly what you need, start with `minimal` and add only the extra fields required for the task.
## Response shape
Successful tool calls keep the API envelope under `data` and add MCP credit
metadata when available:
```json theme={null}
{
"data": {},
"metadata": {
"creditsUsed": 1,
"creditsRemaining": 4999
}
}
```
## Browse the catalog
Use the sidebar navigation to browse all available tools by platform. Each tool
has its own page with parameters, example input, and available projected fields.
# Get comment
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-comment
Returns a public Reddit comment with author info, scores, reply presence, and media when available.
## What it does
Returns a public Reddit comment with author info, scores, reply presence, and media when available.
## Tool details
| Field | Value |
| ------------- | ---------------------------------------------------- |
| Tool name | `reddit_get_comment` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/posts/{postId}/comments/{commentId}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `postId` | `string` | Yes | Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`) |
| `commentId` | `string` | Yes | Reddit comment ID (e.g. `onflihe` or `t1_onflihe`) |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_comment",
"arguments": {
"postId": "DM8Q1ABC123",
"commentId": "7526720000000000000",
"projection_preset": "minimal",
"data_fields": [
"entityId",
"published",
"content",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `isPinned`
* `isSponsored`
* `hasReplies`
* `likeCount`
* `voteCount`
* `attributedTo`
* `inReplyTo`
* `image`
* `attachment`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get comment replies
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-comment-replies
Returns direct replies to a Reddit comment using cursor-based pagination.
## What it does
Returns direct replies to a Reddit comment using cursor-based pagination.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------------------------ |
| Tool name | `reddit_get_comment_replies` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/posts/{postId}/comments/{commentId}/replies` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `postId` | `string` | Yes | Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`) |
| `commentId` | `string` | Yes | Reddit comment ID (e.g. `onflihe` or `t1_onflihe`) |
| `count` | `integer` | No | Number of replies to fetch (maximum: 100) Default: `20`. |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_comment_replies",
"arguments": {
"postId": "DM8Q1ABC123",
"commentId": "7526720000000000000",
"count": 20,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"likeCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `isPinned`
* `isSponsored`
* `hasReplies`
* `likeCount`
* `voteCount`
* `attributedTo`
* `inReplyTo`
* `image`
* `attachment`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get comments in batch
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-comments-batch
Returns up to 100 Reddit comments by ID in a single request. Costs 1 credit per ID submitted.
## What it does
Returns up to 100 Reddit comments by ID in a single request. Costs 1 credit per ID submitted.
## Tool details
| Field | Value |
| ------------- | -------------------------------- |
| Tool name | `reddit_get_comments_batch` |
| Platform | Reddit |
| REST endpoint | `POST /v1/reddit/comments/batch` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `entityIds` | `string[]` | Yes | Example: `["okpklb6","ojb40kw"]`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_comments_batch",
"arguments": {
"entityIds": [
"okpklb6",
"ojb40kw"
],
"projection_preset": "minimal",
"data_fields": [
"itemCount",
"type",
"items"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `itemCount`
* `items`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get feed
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-feed
Returns posts from a top-level Reddit feed such as best, hot, new, top, rising, or controversial.
## What it does
Returns posts from a top-level Reddit feed such as best, hot, new, top, rising, or controversial.
## Tool details
| Field | Value |
| ------------- | ----------------------------- |
| Tool name | `reddit_get_feed` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/feeds/{feed}` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `feed` | `string` | Yes | Reddit feed kind Allowed values: `best`, `hot`, `new`, `top`, `rising`, `controversial`. |
| `count` | `integer` | No | Number of posts to fetch (maximum: 100) Default: `25`. |
| `cursor` | `string` | No | Pagination cursor |
| `time` | `string` | No | Time window for top or controversial feeds: hour, day, week, month, year, or all Allowed values: `hour`, `day`, `week`, `month`, `year`, `all`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_feed",
"arguments": {
"feed": "popular",
"count": 25,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"name",
"published",
"content",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `content`
* `published`
* `isEdited`
* `isLocked`
* `isOriginal`
* `isPinned`
* `isSponsored`
* `isAdult`
* `isSpoiler`
* `isSearchable`
* `likeCount`
* `voteCount`
* `commentCount`
* `shareCount`
* `attributedTo`
* `icon`
* `image`
* `attachment`
* `tag`
* `quote`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get post
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-post
Returns a public Reddit post with title, body, author info, engagement counts, and attachments.
## What it does
Returns a public Reddit post with title, body, author info, engagement counts, and attachments.
## Tool details
| Field | Value |
| ------------- | ------------------------------- |
| Tool name | `reddit_get_post` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/posts/{postId}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `postId` | `string` | Yes | Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`) |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_post",
"arguments": {
"postId": "DM8Q1ABC123",
"projection_preset": "minimal",
"data_fields": [
"entityId",
"name",
"published",
"content"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `content`
* `published`
* `isEdited`
* `isLocked`
* `isOriginal`
* `isPinned`
* `isSponsored`
* `isAdult`
* `isSpoiler`
* `isSearchable`
* `likeCount`
* `voteCount`
* `commentCount`
* `shareCount`
* `attributedTo`
* `icon`
* `image`
* `attachment`
* `tag`
* `quote`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get post comments
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-post-comments
Returns top-level comments on a Reddit post. Supports Reddit comment ordering and cursor-based pagination.
## What it does
Returns top-level comments on a Reddit post. Supports Reddit comment ordering and cursor-based pagination.
## Tool details
| Field | Value |
| ------------- | ---------------------------------------- |
| Tool name | `reddit_get_post_comments` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/posts/{postId}/comments` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| `postId` | `string` | Yes | Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`) |
| `count` | `integer` | No | Number of comments to fetch (maximum: 100) Default: `25`. |
| `cursor` | `string` | No | Pagination cursor |
| `order` | `string` | No | Sort order: best (default), top, new, controversial, or old Default: `best`. Allowed values: `best`, `top`, `new`, `controversial`, `old`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_post_comments",
"arguments": {
"postId": "DM8Q1ABC123",
"count": 25,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"likeCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `isPinned`
* `isSponsored`
* `hasReplies`
* `likeCount`
* `voteCount`
* `attributedTo`
* `inReplyTo`
* `image`
* `attachment`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get duplicate posts
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-post-duplicates
Returns duplicate submissions and crossposts associated with a Reddit post.
## What it does
Returns duplicate submissions and crossposts associated with a Reddit post.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------ |
| Tool name | `reddit_get_post_duplicates` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/posts/{postId}/duplicates` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `postId` | `string` | Yes | Reddit post ID (e.g. `1tlh5aj` or `t3_1tlh5aj`) |
| `count` | `integer` | No | Number of posts to fetch (maximum: 100) Default: `25`. |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_post_duplicates",
"arguments": {
"postId": "DM8Q1ABC123",
"count": 25,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"name",
"published",
"content",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `content`
* `published`
* `isEdited`
* `isLocked`
* `isOriginal`
* `isPinned`
* `isSponsored`
* `isAdult`
* `isSpoiler`
* `isSearchable`
* `likeCount`
* `voteCount`
* `commentCount`
* `shareCount`
* `attributedTo`
* `icon`
* `image`
* `attachment`
* `tag`
* `quote`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get posts in batch
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-posts-batch
Returns up to 100 Reddit posts by ID in a single request. Costs 1 credit per ID submitted.
## What it does
Returns up to 100 Reddit posts by ID in a single request. Costs 1 credit per ID submitted.
## Tool details
| Field | Value |
| ------------- | ----------------------------- |
| Tool name | `reddit_get_posts_batch` |
| Platform | Reddit |
| REST endpoint | `POST /v1/reddit/posts/batch` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `entityIds` | `string[]` | Yes | Example: `["1tlh5aj","1t4mguu","1t6ddw2"]`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_posts_batch",
"arguments": {
"entityIds": [
"1tlh5aj",
"1t4mguu",
"1t6ddw2"
],
"projection_preset": "minimal",
"data_fields": [
"itemCount",
"type",
"items"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `itemCount`
* `items`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get subreddit
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-subreddit
Returns public subreddit metadata including title, description, icon, banner, and subscriber count.
## What it does
Returns public subreddit metadata including title, description, icon, banner, and subscriber count.
## Tool details
| Field | Value |
| ------------- | --------------------------------------- |
| Tool name | `reddit_get_subreddit` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/subreddits/{subreddit}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `subreddit` | `string` | Yes | Subreddit name (with or without `r/` prefix) |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_subreddit",
"arguments": {
"subreddit": "programming",
"projection_preset": "minimal",
"data_fields": [
"entityId",
"name",
"published",
"summary"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `entityId`
* `slug`
* `name`
* `summary`
* `description`
* `guidelines`
* `published`
* `isAdult`
* `isSearchable`
* `category`
* `memberCount`
* `icon`
* `image`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get subreddit comments
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-subreddit-comments
Returns public comments from a subreddit. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial.
## What it does
Returns public comments from a subreddit. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------------ |
| Tool name | `reddit_get_subreddit_comments` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/subreddits/{subreddit}/comments` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `subreddit` | `string` | Yes | Subreddit name (with or without `r/` prefix) |
| `count` | `integer` | No | Number of comments to fetch (maximum: 100) Default: `25`. |
| `cursor` | `string` | No | Pagination cursor |
| `order` | `string` | No | Sort order: hot (default), new, top, or controversial Default: `hot`. Allowed values: `hot`, `new`, `top`, `controversial`. |
| `time` | `string` | No | Time window for top or controversial ordering: hour, day, week, month, year, or all (default) Allowed values: `hour`, `day`, `week`, `month`, `year`, `all`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_subreddit_comments",
"arguments": {
"subreddit": "programming",
"count": 25,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"likeCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `isPinned`
* `isSponsored`
* `hasReplies`
* `likeCount`
* `voteCount`
* `attributedTo`
* `inReplyTo`
* `image`
* `attachment`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get subreddit posts
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-subreddit-posts
Returns public posts from a subreddit. Supports hot, new, top, rising, and controversial ordering, with optional time windows for top and controversial.
## What it does
Returns public posts from a subreddit. Supports hot, new, top, rising, and controversial ordering, with optional time windows for top and controversial.
## Tool details
| Field | Value |
| ------------- | --------------------------------------------- |
| Tool name | `reddit_get_subreddit_posts` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/subreddits/{subreddit}/posts` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `subreddit` | `string` | Yes | Subreddit name (with or without `r/` prefix) |
| `count` | `integer` | No | Number of posts to fetch (maximum: 100) Default: `25`. |
| `cursor` | `string` | No | Pagination cursor |
| `order` | `string` | No | Sort order: hot (default), new, top, rising, or controversial Default: `hot`. Allowed values: `hot`, `new`, `top`, `rising`, `controversial`. |
| `time` | `string` | No | Time window for top or controversial ordering: hour, day, week, month, year, or all (default) Allowed values: `hour`, `day`, `week`, `month`, `year`, `all`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_subreddit_posts",
"arguments": {
"subreddit": "programming",
"count": 25,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"name",
"published",
"content",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `content`
* `published`
* `isEdited`
* `isLocked`
* `isOriginal`
* `isPinned`
* `isSponsored`
* `isAdult`
* `isSpoiler`
* `isSearchable`
* `likeCount`
* `voteCount`
* `commentCount`
* `shareCount`
* `attributedTo`
* `icon`
* `image`
* `attachment`
* `tag`
* `quote`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get subreddit rules
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-subreddit-rules
Returns structured community rules for a subreddit.
## What it does
Returns structured community rules for a subreddit.
## Tool details
| Field | Value |
| ------------- | --------------------------------------------- |
| Tool name | `reddit_get_subreddit_rules` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/subreddits/{subreddit}/rules` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `subreddit` | `string` | Yes | Subreddit name (with or without `r/` prefix) |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_subreddit_rules",
"arguments": {
"subreddit": "programming",
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"totalItems",
"url",
"type"
],
"item_fields": [
"entityId",
"name",
"content"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `totalItems`
* `orderedItems`
## Available item fields
* `type`
* `entityId`
* `name`
* `content`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get subreddit sticky posts
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-subreddit-sticky
Returns sticky posts for a subreddit across all available slots.
## What it does
Returns sticky posts for a subreddit across all available slots.
## Tool details
| Field | Value |
| ------------- | ---------------------------------------------- |
| Tool name | `reddit_get_subreddit_sticky` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/subreddits/{subreddit}/sticky` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `subreddit` | `string` | Yes | Subreddit name (with or without `r/` prefix) |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_subreddit_sticky",
"arguments": {
"subreddit": "programming",
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"totalItems",
"url",
"type"
],
"item_fields": [
"entityId",
"name",
"published",
"content",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `totalItems`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `content`
* `published`
* `isEdited`
* `isLocked`
* `isOriginal`
* `isPinned`
* `isSponsored`
* `isAdult`
* `isSpoiler`
* `isSearchable`
* `likeCount`
* `voteCount`
* `commentCount`
* `shareCount`
* `attributedTo`
* `icon`
* `image`
* `attachment`
* `tag`
* `quote`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get subreddits in batch
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-subreddits-batch
Returns up to 100 Reddit subreddits by ID in a single request. Costs 1 credit per ID submitted.
## What it does
Returns up to 100 Reddit subreddits by ID in a single request. Costs 1 credit per ID submitted.
## Tool details
| Field | Value |
| ------------- | ---------------------------------- |
| Tool name | `reddit_get_subreddits_batch` |
| Platform | Reddit |
| REST endpoint | `POST /v1/reddit/subreddits/batch` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `entityIds` | `string[]` | Yes | Example: `["2qh3l","2qh0u"]`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_subreddits_batch",
"arguments": {
"entityIds": [
"2qh3l",
"2qh0u"
],
"projection_preset": "minimal",
"data_fields": [
"itemCount",
"type",
"items"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `itemCount`
* `items`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user profile
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-user
Returns public Reddit user profile information including bio, avatar, verification flags, and account creation date.
## What it does
Returns public Reddit user profile information including bio, avatar, verification flags, and account creation date.
## Tool details
| Field | Value |
| ------------- | --------------------------------- |
| Tool name | `reddit_get_user` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/users/{username}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | Reddit username (with or without `u/` prefix) |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_user",
"arguments": {
"username": "khaby.lame",
"projection_preset": "minimal",
"data_fields": [
"entityId",
"name",
"preferredUsername",
"published"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `entityId`
* `preferredUsername`
* `name`
* `icon`
* `role`
* `summary`
* `published`
* `isVerified`
* `isEmployee`
* `isMod`
* `isPremium`
* `isSearchable`
* `isFollowable`
* `isAdult`
* `score`
* `postScore`
* `commentScore`
* `awarderScore`
* `awardeeScore`
* `status`
* `image`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user comments
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-user-comments
Returns public comments made by a Reddit user. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial.
## What it does
Returns public comments made by a Reddit user. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------ |
| Tool name | `reddit_get_user_comments` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/users/{username}/comments` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `username` | `string` | Yes | Reddit username (with or without `u/` prefix) |
| `count` | `integer` | No | Number of comments to fetch (maximum: 100) Default: `25`. |
| `cursor` | `string` | No | Pagination cursor |
| `order` | `string` | No | Sort order: new (default), hot, top, or controversial Default: `new`. Allowed values: `hot`, `new`, `top`, `controversial`. |
| `time` | `string` | No | Time window for top or controversial ordering: hour, day, week, month, year, or all (default) Allowed values: `hour`, `day`, `week`, `month`, `year`, `all`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_user_comments",
"arguments": {
"username": "khaby.lame",
"count": 25,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"likeCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `isPinned`
* `isSponsored`
* `hasReplies`
* `likeCount`
* `voteCount`
* `attributedTo`
* `inReplyTo`
* `image`
* `attachment`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user overview
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-user-overview
Returns a mixed Reddit user activity feed including posts and comments. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial.
## What it does
Returns a mixed Reddit user activity feed including posts and comments. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------ |
| Tool name | `reddit_get_user_overview` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/users/{username}/overview` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `username` | `string` | Yes | Reddit username (with or without `u/` prefix) |
| `count` | `integer` | No | Number of activity items to fetch (maximum: 100) Default: `25`. |
| `cursor` | `string` | No | Pagination cursor |
| `order` | `string` | No | Sort order: new (default), hot, top, or controversial Default: `new`. Allowed values: `hot`, `new`, `top`, `controversial`. |
| `time` | `string` | No | Time window for top or controversial ordering: hour, day, week, month, year, or all (default) Allowed values: `hour`, `day`, `week`, `month`, `year`, `all`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_user_overview",
"arguments": {
"username": "khaby.lame",
"count": 25,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"name",
"published",
"content",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `content`
* `published`
* `isEdited`
* `isLocked`
* `isOriginal`
* `isPinned`
* `isSponsored`
* `isAdult`
* `isSpoiler`
* `isSearchable`
* `likeCount`
* `voteCount`
* `commentCount`
* `shareCount`
* `attributedTo`
* `icon`
* `image`
* `attachment`
* `tag`
* `quote`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user posts
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/get-user-posts
Returns public posts submitted by a Reddit user. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial.
## What it does
Returns public posts submitted by a Reddit user. Supports hot, new, top, and controversial ordering, with optional time windows for top and controversial.
## Tool details
| Field | Value |
| ------------- | --------------------------------------- |
| Tool name | `reddit_get_user_posts` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/users/{username}/posts` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `username` | `string` | Yes | Reddit username (with or without `u/` prefix) |
| `count` | `integer` | No | Number of posts to fetch (maximum: 100) Default: `25`. |
| `cursor` | `string` | No | Pagination cursor |
| `order` | `string` | No | Sort order: new (default), hot, top, or controversial Default: `new`. Allowed values: `hot`, `new`, `top`, `controversial`. |
| `time` | `string` | No | Time window for top or controversial ordering: hour, day, week, month, year, or all (default) Allowed values: `hour`, `day`, `week`, `month`, `year`, `all`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_get_user_posts",
"arguments": {
"username": "khaby.lame",
"count": 25,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"name",
"published",
"content",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `content`
* `published`
* `isEdited`
* `isLocked`
* `isOriginal`
* `isPinned`
* `isSponsored`
* `isAdult`
* `isSpoiler`
* `isSearchable`
* `likeCount`
* `voteCount`
* `commentCount`
* `shareCount`
* `attributedTo`
* `icon`
* `image`
* `attachment`
* `tag`
* `quote`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Search posts
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/search-posts
Searches public Reddit posts across the platform. Supports relevance, hot, top, new, and comments sorting with optional time windows.
## What it does
Searches public Reddit posts across the platform. Supports relevance, hot, top, new, and comments sorting with optional time windows.
## Tool details
| Field | Value |
| ------------- | ----------------------------- |
| Tool name | `reddit_search_posts` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/search/posts` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `q` | `string` | Yes | Search query |
| `count` | `integer` | No | Number of posts to fetch (maximum: 100) Default: `25`. |
| `cursor` | `string` | No | Pagination cursor |
| `order` | `string` | No | Sort order: relevance (default), hot, top, new, or comments Default: `relevance`. Allowed values: `relevance`, `hot`, `top`, `new`, `comments`. |
| `time` | `string` | No | Optional time window for search results: hour, day, week, month, year, or all Allowed values: `hour`, `day`, `week`, `month`, `year`, `all`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_search_posts",
"arguments": {
"q": "",
"count": 25,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"name",
"published",
"content",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `content`
* `published`
* `isEdited`
* `isLocked`
* `isOriginal`
* `isPinned`
* `isSponsored`
* `isAdult`
* `isSpoiler`
* `isSearchable`
* `likeCount`
* `voteCount`
* `commentCount`
* `shareCount`
* `attributedTo`
* `icon`
* `image`
* `attachment`
* `tag`
* `quote`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Search subreddit posts
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/search-subreddit-posts
Searches public Reddit posts within a subreddit. Supports relevance, hot, top, new, and comments sorting with optional time windows.
## What it does
Searches public Reddit posts within a subreddit. Supports relevance, hot, top, new, and comments sorting with optional time windows.
## Tool details
| Field | Value |
| ------------- | ---------------------------------------------- |
| Tool name | `reddit_search_subreddit_posts` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/subreddits/{subreddit}/search` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| `subreddit` | `string` | Yes | Subreddit name (with or without `r/` prefix) |
| `q` | `string` | Yes | Search query |
| `count` | `integer` | No | Number of posts to fetch (maximum: 100) Default: `25`. |
| `cursor` | `string` | No | Pagination cursor |
| `order` | `string` | No | Sort order: relevance (default), hot, top, new, or comments Default: `relevance`. Allowed values: `relevance`, `hot`, `top`, `new`, `comments`. |
| `time` | `string` | No | Optional time window for search results: hour, day, week, month, year, or all Allowed values: `hour`, `day`, `week`, `month`, `year`, `all`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_search_subreddit_posts",
"arguments": {
"subreddit": "programming",
"q": "",
"count": 25,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"name",
"published",
"content",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `content`
* `published`
* `isEdited`
* `isLocked`
* `isOriginal`
* `isPinned`
* `isSponsored`
* `isAdult`
* `isSpoiler`
* `isSearchable`
* `likeCount`
* `voteCount`
* `commentCount`
* `shareCount`
* `attributedTo`
* `icon`
* `image`
* `attachment`
* `tag`
* `quote`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Search subreddits
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/search-subreddits
Searches public Reddit subreddits across the platform.
## What it does
Searches public Reddit subreddits across the platform.
## Tool details
| Field | Value |
| ------------- | ---------------------------------- |
| Tool name | `reddit_search_subreddits` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/search/subreddits` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `q` | `string` | Yes | Search query |
| `count` | `integer` | No | Number of subreddits to fetch (maximum: 100) Default: `25`. |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_search_subreddits",
"arguments": {
"q": "",
"count": 25,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"name",
"published",
"summary",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `slug`
* `name`
* `summary`
* `description`
* `guidelines`
* `published`
* `isAdult`
* `isSearchable`
* `category`
* `memberCount`
* `icon`
* `image`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Search users
Source: https://docs.konbiniapi.com/reference/mcp/tools/reddit/search-users
Searches public Reddit users across the platform.
## What it does
Searches public Reddit users across the platform.
## Tool details
| Field | Value |
| ------------- | ----------------------------- |
| Tool name | `reddit_search_users` |
| Platform | Reddit |
| REST endpoint | `GET /v1/reddit/search/users` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `q` | `string` | Yes | Search query |
| `count` | `integer` | No | Number of users to fetch (maximum: 100) Default: `25`. |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "reddit_search_users",
"arguments": {
"q": "",
"count": 25,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"name",
"preferredUsername",
"published",
"summary"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `preferredUsername`
* `name`
* `icon`
* `role`
* `summary`
* `published`
* `isVerified`
* `isEmployee`
* `isMod`
* `isPremium`
* `isSearchable`
* `isFollowable`
* `isAdult`
* `score`
* `postScore`
* `commentScore`
* `awarderScore`
* `awardeeScore`
* `status`
* `image`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get audio details
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-audio
Returns metadata for a TikTok audio track including title, artist, duration, usage count, and cover image. Look up any sound by its audio ID.
## What it does
Returns metadata for a TikTok audio track including title, artist, duration, usage count, and cover image. Look up any sound by its audio ID.
## Tool details
| Field | Value |
| ------------- | --------------------------------- |
| Tool name | `tiktok_get_audio` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/audios/{audioId}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `audioId` | `string` | Yes | TikTok audio/music ID |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_audio",
"arguments": {
"audioId": "7517710000000000000",
"projection_preset": "minimal",
"data_fields": [
"entityId",
"name",
"url",
"image"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `name`
* `duration`
* `mediaType`
* `attributedTo`
* `icon`
* `image`
* `entityId`
* `album`
* `isOriginal`
* `isCopyrighted`
* `videoCount`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get videos with audio
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-audio-videos
Returns a paginated list of TikTok videos using a specific audio track. Maximum 30 per page. Discover trending content by sound or music.
## What it does
Returns a paginated list of TikTok videos using a specific audio track. Maximum 30 per page. Discover trending content by sound or music.
## Tool details
| Field | Value |
| ------------- | ---------------------------------------- |
| Tool name | `tiktok_get_audio_videos` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/audios/{audioId}/videos` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `audioId` | `string` | Yes | TikTok audio/music ID |
| `count` | `integer` | No | Number of videos to fetch (maximum: 30) Default: `30`. |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_audio_videos",
"arguments": {
"audioId": "7517710000000000000",
"count": 30,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"viewCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `duration`
* `viewCount`
* `likeCount`
* `commentCount`
* `repostCount`
* `shareCount`
* `saveCount`
* `language`
* `isSponsored`
* `location`
* `tag`
* `attributedTo`
* `attachment`
* `image`
* `preview`
* `audio`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get collection videos
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-collection-videos
Returns a paginated list of videos in a TikTok collection (playlist or mix). Maximum 35 per page. Includes full video details and engagement counts.
## What it does
Returns a paginated list of videos in a TikTok collection (playlist or mix). Maximum 35 per page. Includes full video details and engagement counts.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------- |
| Tool name | `tiktok_get_collection_videos` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/collections/{collectionId}` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `collectionId` | `string` | Yes | TikTok collection ID (mix ID) |
| `count` | `integer` | No | Number of videos to fetch (maximum: 35) Default: `20`. |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_collection_videos",
"arguments": {
"collectionId": "7450000000000000000",
"count": 20,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"viewCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `duration`
* `viewCount`
* `likeCount`
* `commentCount`
* `repostCount`
* `shareCount`
* `saveCount`
* `language`
* `isSponsored`
* `location`
* `tag`
* `attributedTo`
* `attachment`
* `image`
* `preview`
* `audio`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get comment replies
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-comment-replies
Returns a paginated list of replies to a TikTok comment. Maximum 50 per page. Includes author info, like counts, and reply timestamps.
## What it does
Returns a paginated list of replies to a TikTok comment. Maximum 50 per page. Includes author info, like counts, and reply timestamps.
## Tool details
| Field | Value |
| ------------- | -------------------------------------------------------------- |
| Tool name | `tiktok_get_comment_replies` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/videos/{videoId}/comments/{commentId}/replies` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `videoId` | `string` | Yes | TikTok video ID |
| `commentId` | `string` | Yes | TikTok comment ID |
| `count` | `integer` | No | Number of replies to fetch (maximum: 50) Default: `50`. |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_comment_replies",
"arguments": {
"videoId": "7526718640041882912",
"commentId": "7526720000000000000",
"count": 50,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"likeCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `language`
* `published`
* `likeCount`
* `replyCount`
* `status`
* `isPinned`
* `isLiked`
* `attributedTo`
* `inReplyTo`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get videos with tag
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-tag-videos
Returns TikTok videos associated with a hashtag or challenge. The tag name is resolved to an internal ID automatically. Includes video details and engagement counts.
## What it does
Returns TikTok videos associated with a hashtag or challenge. The tag name is resolved to an internal ID automatically. Includes video details and engagement counts.
## Tool details
| Field | Value |
| ------------- | ------------------------------- |
| Tool name | `tiktok_get_tag_videos` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/tags/{tagName}` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `tagName` | `string` | Yes | Tag name |
| `count` | `integer` | No | Number of videos to fetch (maximum: 30) Default: `30`. |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_tag_videos",
"arguments": {
"tagName": "fyp",
"count": 30,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"viewCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `duration`
* `viewCount`
* `likeCount`
* `commentCount`
* `repostCount`
* `shareCount`
* `saveCount`
* `language`
* `isSponsored`
* `location`
* `tag`
* `attributedTo`
* `attachment`
* `image`
* `preview`
* `audio`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user profile
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-user
Returns profile information for a TikTok user including bio, follower counts, verification status, and profile picture. Look up any public TikTok account by username.
## What it does
Returns profile information for a TikTok user including bio, follower counts, verification status, and profile picture. Look up any public TikTok account by username.
## Tool details
| Field | Value |
| ------------- | --------------------------------- |
| Tool name | `tiktok_get_user` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/users/{username}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | TikTok username (with or without @ symbol) |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_user",
"arguments": {
"username": "khaby.lame",
"projection_preset": "minimal",
"data_fields": [
"entityId",
"name",
"preferredUsername",
"published"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `preferredUsername`
* `summary`
* `attachment`
* `published`
* `isPrivate`
* `isVerified`
* `isLive`
* `hasLikes`
* `hasPlaylists`
* `followerCount`
* `followingCount`
* `language`
* `likeCount`
* `likedCount`
* `mediaCount`
* `icon`
* `image`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user collections
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-user-collections
Returns a paginated list of video collections (playlists and mixes) on a TikTok user's profile. Includes collection name, cover image, and video count.
## What it does
Returns a paginated list of video collections (playlists and mixes) on a TikTok user's profile. Includes collection name, cover image, and video count.
## Tool details
| Field | Value |
| ------------- | --------------------------------------------- |
| Tool name | `tiktok_get_user_collections` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/users/{username}/collections` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | TikTok username (with or without @ symbol) |
| `count` | `integer` | No | Number of collections to fetch (maximum: 30) Default: `30`. |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_user_collections",
"arguments": {
"username": "khaby.lame",
"count": 30,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"totalItems",
"entityId",
"name",
"image",
"id"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `name`
* `image`
* `totalItems`
* `entityId`
* `attributedTo`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user followers list
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-user-followers
Returns a paginated list of accounts following a TikTok user. Maximum 30 per page. Includes profile details for each follower account.
## What it does
Returns a paginated list of accounts following a TikTok user. Maximum 30 per page. Includes profile details for each follower account.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------- |
| Tool name | `tiktok_get_user_followers` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/users/{username}/followers` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | TikTok username (with or without @ symbol) |
| `count` | `integer` | No | Number of users to fetch (maximum: 30) Default: `30`. |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_user_followers",
"arguments": {
"username": "khaby.lame",
"count": 30,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"name",
"preferredUsername",
"published",
"summary"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `preferredUsername`
* `summary`
* `attachment`
* `published`
* `isPrivate`
* `isVerified`
* `isLive`
* `hasLikes`
* `hasPlaylists`
* `followerCount`
* `followingCount`
* `language`
* `likeCount`
* `likedCount`
* `mediaCount`
* `icon`
* `image`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user following list
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-user-following
Returns a paginated list of accounts a TikTok user follows. Maximum 30 per page. Includes profile details for each followed account.
## What it does
Returns a paginated list of accounts a TikTok user follows. Maximum 30 per page. Includes profile details for each followed account.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------- |
| Tool name | `tiktok_get_user_following` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/users/{username}/following` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | TikTok username (with or without @ symbol) |
| `count` | `integer` | No | Number of users to fetch (maximum: 30) Default: `30`. |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_user_following",
"arguments": {
"username": "khaby.lame",
"count": 30,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"name",
"preferredUsername",
"published",
"summary"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `preferredUsername`
* `summary`
* `attachment`
* `published`
* `isPrivate`
* `isVerified`
* `isLive`
* `hasLikes`
* `hasPlaylists`
* `followerCount`
* `followingCount`
* `language`
* `likeCount`
* `likedCount`
* `mediaCount`
* `icon`
* `image`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user liked videos
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-user-likes
Returns a paginated list of videos liked by a TikTok user. Note: Users may have their likes set to private, in which case an empty list will be returned.
## What it does
Returns a paginated list of videos liked by a TikTok user. Note: Users may have their likes set to private, in which case an empty list will be returned.
## Tool details
| Field | Value |
| ------------- | --------------------------------------- |
| Tool name | `tiktok_get_user_likes` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/users/{username}/likes` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | TikTok username (with or without @ symbol) |
| `count` | `integer` | No | Number of videos to fetch (maximum: 35) Default: `35`. |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_user_likes",
"arguments": {
"username": "khaby.lame",
"count": 35,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"viewCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `duration`
* `viewCount`
* `likeCount`
* `commentCount`
* `repostCount`
* `shareCount`
* `saveCount`
* `language`
* `isSponsored`
* `location`
* `tag`
* `attributedTo`
* `attachment`
* `image`
* `preview`
* `audio`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user live stream
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-user-live
Returns the current live stream for a user, including stream URLs and viewer count. Returns 404 if the user is not currently live.
## What it does
Returns the current live stream for a user, including stream URLs and viewer count. Returns 404 if the user is not currently live.
## Tool details
| Field | Value |
| ------------- | -------------------------------------- |
| Tool name | `tiktok_get_user_live` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/users/{username}/live` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | TikTok username (with or without @ symbol) |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_user_live",
"arguments": {
"username": "khaby.lame",
"projection_preset": "minimal",
"data_fields": [
"entityId",
"published",
"content",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `entityId`
* `published`
* `isLive`
* `viewCount`
* `viewerCount`
* `content`
* `attributedTo`
* `image`
* `attachment`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user reposts
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-user-reposts
Returns a paginated list of videos reposted by a TikTok user. Note: Users may have their reposts set to private, in which case an empty list will be returned.
## What it does
Returns a paginated list of videos reposted by a TikTok user. Note: Users may have their reposts set to private, in which case an empty list will be returned.
## Tool details
| Field | Value |
| ------------- | ----------------------------------------- |
| Tool name | `tiktok_get_user_reposts` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/users/{username}/reposts` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------ |
| `username` | `string` | Yes | TikTok username (with or without @ symbol) |
| `count` | `integer` | No | Number of videos to fetch (maximum: 30) Default: `30`. |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `order` | `string` | No | Sort order: newest (default), popular, or oldest Default: `newest`. Allowed values: `newest`, `popular`, `oldest`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_user_reposts",
"arguments": {
"username": "khaby.lame",
"count": 30,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"viewCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `duration`
* `viewCount`
* `likeCount`
* `commentCount`
* `repostCount`
* `shareCount`
* `saveCount`
* `language`
* `isSponsored`
* `location`
* `tag`
* `attributedTo`
* `attachment`
* `image`
* `preview`
* `audio`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user stories
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-user-stories
Returns a paginated list of active stories for a TikTok user. Stories expire after 24 hours and include both images and videos with engagement data.
## What it does
Returns a paginated list of active stories for a TikTok user. Stories expire after 24 hours and include both images and videos with engagement data.
## Tool details
| Field | Value |
| ------------- | ----------------------------------------- |
| Tool name | `tiktok_get_user_stories` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/users/{username}/stories` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | TikTok username (with or without @ symbol) |
| `count` | `integer` | No | Number of stories to fetch (maximum: 35) Default: `4`. |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_user_stories",
"arguments": {
"username": "khaby.lame",
"count": 4,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"viewCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `endTime`
* `viewCount`
* `likeCount`
* `commentCount`
* `repostCount`
* `shareCount`
* `saveCount`
* `attributedTo`
* `duration`
* `attachment`
* `image`
* `preview`
* `audio`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user videos
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-user-videos
Returns a paginated list of videos from a user's profile. Supports sorting by newest, popular, or oldest. Maximum 35 videos per page.
## What it does
Returns a paginated list of videos from a user's profile. Supports sorting by newest, popular, or oldest. Maximum 35 videos per page.
## Tool details
| Field | Value |
| ------------- | ---------------------------------------- |
| Tool name | `tiktok_get_user_videos` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/users/{username}/videos` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------ |
| `username` | `string` | Yes | TikTok username (with or without @ symbol) |
| `count` | `integer` | No | Number of videos to fetch (maximum: 35) Default: `35`. |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `order` | `string` | No | Sort order: newest (default), popular, or oldest Default: `newest`. Allowed values: `newest`, `popular`, `oldest`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_user_videos",
"arguments": {
"username": "khaby.lame",
"count": 35,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"viewCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `duration`
* `viewCount`
* `likeCount`
* `commentCount`
* `repostCount`
* `shareCount`
* `saveCount`
* `language`
* `isSponsored`
* `location`
* `tag`
* `attributedTo`
* `attachment`
* `image`
* `preview`
* `audio`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get video details
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-video
Returns details for a single TikTok video including engagement counts, media files in multiple qualities, audio track, author info, and hashtags.
## What it does
Returns details for a single TikTok video including engagement counts, media files in multiple qualities, audio track, author info, and hashtags.
## Tool details
| Field | Value |
| ------------- | --------------------------------- |
| Tool name | `tiktok_get_video` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/videos/{videoId}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `videoId` | `string` | Yes | TikTok video ID |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_video",
"arguments": {
"videoId": "7526718640041882912",
"projection_preset": "minimal",
"data_fields": [
"entityId",
"published",
"content",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `duration`
* `viewCount`
* `likeCount`
* `commentCount`
* `repostCount`
* `shareCount`
* `saveCount`
* `language`
* `isSponsored`
* `location`
* `tag`
* `attributedTo`
* `attachment`
* `image`
* `preview`
* `audio`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get video comments
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-video-comments
Returns a paginated list of top-level comments on a video. Maximum 50 per page. Use the replies endpoint to fetch threaded replies.
## What it does
Returns a paginated list of top-level comments on a video. Maximum 50 per page. Use the replies endpoint to fetch threaded replies.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------ |
| Tool name | `tiktok_get_video_comments` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/videos/{videoId}/comments` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `videoId` | `string` | Yes | TikTok video ID |
| `count` | `integer` | No | Number of comments to fetch (maximum: 50) Default: `20`. |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_video_comments",
"arguments": {
"videoId": "7526718640041882912",
"count": 20,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"likeCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `language`
* `published`
* `likeCount`
* `replyCount`
* `status`
* `isPinned`
* `isLiked`
* `attributedTo`
* `inReplyTo`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get video download URL
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-video-download-url
Returns a video file URL you can download directly with a plain GET request — no cookies, no auth headers, no browser fingerprinting needed on your end. Not permanent, only valid for a few hours.
## What it does
Returns a video file URL you can download directly with a plain GET request — no cookies, no auth headers, no browser fingerprinting needed on your end. Not permanent, only valid for a few hours.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------ |
| Tool name | `tiktok_get_video_download_url` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/videos/{videoId}/download` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `videoId` | `string` | Yes | TikTok video ID |
| `url` | `string` | No | Optional: an `aweme/v1/play/` URL copied from a prior video detail response for this same video. Providing it lets this endpoint skip re-fetching the video detail internally. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_video_download_url",
"arguments": {
"videoId": "7526718640041882912",
"projection_preset": "minimal",
"data_fields": [
"url",
"type",
"mediaType"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `url`
* `mediaType`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get video transcript
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/get-video-transcript
Returns the transcript for a video. Use `original` as the language to return the auto-generated transcript, or provide a BCP47 language code for machine-translated subtitles. Returns WebVTT format.
## What it does
Returns the transcript for a video. Use `original` as the language to return the auto-generated transcript, or provide a BCP47 language code for machine-translated subtitles. Returns WebVTT format.
## Tool details
| Field | Value |
| ------------- | -------------------------------------------------------- |
| Tool name | `tiktok_get_video_transcript` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/videos/{videoId}/transcripts/{language}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `videoId` | `string` | Yes | TikTok video ID |
| `language` | `string` | Yes | BCP47 language code, or `original` Allowed values: `original`, `ar-SA`, `az-AZ`, `ca-ES`, `ceb-PH`, `cs-CZ`, `da-DK`, `de-DE`, `en-US`, `es-ES`, `et-EE`, `fi-FI`, `fil-PH`, `fr-FR`, `ga-IE`, `he-IL`, `hr-HR`, `id-ID`, `it-IT`, `ja-JP`, `ko-KR`, `lv-LV`, `lt-LT`, `ms-MY`, `nb-NO`, `nl-NL`, `pl-PL`, `pt-PT`, `ru-RU`, `sw-SW`, `sv-SE`, `th-TH`, `uk-UA`, `vi-VN`, `zh-Hans-CN`, `zh-Hant-CN`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_get_video_transcript",
"arguments": {
"videoId": "7526718640041882912",
"language": "en-US",
"projection_preset": "minimal",
"data_fields": [
"content",
"url",
"type",
"id"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `mediaType`
* `language`
* `size`
* `source`
* `content`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Search content
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/search-content
General search that returns mixed results including videos and user profiles. Supports sorting and publish-time filters.
## What it does
General search that returns mixed results including videos and user profiles. Supports sorting and publish-time filters.
## Tool details
| Field | Value |
| ------------- | ----------------------- |
| Tool name | `tiktok_search_content` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/search` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query` | `string` | Yes | Search query |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `count` | `integer` | No | Number of items to fetch (maximum: 100, actual results may vary) Default: `50`. |
| `order` | `string` | No | Sort order: relevance (default), most-liked, or date-posted Default: `relevance`. Allowed values: `relevance`, `most-liked`, `date-posted`. |
| `published` | `string` | No | Filter by publish time: all-time (default), yesterday, this-week, this-month, last-3-months, or last-6-months Default: `all-time`. Allowed values: `all-time`, `yesterday`, `this-week`, `this-month`, `last-3-months`, `last-6-months`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_search_content",
"arguments": {
"query": "cooking",
"count": 50,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"viewCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `duration`
* `viewCount`
* `likeCount`
* `commentCount`
* `repostCount`
* `shareCount`
* `saveCount`
* `language`
* `isSponsored`
* `location`
* `tag`
* `attributedTo`
* `attachment`
* `image`
* `preview`
* `audio`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Search users
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/search-users
Searches TikTok for user profiles matching a query. Fixed page size of 10 (platform limit). Returns profile details including follower counts and verification status.
## What it does
Searches TikTok for user profiles matching a query. Fixed page size of 10 (platform limit). Returns profile details including follower counts and verification status.
## Tool details
| Field | Value |
| ------------- | ----------------------------- |
| Tool name | `tiktok_search_users` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/search/users` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `query` | `string` | Yes | Search query |
| `count` | `integer` | No | Page size (fixed at 10 by the platform) Default: `10`. |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_search_users",
"arguments": {
"query": "cooking",
"count": 10,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"name",
"preferredUsername",
"published",
"summary"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `preferredUsername`
* `summary`
* `attachment`
* `published`
* `isPrivate`
* `isVerified`
* `isLive`
* `hasLikes`
* `hasPlaylists`
* `followerCount`
* `followingCount`
* `language`
* `likeCount`
* `likedCount`
* `mediaCount`
* `icon`
* `image`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Search videos
Source: https://docs.konbiniapi.com/reference/mcp/tools/tiktok/search-videos
Searches TikTok for videos matching a query. Supports filtering by publish time and sorting by relevance, likes, or date.
## What it does
Searches TikTok for videos matching a query. Supports filtering by publish time and sorting by relevance, likes, or date.
## Tool details
| Field | Value |
| ------------- | ------------------------------ |
| Tool name | `tiktok_search_videos` |
| Platform | TikTok |
| REST endpoint | `GET /v1/tiktok/search/videos` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query` | `string` | Yes | Search query |
| `cursor` | `string` | No | Pagination cursor Default: `0`. |
| `count` | `integer` | No | Number of videos to fetch (maximum: 100, actual results may vary) Default: `50`. |
| `order` | `string` | No | Sort order: relevance (default), most-liked, or date-posted Default: `relevance`. Allowed values: `relevance`, `most-liked`, `date-posted`. |
| `published` | `string` | No | Filter by publish time: all-time (default), yesterday, this-week, this-month, last-3-months, or last-6-months Default: `all-time`. Allowed values: `all-time`, `yesterday`, `this-week`, `this-month`, `last-3-months`, `last-6-months`. |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "tiktok_search_videos",
"arguments": {
"query": "cooking",
"count": 50,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"viewCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `duration`
* `viewCount`
* `likeCount`
* `commentCount`
* `repostCount`
* `shareCount`
* `saveCount`
* `language`
* `isSponsored`
* `location`
* `tag`
* `attributedTo`
* `attachment`
* `image`
* `preview`
* `audio`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get community
Source: https://docs.konbiniapi.com/reference/mcp/tools/x/get-community
Returns public metadata for an X community, including description, member count, topic, creator, and banner image.
## What it does
Returns public metadata for an X community, including description, member count, topic, creator, and banner image.
## Tool details
| Field | Value |
| ------------- | ------------------------------------- |
| Tool name | `x_get_community` |
| Platform | X |
| REST endpoint | `GET /v1/x/communities/{communityId}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `communityId` | `string` | Yes | X community ID |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "x_get_community",
"arguments": {
"communityId": "",
"projection_preset": "minimal",
"data_fields": [
"entityId",
"name",
"published",
"summary"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `summary`
* `published`
* `memberCount`
* `category`
* `tag`
* `rule`
* `attributedTo`
* `image`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get community media
Source: https://docs.konbiniapi.com/reference/mcp/tools/x/get-community-media
Returns public posts from an X community's Media tab as visible to not logged in users.
## What it does
Returns public posts from an X community's Media tab as visible to not logged in users.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------- |
| Tool name | `x_get_community_media` |
| Platform | X |
| REST endpoint | `GET /v1/x/communities/{communityId}/media` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------- |
| `communityId` | `string` | Yes | X community ID |
| `count` | `integer` | No | Maximum number of media posts to return from the community media timeline (maximum: 100) Default: `40`. |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "x_get_community_media",
"arguments": {
"communityId": "",
"count": 40,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"viewCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `likeCount`
* `replyCount`
* `viewCount`
* `repostCount`
* `quoteCount`
* `saveCount`
* `contentFormat`
* `isEdited`
* `attributedTo`
* `inReplyTo`
* `quote`
* `image`
* `attachment`
* `tag`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get community posts
Source: https://docs.konbiniapi.com/reference/mcp/tools/x/get-community-posts
Returns public posts from an X community timeline as visible to not logged in users.
## What it does
Returns public posts from an X community timeline as visible to not logged in users.
## Tool details
| Field | Value |
| ------------- | ------------------------------------------- |
| Tool name | `x_get_community_posts` |
| Platform | X |
| REST endpoint | `GET /v1/x/communities/{communityId}/posts` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `communityId` | `string` | Yes | X community ID |
| `count` | `integer` | No | Maximum number of posts to return from the community timeline (maximum: 100) Default: `40`. |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "x_get_community_posts",
"arguments": {
"communityId": "",
"count": 40,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"viewCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `likeCount`
* `replyCount`
* `viewCount`
* `repostCount`
* `quoteCount`
* `saveCount`
* `contentFormat`
* `isEdited`
* `attributedTo`
* `inReplyTo`
* `quote`
* `image`
* `attachment`
* `tag`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get post
Source: https://docs.konbiniapi.com/reference/mcp/tools/x/get-post
Returns a public X post including text, author, engagement counts, and media attachments.
## What it does
Returns a public X post including text, author, engagement counts, and media attachments.
## Tool details
| Field | Value |
| ------------- | -------------------------- |
| Tool name | `x_get_post` |
| Platform | X |
| REST endpoint | `GET /v1/x/posts/{postId}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `postId` | `string` | Yes | X post ID |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "x_get_post",
"arguments": {
"postId": "DM8Q1ABC123",
"projection_preset": "minimal",
"data_fields": [
"entityId",
"published",
"content",
"url"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `likeCount`
* `replyCount`
* `viewCount`
* `repostCount`
* `quoteCount`
* `saveCount`
* `contentFormat`
* `isEdited`
* `attributedTo`
* `inReplyTo`
* `quote`
* `image`
* `attachment`
* `tag`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user profile
Source: https://docs.konbiniapi.com/reference/mcp/tools/x/get-user
Returns profile information for a public X account including bio, follower counts, verification flags, and profile images.
## What it does
Returns profile information for a public X account including bio, follower counts, verification flags, and profile images.
## Tool details
| Field | Value |
| ------------- | ---------------------------- |
| Tool name | `x_get_user` |
| Platform | X |
| REST endpoint | `GET /v1/x/users/{username}` |
| Result type | Detail tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | X username (with or without @ symbol) |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "x_get_user",
"arguments": {
"username": "khaby.lame",
"projection_preset": "minimal",
"data_fields": [
"entityId",
"name",
"preferredUsername",
"published"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `id`
* `url`
* `entityId`
* `name`
* `preferredUsername`
* `summary`
* `attachment`
* `published`
* `isPrivate`
* `isVerified`
* `isPaidVerified`
* `followerCount`
* `followingCount`
* `likeCount`
* `postCount`
* `mediaCount`
* `listedCount`
* `location`
* `icon`
* `image`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user highlights
Source: https://docs.konbiniapi.com/reference/mcp/tools/x/get-user-highlights
Returns the public Highlights tab selection as visible to not logged in users. This feed is not guaranteed to be chronological. Pages may overlap: a pinned post is repeated on every page, so deduplicate by id when paging.
## What it does
Returns the public Highlights tab selection as visible to not logged in users. This feed is not guaranteed to be chronological. Pages may overlap: a pinned post is repeated on every page, so deduplicate by id when paging.
## Tool details
| Field | Value |
| ------------- | --------------------------------------- |
| Tool name | `x_get_user_highlights` |
| Platform | X |
| REST endpoint | `GET /v1/x/users/{username}/highlights` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | X username (with or without @ symbol) |
| `count` | `integer` | No | Number of highlighted posts to return per page (maximum: 100) Default: `40`. |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "x_get_user_highlights",
"arguments": {
"username": "khaby.lame",
"count": 40,
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"viewCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `likeCount`
* `replyCount`
* `viewCount`
* `repostCount`
* `quoteCount`
* `saveCount`
* `contentFormat`
* `isEdited`
* `attributedTo`
* `inReplyTo`
* `quote`
* `image`
* `attachment`
* `tag`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).
# Get user posts
Source: https://docs.konbiniapi.com/reference/mcp/tools/x/get-user-posts
Returns public posts from a user's profile as visible to not logged in users. This feed is not guaranteed to be chronological and is often a ranked public selection. Pages may overlap: a pinned post is repeated on every page, so deduplicate by id when paging.
## What it does
Returns public posts from a user's profile as visible to not logged in users. This feed is not guaranteed to be chronological and is often a ranked public selection. Pages may overlap: a pinned post is repeated on every page, so deduplicate by id when paging.
## Tool details
| Field | Value |
| ------------- | ---------------------------------- |
| Tool name | `x_get_user_posts` |
| Platform | X |
| REST endpoint | `GET /v1/x/users/{username}/posts` |
| Result type | Collection tool |
## Parameters
| Parameter | Type | Required | Description |
| ------------------- | ---------- | -------- | ---------------------------------------------------------------------------------------------- |
| `username` | `string` | Yes | X username (with or without @ symbol) |
| `cursor` | `string` | No | Pagination cursor |
| `projection_preset` | `string` | No | Defaults to `minimal`. Allowed values: `full`, `minimal`, `identity`, `engagement`, `content`. |
| `data_fields` | `string[]` | No | Adds top-level keys from `data` on top of the selected `projection_preset`. |
| `item_fields` | `string[]` | No | Adds keys from `data.orderedItems[]` on top of the selected `projection_preset`. |
## Example
```json theme={null}
{
"name": "x_get_user_posts",
"arguments": {
"username": "khaby.lame",
"projection_preset": "minimal",
"data_fields": [
"orderedItems",
"nextCursor",
"cursor",
"itemCount"
],
"item_fields": [
"entityId",
"published",
"content",
"url",
"viewCount"
]
}
}
```
## Available data fields
* `@context`
* `type`
* `partOf`
* `totalItems`
* `cursor`
* `nextCursor`
* `next`
* `itemCount`
* `orderedItems`
## Available item fields
* `type`
* `id`
* `url`
* `entityId`
* `content`
* `published`
* `likeCount`
* `replyCount`
* `viewCount`
* `repostCount`
* `quoteCount`
* `saveCount`
* `contentFormat`
* `isEdited`
* `attributedTo`
* `inReplyTo`
* `quote`
* `image`
* `attachment`
* `tag`
## Response notes
Successful calls return a JSON object with a top-level `data` field and, when
available, `metadata.creditsUsed` and `metadata.creditsRemaining`. See
[response format](/getting-started/response-format),
[pagination](/getting-started/pagination), and [credits](/getting-started/credits).