Typefully
Connect to Typefully to create and schedule multi-platform social drafts, manage media, tags, queues, comments, webhooks, and analytics.
Authentication
| Method | Kind | Status | Details |
|---|---|---|---|
| API Key | api_key | available | — |
Call a tool
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 catalog
Available tools
25 callable operations
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
Append a comment to an existing comment thread. Returns the full updated thread. **Required permission:** WRITE access to this social set.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
Update the plain-text body of a single comment. Returns the full updated thread. **Required permission:** Authorship of the comment.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
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.
Authentication
Connected account requiredTags
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.Connection
Retrieve all tags for a social set, ordered by their slugs. **Required permission:** READ access to the social set.
Authentication
Connected account requiredTags
Get current userTYPEFULLY_APPS_APIV2_HANDLERS_USER_GET_MERetrieve the currently authenticated Typefully user associated with your API KeyConnection
Retrieve the currently authenticated Typefully user associated with your API Key
Authentication
Connected account requiredTags