{"openapi":"3.1.0","info":{"title":"Typefully (BYOK) API","version":"0.1.0","description":"Typefully (BYOK) lets an AI assistant read your own Typefully data through the Typefully API with a key you supply (Typefully API key). Read-only: 7 tools (get_me, list_social_sets, get_social_set, list_drafts, get_draft, get_queue, list_tags). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to api.typefully.com....\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-typefully.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-typefully/docs"},"termsOfService":"https://connectorbay.com/byok-typefully/terms"},"servers":[{"url":"https://byok-typefully.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-typefully/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_me":{"post":{"operationId":"get_me","summary":"Show the Typefully user the key belongs to: ID, name and the label of the API key. Use for \"Which Typefully account does","description":"Show the Typefully user the key belongs to: ID, name and the label of the API key. Use for \"Which Typefully account does my key belong to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_meArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_social_sets":{"post":{"operationId":"list_social_sets","summary":"List the social sets (account groups, each with its connected X, LinkedIn, Threads or Bluesky profiles) you can access, ","description":"List the social sets (account groups, each with its connected X, LinkedIn, Threads or Bluesky profiles) you can access, including team ones. Use for \"Which Typefully accounts can I post to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Items per page (1 to 50, default 10).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging.","title":"Offset"}},"title":"list_social_setsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_social_set":{"post":{"operationId":"get_social_set","summary":"Get one social set with every connected platform (X, LinkedIn, Mastodon, Threads, Bluesky) and its profile details. The ","description":"Get one social set with every connected platform (X, LinkedIn, Mastodon, Threads, Bluesky) and its profile details. The documentation does not list the fields, so the answer is passed through (capped). Use for \"Show the platforms connected to Typefully social set 67890\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"social_set_id":{"description":"Typefully social set (connected account group) ID, from list_social_sets.","minimum":1,"title":"Social Set Id","type":"integer"}},"required":["social_set_id"],"title":"get_social_setArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_drafts":{"post":{"operationId":"list_drafts","summary":"List the drafts of a social set, newest edited first, filtered by status (draft, scheduled, planned, published, publishi","description":"List the drafts of a social set, newest edited first, filtered by status (draft, scheduled, planned, published, publishing, error), with preview text, dates and published URLs. Use for \"Which posts do I have scheduled in Typefully\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"social_set_id":{"description":"Typefully social set (connected account group) ID, from list_social_sets.","minimum":1,"title":"Social Set Id","type":"integer"},"status":{"anyOf":[{"enum":["draft","scheduled","planned","published","publishing","error"],"type":"string"},{"type":"null"}],"default":null,"description":"Only drafts with this status.","title":"Status"},"order_by":{"anyOf":[{"enum":["created_at","-created_at","updated_at","-updated_at","scheduled_date","-scheduled_date","published_at","-published_at"],"type":"string"},{"type":"null"}],"default":"-updated_at","description":"Sort order; prefix - for descending.","title":"Order By"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Items per page (1 to 50, default 10).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging.","title":"Offset"}},"required":["social_set_id"],"title":"list_draftsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_draft":{"post":{"operationId":"get_draft","summary":"Get one draft with its status, dates, tags and the text of every post per platform. Use for \"Show the text of Typefully ","description":"Get one draft with its status, dates, tags and the text of every post per platform. Use for \"Show the text of Typefully draft 12345\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"social_set_id":{"description":"Typefully social set (connected account group) ID, from list_social_sets.","minimum":1,"title":"Social Set Id","type":"integer"},"draft_id":{"description":"Draft ID from list_drafts.","minimum":1,"title":"Draft Id","type":"integer"},"exclude_comment_markers":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to return the post text without internal comment-thread markers.","title":"Exclude Comment Markers"}},"required":["social_set_id","draft_id"],"title":"get_draftArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_queue":{"post":{"operationId":"get_queue","summary":"Show the posting queue between two dates (at most 62 days): each slot and the scheduled or planned draft occupying it. U","description":"Show the posting queue between two dates (at most 62 days): each slot and the scheduled or planned draft occupying it. Use for \"What is in my Typefully queue next week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"social_set_id":{"description":"Typefully social set (connected account group) ID, from list_social_sets.","minimum":1,"title":"Social Set Id","type":"integer"},"start_date":{"description":"First day, YYYY-MM-DD, in the social set's time zone.","maxLength":10,"title":"Start Date","type":"string"},"end_date":{"description":"Last day (inclusive), YYYY-MM-DD; at most 62 days after start_date.","maxLength":10,"title":"End Date","type":"string"}},"required":["social_set_id","start_date","end_date"],"title":"get_queueArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_tags":{"post":{"operationId":"list_tags","summary":"List the tags of a social set, ordered by slug. Use for \"Which tags exist in my Typefully account\".","description":"List the tags of a social set, ordered by slug. Use for \"Which tags exist in my Typefully account\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"social_set_id":{"description":"Typefully social set (connected account group) ID, from list_social_sets.","minimum":1,"title":"Social Set Id","type":"integer"},"limit":{"anyOf":[{"maximum":50,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Items per page (1 to 50, default 10).","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging.","title":"Offset"}},"required":["social_set_id"],"title":"list_tagsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}