---
name: "social_connect"
area: "social"
title: "Connect a social account"
price: "free"
method: "POST"
url: "https://api.conecto.chat/v1/tools/social_connect"
mcp_server: "https://api.conecto.chat/mcp/social"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/social/social_connect"
---

# Connect a social account (`social_connect`)

Connects one of the business's own social accounts as a channel: by a link for the owner, a login, or a code posted in a Telegram channel.

Connect one of the business's own accounts as a channel. For a link network (LinkedIn, Mastodon, Discord, Slack, Facebook, Instagram...) you get connect_url: hand it to the owner, who approves Conecto on the network and sees "Channel connected"; social.channel_connected tells you, and social_channels lists it (the link works for an hour). For a login network pass the login: Bluesky (username and an app password), WordPress (service, username, application password), Medium, Dev.to and Hashnode (api_key), Lemmy (username, password), Nostr (password: the private key); it connects at once and the login is never kept by Conecto. service is a public https:// address. Telegram: call without code to get one; the owner adds Conecto's bot to the channel as an admin and posts "/connect <code>" there; then call with code. Only channels (groups can't be), and a channel connected to another Conecto account stays theirs. Or with the business's own bot: Telegram with bot_token (from @BotFather) and chat (@channel or the chat's number), the bot an admin of the channel or a member of the group, and posts come from their bot; Discord or Slack with webhook_url (a channel webhook), and posts carry its name and picture. Those are checked with the network at once, kept encrypted, and their channel_ids start with own_. Connecting again refreshes a channel that needs it. Free.

Price: Free. A call that fails costs nothing.

## Use it when

An account should be posted to for the first time, or a channel needs connecting again.

## Say this to your agent

> Connect our LinkedIn page so you can post there.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `network` | string | yes |  | `"bluesky"`, `"devto"`, `"discord"`, `"dribbble"`, `"facebook"`, `"gmb"`, `"hashnode"`, `"instagram"`, `"instagram-standalone"`, `"kick"`, `"lemmy"`, `"linkedin"`, `"linkedin-page"`, `"mastodon"`, `"medium"`, `"mewe"`, `"nostr"`, `"pinterest"`, `"reddit"`, `"slack"`, `"telegram"`, `"threads"`, `"tiktok"`, `"tiktok-business"`, `"tumblr"`, `"twitch"`, `"vk"`, `"whop"`, `"wordpress"`, `"x"`, `"youtube"`, `"listmonk"`, `"moltbook"`, `"skool"`, `"wrapcast"` |  |
| `service` | string | no | The server or site address, for networks that have one. Up to 300 characters. |  |  |
| `username` | string | no | Up to 200 characters. |  |  |
| `password` | string | no | Up to 500 characters. Stored encrypted and shown only as [redacted]. |  |  |
| `api_key` | string | no | Up to 500 characters. Stored encrypted and shown only as [redacted]. |  |  |
| `code` | string | no | Telegram: the code social_connect gave, once the owner posted it. Matches ^[0-9a-f]{12}$. |  |  |
| `bot_token` | string | no | Telegram: the business's own bot's token, from @BotFather. Up to 100 characters. Stored encrypted and shown only as [redacted]. |  |  |
| `chat` | string | no | Telegram, with bot_token: the channel (@name) or the chat's number. Up to 40 characters. |  |  |
| `webhook_url` | string | no | Discord or Slack: a channel's webhook address. Up to 500 characters. Stored encrypted and shown only as [redacted]. |  |  |

## Example

Written for Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon.

MCP: call `social_connect` on the MCP server `https://api.conecto.chat/mcp/social` with these arguments:

```json
{
  "network": "linkedin"
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/social_connect \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"network": "linkedin"}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "social_connect",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.00",
  "balance_usd": "$19.75",
  "result": {
    "connect_url": "https://api.conecto.chat/v1/connect/VBzK6OMxeVabXkt54Hxe5ayeFb9Mm7Vs0DiEpPHqjfM",
    "expires_in_minutes": 60,
    "how": "Give this link to the owner. It opens a page naming the business, with one button to sign in to the network and approve Conecto; it works once. social.channel_connected tells you when the channel is there, and social_channels lists it."
  }
}
```

`result`: For a link network: connect_url, a page naming the business with one button that starts the network's sign-in (it works once), and how many minutes it works. For a login network: connected, the new channel. For Telegram without a code: the code and the steps for the owner (add Conecto's bot to the channel as an admin and post "/connect <code>"); with the code: connected. Telegram connects channels only, not groups. With the business's own bot (Telegram, bot_token and chat) or a channel webhook (Discord or Slack, webhook_url): connected at once, a channel_id starting with own_, which posts from their bot or under the webhook's name.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `network_off` | 409 | The network is not switched on for Conecto yet. | Call social_networks and pick one that is enabled. |
| `not_supported` | 400 | The network connects in a way the tools do not offer (Farcaster, Moltbook, Skool, Listmonk). | Pick another network from social_networks. |
| `invalid_input` | 400 | A login field is missing, service is not a public https:// address, or the Telegram code was not given to this business. | Send the fields the message names; for Telegram, call without code to get a new one. |
| `login_failed` | 422 | The network refused the login. | Check the username and app password with the owner. |
| `not_yet` | 409 | Telegram has not seen "/connect <code>" in the chat yet. | Ask the owner to add the bot as an admin and post the code, then call again with code. |
| `not_a_channel` | 409 | The code was posted in a Telegram group, where any member could have posted it. | Ask the owner to post it in a channel, where only admins post. |
| `chat_taken` | 409 | That Telegram channel is connected to another Conecto account. | Its owner disconnects it there first; or connect another channel. |
| `credentials_refused` | 422 | Telegram refused the bot token or doesn't know the chat, or Discord or Slack doesn't accept the webhook. | Ask the owner for the token from @BotFather and the chat, or a new webhook from the channel's settings. |
| `bot_cannot_post` | 409 | The business's own bot is not an admin of the Telegram channel with the right to post, or not a member of the group who may send messages. | Ask the owner to add the bot with that right, then call again. |
| `not_found` | 404 | No network has that name. | Call social_networks and use one of its ids. |
| `not_switched_on` | 503 | Social posting is not switched on yet. | Try again later; nothing was charged. |
| `social_unavailable` | 503 | The posting service or Telegram did not answer, or the business's social workspace could not be opened. | Call again in a minute; when the message says so, tell Conecto's support. |
| `refused` | 400 | The posting service refused the request; the message gives its reason. | Fix what the reason names, then call again. |
| `refused` | 422 | The posting service reported a conflict with what is there. | Read the channel or post again, then call again. |
| `rate_limited` | 429 | The posting service's limit of posts an hour was reached. | Try again later. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [social_networks](https://conecto.chat/tools/social/social_networks.md): Every network the business can post to, how each connects (a link, a login, Telegram's code, or its own bot or webhook), and whether it is switched on yet. Free up to 1,000,000 reads a month.
- [social_channels](https://conecto.chat/tools/social/social_channels.md): The business's connected social accounts (channels), with their network, name and profile. Free up to 1,000,000 reads a month.
- [social_channel_rules](https://conecto.chat/tools/social/social_channel_rules.md): What a channel's network accepts: lengths, media counts, the settings a post needs, and its lookups. Free up to 1,000,000 reads a month.
- [social_channel_lookup](https://conecto.chat/tools/social/social_channel_lookup.md): Runs one of a channel's lookups, like the channels of a Discord server or the boards on Pinterest. Free up to 1,000,000 reads a month.
- [social_find_slot](https://conecto.chat/tools/social/social_find_slot.md): The next free time to post on a channel, from its posting times and what is already scheduled. Free up to 1,000,000 reads a month.
- [social_post](https://conecto.chat/tools/social/social_post.md): Posts now or at a set time to one or several channels, with pictures, video or a thread. $0.02 per channel posted to.
- [social_post_check](https://conecto.chat/tools/social/social_post_check.md): Reads a TikTok post waiting for its owner, with what to show and ask them from TikTok just now. Free up to 1,000,000 reads a month.
- [social_confirm_post](https://conecto.chat/tools/social/social_confirm_post.md): Posts a TikTok post waiting for its owner with the choices they made in your chat, or drops it. Free.
- [social_posts](https://conecto.chat/tools/social/social_posts.md): Posts in a time window (the last 7 days and the next 30 by default), each with its status and link. Free up to 1,000,000 reads a month.
- [social_delete_post](https://conecto.chat/tools/social/social_delete_post.md): Deletes a post with its thread; one still waiting for its time never goes out and is refunded. Free.
- [social_analytics](https://conecto.chat/tools/social/social_analytics.md): How a channel did over 7, 30 or 90 days, or how one published post did: each metric the network reports, by day. Free up to 1,000,000 reads a month.
- [social_disconnect](https://conecto.chat/tools/social/social_disconnect.md): Removes a channel; its waiting posts are deleted, and refunded when their time had not come. Free.
