Typefully
Connect to Typefully to create and schedule multi-platform social drafts, manage media, tags, queues, comments, webhooks, and analytics.
认证方式
| 方式 | 底层类型 | 状态 | 说明 |
|---|---|---|---|
| API Key | api_key | available | — |
调用示例
import { createClient } from "@open-connector/sdk";const oc = createClient({ baseUrl: "https://api.openconnector.dev", apiKey: process.env.OPEN_CONNECTOR_API_KEY!,});const result = await oc.executeTool({ slug: "TYPEFULLY_APPS_APIV2_HANDLERS_ANALYTICS_GET_SOCIAL_SET_ANALYTICS_FOLLOWERS", connectedAccountId: "conn_...", arguments: { /* match this tool's input schema */ },});import Composio from "@composio/client";const composio = new Composio({ baseURL: "https://api.openconnector.dev/composio", apiKey: process.env.OPEN_CONNECTOR_API_KEY!,});const result = await composio.tools.execute("TYPEFULLY_APPS_APIV2_HANDLERS_ANALYTICS_GET_SOCIAL_SET_ANALYTICS_FOLLOWERS", { connected_account_id: "conn_...", arguments: { /* match this tool's input schema */ },});oc tools execute TYPEFULLY_APPS_APIV2_HANDLERS_ANALYTICS_GET_SOCIAL_SET_ANALYTICS_FOLLOWERS --data '{ }'Tool 目录
可用 Tools
25 个可调用操作
Get followers analyticsTYPEFULLY_APPS_APIV2_HANDLERS_ANALYTICS_GET_SOCIAL_SET_ANALYTICS_FOLLOWERSRetrieve daily follower counts for a platform in a social set between `start_date` and `end_date` (inclusive). **Required permission:** READ access to this social set. Notes: - `platform` is a path parameter (for example: `x`, `linkedin`). - This endpoint is social-set scoped and platform-scoped to support analytics expansion. - Currently, only `x` is supported. - Returns a totals-only daily follower series with the latest in-range follower count. - If `start_date` and `end_date` are omitted, defaults to the last 30 days. - Date ranges larger than 366 days are rejected.需要连接
Retrieve daily follower counts for a platform in a social set between `start_date` and `end_date` (inclusive). **Required permission:** READ access to this social set. Notes: - `platform` is a path parameter (for example: `x`, `linkedin`). - This endpoint is social-set scoped and platform-scoped to support analytics expansion. - Currently, only `x` is supported. - Returns a totals-only daily follower series with the latest in-range follower count. - If `start_date` and `end_date` are omitted, defaults to the last 30 days. - Date ranges larger than 366 days are rejected.
认证
需要 Connected AccountTags
List analytics postsTYPEFULLY_APPS_APIV2_HANDLERS_ANALYTICS_LIST_SOCIAL_SET_ANALYTICS_POSTSRetrieve posts with metrics for a platform in a social set between `start_date` and `end_date` (inclusive). **Required permission:** READ access to this social set. Notes: - `platform` is a path parameter (for example: `x`, `linkedin`). - This endpoint is social-set scoped and platform-scoped to support analytics expansion. - Currently, only `x` is supported. - Replies are excluded by default. Set `include_replies=true` to include them. - Pagination defaults to `limit=25` with max `limit=100`. - Date ranges larger than 366 days are rejected.需要连接
Retrieve posts with metrics for a platform in a social set between `start_date` and `end_date` (inclusive). **Required permission:** READ access to this social set. Notes: - `platform` is a path parameter (for example: `x`, `linkedin`). - This endpoint is social-set scoped and platform-scoped to support analytics expansion. - Currently, only `x` is supported. - Replies are excluded by default. Set `include_replies=true` to include them. - Pagination defaults to `limit=25` with max `limit=100`. - Date ranges larger than 366 days are rejected.
认证
需要 Connected AccountTags
Add a comment to an existing comment threadTYPEFULLY_APPS_APIV2_HANDLERS_COMMENTS_ADD_COMMENT_TO_THREADAppend a comment to an existing comment thread. Returns the full updated thread. **Required permission:** WRITE access to this social set.需要连接
Append a comment to an existing comment thread. Returns the full updated thread. **Required permission:** WRITE access to this social set.
认证
需要 Connected AccountTags
Create a comment threadTYPEFULLY_APPS_APIV2_HANDLERS_COMMENTS_CREATE_COMMENTCreate a new comment thread on a draft. A comment thread is the anchored discussion container; comments are the messages inside the thread. For post platforms (`x`, `linkedin`, `mastodon`, `threads`, `bluesky`), provide `post_index` and anchor to a substring of that post's visible text using `selected_text`. Use `occurrence` to disambiguate when the same substring appears more than once; omit it to anchor on the first match. For X Articles, send `platform: "x_article"` and omit `post_index` (or use 0). `selected_text` matches rendered article text in document order; Markdown syntax, media tags, and X post embed tags are ignored. X Article text comments cannot overlap existing stored X Article anchors; overlapping selections return `400 VALIDATION_ERROR`. LinkedIn mentions appear in `posts[*].text` as `@[Name](urn:li:organization:ID)` or `@[Name](urn:li:person:ID)`. A mention is indivisible — `selected_text` must either contain the entire mention substring or stay outside it. **Required permission:** WRITE access to this social set.需要连接
Create a new comment thread on a draft. A comment thread is the anchored discussion container; comments are the messages inside the thread. For post platforms (`x`, `linkedin`, `mastodon`, `threads`, `bluesky`), provide `post_index` and anchor to a substring of that post's visible text using `selected_text`. Use `occurrence` to disambiguate when the same substring appears more than once; omit it to anchor on the first match. For X Articles, send `platform: "x_article"` and omit `post_index` (or use 0). `selected_text` matches rendered article text in document order; Markdown syntax, media tags, and X post embed tags are ignored. X Article text comments cannot overlap existing stored X Article anchors; overlapping selections return `400 VALIDATION_ERROR`. LinkedIn mentions appear in `posts[*].text` as `@[Name](urn:li:organization:ID)` or `@[Name](urn:li:person:ID)`. A mention is indivisible — `selected_text` must either contain the entire mention substring or stay outside it. **Required permission:** WRITE access to this social set.
认证
需要 Connected AccountTags
Delete a commentTYPEFULLY_APPS_APIV2_HANDLERS_COMMENTS_DELETE_COMMENTDeletes a comment from a comment thread. If `comment_id` identifies the *root* (oldest) comment, the entire thread is deleted and the corresponding comment markers are removed from the text. **Required permission:** Authorship of the comment or WRITE access on the social set.需要连接
Deletes a comment from a comment thread. If `comment_id` identifies the *root* (oldest) comment, the entire thread is deleted and the corresponding comment markers are removed from the text. **Required permission:** Authorship of the comment or WRITE access on the social set.
认证
需要 Connected AccountTags
Delete a comment threadTYPEFULLY_APPS_APIV2_HANDLERS_COMMENTS_DELETE_THREADDeletes the comment thread along with all its comments and removes the corresponding comment markers from the text. **Required permission:** Authorship of the comment thread or WRITE access on the social set.需要连接
Deletes the comment thread along with all its comments and removes the corresponding comment markers from the text. **Required permission:** Authorship of the comment thread or WRITE access on the social set.
认证
需要 Connected AccountTags
List comment threads on a draftTYPEFULLY_APPS_APIV2_HANDLERS_COMMENTS_LIST_COMMENTSRetrieve comment threads attached to a draft, ordered by creation time. Each thread includes the original `selected_text` snapshot and the full ordered list of comments. By default this endpoint returns only unresolved threads (`status=unresolved`). Use `status=resolved` to list resolved threads or `status=all` to list both unresolved and resolved threads. Example: `GET /v2/social-sets/4/drafts/12/comment-threads?status=all&limit=50`. **Required permission:** READ access to this social set.需要连接
Retrieve comment threads attached to a draft, ordered by creation time. Each thread includes the original `selected_text` snapshot and the full ordered list of comments. By default this endpoint returns only unresolved threads (`status=unresolved`). Use `status=resolved` to list resolved threads or `status=all` to list both unresolved and resolved threads. Example: `GET /v2/social-sets/4/drafts/12/comment-threads?status=all&limit=50`. **Required permission:** READ access to this social set.
认证
需要 Connected AccountTags
Resolve a comment threadTYPEFULLY_APPS_APIV2_HANDLERS_COMMENTS_RESOLVE_THREADResolves the comment thread and removes the corresponding comment markers from the text. **Required permission:** Either authorship of the comment thread or WRITE access on the social set.需要连接
Resolves the comment thread and removes the corresponding comment markers from the text. **Required permission:** Either authorship of the comment thread or WRITE access on the social set.
认证
需要 Connected AccountTags
Update a comment's textTYPEFULLY_APPS_APIV2_HANDLERS_COMMENTS_UPDATE_COMMENTUpdate the plain-text body of a single comment. Returns the full updated thread. **Required permission:** Authorship of the comment.需要连接
Update the plain-text body of a single comment. Returns the full updated thread. **Required permission:** Authorship of the comment.
认证
需要 Connected AccountTags
Create draftTYPEFULLY_APPS_APIV2_HANDLERS_DRAFTS_CREATE_DRAFTCreate a new draft with content for one or more social media platforms. The draft can be saved as a draft, scheduled for later publishing, or published immediately. **Account-level settings:** This endpoint automatically applies the following account-level settings if enabled: Auto-Retweet, Auto-Plug, and Natural Posting Time. **Required permission:** WRITE access to create drafts. PUBLISH access is required to schedule or publish immediately.需要连接
Create a new draft with content for one or more social media platforms. The draft can be saved as a draft, scheduled for later publishing, or published immediately. **Account-level settings:** This endpoint automatically applies the following account-level settings if enabled: Auto-Retweet, Auto-Plug, and Natural Posting Time. **Required permission:** WRITE access to create drafts. PUBLISH access is required to schedule or publish immediately.
认证
需要 Connected AccountTags
Delete draftTYPEFULLY_APPS_APIV2_HANDLERS_DRAFTS_DELETE_DRAFTDelete a draft. Requires WRITE access. You can delete your own drafts in any status (DRAFT, ERROR, SCHEDULED, PUBLISHED, PUBLISHING) with WRITE access. Drafts created by other users also require WRITE access to delete. **Required permission:** WRITE access to this social set.需要连接
Delete a draft. Requires WRITE access. You can delete your own drafts in any status (DRAFT, ERROR, SCHEDULED, PUBLISHED, PUBLISHING) with WRITE access. Drafts created by other users also require WRITE access to delete. **Required permission:** WRITE access to this social set.
认证
需要 Connected AccountTags
Update draftTYPEFULLY_APPS_APIV2_HANDLERS_DRAFTS_EDIT_DRAFTUpdate an existing draft with partial update semantics. Only provided fields are updated; omitted fields remain unchanged. Scheduled drafts require publish access to edit. ## Note about Comment-thread markers If the draft has comment threads, submitted `posts[*].text` and X Article `platforms.x_article.content_markdown` must preserve the Typefully comment-thread markers received from `GET /drafts/{id}`. Validation is platform-level: every comment thread anchored on a platform must appear somewhere in that platform's submitted text. Recommended edit flow: GET the draft without `exclude_comment_markers`, modify text while preserving markers exactly, then PATCH with `force_overwrite_comments: false` (the default). - `409 COMMENTS_MARKER_MISMATCH` will be thrown if an expected comment thread marker is missing unless `"force_overwrite_comments": true` is set, in which case the affected threads are resolved server-side. - `400 COMMENTS_MARKER_UNKNOWN_ID` will be thrown if you submit an id that doesn't exist on this draft. - `400 COMMENTS_MARKER_MALFORMED` will be thrown if the marker tag is malformed (bad UUID, unbalanced, attribute violations, etc.). Pass `?exclude_comment_markers=true` to render the response text without markers (read-only / display rendering — does NOT skip server-side marker validation on the request body). Do not PATCH content returned with that flag unless you intend to resolve or remove comment anchors. **Required permission:** WRITE access to edit drafts. PUBLISH access is required to edit scheduled drafts, schedule, or publish.需要连接
Update an existing draft with partial update semantics. Only provided fields are updated; omitted fields remain unchanged. Scheduled drafts require publish access to edit. ## Note about Comment-thread markers If the draft has comment threads, submitted `posts[*].text` and X Article `platforms.x_article.content_markdown` must preserve the Typefully comment-thread markers received from `GET /drafts/{id}`. Validation is platform-level: every comment thread anchored on a platform must appear somewhere in that platform's submitted text. Recommended edit flow: GET the draft without `exclude_comment_markers`, modify text while preserving markers exactly, then PATCH with `force_overwrite_comments: false` (the default). - `409 COMMENTS_MARKER_MISMATCH` will be thrown if an expected comment thread marker is missing unless `"force_overwrite_comments": true` is set, in which case the affected threads are resolved server-side. - `400 COMMENTS_MARKER_UNKNOWN_ID` will be thrown if you submit an id that doesn't exist on this draft. - `400 COMMENTS_MARKER_MALFORMED` will be thrown if the marker tag is malformed (bad UUID, unbalanced, attribute violations, etc.). Pass `?exclude_comment_markers=true` to render the response text without markers (read-only / display rendering — does NOT skip server-side marker validation on the request body). Do not PATCH content returned with that flag unless you intend to resolve or remove comment anchors. **Required permission:** WRITE access to edit drafts. PUBLISH access is required to edit scheduled drafts, schedule, or publish.
认证
需要 Connected AccountTags
Get draftTYPEFULLY_APPS_APIV2_HANDLERS_DRAFTS_GET_DRAFTRetrieve a specific draft by ID, including its content for all configured platforms, status, and scheduling information. If the draft has comment threads, the response includes Typefully comment-thread markers in `posts[*].text` and, for X Articles, in `platforms.x_article.content_markdown`. These markers are structural anchor metadata for `GET → modify → PATCH` round-trips; preserve them exactly when editing. For read-only display/export, pass `?exclude_comment_markers=true` to render draft text without markers. Content returned with that flag set should not be PATCHed back unless you intend to resolve or remove comment anchors. **Required permission:** READ access to this social set.需要连接
Retrieve a specific draft by ID, including its content for all configured platforms, status, and scheduling information. If the draft has comment threads, the response includes Typefully comment-thread markers in `posts[*].text` and, for X Articles, in `platforms.x_article.content_markdown`. These markers are structural anchor metadata for `GET → modify → PATCH` round-trips; preserve them exactly when editing. For read-only display/export, pass `?exclude_comment_markers=true` to render draft text without markers. Content returned with that flag set should not be PATCHed back unless you intend to resolve or remove comment anchors. **Required permission:** READ access to this social set.
认证
需要 Connected AccountTags
List draftsTYPEFULLY_APPS_APIV2_HANDLERS_DRAFTS_LIST_DRAFTSRetrieve all drafts for a specific social set with optional filtering and sorting. Drafts are ordered by last edited date (most recent first) by default. **Required permission:** READ access to this social set.需要连接
Retrieve all drafts for a specific social set with optional filtering and sorting. Drafts are ordered by last edited date (most recent first) by default. **Required permission:** READ access to this social set.
认证
需要 Connected AccountTags
Resolve LinkedIn organization from URLTYPEFULLY_APPS_APIV2_HANDLERS_LINKEDIN_RESOLVE_LINKEDIN_ORGANIZATION_FROM_URLResolve a LinkedIn company/school URL into organization metadata that can be used to build LinkedIn mention syntax in post text. This endpoint is resolver-only and is not a general organization search endpoint. Mention format: `@[Company Name](urn:li:organization:123456)` **Required permission:** READ access to the social set.需要连接
Resolve a LinkedIn company/school URL into organization metadata that can be used to build LinkedIn mention syntax in post text. This endpoint is resolver-only and is not a general organization search endpoint. Mention format: `@[Company Name](urn:li:organization:123456)` **Required permission:** READ access to the social set.
认证
需要 Connected AccountTags
Create media uploadTYPEFULLY_APPS_APIV2_HANDLERS_MEDIA_CREATE_MEDIA_UPLOADGenerate a presigned S3 upload URL for images, videos, GIFs, or PDFs. After you receive the URL, upload the file contents with a PUT request and then reference the returned media_id when creating drafts. **Uploading:** Send a plain PUT with only raw file bytes as the body — no extra headers (`Content-Type`, `Authorization`, etc.). The presigned URL signature was calculated without them, so adding headers causes a `403 SignatureDoesNotMatch`. Use `curl -T <file>` (not `--data-binary`), `requests.put(url, data=file_bytes)` in Python, or `fetch(url, {method:'PUT', body:buffer})` in JS. A successful upload returns `200` or `204`. **Required permission:** WRITE access to the social set.需要连接
Generate a presigned S3 upload URL for images, videos, GIFs, or PDFs. After you receive the URL, upload the file contents with a PUT request and then reference the returned media_id when creating drafts. **Uploading:** Send a plain PUT with only raw file bytes as the body — no extra headers (`Content-Type`, `Authorization`, etc.). The presigned URL signature was calculated without them, so adding headers causes a `403 SignatureDoesNotMatch`. Use `curl -T <file>` (not `--data-binary`), `requests.put(url, data=file_bytes)` in Python, or `fetch(url, {method:'PUT', body:buffer})` in JS. A successful upload returns `200` or `204`. **Required permission:** WRITE access to the social set.
认证
需要 Connected AccountTags
Get media statusTYPEFULLY_APPS_APIV2_HANDLERS_MEDIA_GET_MEDIA_STATUSRetrieves the processing status of an uploaded media file. Poll this endpoint after uploading to check when the file is ready to use in drafts. **Required permission:** READ access to the social set.需要连接
Retrieves the processing status of an uploaded media file. Poll this endpoint after uploading to check when the file is ready to use in drafts. **Required permission:** READ access to the social set.
认证
需要 Connected AccountTags
Get queueTYPEFULLY_APPS_APIV2_HANDLERS_QUEUE_GET_QUEUERetrieve queue slots and scheduled drafts between `start_date` and `end_date` (inclusive). **Required permission:** READ access to this social set. Notes: - `start_date` and `end_date` are interpreted in the social set timezone. - Ranges larger than 62 days are rejected.需要连接
Retrieve queue slots and scheduled drafts between `start_date` and `end_date` (inclusive). **Required permission:** READ access to this social set. Notes: - `start_date` and `end_date` are interpreted in the social set timezone. - Ranges larger than 62 days are rejected.
认证
需要 Connected AccountTags
Get queue scheduleTYPEFULLY_APPS_APIV2_HANDLERS_QUEUE_GET_QUEUE_SCHEDULERetrieve the queue schedule rules for a social set. **Required permission:** READ access to this social set. Behavior: - If the schedule row does not exist yet, it is created with defaults.需要连接
Retrieve the queue schedule rules for a social set. **Required permission:** READ access to this social set. Behavior: - If the schedule row does not exist yet, it is created with defaults.
认证
需要 Connected AccountTags
Replace queue scheduleTYPEFULLY_APPS_APIV2_HANDLERS_QUEUE_PUT_QUEUE_SCHEDULEReplace the queue schedule rules for a social set. **Required permission:** ADMIN access to this social set. Semantics: full replacement (atomic). Rule validation: - `h` in `0..23`, `m` in `0..59` - `days` values are one of: `mon,tue,wed,thu,fri,sat,sun` - Duplicate day+time combinations are rejected Note: `rules=[]` is allowed and represents an empty schedule.需要连接
Replace the queue schedule rules for a social set. **Required permission:** ADMIN access to this social set. Semantics: full replacement (atomic). Rule validation: - `h` in `0..23`, `m` in `0..59` - `days` values are one of: `mon,tue,wed,thu,fri,sat,sun` - Duplicate day+time combinations are rejected Note: `rules=[]` is allowed and represents an empty schedule.
认证
需要 Connected AccountTags
Get social set detailsTYPEFULLY_APPS_APIV2_HANDLERS_SOCIAL_SETS_GET_SOCIAL_SET_DETAILSRetrieve detailed information about a social set, including every configured social media platform (X, LinkedIn, Mastodon, Threads, Bluesky) with account details and profile information. **Required permission:** READ access to the social set.需要连接
Retrieve detailed information about a social set, including every configured social media platform (X, LinkedIn, Mastodon, Threads, Bluesky) with account details and profile information. **Required permission:** READ access to the social set.
认证
需要 Connected AccountTags
List social setsTYPEFULLY_APPS_APIV2_HANDLERS_SOCIAL_SETS_LIST_SOCIAL_SETSRetrieve all social sets (accounts) you can access. This includes accounts you own directly and accounts that belong to teams you are a member of.需要连接
Retrieve all social sets (accounts) you can access. This includes accounts you own directly and accounts that belong to teams you are a member of.
认证
需要 Connected AccountTags
Create tagTYPEFULLY_APPS_APIV2_HANDLERS_TAGS_CREATE_TAGCreate a new tag for a social set. The slug is automatically generated from the tag name, which must be unique per social set. **Required permission:** WRITE access to the social set.需要连接
Create a new tag for a social set. The slug is automatically generated from the tag name, which must be unique per social set. **Required permission:** WRITE access to the social set.
认证
需要 Connected AccountTags
List tagsTYPEFULLY_APPS_APIV2_HANDLERS_TAGS_LIST_TAGSRetrieve all tags for a social set, ordered by their slugs. **Required permission:** READ access to the social set.需要连接
Retrieve all tags for a social set, ordered by their slugs. **Required permission:** READ access to the social set.
认证
需要 Connected AccountTags
Get current userTYPEFULLY_APPS_APIV2_HANDLERS_USER_GET_MERetrieve the currently authenticated Typefully user associated with your API Key需要连接
Retrieve the currently authenticated Typefully user associated with your API Key
认证
需要 Connected AccountTags