Blog2Social

Veröffentliche und automatisiere KI-generierte Inhalte über 25+ Social-Media- und Content-Plattformen mit Blog2Social. Verbinde Accounts, erstelle und veröffentliche Beiträge mit Text, Links, Bildern und Videos, verteile Inhalte über mehrere Netzwerke, plane Beiträge und rufe Veröffentlichungsergebnisse sowie verfügbare Insights ab. Ideal für KI-Agenten, Marketing-Automatisierung, Social-Media-Management und Multi-Channel-Content-Workflows.

Hosted MCP Server

npx add-mcp 'https://api.blog2social.com/mcp'

Installs into Claude Code, Codex, Cursor and more

Documentation

Blog2Social API (1.0.0)

Supported Platforms

Schedule, publish and manage content across social media, blogging, business and community platforms through a single API.

Connect accounts, publish content, upload media, retrieve insights and automate social media distribution from one centralized interface.

PlatformPost TypesMedia
FacebookPosts, ReelsLinks, Images, Videos
XPostsLinks, Images, Videos
LinkedInPostsLinks, Images, Videos
InstagramPostsImages, Videos
PinterestPins, BoardsImages, Videos
RedditPosts, SubredditsLinks, Images
TumblrPostsLinks, Images, Videos
MediumArticlesImages
TelegramMessagesLinks, Images
TikTokPostsImages, Videos
YouTubeVideos, Shorts, PlaylistsVideos
VimeoVideosVideos
BlueskyPostsLinks, Images
ThreadsPostsLinks, Images, Videos
MastodonPostsLinks, Images, Videos
DiscordMessagesImages, Videos
Google Business ProfileBusiness PostsImages
VK (VKontakte)PostsLinks, Images
XingPostsLinks, Images
BloggerArticlesImages
DEV.toArticlesImages, Videos
FlickrMedia PostsImages, Videos
DiigoBookmarksLinks
BloglovinBlog PostsImages
TorialArticlesImages
RavelryPostsImages
InstapaperSaved ContentLinks
BandPostsImages
HumHubPostsImages

The Blog2Social API provides a unified interface for publishing content across social media networks, blogging platforms, business networks, video platforms and community platforms.


Platform Features

  • Multi-network publishing
  • Link, image and video publishing
  • Profiles, pages and groups
  • Boards, playlists and categories
  • Post insights and analytics
  • Video upload support
  • Automated publishing workflows

Quick Start Guide

Get your first social media post published in less than 5 minutes.

Authentication Model

The API uses a two-layer authentication model:

service_token = your application
access_token = your user

Think of the service_token as your app key and the access_token as the user's session token.

Most API requests require both tokens.

Prerequisites

Step 1: Get Your API Key

Navigate to the My Apps section in your Blog2Social API Console and click Create App.

Once the application has been created, copy the generated service_token and store it securely.

The service_token uniquely identifies your application and is required for all API requests.

Step 2: Authenticate User

POST /user/auth

Request:

{
  "service_token": "YOUR_SERVICE_TOKEN"
}

Response:

{
  "access_token": "USER_ACCESS_TOKEN",
  "refresh_token": "REFRESH_TOKEN"
}

Save the access_token for all future API requests.

Step 3: Get Available Networks

POST /network/list

Request:

{
  "service_token": "YOUR_SERVICE_TOKEN",
  "access_token": "USER_ACCESS_TOKEN"
}

Response:

[
  {
    "profile": 1,
    "page": 1,
    "group": 0,
    "network_id": 1,
    "url": "facebook.com",
    "name": "Facebook"
  },
  {
    "profile": 1,
    "page": 0,
    "group": 0,
    "network_id": 45,
    "url": "x.com",
    "name": "X"
  },
  {
    "profile": 1,
    "page": 0,
    "group": 0,
    "network_id": 36,
    "url": "https://www.tiktok",
    "name": "TikTok"
  }
]

Choose the desired network_id from the response.

POST /network/add

Use the network_id from Step 3 and choose the matching network_type_id.

network_type_id values:

  • 0 = Profile
  • 1 = Page
  • 2 = Group

Request:

{
  "service_token": "YOUR_SERVICE_TOKEN",
  "access_token": "USER_ACCESS_TOKEN",
  "network_id": 1,
  "network_type_id": 0,
  "language": "en"
}

Response:

{
  "auth_link": "https://api.blog2social.com/auth/v1/?b2s_session_token=abc123"
}

Redirect the user to the returned auth_link.

Step 5: Retrieve Connected Accounts

POST /user/auth/list

Request:

{
  "service_token": "YOUR_SERVICE_TOKEN",
  "access_token": "USER_ACCESS_TOKEN"
}

Response:

[
  {
    "client_user_network_id": 3241,
    "network_id": 1,
    "type": "profile",
    "display_name": "My Facebook Profile",
    "name": "Facebook"
  }
]

Save the returned client_user_network_id.

Example:

client_user_network_id = 3241

This identifier is required for publishing posts to a connected social media account.

Step 6: Publish Your First Post

POST /network/post/create

Post Formats:

  • 0 = Link
  • 1 = Image
  • 2 = Video

Request:

{
  "service_token": "YOUR_SERVICE_TOKEN",
  "access_token": "USER_ACCESS_TOKEN",
  "client_user_network_id": 3241,
  "b2s_posts": [
    {
      "client_user_network_id": 3241,
      "title": "My first API post",
      "message": "Hello from the Blog2Social API",
      "postFormat": 0,
      "customUrl": "https://example.com"
    }
  ]
}

Response:

[
  {
    "error": 0,
    "publish_url": "https://facebook.com/post/123456",
    "network_post_id": "123456"
  }
]

If error = 0, the post was published successfully.

Complete Workflow

  • 1.Create an application in the Blog2Social API Console and obtain your service_token.
  • 2.Authenticate the user with POST /user/auth.
  • 3.Retrieve available social networks with POST /network/list.
  • 4.Connect a social network using POST /network/add.
  • 5.Retrieve the user's connected accounts with POST /user/auth/list.
  • 6.Create and publish a social media post with POST /network/post/create.

You are now ready to publish content through the Blog2Social API.


Publishing Result Format

Publishing endpoints such as /network/post/create return one result object per post or network publication.

Example success:

{
  "error": 0,
  "type": 0,
  "publish_url": "https://example.com/published-post",
  "network_post_id": "123456789",
  "post_id": 1
}

Example failure:

{
  "error": 1,
  "type": 0,
  "b2s_error_code": "TOKEN",
  "extra": {
    "expired": 1
  },
  "post_id": 2
}

Partial Success

When publishing to multiple networks, some publications may succeed while others fail.

Always loop through all response objects and handle failed publications separately.

foreach ($response as $result) {
    if ((int) ($result['error'] ?? 1) === 0) {
        // Published successfully
        continue;
    }

    $error_code = $result['b2s_error_code'] ?? 'DEFAULT';

    // Handle failed publication
}

Endpoints

The API is accessed via HTTP requests to a specific version endpoint URL, in which POST variables contain the information you wish to access. Every endpoint is accessed via an SSL-enabled HTTPS (port 443).

Requests (methods, parameters, etc.) are related to a fixed version number, and every call must contain this version number. Different versions are available at different endpoint URLs. The latest version is version 1.0.0.

The stable HTTP endpoint for the latest version is:

https://api.blog2social.com/rest/v1.0

Previous versions can still be accessed if you use the API version number at the end of the default endpoint. However, these previous versions are no longer supported, so if you find a bug, we are going to ask that you move to the latest version.


Testing and Sandbox

Test the Blog2Social API directly from your browser and explore available endpoints, request parameters and responses.

Open API Console


Authentication

Getting an Access Token

Get an access_token for a new user.

Note: Access tokens currently have a fixed validity period of 10 years. Automatic token refresh is planned for a future API release but is not available at this time.

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN" }

Response samples

  • 200 Content type

application/json

{ - "access_token": "YOUR_ACCESS_TOKEN", - "refresh_token": "qwe111rtz222uio333", - "expired_in": "unix-timestamp" }

List OAuth user

List existing and active OAuth user

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN" }

Response samples

  • 200 Content type

application/json

{ - "users": [ - { - "client_user_id": "1", - "access_token": "b2s_abcdef123546", - "refresh_token": "b2s_abcdef123546", - "access_date_time": "2001-01-01 01:01:01", - "refresh_date_time": "2001-01-01 01:01:01" } ] }

Delete OAuth user

Delete OAuth user from your service

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service
users requiredArray of integers List of OAuth user IDs to delete.

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "users": [ - 123, - 456, - 789 ] }

Response samples

  • 200 Content type

application/json

{ - "details": [ - { - "client_user_id": "1", - "deleted": "true | false", - "error": "empty | error_message" } ] }

Network

List Networks

List Networks

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service
access_token requiredstring The access token for the authenticated user.
formatstring flag (default) - Denormalized flag structure (profile, page, group) | type - Normalized type structure (network_type_id)

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN" }

Response samples

  • 200 Content type

application/json

[ - { - "name": "X", - "url": "x.com", - "network_id": 2, - "profile": 1, - "page": 0, - "group": 0, - "network_type_id": 0 } ]

Add Connection

Get a link and session_token to redirect the user in order to authorize a network

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service
access_token requiredstring The access token for the authenticated user.
network_id requiredinteger The ID of the social media network.
network_type_id requiredinteger The network type ID: 0 = Profile, 1 = Page, 2 = Group.
filter_levelstring The filter applied to shown groups and pages by their access level. Currently available for VK (network 17) with the value "admin".
languagestring The language used for the authorization flow or form.
service_conditions_idinteger The service conditions ID used when a custom application should be used instead of the default application.

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN", - "network_id": 1, - "network_type_id": 1, - "language": "en", - "service_conditions_id": 123 }

Response samples

  • 200 Content type

application/json

{ - "auth_link": "https://api.blog2social.com/auth/v1/?b2s_session_token=abc123defg456hij789klm", - "session_token": "abc123defg456hij789klm", - "expired_in": "unix-timestamp" }

Update Connection

Get a link and session_token to redirect the user in order to re-authorize a network connection

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service
access_token requiredstring The access token for the authenticated user.
client_user_network_id requiredinteger The ID of the user's connected social media account authorization.
network_id requiredinteger The ID of the social media network.
network_type_id requiredinteger The network type ID: 0 = Profile, 1 = Page, 2 = Group.
languagestring The language used for the authorization flow or form.

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN", - "client_user_network_id": "YOUR_CLIENT_USER_NETWORK_ID", - "network_id": 1, - "network_type_id": 1, - "language": "en" }

Response samples

  • 200 Content type

application/json

{ - "auth_link": "https://api.blog2social.com/auth/v1/?b2s_session_token=abc123defg456hij789klm", - "session_token": "abc123defg456hij789klm", - "expired_in": "unix-timestamp" }

List Categories

List categories/boards/subred/playlists a authorization can post to.
Only available for Pinterest, Reddit and YouTube.
Results are cached for 30 minutes.

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service
access_token requiredstring The access token for the authenticated user.
client_user_network_id requiredinteger The ID of the user's connected social media account authorization.

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN", - "client_user_network_id": "YOUR_CLIENT_USER_NETWORK_ID" }

Response samples

  • 200 Content type

application/json

[ - { - "id": "string", - "name": "string" } ]

List Network Properties

Returns network-specific publishing properties such as supported content types, limits, instant sharing support, media capabilities, video requirements and network-specific constraints.

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service
access_token requiredstring The access token for the authenticated user.

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN" }

Response samples

  • 200 Content type

application/json

[ - { - "network_id": 1, - "network_type": 1, - "instant_sharing": 0, - "image_format": "png,jpg,gif,webp", - "reel_support": { - "reel_format": "mp4,mov", - "reel_max_length": 90, - "reel_min_length": 4, - "reel_min_framerate": 23, - "reel_aspect_ratio_x": 9, - "reel_aspect_ratio_y": 16, - "reel_min_resolution_x": 540, - "reel_min_resolution_y": 960 }, - "video_format": "mp4,mov", - "emoji_support": 1, - "html_support": null, - "video_support": 1, - "video_max_size": 256000, - "character_limit": 60000, - "video_max_length": 3600, - "video_upload_type": 0, - "character_limit_title": 0, - "video_max_size_original": 10485760 } ]

User

List User Connection

Get a list of all authorizations from a User
Results are cached for 30 minutes. (Cache will be cleared on any action to a authorization)

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service
access_token requiredstring The access token for the authenticated user.

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN" }

Response samples

  • 200 Content type

application/json

[ - { - "client_user_id": 1, - "client_user_network_id": 3241, - "network_id": 2, - "type": "profile", - "type_kind": 0, - "type_id": "3122312323378-8232312", - "display_name": "string", - "instant_sharing": 0, - "expired_date": "2022-07-03 14:00:00", - "last_user_update_date": "2021-07-03 14:00:00", - "name": "X" } ]

Delete User Connection

Delete a authorization from a User

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service
access_token requiredstring The access token for the authenticated user.
client_user_network_id requiredinteger The ID of the user's connected social media account authorization.

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN", - "client_user_network_id": "YOUR_CLIENT_USER_NETWORK_ID" }

Response samples

  • 201 Content type

application/json

{ - "success": true }

Share to Network

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service
access_token requiredstring The access token for the authenticated user.
client_user_network_id requiredinteger The ID of the user's connected social media account authorization.
b2s_posts requiredArray of objects (PostObject)

Responses

Remove from Network

Remove content from a Network
A response of 200 OK only means, that we could request to the network without any error. Please check the response result for further information.

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service
access_token requiredstring The access token for the authenticated user.
client_user_network_id requiredinteger The id of the network authorization (required for single posts only / not for bulk)
b2s_posts requiredArray of objects List of posts you want to remove

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN", - "client_user_network_id": "YOUR_CLIENT_USER_NETWORK_ID", - "b2s_posts": [ - { - "client_user_network_id": "YOUR_CLIENT_USER_NETWORK_ID", - "post_id": 1234, - "publish_link": "https://example.com/published-post" } ] }

Response samples

  • 200 Content type

application/json

[ - { - "error": 0, - "client_user_network_id": "YOUR_CLIENT_USER_NETWORK_ID", - "deleted_publish_link": "https://google.com/YOUR_CLIENT_USER_NETWORK_ID", - "extra": [ ] } ]

Insights

Get Total Insights

Get useful information on a post's performance such as likes, comments, reshares, impressions, mentions, profile views and/or video views
Results are cached for 20 hours.

Request Body schema: application/jsonrequired

Information needed to request insights from a network

Array

network_idinteger ID of the network
network_typeinteger Enum: 0 1 2 type ID of the network (Profile: 0, Page: 1, Group: 2)
client_user_network_idinteger ID of the network authrization
extern_post_idinteger ID of the post given by the network

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN", - "network_post_data": [ - { - "network_id": 2, - "network_type": 0, - "client_user_network_id": "YOUR_CLIENT_USER_NETWORK_ID", - "extern_post_id": "YOUR_CLIENT_USER_NETWORK_ID0" } ] }

Response samples

  • 200 Content type

application/json

[ - { - "intern_post_id": 2, - "extern_post_id": 13083961648621, - "network_id": 1, - "error": 0, } ]

Get Insights by time

Get Insights information at different timesteps. This makes it easy to plot diagrams from your insights data.
Results are cached for 1 hour.

Request Body schema: application/jsonrequired

specific request data

network_post_dataArray of objects
rangeobject Timeframe to fetch data from. It defaults to the last 3 days

Responses

Response samples

  • 200 Content type

application/json

[ - { - "intern_post_id": 2, - "extern_post_id": 13083961648621, - "network_id": 1, - "error": 0, - "insights": { - "likes": { - "date": "2020-09-23 13:32:20", - "value": 1 }, - "reshares": { - "date": "2020-09-23 13:32:20", - "value": 1 }, - "impressions": { - "date": "2020-09-23 13:32:20", - "value": 1 }, - "mentions": { - "date": "2020-09-23 13:32:20", - "value": 1 }, - "profile_views": { - "date": "2020-09-23 13:32:20", - "value": 1 }, - "video_views": { - "date": "2020-09-23 13:32:20", - "value": 1 } } } ]

Enable Insights Entry

Enable an existing Insights Entry

Request Body schema: application/jsonrequired

Information needed to request insights from a network

Array

network_idinteger ID of the network
network_typeinteger Enum: 0 1 2 type ID of the network (Profile: 0, Page: 1, Group: 2)
client_user_network_idinteger ID of the network authrization
extern_post_idinteger ID of the post given by the network

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN", - "network_post_data": [ - { - "network_id": 2, - "network_type": 0, - "client_user_network_id": "YOUR_CLIENT_USER_NETWORK_ID", - "extern_post_id": "YOUR_CLIENT_USER_NETWORK_ID0" } ] }

Response samples

Content type

application/json

{ - "error_code": 1002, - "error_message": "required parameter missing {PARAMETER}" }

Disable Insights Entry

Disable an existing Insights Entry

Request Body schema: application/jsonrequired

Information needed to request insights from a network

Array

network_idinteger ID of the network
network_typeinteger Enum: 0 1 2 type ID of the network (Profile: 0, Page: 1, Group: 2)
client_user_network_idinteger ID of the network authrization
extern_post_idinteger ID of the post given by the network

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN", - "network_post_data": [ - { - "network_id": 2, - "network_type": 0, - "client_user_network_id": "YOUR_CLIENT_USER_NETWORK_ID", - "extern_post_id": "YOUR_CLIENT_USER_NETWORK_ID0" } ] }

Response samples

Content type

application/json

{ - "error_code": 1002, - "error_message": "required parameter missing {PARAMETER}" }

Video

Get a Video Token

Receive a video token for a video post. This is a separate video-token initialization workflow and intentionally uses the trailing-slash path and the items property. It must not be merged with the standard /network/post/create publisher.
A response of 200 OK only means the progress of sending the post was successfully handled by our API. Please check the result of the post on the network.

Request Body schema: application/jsonrequired

List of posts you want to create

Array

client_user_network_idinteger User network auth id to wich the post should go
titlestring Set post title
messagestring Set post message
postFormatinteger Value: 2 Set post format (Video: 2)
customUrlstring Set post url content
noCacheinteger Enum: 0 1 If the link shoud get a no_cache parameter
tagsArray of strings Tags to post
boardstring Pinterest board to post to
mediaObjectsArray of objects List of Media Objects to add to the post (For Facebook and X you can add up to 4 images, for Instagram up to 10 and for LinkedIn up to 9. Every other Network will only post the first image in the list)
is_retweetinteger Enum: 0 1 Indicator, if the post should be a retweet
network_post_idstring The id of the post you want to retweet
post_idinteger Identifier that will be returned with the Post Result Object, so you can pair it up with your request.
make_threadsinteger Default: 0 Enum: 0 1 The post message gets cut and added as comments to the post if a message exceeds the character limit (X only)
ignore_linkinteger Default: 0 Enum: 0 1 If enabled, the link URL won't be added to the end of the post message

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN", - "client_user_network_id": "YOUR_CLIENT_USER_NETWORK_ID", - "items": [ - { - "client_user_network_id": 123, - "title": "Post title", - "message": "Hello from Blog2Social API!", - "postFormat": 2, - "customUrl": "https://example.com/post", - "noCache": 0, - "tags": [ - "string" ], - "board": "string", - "mediaObjects": [ - { - "type": { }, - "url": { } } ], - "is_retweet": 0, - "network_post_id": "string", - "post_id": 123, - "make_threads": 0, - "ignore_link": 0 } ] }

Response samples

  • 200 Content type

application/json

[ - { - "error": 0, - "network_id": 32, - "type": 0, - "client_user_network_id": 1234567, - "extra": [ ], - "video_token": "abcedfghYOUR_CLIENT_USER_NETWORK_IDijklmnopq789012", - "video_upload_type": 0 } ]

Upload a Video

Upload the video file to our Video Server
After recieving a video_token, you will be able to upload your video in chunks to our video server. Make sure that the bytesize of the single chunks can be divided by 8 and that all chunks must have the same size (Except for the last chunk).

Request Body schema: multipart/form-dataoptional
video_tokenstring The token you recieved for a video upload
max_count_chunksinteger The count of chunks you split your video in
current_chunkinteger The current chunk you want to upload
chunkstring <binary> The binary video chunk file.

Responses

Request samples

  • Payload
  • cURL
  • PHP
{
  "video_token": "YOUR_VIDEO_TOKEN",
  "max_count_chunks": 1,
  "current_chunk": 1,
  "chunk": "@/path/to/file"
}

Response samples

  • 200 Content type

application/json

{ - "error": 0, - "networks": [ - { - "error": 1, - "b2s_error_code": "VIDEO_NETWORK_LENGTH | VIDEO_NETWORK_SIZE | VIDEO_NETWORK_FORMAT", - "network_id": 36, - "client_user_network_id": "YOUR_CLIENT_USER_NETWORK_ID", - "instant_sharing": 0, - "post_id": 11 } ] }

Get Video Post Results

Request Body schema: application/jsonrequired
video_token requiredstring The video token received before uploading video chunks.

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "video_token": "YOUR_VIDEO_TOKEN" }

Response samples

  • 200 Content type

application/json

[ - { - "network_id": 12, - "network_type": 1, - "state": 0, - "client_user_network_id": 3241, - "publish_url": "https:\\/\\/www.instagram.com\\/p\\/Cjr5AnINUD5\\/", - "post_id": 5 }, - { - "network_id": 32, - "network_type": 0, - "state": 1, - "client_user_network_id": 3241, - "b2s_error_code": "VIDEO_NETWORK_FORMAT", - "post_id": 6 } ]

User Apps

Add a User App

Add a User App for a specific network. That User App can be used for authorizations whithin these Networks.

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service
access_token requiredstring The access token for the authenticated user.
network_id requiredinteger The ID of the social media network.
app_key requiredstring
app_secret requiredstring The application secret.
app_name requiredstring

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN", - "network_id": 1, - "app_key": "YOUR_APP_KEY", - "app_secret": "YOUR_APP_SECRET", - "app_name": "Example App" }

Response samples

  • 200 Content type

application/json

{ - "error": false, - "user_app_id": "YOUR_CLIENT_USER_NETWORK_ID", - "service_conditions_id": 456789 }

List all User Apps

List all User Apps for a given access_token.

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service
access_token requiredstring The access token for the authenticated user.

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN" }

Response samples

  • 200 Content type

application/json

{ - "error": false, - "user_apps": [ - { - "name": "Example App", - "network_details_id": "YOUR_CLIENT_USER_NETWORK_ID", - "network_id": 32, - "app_key": "****abcd", - "app_secret": "****abcd" } ] }

Modify a User Apps

Modify the details of a User Apps.

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service
access_token requiredstring The access token for the authenticated user.
user_app_id requiredinteger
app_name requiredstring
app_key requiredstring
app_secret requiredstring The application secret.

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN", - "user_app_id": 1, - "app_name": "Example App", - "app_key": "YOUR_APP_KEY", - "app_secret": "YOUR_APP_SECRET" }

Response samples

  • 200 Content type

application/json

{ - "error": false }

Delete a User Apps

Permamently delete a User Apps.

Request Body schema: application/jsonrequired
service_token requiredstring The token for your service
access_token requiredstring The access token for the authenticated user.
user_app_id requiredinteger

Responses

Request samples

  • Payload
  • cURL
  • PHP Content type

application/json

{ - "service_token": "YOUR_SERVICE_TOKEN", - "access_token": "YOUR_ACCESS_TOKEN", - "user_app_id": 1 }

Response samples

  • 200 Content type

application/json

{ - "error": false, - "inactive_auth_ids": [ - 123, - 456, - 789 ] }

Integrations

SDKs & CLI

Blog2Social provides official PHP and Node.js SDKs, comprehensive cURL examples, and REST API access for any programming language. Pick the approach that best fits your workflow.

cURL

Use cURL for quick one-off requests, shell scripts, or automation workflows.

# Authenticate a user
curl -X POST https://api.blog2social.com/rest/v1.0/user/auth \
  -H "Content-Type: application/json" \
  -d '{
    "service_token": "YOUR_SERVICE_TOKEN"
  }'
# List available social media networks
curl -X POST https://api.blog2social.com/rest/v1.0/network/list \
  -H "Content-Type: application/json" \
  -d '{
    "service_token": "YOUR_SERVICE_TOKEN",
    "access_token": "YOUR_ACCESS_TOKEN"
  }'
# Connect a social media account
curl -X POST https://api.blog2social.com/rest/v1.0/network/add \
  -H "Content-Type: application/json" \
  -d '{
    "service_token": "YOUR_SERVICE_TOKEN",
    "access_token": "YOUR_ACCESS_TOKEN",
    "network_id": 1,
    "network_type_id": 0,
    "language": "en"
  }'
# Publish a post
curl -X POST https://api.blog2social.com/rest/v1.0/network/post/create \
  -H "Content-Type: application/json" \
  -d '{
    "service_token": "YOUR_SERVICE_TOKEN",
    "access_token": "YOUR_ACCESS_TOKEN",
    "client_user_network_id": 3241,
    "b2s_posts": [
      {
        "message": "Hello from cURL!",
        "postFormat": 0
      }
    ]
  }'

Node.js

The official Blog2Social Node.js SDK provides a simple TypeScript-based interface for the Blog2Social API v1.0.

Use the SDK to authenticate users, connect social media accounts and publish content with just a few lines of JavaScript or TypeScript.

Installation

Install the SDK with npm:

npm install @adenion/blog2social-api-node-js-sdk

GitHub Repository

https://github.com/Adenion/blog2social-api-node-js-sdk

Requirements

  • Node.js 18 or higher
  • npm

Initialize the SDK

import { Blog2SocialClient } from '@adenion/blog2social-api-node-sdk';

const serviceToken = 'YOUR_SERVICE_TOKEN';

const client = new Blog2SocialClient({
    serviceToken
});

Authenticate a User

Before calling most API endpoints, a user must be authenticated.

const response = await client.authentication.authenticateUser();

const accessToken = response.access_token;

Store the returned access_token and refresh_token securely.

Initialize the client using both tokens:

const client = new Blog2SocialClient({
    serviceToken,
    accessToken
});

List Users

List all users associated with the current service.

const users = await client.user.listUsers();

console.log(users);

This endpoint only requires the serviceToken.

List Available Networks

const networks = await client.network.listNetwork();

console.log(networks);

List Network Properties

Retrieve network-specific publishing limits, media capabilities and video requirements.

const properties = await client.network.listProperties();

console.log(properties);

The returned properties can include:

  • Supported image formats
  • Supported video formats
  • Character limits
  • Title limits
  • Video file-size limits
  • Video length limits
  • HTML support
  • Emoji support
  • Instant sharing support
  • Video upload type

A video upload token is only generated when video_upload_type is 1.

Connect a Social Media Account

Example: Connect a Facebook Page.

const response = await client.connection.addNetwork(
    1,
    1,
    'en'
);

console.log(response.auth_link);

Redirect the user to the returned auth_link.

Network type values:

0 = Profile
1 = Page
2 = Group

List Connected Accounts

const connections = await client.user.listUserAuthentications();

console.log(connections);

The returned client_user_network_id is required when publishing posts.

Publish a Link Post

const clientUserNetworkId = YOUR_CLIENT_USER_NETWORK_ID;

const response = await client.share.createPost(
    clientUserNetworkId,
    [
        {
            client_user_network_id: clientUserNetworkId,
            title: 'My first API post',
            message: 'Hello from the Blog2Social Node.js SDK.',
            postFormat: 0,
            customUrl: 'https://example.com'
        }
    ]
);

console.log(response);

Post format values:

0 = Link
1 = Image
2 = Video

Publish an Image Post

const response = await client.share.createPost(
    clientUserNetworkId,
    [
        {
            client_user_network_id: clientUserNetworkId,
            title: 'Image Post',
            message: 'This is an image post.',
            postFormat: 1,
            mediaObjects: [
                {
                    type: 'IMAGE',
                    url: 'https://example.com/image.jpg'
                }
            ]
        }
    ]
);

console.log(response);

Publish a Video Post

Publish a video directly from a publicly accessible URL:

const response = await client.share.createPost(
    clientUserNetworkId,
    [
        {
            client_user_network_id: clientUserNetworkId,
            title: 'Video Post',
            message: 'This is a video post.',
            postFormat: 2,
            mediaObjects: [
                {
                    type: 'VIDEO',
                    url: 'https://example.com/video.mp4'
                }
            ]
        }
    ]
);

console.log(response);

Before choosing the video workflow, retrieve the network properties and check video_upload_type.

A video upload token is only generated when video_upload_type is 1.

Available Services

client.authentication;
client.network;
client.connection;
client.categories;
client.user;
client.share;
client.video;
client.videoUpload;
client.videoStatus;
client.app;
client.userApps;

PHP

The official Blog2Social PHP SDK provides a simple object-oriented interface for the Blog2Social API v1.0.

Use the SDK to authenticate users, connect social media accounts and publish content with just a few lines of PHP.

Installation

Install the SDK with Composer:

composer require adenion/blog2social-api-php-sdk

GitHub Repository

https://github.com/adenion/blog2social-api-php-sdk

Requirements

  • PHP 8.1 or higher
  • Composer
  • PHP cURL extension
  • PHP JSON extension

Initialize the SDK

<?php

declare(strict_types=1);

require __DIR__ . '/vendor/autoload.php';

use Adenion\Blog2Social\Sdk\Client\Blog2SocialClient;

$service_token = 'YOUR_SERVICE_TOKEN';

$client = new Blog2SocialClient(
    $service_token
);

Authenticate a User

Before calling most API endpoints, a user must be authenticated.

$response = $client
    ->authentication()
    ->authenticateUser();

$access_token = $response['access_token'];

Store the returned access_token and refresh_token securely.

Initialize the client using both tokens:

$client = new Blog2SocialClient(
    $service_token,
    $access_token
);

List Users

List all users associated with the current service.

$users = $client
    ->user()
    ->listUsers();

echo '<pre>';
print_r($users);
echo '</pre>';

This endpoint only requires the service_token.

List Available Networks

$networks = $client
    ->network()
    ->listNetwork();

echo '<pre>';
print_r($networks);
echo '</pre>';

List Network Properties

Retrieve network-specific publishing limits, media capabilities and video requirements.

$properties = $client
    ->network()
    ->listProperties();

echo '<pre>';
print_r($properties);
echo '</pre>';

The returned properties can include:

  • Supported image formats
  • Supported video formats
  • Character limits
  • Title limits
  • Video file-size limits
  • Video length limits
  • HTML support
  • Emoji support
  • Instant sharing support
  • Video upload type

A video upload token is only generated when video_upload_type is 1.

Connect a Social Media Account

Example: Connect a Facebook Page.

$response = $client
    ->connection()
    ->addNetwork(
        1,
        1,
        'en'
    );

header(
    'Location: ' . urldecode(
        $response['auth_link']
    )
);

exit;

Network type values:

0 = Profile
1 = Page
2 = Group

List Connected Accounts

$connections = $client
    ->user()
    ->listUserAuthentications();

echo '<pre>';
print_r($connections);
echo '</pre>';

The returned client_user_network_id is required when publishing posts.

Publish a Link Post

$client_user_network_id = YOUR_CLIENT_USER_NETWORK_ID;

$response = $client
    ->()
    ->createPost(
        $client_user_network_id,
        [
            [
                'client_user_network_id' => $client_user_network_id,
                'title' => 'My first API post',
                'message' => 'Hello from the Blog2Social PHP SDK.',
                'postFormat' => 0,
                'customUrl' => 'https://example.com'
            ]
        ]
    );

echo '<pre>';
print_r($response);
echo '</pre>';

Post format values:

0 = Link
1 = Image
2 = Video

Publish an Image Post

$response = $client
    ->()
    ->createPost(
        $client_user_network_id,
        [
            [
                'client_user_network_id' => $client_user_network_id,
                'title' => 'Image Post',
                'message' => 'This is an image post.',
                'postFormat' => 1,
                'mediaObjects' => [
                    [
                        'type' => 'IMAGE',
                        'url' => 'https://example.com/image.jpg'
                    ]
                ]
            ]
        ]
    );

Publish a Video Post

Publish a video directly from a publicly accessible URL:

$response = $client
    ->()
    ->createPost(
        $client_user_network_id,
        [
            [
                'client_user_network_id' => $client_user_network_id,
                'title' => 'Video Post',
                'message' => 'This is a video post.',
                'postFormat' => 2,
                'mediaObjects' => [
                    [
                        'type' => 'VIDEO',
                        'url' => 'https://example.com/video.mp4'
                    ]
                ]
            ]
        ]
    );

Before choosing the video workflow, retrieve the network properties and check video_upload_type.

A video upload token is only generated when video_upload_type is 1.

Available Services

$client->authentication();
$client->network();
$client->connection();
$client->categories();
$client->user();
$client->share();
$client->video();
$client->videoUpload();
$client->videoStatus();
$client->app();
$client->userApps();

AI Agents

The Blog2Social API can be integrated directly into AI agents, AI assistants, coding assistants, automation platforms, and custom applications.

To simplify AI-powered integrations, Blog2Social provides two ways to connect AI applications with Blog2Social:

  • MCP – Connect AI applications directly to Blog2Social using the Model Context Protocol.
  • AI API Specification – Use the machine-readable API specification to build custom applications, integrations, SDKs, and AI-powered tools.

MCP

The Model Context Protocol (MCP) is an open standard that allows AI applications and agents to connect to external tools and services.

Blog2Social provides a hosted MCP server that allows compatible AI applications to interact directly with Blog2Social functionality.

The Blog2Social MCP endpoint is:

https://api.blog2social.com/mcp

The hosted MCP server requires no local installation.

Authentication is handled through OAuth, allowing users to securely connect their Blog2Social account to a supported AI application.

Generic MCP configuration

MCP clients use different configuration formats. Where a client accepts a remote MCP server URL, configure the Blog2Social server as follows:

{
  "name": "blog2social",
  "url": "https://api.blog2social.com/mcp"
}

Complete the Blog2Social OAuth flow when prompted. Do not add a Blog2Social password or access token to a client configuration file.


Endpoint

Use the following endpoint when connecting an MCP-compatible application:

https://api.blog2social.com/mcp

MCP Distribution

Blog2Social MCP is available through MCP directories and distribution platforms, making it easier to discover and connect the hosted Blog2Social MCP server from compatible AI applications and MCP clients.

Available MCP Directories

  • Smithery — Discover and connect to the Blog2Social MCP server through the Smithery MCP directory.
  • Glama — Discover and connect to the Blog2Social MCP server through the Glama MCP directory.

Authentication is handled through the Blog2Social OAuth flow. Users do not need to provide their Blog2Social password or manually configure an access token.

Authentication

Blog2Social MCP uses OAuth authentication.

The general authentication flow is:

AI Application
       ↓
Blog2Social MCP
       ↓
Blog2Social OAuth
       ↓
Login & Authorization
       ↓
MCP Connection
       ↓
Blog2Social MCP Tools

You do not need to provide your Blog2Social password directly to the AI application.


Error Handling

Blog2Social MCP uses HTTP status codes and JSON-RPC 2.0 error codes to report errors. The HTTP status describes the request outcome, while the JSON-RPC code identifies the protocol or application error.

HTTP and JSON-RPC errors

HTTP statusMCP codeError
405-32601Method not allowed - HTTP method is not supported
415-32600Invalid request - Content-Type must be application/json
406-32600Invalid request - Accept must include application/json and text/event-stream
400-32600Invalid request - Request body is required
400-32700Parse error - Invalid JSON
400-32600Invalid request - Invalid JSON-RPC request
200-32601Method not found - Unknown JSON-RPC method

Session and initialization errors

HTTP statusMCP codeError
400-32602MCP session ID required
400-32602MCP session not found or expired
400-32602MCP-Protocol-Version header required
400-32602MCP protocol version does not match the session
400-32602MCP session is not initialized
400-32602MCP session is already initialized
400-32602Invalid initialize params - Expected an object
400-32602Protocol version required
400-32602clientInfo is required
400-32602clientInfo.name is required
400-32602clientInfo.version is required
400-32602capabilities is required

tools/list and tools/call errors

HTTP statusMCP codeError
400-32602Invalid tools/list parameters
400-32602tools/list cursor must be a string
400-32602Invalid tools/list cursor
400-32602tools/call params must be an object
400-32602Tool name required
400-32602tools/call arguments must be an object
200-32602Unknown tool: {tool_name}

Authentication and authorization errors

HTTP statusMCP codeError
401-32001Access token required
403-32001Access token invalid
403-32001Access token expired
403-32001App state invalid
403-32001App is not active
403-32001App is suspended
403-32001Service ID invalid
403-32001No user service found
403-32001No client user auth data found
403-32001Invalid client user
403-32001No client user access token found
403-32001Client user access token is inactive
403-32001Client user access token expired
401-32001Service token required
403-32001Service token invalid
401-32001Service authentication required
401-32001Access token invalid
401-32001Access token expired
403-32001Access token does not belong to this service

Internal MCP session errors

HTTP statusMCP codeError
500-32603Unable to create MCP session
500-32603MCP session state is incomplete
500-32603Unable to persist MCP session
500-32603Unable to load MCP session
500-32603Unable to terminate MCP session

JSON-RPC error response

MCP errors use the JSON-RPC 2.0 error response format:

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32602,
    "message": "MCP session ID required"
  }
}

The code identifies the JSON-RPC or MCP error, while message provides a human-readable description of the problem.


Supported AI Applications

Blog2Social MCP is compatible with the following AI applications, coding assistants, development environments, and automation platforms:

ApplicationMCP support
ChatGPTDepends on MCP/connector availability
ClaudeDepends on MCP/connector availability
Claude DesktopDepends on MCP configuration and OAuth
ClineDepends on MCP configuration and OAuth
GitHub CopilotDepends on MCP configuration and OAuth
CursorDepends on MCP configuration and OAuth
MCPJamMCP client; verify OAuth support
MistralDepends on MCP/connector availability
n8nDepends on MCP configuration and OAuth
NotionDepends on MCP configuration and OAuth
SlackbotDepends on MCP configuration and OAuth
VS CodeDepends on MCP configuration and OAuth

Support depends on the respective application's MCP and OAuth capabilities.


Connect from Claude

Blog2Social MCP can be connected to Claude using the hosted MCP server.

Connect from the Claude.ai website

  1. Open Claude.
  2. Open Settings or Connectors.
  3. Select Add custom connector.
  4. Enter the Blog2Social MCP endpoint:
https://api.blog2social.com/mcp
  1. Add the connector.
  2. Follow the Blog2Social OAuth authentication flow.
  3. Log in to your Blog2Social account.
  4. Authorize the connection.

After successful authorization, Blog2Social is available as an MCP connector in Claude.

You can then use natural-language instructions to interact with the available Blog2Social functionality.

Note: The exact location and naming of connector settings may vary depending on the current Claude interface and account type.


Connect from Claude Desktop

Claude Desktop supports MCP integrations.

Add the Blog2Social MCP server using the following endpoint:

https://api.blog2social.com/mcp

Complete the Blog2Social OAuth authentication process when prompted.

After authorization, Claude Desktop can access the Blog2Social MCP tools available to your account.


Connect from ChatGPT

ChatGPT can connect to MCP servers through its supported connector or app integration capabilities.

Use the Blog2Social MCP endpoint:

https://api.blog2social.com/mcp

Follow the authentication flow provided by ChatGPT.

When redirected to Blog2Social, log in to your Blog2Social account and authorize the connection.

After authorization, ChatGPT can use the Blog2Social MCP tools available through the connection.

Note: The exact location and naming of MCP or connector settings may change as ChatGPT updates its MCP and app integration capabilities.


Connect from Cursor

Cursor supports MCP servers and can connect to the Blog2Social hosted MCP server.

Add the Blog2Social MCP server to your Cursor MCP configuration.

Use:

https://api.blog2social.com/mcp

Complete the Blog2Social OAuth authentication flow when prompted.

After successful authentication, Blog2Social MCP tools are available to supported Cursor workflows.


Connect from Cline

Cline supports MCP integrations.

Add the Blog2Social MCP server using:

https://api.blog2social.com/mcp

Complete the Blog2Social OAuth authorization process.

After authentication, Cline can discover and use the Blog2Social MCP tools available through the connection.


Connect from GitHub Copilot

GitHub Copilot environments that support MCP can connect to Blog2Social through the hosted MCP server.

Use:

https://api.blog2social.com/mcp

Complete the Blog2Social OAuth authentication flow when requested.

After authorization, Copilot can use the Blog2Social MCP tools supported by the connection.


Connect from Mistral

Mistral environments that support MCP can connect to Blog2Social using the hosted MCP endpoint:

https://api.blog2social.com/mcp

Complete the Blog2Social OAuth login and authorize the connection.

After authorization, Blog2Social MCP functionality can be used by supported Mistral workflows.


Connect from n8n

n8n can use MCP-compatible connections to integrate Blog2Social into automated workflows.

Use the Blog2Social MCP endpoint:

https://api.blog2social.com/mcp

Authenticate using the Blog2Social OAuth flow.

This allows Blog2Social functionality to be combined with AI-powered automation workflows.

For example:

Trigger
   ↓
AI / Content Generation
   ↓
Blog2Social MCP
   ↓
Create Content
   ↓
Publish or hand off

Blog2Social MCP can therefore be used as part of larger automated workflows without implementing the Blog2Social API directly in every workflow.


Connect from Notion

Notion environments that support MCP can connect to Blog2Social through the hosted MCP endpoint:

https://api.blog2social.com/mcp

Complete the Blog2Social OAuth authorization flow when requested.

After authorization, Blog2Social MCP functionality can be used within supported Notion MCP and AI workflows.


Connect from Slackbot

Slackbot environments that support MCP can connect to Blog2Social using:

https://api.blog2social.com/mcp

Authenticate with your Blog2Social account through OAuth and authorize the connection.

After successful authentication, supported Slackbot workflows can interact with Blog2Social through MCP.


Connect from VS Code

VS Code environments that support MCP can connect to Blog2Social through the hosted MCP endpoint:

https://api.blog2social.com/mcp

Add the endpoint to your MCP configuration and complete the Blog2Social OAuth authorization flow.

After authorization, Blog2Social MCP tools can be used from supported AI coding and agent workflows inside VS Code.


Connect from MCPJam

MCPJam can be used to inspect and work with MCP servers.

Use the Blog2Social MCP endpoint:

https://api.blog2social.com/mcp

Complete the Blog2Social OAuth authentication flow and authorize access to your Blog2Social account.

Once authenticated, MCPJam can interact with the available Blog2Social MCP tools.


MCP and Blog2Social

MCP provides a standardized interface between AI applications and Blog2Social.

The general architecture looks like this:

AI Assistant
      |
      | MCP
      v
Blog2Social MCP Server
      |
      | Blog2Social API
      v
Blog2Social
      |
      +-- Social Networks
      +-- Connected Accounts
      +-- Posts
      +-- Publishing

This allows AI applications to work with Blog2Social without requiring a separate custom integration for every AI platform.


OAuth Authentication

Blog2Social MCP uses OAuth for authentication and authorization.

The authentication process allows users to connect their Blog2Social account without providing their Blog2Social password directly to the AI application.

The general process is:

1. Connect AI application
          ↓
2. Enter Blog2Social MCP endpoint
          ↓
3. Start OAuth authentication
          ↓
4. Log in to Blog2Social
          ↓
5. Authorize the application
          ↓
6. Return to the AI application
          ↓
7. Blog2Social MCP connection is active

OAuth provides the authorization layer between the AI application and the Blog2Social account.

Always review the authorization request before approving a connection.


MCP vs. Blog2Social API

Blog2Social provides different integration options depending on your use case.

IntegrationUse case
MCPAI assistants, AI agents, natural-language workflows
REST APICustom applications and backend integrations
AI API SpecificationAI-assisted API development and code generation
Automation platformsAutomated workflows and integrations

MCP is particularly useful when an AI assistant or AI agent needs to interact with Blog2Social through standardized tools.

The REST API remains available for applications that require direct programmatic access to Blog2Social.


MCP Prompts and Examples

After connecting Blog2Social MCP, you can interact with Blog2Social using natural-language instructions.

Create a social media post

Create a social media post announcing our new blog article.

Request a scheduled publishing action

Publish this Facebook post tomorrow at 8:00 AM.

The instruction can be understood by an AI client as a requested publication time. The Blog2Social REST API specification currently documents publishing, but does not define a scheduling endpoint. The AI client or connected MCP tools must therefore provide the scheduling capability; otherwise the client should explain that it can prepare or publish the post, but cannot schedule it.

Create platform-specific content

Create versions of this announcement for LinkedIn, Facebook and X.

Publish content

Publish this announcement to my connected social media accounts.

Create a campaign

Create a social media campaign for our new blog article.

Prepare posts for the relevant social networks with the requested
publication times over the next week.

Generate content from an article

Turn this article into social media posts for LinkedIn,
Facebook and Instagram and prepare them for later publishing.

Prepare content for review

Create three social media posts about our new product.

Do not publish anything yet.
I want to review the posts first.

The exact actions available depend on the Blog2Social MCP tools and the permissions granted to the connected account.


Human-in-the-Loop Workflows

MCP can also be used for workflows where AI prepares content while the user remains in control of the final publishing action.

For example:

AI generates content
        ↓
Blog2Social MCP
        ↓
Create / Prepare Content
        ↓
Human Review
        ↓
Request publication or publish

A typical workflow could be:

Create three social media posts about our new product.
Do not publish anything yet.

After reviewing the generated content:

The second post looks good.
Publish it to LinkedIn tomorrow at 9 AM.

This allows AI to assist with content creation and workflow automation while keeping the final publishing decision with the user.


Security and Authorization

Blog2Social MCP uses OAuth for account authorization.

Your Blog2Social password is not provided to the AI model as part of an MCP request.

Authentication is handled through the Blog2Social OAuth flow.

As with any third-party integration, only authorize MCP clients and applications that you trust.

Always review the authorization request before granting access.


AI API Specification

The Blog2Social API can be integrated directly into AI agents, coding assistants, automation platforms, and custom applications.

To simplify AI-powered integrations, Blog2Social provides a machine-readable OpenAPI specification optimized for automated code generation and API understanding.

Use the following AI-optimized API specification to generate applications, SDKs, integrations, or custom tools with your preferred AI assistant.

https://docs.blog2social.com/api/ai-specification.json

The document contains the complete Blog2Social API description, including endpoints, request and response schemas, authentication, examples, and data models.

It is optimized for AI coding assistants such as ChatGPT, Claude, Gemini, Cursor, GitHub Copilot, and similar developer tools, enabling them to understand the API and generate integrations more effectively.

The AI API specification is continuously updated alongside the Blog2Social API and should be used as the primary source for AI-assisted development.

The AI API Specification helps developers and AI coding assistants understand the Blog2Social REST API and generate custom integrations.

AI Coding Assistant
      ↓
AI API Specification
      ↓
Custom Application
      ↓
Blog2Social API

You can use both approaches depending on your requirements.


Platform Guides

Learn how to connect, manage and publish content on supported platforms using the Blog2Social API.

Each guide provides platform-specific information, supported content types, media requirements, publishing examples, best practices and API workflows.

The guides help you understand platform-specific capabilities, optimize content publishing and build efficient social media automation workflows.

Topics covered in each guide:

  • Account connection and authorization
  • Supported content and media types
  • Publishing workflows
  • Platform-specific requirements
  • Best practices and recommendations
  • Analytics and insights
  • Example API requests and responses
  • Common use cases

Use these guides to get the most out of each platform while working with a unified API experience.

Band

Publish content to Band through the Blog2Social API.

Band is a community platform designed for groups, teams and organizations. Use the Blog2Social API to connect Band accounts, publish posts and automate group communication workflows.

Supported Content Types

  • Posts

Supported Media

  • Images

Connect a Band Account

  1. Retrieve available networks using /network/list
  2. Select the Band network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Band Post

Use postFormat = 1 for image posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "Band Post",
  "message": "Hello Band",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common Band Use Cases

  • Group Communication
  • Team Updates
  • Community Management
  • Event Announcements
  • Organization News

Best Practices

  • Keep messages clear and informative.
  • Use images to increase engagement.
  • Share updates relevant to your group.
  • Store the client_user_network_id for future publishing.
  • Publish consistently to keep members informed.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Blogger

Publish content to Blogger through the Blog2Social API.

Blogger is a blogging platform for publishing articles, updates and long-form content. Use the Blog2Social API to connect Blogger accounts, publish articles and automate blog content distribution.

Supported Content Types

  • Articles

Supported Media

  • Images

Connect a Blogger Account

  1. Retrieve available networks using /network/list
  2. Select the Blogger network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Blogger Article

Use postFormat = 1 when publishing article content with images.

Example:

{
  "client_user_network_id": 3241,
  "title": "Blogger Article",
  "message": "This is the article content for Blogger.",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common Blogger Use Cases

  • Blog Publishing
  • Content Marketing
  • Article Distribution
  • Brand Publishing
  • Automated Blog Workflows

Best Practices

  • Use clear titles and structured content.
  • Add relevant images where useful.
  • Keep article content informative and readable.
  • Store the client_user_network_id for future publishing.
  • Reuse successful content across publishing workflows.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Bloglovin

Publish content to Bloglovin through the Blog2Social API.

Bloglovin is a platform for discovering, following and sharing blog content. Use the Blog2Social API to connect Bloglovin accounts, publish blog posts and automate blog content distribution.

Supported Content Types

  • Blog Posts

Supported Media

  • Images

Connect a Bloglovin Account

  1. Retrieve available networks using /network/list
  2. Select the Bloglovin network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Bloglovin Post

Use postFormat = 1 when publishing blog content with images.

Example:

{
  "client_user_network_id": 3241,
  "title": "Bloglovin Post",
  "message": "New blog content is available.",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common Bloglovin Use Cases

  • Blog Content Distribution
  • Content Discovery
  • Audience Growth
  • Brand Publishing
  • Automated Blog Promotion

Best Practices

  • Use clear titles and descriptions.
  • Add relevant images where useful.
  • Keep content aligned with your blog audience.
  • Store the client_user_network_id for future publishing.
  • Reuse successful blog content across publishing workflows.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Bluesky

Publish content to Bluesky through the Blog2Social API.

Bluesky is a decentralized social media platform for public conversations, communities and real-time updates. Use the Blog2Social API to connect Bluesky accounts, publish posts and automate social media distribution.

Supported Content Types

  • Posts

Supported Media

  • Links
  • Images

Connect a Bluesky Account

  1. Retrieve available networks using /network/list
  2. Select the Bluesky network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Bluesky Post

Use postFormat = 0 for link posts or postFormat = 1 for image posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "Bluesky Post",
  "message": "Hello Bluesky",
  "postFormat": 0,
  "customUrl": "https://example.com"
}

Common Bluesky Use Cases

  • Social Publishing
  • Community Updates
  • Brand Communication
  • Content Distribution
  • Audience Engagement

Best Practices

  • Keep posts concise and relevant.
  • Use images to increase engagement.
  • Include links when driving traffic.
  • Store the client_user_network_id for future publishing.
  • Monitor publishing results regularly.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

DEV.to

Publish content to DEV.to through the Blog2Social API.

DEV.to is a publishing platform for developers, technical writers and software communities. Use the Blog2Social API to connect DEV.to accounts, publish articles and distribute technical content automatically.

Supported Content Types

  • Articles

Supported Media

  • Images
  • Videos

Connect a DEV.to Account

  1. Retrieve available networks using /network/list
  2. Select the DEV.to network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a DEV.to Article

Use postFormat = 1 for image articles or postFormat = 2 when video media is included.

Example:

{
  "client_user_network_id": 3241,
  "title": "DEV.to Article",
  "message": "This is the article content for DEV.to.",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common DEV.to Use Cases

  • Technical Content Publishing
  • Developer Relations
  • Product Updates
  • Engineering Blogs
  • Community Building

Best Practices

  • Use clear technical titles.
  • Structure content for readability.
  • Add relevant images or media when useful.
  • Store the client_user_network_id for future publishing.
  • Share valuable and practical content for developer audiences.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Diigo

Publish content to Diigo through the Blog2Social API.

Diigo is a bookmarking and research platform for saving, organizing and sharing useful links. Use the Blog2Social API to connect Diigo accounts, publish bookmarks and automate link distribution workflows.

Supported Content Types

  • Bookmarks

Supported Media

  • Links

Connect a Diigo Account

  1. Retrieve available networks using /network/list
  2. Select the Diigo network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Diigo Bookmark

Use postFormat = 0 and provide a URL via customUrl.

Example:

{
  "client_user_network_id": 3241,
  "title": "Diigo Bookmark",
  "message": "Useful resource",
  "postFormat": 0,
  "customUrl": "https://example.com"
}

Common Diigo Use Cases

  • Bookmark Publishing
  • Link Distribution
  • Research Collection
  • Content Curation
  • Knowledge Sharing

Best Practices

  • Use clear and descriptive titles.
  • Add meaningful context in the message.
  • Ensure the URL is publicly accessible.
  • Store the client_user_network_id for future publishing.
  • Keep shared links relevant and useful.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Discord

Publish content to Discord through the Blog2Social API.

Discord is a community platform for servers, channels and direct audience communication. Use the Blog2Social API to connect Discord accounts, publish messages and automate community updates.

Supported Content Types

  • Messages

Supported Media

  • Images
  • Videos

Connect a Discord Account

  1. Retrieve available networks using /network/list
  2. Select the Discord network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Discord Message

Use postFormat = 1 for image messages or postFormat = 2 for video messages.

Example:

{
  "client_user_network_id": 3241,
  "title": "Discord Message",
  "message": "Hello Discord",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common Discord Use Cases

  • Community Updates
  • Server Announcements
  • Content Distribution
  • Product Updates
  • Audience Communication

Best Practices

  • Keep messages clear and relevant.
  • Use images or videos for important updates.
  • Publish content to the right connected account.
  • Store the client_user_network_id for future publishing.
  • Monitor publishing results regularly.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Facebook

Publish content to Facebook through the Blog2Social API.

Facebook remains one of the world's largest social media platforms for businesses, creators and communities. Use the Blog2Social API to connect Facebook profiles, pages and groups, publish content automatically and streamline social media workflows.

Supported Content Types

  • Posts
  • Reels

Supported Media

  • Links
  • Images
  • Videos

Connect a Facebook Account

  1. Retrieve available networks using /network/list
  2. Select the Facebook network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Facebook Post

Use postFormat = 0 for link posts, postFormat = 1 for image posts or postFormat = 2 for video posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "Facebook Post",
  "message": "Hello Facebook",
  "postFormat": 0,
  "customUrl": "https://example.com"
}

Retrieve Post Insights

Use the Insights endpoints to retrieve engagement and performance metrics for published Facebook content.

Available endpoints:

  • /network/post/insights/total
  • /network/post/insights/graph

Common Facebook Use Cases

  • Business Page Publishing
  • Community Management
  • Marketing Automation
  • Content Distribution
  • Agency Dashboards

Best Practices

  • Use engaging images and videos.
  • Keep posts concise and relevant.
  • Store the client_user_network_id for future publishing.
  • Track performance using Insights.
  • Automate recurring publishing workflows.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create
  • /network/post/insights/total
  • /network/post/insights/graph

Flickr

Publish content to Flickr through the Blog2Social API.

Flickr is a media-focused platform for sharing photography, visual content and creative portfolios. Use the Blog2Social API to connect Flickr accounts, publish media posts and automate visual content distribution.

Supported Content Types

  • Media Posts

Supported Media

  • Images
  • Videos

Connect a Flickr Account

  1. Retrieve available networks using /network/list
  2. Select the Flickr network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Flickr Media Post

Use postFormat = 1 for image posts or postFormat = 2 for video posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "Flickr Media Post",
  "message": "Hello Flickr",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common Flickr Use Cases

  • Photography Publishing
  • Visual Portfolio Distribution
  • Creative Media Sharing
  • Brand Image Publishing
  • Content Archiving

Best Practices

  • Use high-quality images and videos.
  • Add clear titles and descriptions.
  • Keep media URLs publicly accessible.
  • Store the client_user_network_id for future publishing.
  • Monitor publishing results regularly.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Google Business Profile

Publish content to Google Business Profile through the Blog2Social API.

Google Business Profile helps businesses publish updates, offers and announcements directly to their business presence on Google. Use the Blog2Social API to connect Google Business Profile accounts, publish business posts and automate local marketing workflows.

Supported Content Types

  • Business Posts

Supported Media

  • Images

Connect a Google Business Profile

  1. Retrieve available networks using /network/list
  2. Select the Google Business Profile network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Business Post

Use postFormat = 1 for image posts

Example:

{
  "client_user_network_id": 3241,
  "title": "Business Update",
  "message": "New update from our business",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common Google Business Profile Use Cases

  • Local Business Updates
  • Offers and Promotions
  • Event Announcements
  • Local SEO Support
  • Brand Visibility

Best Practices

  • Use clear and helpful business updates.
  • Add relevant images.
  • Keep messages accurate and locally relevant.
  • Store the client_user_network_id for future publishing.
  • Monitor publishing results regularly.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create
  • /network/post/remove

HumHub

Publish content to HumHub through the Blog2Social API.

HumHub is a social networking and collaboration platform for organizations, communities and teams. Use the Blog2Social API to connect HumHub accounts, publish posts and automate internal or community communication.

Supported Content Types

  • Posts

Supported Media

  • Images

Connect a HumHub Account

  1. Retrieve available networks using /network/list
  2. Select the HumHub network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a HumHub Post

Use postFormat = 1 for image posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "HumHub Post",
  "message": "Hello HumHub",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common HumHub Use Cases

  • Team Communication
  • Community Updates
  • Internal Collaboration
  • Organization Announcements
  • Knowledge Sharing

Best Practices

  • Share clear and relevant updates.
  • Use images where appropriate.
  • Publish content that benefits your community.
  • Store the client_user_network_id for future publishing.
  • Monitor engagement and publishing results.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Instagram

Publish content to Instagram through the Blog2Social API.

Instagram is one of the world's leading social media platforms for visual content and audience engagement. Use the Blog2Social API to connect Instagram accounts, publish image and video content, and automate Instagram publishing workflows.

Supported Content Types

  • Image Posts
  • Video Posts

Supported Media

  • Single Images
  • Multiple Images (Carousel Posts)
  • Videos

Connect an Instagram Account

  1. Retrieve available networks using /network/list
  2. Select the Instagram network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish an Image Post

Use postFormat = 1 and provide one or more image URLs in mediaObjects.

Example:

{
  "client_user_network_id": 3241,
  "title": "Instagram Image Post",
  "message": "Hello Instagram",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Publish a Video Post

Use postFormat = 2 and provide a video URL.

Example:

{
  "client_user_network_id": 3241,
  "title": "Instagram Video Post",
  "message": "Hello Instagram",
  "postFormat": 2,
  "mediaObjects": [
    {
      "type": "VIDEO",
      "url": "https://example.com/video.mp4"
    }
  ]
}

Retrieve Post Insights

Use the Insights endpoints to retrieve engagement and performance metrics for published Instagram content.

Available endpoints:

  • /network/post/insights/total
  • /network/post/insights/graph

Common Instagram Use Cases

  • Social Media Management Platforms
  • Marketing Automation Tools
  • Content Scheduling Solutions
  • Agency Dashboards
  • Creator Management Platforms

Best Practices

  • Use high-quality images and videos.
  • Keep captions concise and engaging.
  • Validate media URLs before publishing.
  • Store the client_user_network_id for future publishing.
  • Monitor post performance using Insights.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create
  • /network/post/insights/total
  • /network/post/insights/graph

Instapaper

Publish content to Instapaper through the Blog2Social API.

Instapaper is a platform for saving, organizing and reading web content. Use the Blog2Social API to connect Instapaper accounts, publish saved content and automate link-based content workflows.

Supported Content Types

  • Saved Content

Supported Media

  • Links

Connect an Instapaper Account

  1. Retrieve available networks using /network/list
  2. Select the Instapaper network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish Saved Content

Use postFormat = 0 and provide a URL via customUrl.

Example:

{
  "client_user_network_id": 3241,
  "title": "Instapaper Content",
  "message": "Saved content for later reading",
  "postFormat": 0,
  "customUrl": "https://example.com"
}

Common Instapaper Use Cases

  • Saved Content Publishing
  • Reading List Automation
  • Link Collection
  • Content Curation
  • Research Workflows

Best Practices

  • Use clear and descriptive titles.
  • Provide useful context in the message.
  • Ensure the URL is publicly accessible.
  • Store the client_user_network_id for future publishing.
  • Keep saved content relevant and organized.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

LinkedIn

Publish content to LinkedIn through the Blog2Social API.

LinkedIn is the world's leading professional networking platform for businesses, brands and professionals. Use the Blog2Social API to connect LinkedIn accounts, publish content automatically and streamline professional content distribution.

Supported Content Types

  • Posts

Supported Media

  • Links
  • Images
  • Videos

Connect a LinkedIn Account

  1. Retrieve available networks using /network/list
  2. Select the LinkedIn network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Post

Use postFormat = 0 for link posts, postFormat = 1 for image posts or postFormat = 2 for video posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "LinkedIn Post",
  "message": "Hello LinkedIn",
  "postFormat": 0,
  "customUrl": "https://example.com"
}

Retrieve Post Insights

Use the Insights endpoints to retrieve engagement and performance metrics for published content.

Available endpoints:

  • /network/post/insights/total
  • /network/post/insights/graph

Common LinkedIn Use Cases

  • Professional Content Distribution
  • Thought Leadership
  • Company Updates
  • Employer Branding
  • B2B Marketing

Best Practices

  • Share valuable and professional content.
  • Use images and videos to increase engagement.
  • Include relevant links and calls to action.
  • Store the client_user_network_id for future publishing.
  • Monitor performance using Insights.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create
  • /network/post/insights/total
  • /network/post/insights/graph

Mastodon

Publish content to Mastodon through the Blog2Social API.

Mastodon is a decentralized social media platform for public conversations, communities and topic-based communication. Use the Blog2Social API to connect Mastodon accounts, publish posts and automate content distribution.

Supported Content Types

  • Posts

Supported Media

  • Links
  • Images
  • Videos

Connect a Mastodon Account

  1. Retrieve available networks using /network/list
  2. Select the Mastodon network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Mastodon Post

Use postFormat = 0 for link posts, postFormat = 1 for image posts or postFormat = 2 for video posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "Mastodon Post",
  "message": "Hello Mastodon",
  "postFormat": 0,
  "customUrl": "https://example.com"
}

Common Mastodon Use Cases

  • Community Publishing
  • Decentralized Social Media
  • Topic-Based Communication
  • Content Distribution
  • Brand Updates

Best Practices

  • Keep posts relevant to your audience.
  • Use links, images or videos when appropriate.
  • Respect community norms and instance rules.
  • Store the client_user_network_id for future publishing.
  • Monitor publishing results regularly.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Medium

Publish content to Medium through the Blog2Social API.

Medium is a publishing platform for articles, stories and thought leadership content. Use the Blog2Social API to connect Medium accounts, publish articles and distribute long-form content automatically.

Supported Content Types

  • Articles

Supported Media

  • Images

Connect a Medium Account

  1. Retrieve available networks using /network/list
  2. Select the Medium network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Medium Article

Use postFormat = 1 with image content when media is included.

Example:

{
  "client_user_network_id": 3241,
  "title": "Medium Article",
  "message": "This is the article content for Medium.",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common Medium Use Cases

  • Thought Leadership
  • Blog Distribution
  • Content Marketing
  • Brand Publishing
  • Long-Form Articles

Best Practices

  • Use clear titles and structured article content.
  • Add relevant images to improve readability.
  • Keep content valuable and informative.
  • Store the client_user_network_id for future publishing.
  • Reuse successful content across publishing workflows.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Pinterest

Publish content to Pinterest through the Blog2Social API.

Pinterest is a visual discovery platform for inspiration, products, ideas and long-term content visibility. Use the Blog2Social API to connect Pinterest accounts, publish pins and manage board-based publishing workflows.

Supported Content Types

  • Pins
  • Boards

Supported Media

  • Images
  • Videos

Connect a Pinterest Account

  1. Retrieve available networks using /network/list
  2. Select the Pinterest network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Retrieve Boards

Use /network/categories to retrieve available Pinterest boards for a connected account.

Publish a Pin

Use postFormat = 1 for image pins or postFormat = 2 for video pins.

Example:

{
  "client_user_network_id": 3241,
  "title": "Pinterest Pin",
  "message": "Discover more on our website",
  "postFormat": 1,
  "customUrl": "https://example.com",
  "board": "BOARD_ID",
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common Pinterest Use Cases

  • Product Promotion
  • Visual Content Distribution
  • Blog Traffic Generation
  • E-Commerce Marketing
  • Evergreen Content Promotion

Best Practices

  • Use high-quality vertical images.
  • Add clear titles and descriptions.
  • Include a relevant destination URL.
  • Publish to the correct board.
  • Store the client_user_network_id for future publishing.

Related Endpoints

  • /network/list
  • /network/add
  • /network/categories
  • /user/auth/list
  • /network/post/create

Ravelry

Publish content to Ravelry through the Blog2Social API.

Ravelry is a community platform for fiber artists, designers and craft-related content. Use the Blog2Social API to connect Ravelry accounts, publish posts and automate content distribution.

Supported Content Types

  • Posts

Supported Media

  • Images

Connect a Ravelry Account

  1. Retrieve available networks using /network/list
  2. Select the Ravelry network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Ravelry Post

Use postFormat = 1 for image posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "Ravelry Post",
  "message": "Hello Ravelry",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common Ravelry Use Cases

  • Community Publishing
  • Craft Content Distribution
  • Pattern Promotion
  • Creator Updates
  • Niche Audience Engagement

Best Practices

  • Use clear and relevant images.
  • Keep messages useful for the community.
  • Publish content that fits the audience.
  • Store the client_user_network_id for future publishing.
  • Monitor publishing results regularly.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Reddit

Publish content to Reddit through the Blog2Social API.

Reddit is a community-driven platform for discussions, niche communities and topic-based content distribution. Use the Blog2Social API to connect Reddit accounts, publish posts and manage subreddit-based publishing workflows.

Supported Content Types

  • Posts
  • Subreddits

Supported Media

  • Links
  • Images

Connect a Reddit Account

  1. Retrieve available networks using /network/list
  2. Select the Reddit network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Retrieve Subreddits

Use /network/categories to retrieve available subreddits for a connected account.

Publish a Reddit Post

Use postFormat = 0 for link posts or postFormat = 1 for image posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "Reddit Post",
  "message": "Hello Reddit",
  "postFormat": 0,
  "customUrl": "https://example.com"
}

Common Reddit Use Cases

  • Community Engagement
  • Topic-Based Content Distribution
  • Product Feedback
  • Content Promotion
  • Niche Marketing

Best Practices

  • Publish relevant content for each subreddit.
  • Follow subreddit rules and guidelines.
  • Use clear titles and helpful descriptions.
  • Avoid overly promotional content.
  • Store the client_user_network_id for future publishing.

Related Endpoints

  • /network/list
  • /network/add
  • /network/categories
  • /user/auth/list
  • /network/post/create

Telegram

Publish content to Telegram through the Blog2Social API.

Telegram is a messaging and channel platform for fast content distribution, community updates and direct audience communication. Use the Blog2Social API to connect Telegram channels and publish messages automatically.

Supported Content Types

  • Messages

Supported Media

  • Links
  • Images

Connect a Telegram Account

  1. Retrieve available networks using /network/list
  2. Select the Telegram network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Telegram Message

Use postFormat = 0 for link posts, postFormat = 1 for image posts

Example:

{
  "client_user_network_id": 3241,
  "title": "Telegram Message",
  "message": "Hello Telegram",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common Telegram Use Cases

  • Channel Updates
  • Community Communication
  • News Distribution
  • Marketing Automation
  • Content Broadcasting

Best Practices

  • Keep messages clear and direct.
  • Use images for important announcements.
  • Publish relevant updates to the right channel.
  • Store the client_user_network_id for future publishing.
  • Monitor publishing results regularly.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Threads

Publish content to Threads through the Blog2Social API.

Threads is a social platform for conversations, updates and community engagement. Use the Blog2Social API to connect Threads accounts, publish posts and automate social media publishing workflows.

Supported Content Types

  • Posts

Supported Media

  • Links
  • Images
  • Videos

Connect a Threads Account

  1. Retrieve available networks using /network/list
  2. Select the Threads network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Threads Post

Use postFormat = 0 for link posts, postFormat = 1 for image posts or postFormat = 2 for video posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "Threads Post",
  "message": "Hello Threads",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common Threads Use Cases

  • Brand Communication
  • Community Engagement
  • Content Distribution
  • Social Media Automation
  • Audience Updates

Best Practices

  • Keep posts concise and conversational.
  • Use images or videos to increase visibility.
  • Publish content that encourages interaction.
  • Store the client_user_network_id for future publishing.
  • Monitor publishing results regularly.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

TikTok

Publish content to TikTok through the Blog2Social API.

TikTok is a leading platform for short-form video content, trends and audience engagement. Use the Blog2Social API to connect TikTok accounts, publish image and video content, and automate TikTok publishing workflows.

Supported Content Types

  • Posts

Supported Media

  • Images
  • Videos

Connect a TikTok Account

  1. Retrieve available networks using /network/list
  2. Select the TikTok network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a TikTok Post

Use postFormat = 1 for image posts or postFormat = 2 for video posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "TikTok Post",
  "message": "Hello TikTok",
  "postFormat": 2,
  "mediaObjects": [
    {
      "type": "VIDEO",
      "url": "https://example.com/video.mp4"
    }
  ]
}

Common TikTok Use Cases

  • Short-Form Video Publishing
  • Product Promotion
  • Creator Campaigns
  • Brand Awareness
  • Social Media Automation

Best Practices

  • Use vertical, engaging video content.
  • Keep messages short and relevant.
  • Use strong visual hooks.
  • Store the client_user_network_id for future publishing.
  • Monitor publishing results regularly.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Torial

Publish content to Torial through the Blog2Social API.

Torial is a publishing platform for journalists, writers and professional content creators. Use the Blog2Social API to connect Torial accounts, publish articles and automate content distribution.

Supported Content Types

  • Articles

Supported Media

  • Images

Connect a Torial Account

  1. Retrieve available networks using /network/list
  2. Select the Torial network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Torial Article

Use postFormat = 1 when publishing article content with images.

Example:

{
  "client_user_network_id": 3241,
  "title": "Torial Article",
  "message": "This is the article content for Torial.",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common Torial Use Cases

  • Article Publishing
  • Journalism Portfolios
  • Professional Content Distribution
  • Author Branding
  • Editorial Publishing

Best Practices

  • Use clear titles and structured article content.
  • Add relevant images where useful.
  • Keep content professional and informative.
  • Store the client_user_network_id for future publishing.
  • Reuse high-quality editorial content across publishing workflows.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Tumblr

Publish content to Tumblr through the Blog2Social API.

Tumblr is a blogging and social publishing platform for creative content, visual storytelling and community engagement. Use the Blog2Social API to connect Tumblr accounts, publish posts and automate content distribution.

Supported Content Types

  • Posts

Supported Media

  • Links
  • Images
  • Videos

Connect a Tumblr Account

  1. Retrieve available networks using /network/list
  2. Select the Tumblr network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Tumblr Post

Use postFormat = 0 for link posts, postFormat = 1 for image posts or postFormat = 2 for video posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "Tumblr Post",
  "message": "Hello Tumblr",
  "postFormat": 0,
  "customUrl": "https://example.com"
}

Common Tumblr Use Cases

  • Blog Content Distribution
  • Creative Publishing
  • Visual Storytelling
  • Community Engagement
  • Brand Awareness

Best Practices

  • Use expressive visuals and concise text.
  • Add relevant links where useful.
  • Keep content aligned with your audience.
  • Store the client_user_network_id for future publishing.
  • Monitor publishing results and engagement.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

Vimeo

Publish content to Vimeo through the Blog2Social API.

Vimeo is a video hosting platform for professional video publishing, branded content and creative media distribution. Use the Blog2Social API to connect Vimeo accounts, publish videos and automate video publishing workflows.

Supported Content Types

  • Videos

Supported Media

  • Videos

Connect a Vimeo Account

  1. Retrieve available networks using /network/list
  2. Select the Vimeo network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Vimeo Video

Use postFormat = 2 and provide a video URL.

Example:

{
  "client_user_network_id": 3241,
  "title": "Vimeo Video",
  "message": "Video description for Vimeo",
  "postFormat": 2,
  "mediaObjects": [
    {
      "type": "VIDEO",
      "url": "https://example.com/video.mp4"
    }
  ]
}

Common Vimeo Use Cases

  • Professional Video Publishing
  • Portfolio Distribution
  • Brand Video Hosting
  • Product Videos
  • Creative Content Publishing

Best Practices

  • Use high-quality video files.
  • Add clear titles and descriptions.
  • Validate video URLs before publishing.
  • Store the client_user_network_id for future publishing.
  • Check video publishing results after upload.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create
  • /video/upload
  • /video/check

VK (VKontakte)

Publish content to VK (VKontakte) through the Blog2Social API.

VK is a social networking platform for communities, brands and content distribution. Use the Blog2Social API to connect VK accounts, publish posts and automate social media publishing workflows.

Supported Content Types

  • Posts

Supported Media

  • Links
  • Images

Connect a VK Account

  1. Retrieve available networks using /network/list
  2. Select the VK network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a VK Post

Use postFormat = 0 for link posts, postFormat = 1 for image posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "VK Post",
  "message": "Hello VK",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common VK Use Cases

  • Social Media Publishing
  • Community Updates
  • Brand Communication
  • Content Distribution
  • Marketing Automation

Best Practices

  • Use clear and relevant messages.
  • Add images to increase visibility.
  • Keep content aligned with your audience.
  • Store the client_user_network_id for future publishing.
  • Monitor publishing results regularly.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

X

Publish content to X through the Blog2Social API.

X is a leading platform for real-time communication, news distribution and audience engagement. Use the Blog2Social API to connect X accounts, publish content automatically and streamline social media publishing workflows.

Supported Content Types

  • Posts

Supported Media

  • Links
  • Images
  • Videos

Connect an X Account

  1. Retrieve available networks using /network/list
  2. Select the X network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Post

Use postFormat = 0 for link posts, postFormat = 1 for image posts or postFormat = 2 for video posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "X Post",
  "message": "Hello X",
  "postFormat": 0,
  "customUrl": "https://example.com"
}

Retrieve Post Insights

Use the Insights endpoints to retrieve engagement and performance metrics for published content.

Available endpoints:

  • /network/post/insights/total
  • /network/post/insights/graph

Common X Use Cases

  • News Distribution
  • Content Promotion
  • Brand Communication
  • Marketing Automation
  • Audience Engagement

Best Practices

  • Keep messages concise and relevant.
  • Use images and videos to increase engagement.
  • Include links to drive traffic.
  • Store the client_user_network_id for future publishing.
  • Monitor performance using Insights.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create
  • /network/post/insights/total
  • /network/post/insights/graph

Xing

Publish content to Xing through the Blog2Social API.

Xing is a professional networking platform for business communication, employer branding and professional content distribution. Use the Blog2Social API to connect Xing accounts, publish posts and automate professional publishing workflows.

Supported Content Types

  • Posts

Supported Media

  • Links
  • Images

Connect a Xing Account

  1. Retrieve available networks using /network/list
  2. Select the Xing network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Publish a Xing Post

Use postFormat = 0 for link posts, postFormat = 1 for image posts.

Example:

{
  "client_user_network_id": 3241,
  "title": "Xing Post",
  "message": "Hello Xing",
  "postFormat": 1,
  "mediaObjects": [
    {
      "type": "IMAGE",
      "url": "https://example.com/image.jpg"
    }
  ]
}

Common Xing Use Cases

  • Professional Content Distribution
  • Employer Branding
  • Business Communication
  • Company Updates
  • B2B Marketing

Best Practices

  • Share professional and relevant content.
  • Use clear titles and messages.
  • Add images where useful.
  • Store the client_user_network_id for future publishing.
  • Monitor publishing results regularly.

Related Endpoints

  • /network/list
  • /network/add
  • /user/auth/list
  • /network/post/create

YouTube

Publish content to YouTube through the Blog2Social API.

YouTube is one of the world's largest video platforms for creators, brands and businesses. Use the Blog2Social API to connect YouTube channels, publish videos and Shorts, and manage playlist-based publishing workflows.

Supported Content Types

  • Videos
  • Shorts
  • Playlists

Supported Media

  • Videos

Connect a YouTube Account

  1. Retrieve available networks using /network/list
  2. Select the YouTube network_id
  3. Create an authorization link using /network/add
  4. Redirect the user to the returned auth_link
  5. Retrieve the connected account using /user/auth/list

Retrieve Playlists

Use /network/categories to retrieve available YouTube playlists for a connected account.

Publish a YouTube Video

Use postFormat = 2 and provide a video URL.

Example:

{
  "client_user_network_id": 3241,
  "title": "YouTube Video",
  "message": "Video description for YouTube",
  "postFormat": 2,
  "mediaObjects": [
    {
      "type": "VIDEO",
      "url": "https://example.com/video.mp4"
    }
  ]
}

Common YouTube Use Cases

  • Video Publishing
  • YouTube Shorts
  • Product Videos
  • Tutorials and Education
  • Brand Channels

Best Practices

  • Use clear titles and descriptions.
  • Upload high-quality video files.
  • Publish to the correct playlist when needed.
  • Store the client_user_network_id for future publishing.
  • Check video publishing results after upload.

Related Endpoints

  • /network/list
  • /network/add
  • /network/categories
  • /user/auth/list
  • /network/post/create
  • /video/upload
  • /video/check