All integrations

Typefully

MARKETING · MARKETING

Drafts, scheduled posts, social sets, and post and follower analytics in the account they connected.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

typefully_delete_v2_social_sets_by_social_set_id_drafts_by_draft_idWRITE

DESTRUCTIVE AND PERMANENT. Delete a draft with its posts, media attachments and comment threads. Typefully publishes no trash and no restore endpoint for drafts, so there is no undo and no safer alternative to prefer -- unschedule it with an update instead if the intent is only to stop it publishing via DELETE /v2/social-sets/{social_set_id}/drafts/{draft_id}

full_access
typefully_delete_v2_social_sets_by_social_set_id_drafts_by_draft_id_comment_threads_by_comment_thread_idWRITE

DESTRUCTIVE AND PERMANENT. Delete a draft's whole comment thread, every comment in it and its anchor in the post text. There is no undo; resolving the thread is the reversible alternative that hides it without destroying the discussion via DELETE /v2/social-sets/{social_set_id}/drafts/{draft_id}/comment-threads/{comment_thread_id}

full_access
typefully_delete_v2_social_sets_by_social_set_id_drafts_by_draft_id_comment_threads_by_comment_thread_id_comments_by_comment_idWRITE

DESTRUCTIVE AND PERMANENT. Delete one comment from a draft's comment thread. There is no undo and no archive; updating the comment's text is the reversible alternative when the intent is to correct it via DELETE /v2/social-sets/{social_set_id}/drafts/{draft_id}/comment-threads/{comment_thread_id}/comments/{comment_id}

full_access
typefully_get_v2_meREAD

Read the Typefully user this connection acts as: id, name, email, signup date and the label of the API key that authenticated the call, when one was set via GET /v2/me

full_access
typefully_get_v2_social_setsREAD

List the social sets -- Typefully's name for a connected social account and the team that owns it -- this credential can reach. THE DISCOVERY CALL: every other tool here takes a social_set_id, and this is what supplies it via GET /v2/social-sets

full_access
typefully_get_v2_social_sets_by_social_set_idREAD

Read one social set with every platform account attached to it (X, LinkedIn, Bluesky, Mastodon, Threads, Substack), each with its handle and public profile URL via GET /v2/social-sets/{social_set_id}

full_access
typefully_get_v2_social_sets_by_social_set_id_analytics_by_platform_followersREAD

Read a social set's daily follower counts on one platform over a date range, in the set's own timezone, with the latest count in the range via GET /v2/social-sets/{social_set_id}/analytics/{platform}/followers

full_access
typefully_get_v2_social_sets_by_social_set_id_analytics_by_platform_postsREAD

List a social set's published posts on one platform over a date range with their impressions and engagement -- likes, comments, shares, quotes, profile clicks, link clicks and saves -- optionally including X replies via GET /v2/social-sets/{social_set_id}/analytics/{platform}/posts

full_access
typefully_get_v2_social_sets_by_social_set_id_draftsREAD

List a social set's drafts, filtered by status and tag and sorted by created, updated, scheduled or published date. `planned` is dated but INERT -- it will not auto-publish until a publish_at confirms it -- so a planned draft whose date has passed is not overdue via GET /v2/social-sets/{social_set_id}/drafts

full_access
typefully_get_v2_social_sets_by_social_set_id_drafts_by_draft_idREAD

Read one draft with its per-platform posts, attached media, schedule, tags and published URLs. `exclude_comment_markers=true` strips the `<typ:comment-thread>` anchors for a read-only consumer; leave it false to round-trip the text back through an update via GET /v2/social-sets/{social_set_id}/drafts/{draft_id}

full_access
typefully_get_v2_social_sets_by_social_set_id_drafts_by_draft_id_comment_threadsREAD

List a draft's comment threads with the comments in each, filtered by platform and by resolution status -- UNRESOLVED ONLY by default, so resolved threads are omitted unless you ask for `resolved` or `all` via GET /v2/social-sets/{social_set_id}/drafts/{draft_id}/comment-threads

full_access
typefully_get_v2_social_sets_by_social_set_id_linkedin_organizations_resolveREAD

Turn a public LinkedIn company or school URL into that organization's id, URN and the ready-to-paste `@[Name](urn:li:organization:ID)` mention syntax a LinkedIn post body needs via GET /v2/social-sets/{social_set_id}/linkedin/organizations/resolve

full_access
typefully_get_v2_social_sets_by_social_set_id_media_by_media_idREAD

Read an uploaded media file's processing state, filename, MIME type, alt text and the resized URLs Typefully produced, plus the failure reason when processing failed via GET /v2/social-sets/{social_set_id}/media/{media_id}

full_access
typefully_get_v2_social_sets_by_social_set_id_queueREAD

Read the drafts a social set has queued or scheduled between two dates, in the order they will publish via GET /v2/social-sets/{social_set_id}/queue

full_access
typefully_get_v2_social_sets_by_social_set_id_queue_scheduleREAD

Read a social set's queue slots -- the local hour, minute and weekdays a queued draft publishes at -- together with the timezone those times are in via GET /v2/social-sets/{social_set_id}/queue/schedule

full_access
typefully_get_v2_social_sets_by_social_set_id_tagsREAD

List a social set's draft tags with the URL-safe slug each one generated -- the slug is what the draft listing filters on via GET /v2/social-sets/{social_set_id}/tags

full_access
typefully_patch_v2_social_sets_by_social_set_id_drafts_by_draft_idWRITE

Edit a draft: its posts, title, tags, sharing, and its schedule -- setting `publish_at` commits a planned draft to auto-publish, and clearing it takes it back out of the queue. `force_overwrite_comments` is what allows text edits that would break existing comment anchors via PATCH /v2/social-sets/{social_set_id}/drafts/{draft_id}

full_access
typefully_patch_v2_social_sets_by_social_set_id_drafts_by_draft_id_comment_threads_by_comment_thread_id_comments_by_comment_idWRITE

Rewrite the text of one comment in a draft's comment thread. The anchor and the thread are untouched via PATCH /v2/social-sets/{social_set_id}/drafts/{draft_id}/comment-threads/{comment_thread_id}/comments/{comment_id}

full_access
typefully_patch_v2_social_sets_by_social_set_id_media_by_media_idWRITE

Set or clear the accessibility description published as alt text with a media file. Omitting `alt_text` keeps the current value; sending null clears it via PATCH /v2/social-sets/{social_set_id}/media/{media_id}

full_access
typefully_post_v2_social_sets_by_social_set_id_draftsWRITE

Create a draft for one or more platforms, each with its own posts, media and settings. `plan_at` dates it without committing it; `publish_at` queues it to auto-publish. Typefully answers 402 when the account is paused or the plan does not allow creating drafts via POST /v2/social-sets/{social_set_id}/drafts

full_access
typefully_post_v2_social_sets_by_social_set_id_drafts_by_draft_id_comment_threadsWRITE

Anchor a new comment thread to an exact span of a draft post's visible text. `selected_text` must be a codepoint-equal substring copied verbatim from the draft read, and a selection that cuts through a LinkedIn mention is refused via POST /v2/social-sets/{social_set_id}/drafts/{draft_id}/comment-threads

full_access
typefully_post_v2_social_sets_by_social_set_id_drafts_by_draft_id_comment_threads_by_comment_thread_id_commentsWRITE

Add a follow-up comment to an existing comment thread on a draft. Plain text only -- Typefully derives the stored rich text, and mentioning users is not supported here via POST /v2/social-sets/{social_set_id}/drafts/{draft_id}/comment-threads/{comment_thread_id}/comments

full_access
typefully_post_v2_social_sets_by_social_set_id_drafts_by_draft_id_comment_threads_by_comment_thread_id_resolveWRITE

Mark a draft's comment thread resolved, which hides it from the default unresolved listing. Reversible in the product and not destructive: the comments and the anchor survive via POST /v2/social-sets/{social_set_id}/drafts/{draft_id}/comment-threads/{comment_thread_id}/resolve

full_access
typefully_post_v2_social_sets_by_social_set_id_media_uploadWRITE

Register a media file and get a presigned S3 URL to PUT the bytes to within the hour. The returned media_id is what attaches the file to a post; Agentic Fabriq does not upload the bytes for you via POST /v2/social-sets/{social_set_id}/media/upload

full_access
typefully_post_v2_social_sets_by_social_set_id_tagsWRITE

Create a draft tag on a social set. The slug is generated from the name, so two names that slugify alike collide via POST /v2/social-sets/{social_set_id}/tags

full_access
typefully_put_v2_social_sets_by_social_set_id_queue_scheduleWRITE

REPLACE a social set's whole queue schedule. This is a full replacement, not a merge: every slot missing from `rules` is removed, so read the schedule first and send the complete list. Not flagged destructive -- no content is deleted -- but it changes when everything already queued goes out via PUT /v2/social-sets/{social_set_id}/queue/schedule

full_access

Put Typefully behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.