Blog2Social API (1.0.0)

Get API Key

One API 25+ Social Platforms

Connect, manage and publish content across 25+ social media, blogging and community platforms through a single integration.

Instead of building and maintaining separate integrations for every platform, Blog2Social provides one centralized API for publishing text, links, images and videos at scale.

Whether you are building a SaaS platform, CMS, marketing automation solution, agency dashboard, e-commerce platform or enterprise application, Blog2Social helps you automate social media publishing while reducing development effort and maintenance costs.

Key Benefits

  • One integration for 25+ social media and publishing platforms
  • Publish content across multiple networks simultaneously
  • Connect profiles, pages and groups through one API
  • Support for text, links, images and videos
  • Retrieve social media insights and performance metrics
  • Automate publishing workflows and content distribution
  • Scale from a single user to thousands of connected accounts

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.

Platform Post Types Media
Facebook Posts, Reels Links, Images, Videos
X Posts Links, Images, Videos
LinkedIn Posts Links, Images, Videos
Instagram Posts Images, Videos
Pinterest Pins, Boards Images, Videos
Reddit Posts, Subreddits Links, Images
Tumblr Posts Links, Images, Videos
Medium Articles Images
Telegram Messages Links, Images
TikTok Posts Images, Videos
YouTube Videos, Shorts, Playlists Videos
Vimeo Videos Videos
Bluesky Posts Links, Images
Threads Posts Links, Images, Videos
Mastodon Posts Links, Images, Videos
Discord Messages Images, Videos
Google Business Profile Business Posts Images
VK (VKontakte) Posts Links, Images
Xing Posts Links, Images
Blogger Articles Images
DEV.to Articles Images, Videos
Flickr Media Posts Images, Videos
Diigo Bookmarks Links
Bloglovin Blog Posts Images
Torial Articles Images
Ravelry Posts Images
Instapaper Saved Content Links
Band Posts Images
HumHub Posts Images

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.

Step 4: Connect a Social Media Account

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.


Error Handling

The Blog2Social API returns HTTP status codes for request-level errors and network-specific result objects for publishing results.

When publishing to one or multiple social media networks, always evaluate every returned result object individually. A request can be successful on API level, while one or more networks may still reject or fail the publication.

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
}

Result Fields

Field Type Description
error integer 0 means success, 1 means the publication failed.
b2s_error_code string Machine-readable error code for failed publications.
publish_url string URL of the published post, if available.
network_post_id string ID returned by the social network, if available.
post_id integer Internal post reference.
extra.expired integer Returned with value 1 when the authorization has expired.

Common Error Codes

Code Description Recommended Action
TOKEN Authorization expired Reconnect the social media account.
CONTENT Content rejected by the network Adjust the post content and retry.
RIGHT Missing permissions Check account/page permissions and reconnect if needed.
LOGIN Social account disconnected Reconnect the social media account.
LIMIT Daily limit reached Retry later or reduce posting volume.
RATE_LIMIT Network rate limit reached Wait before retrying.
NO_DATA Missing required data Check required fields and request payload.

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
}

Retry Recommendations

Retry only when the error is temporary.

Error Code Retry? Reason
RATE_LIMIT Yes, later The network rate limit may reset.
LIMIT Yes, later The daily limit may reset.
TOKEN No The account must be reconnected first.
RIGHT No Permissions must be fixed first.
CONTENT No The content must be changed first.
NO_DATA No Required data is missing.

Best Practices

  • Always check error for every result object.
  • Do not assume that HTTP 200 OK means every network published successfully.
  • Store publish_url and network_post_id when available.
  • Reconnect accounts when b2s_error_code is TOKEN or extra.expired = 1.
  • Log failed result objects for debugging.
  • Retry only temporary failures such as RATE_LIMIT or LIMIT.

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/json
required
service_token
required
string

The token for your service

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN"
}

Response samples

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/json
required
service_token
required
string

The token for your service

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN"
}

Response samples

Content type
application/json
{
  • "users": [
    ]
}

Delete OAuth user

Delete OAuth user from your service

Request Body schema: application/json
required
service_token
required
string

The token for your service

users
required
Array of integers

List of OAuth user IDs to delete.

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN",
  • "users": [
    ]
}

Response samples

Content type
application/json
{
  • "details": [
    ]
}

Network

List Networks

List Networks

Request Body schema: application/json
required
service_token
required
string

The token for your service

access_token
required
string

The access token for the authenticated user.

format
string

flag (default) - Denormalized flag structure (profile, page, group) | type - Normalized type structure (network_type_id)

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN",
  • "access_token": "YOUR_ACCESS_TOKEN"
}

Response samples

Content type
application/json
[
  • {
    }
]

Add Connection

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

Request Body schema: application/json
required
service_token
required
string

The token for your service

access_token
required
string

The access token for the authenticated user.

network_id
required
integer

The ID of the social media network.

network_type_id
required
integer

The network type ID: 0 = Profile, 1 = Page, 2 = Group.

filter_level
string

The filter applied to shown groups and pages by their access level. Currently available for VK (network 17) with the value "admin".

language
string

The language used for the authorization flow or form.

service_conditions_id
integer

The service conditions ID used when a custom application should be used instead of the default application.

Responses

Request samples

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

Content type
application/json
{}

Update Connection

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

Request Body schema: application/json
required
service_token
required
string

The token for your service

access_token
required
string

The access token for the authenticated user.

client_user_network_id
required
integer

The ID of the user's connected social media account authorization.

network_id
required
integer

The ID of the social media network.

network_type_id
required
integer

The network type ID: 0 = Profile, 1 = Page, 2 = Group.

language
string

The language used for the authorization flow or form.

Responses

Request samples

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

Content type
application/json
{}

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/json
required
service_token
required
string

The token for your service

access_token
required
string

The access token for the authenticated user.

client_user_network_id
required
integer

The ID of the user's connected social media account authorization.

Responses

Request samples

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

Content type
application/json
[
  • {
    }
]

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/json
required
service_token
required
string

The token for your service

access_token
required
string

The access token for the authenticated user.

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN",
  • "access_token": "YOUR_ACCESS_TOKEN"
}

Response samples

Content type
application/json
[
  • {
    }
]

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/json
required
service_token
required
string

The token for your service

access_token
required
string

The access token for the authenticated user.

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN",
  • "access_token": "YOUR_ACCESS_TOKEN"
}

Response samples

Content type
application/json
[
  • {
    }
]

Delete User Connection

Delete a authorization from a User

Request Body schema: application/json
required
service_token
required
string

The token for your service

access_token
required
string

The access token for the authenticated user.

client_user_network_id
required
integer

The ID of the user's connected social media account authorization.

Responses

Request samples

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

Content type
application/json
{
  • "success": true
}

Account

Get Account Usage Overview

Returns the current available credit balance and credit usage for each day, grouped by API endpoint and network. This endpoint requires a service_token but does not require an access_token. The optional days parameter accepts values from 1 to 30 and defaults to 1 day.

Request Body schema: application/json
required
service_token
required
string

The token for your service.

days
integer [ 1 .. 30 ]
Default: 1

Number of calendar days to include, from 1 to 30. Defaults to 1 day.

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN",
  • "days": 30
}

Response samples

Content type
application/json
{
  • "credit_usage_total": 4,
  • "balance": 96,
  • "days": [
    ]
}

Share

Share to Network

Share to Network

Request Body schema: application/json
required
service_token
required
string

The token for your service

access_token
required
string

The access token for the authenticated user.

client_user_network_id
required
integer

The ID of the user's connected social media account authorization.

required
Array of objects (PostObject)

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN",
  • "access_token": "YOUR_ACCESS_TOKEN",
  • "client_user_network_id": 3241,
  • "b2s_posts": [
    ]
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

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/json
required
service_token
required
string

The token for your service

access_token
required
string

The access token for the authenticated user.

client_user_network_id
required
integer

The id of the network authorization (required for single posts only / not for bulk)

required
Array of objects

List of posts you want to remove

Responses

Request samples

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": []
}

Response samples

Content type
application/json
[]

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/json
required

Information needed to request insights from a network

Array
network_id
integer

ID of the network

network_type
integer
Enum: 0 1 2

type ID of the network (Profile: 0, Page: 1, Group: 2)

client_user_network_id
integer

ID of the network authrization

extern_post_id
integer

ID of the post given by the network

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN",
  • "access_token": "YOUR_ACCESS_TOKEN",
  • "network_post_data": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

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/json
required

specific request data

Array of objects
object

Timeframe to fetch data from. It defaults to the last 3 days

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN",
  • "access_token": "YOUR_ACCESS_TOKEN",
  • "fields": [
    ],
  • "network_post_data": [
    ],
  • "range": {
    }
}

Response samples

Content type
application/json
[
  • {
    }
]

Enable Insights Entry

Enable an existing Insights Entry

Request Body schema: application/json
required

Information needed to request insights from a network

Array
network_id
integer

ID of the network

network_type
integer
Enum: 0 1 2

type ID of the network (Profile: 0, Page: 1, Group: 2)

client_user_network_id
integer

ID of the network authrization

extern_post_id
integer

ID of the post given by the network

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN",
  • "access_token": "YOUR_ACCESS_TOKEN",
  • "network_post_data": [
    ]
}

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/json
required

Information needed to request insights from a network

Array
network_id
integer

ID of the network

network_type
integer
Enum: 0 1 2

type ID of the network (Profile: 0, Page: 1, Group: 2)

client_user_network_id
integer

ID of the network authrization

extern_post_id
integer

ID of the post given by the network

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN",
  • "access_token": "YOUR_ACCESS_TOKEN",
  • "network_post_data": [
    ]
}

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/json
required

List of posts you want to create

Array
client_user_network_id
integer

User network auth id to wich the post should go

title
string

Set post title

message
string

Set post message

postFormat
integer
Value: 2

Set post format (Video: 2)

customUrl
string

Set post url content

noCache
integer
Enum: 0 1

If the link shoud get a no_cache parameter

tags
Array of strings

Tags to post

board
string

Pinterest board to post to

Array 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_retweet
integer
Enum: 0 1

Indicator, if the post should be a retweet

network_post_id
string

The id of the post you want to retweet

post_id
integer

Identifier that will be returned with the Post Result Object, so you can pair it up with your request.

make_threads
integer
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_link
integer
Default: 0
Enum: 0 1

If enabled, the link URL won't be added to the end of the post message

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN",
  • "access_token": "YOUR_ACCESS_TOKEN",
  • "client_user_network_id": "YOUR_CLIENT_USER_NETWORK_ID",
  • "items": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

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-data
optional
video_token
string

The token you recieved for a video upload

max_count_chunks
integer

The count of chunks you split your video in

current_chunk
integer

The current chunk you want to upload

chunk
string <binary>

The binary video chunk file.

Responses

Request samples

Content type
multipart/form-data
{
  "video_token": "YOUR_VIDEO_TOKEN",
  "max_count_chunks": 1,
  "current_chunk": 1,
  "chunk": "@/path/to/file"
}

Response samples

Content type
application/json
{
  • "error": 0,
  • "networks": [
    ]
}

Get Video Post Results

Get the current states of your posts related to a video_token

Request Body schema: application/json
required
video_token
required
string

The video token received before uploading video chunks.

Responses

Request samples

Content type
application/json
{
  • "video_token": "YOUR_VIDEO_TOKEN"
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

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/json
required
service_token
required
string

The token for your service

access_token
required
string

The access token for the authenticated user.

network_id
required
integer

The ID of the social media network.

app_key
required
string
app_secret
required
string

The application secret.

app_name
required
string

Responses

Request samples

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

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/json
required
service_token
required
string

The token for your service

access_token
required
string

The access token for the authenticated user.

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN",
  • "access_token": "YOUR_ACCESS_TOKEN"
}

Response samples

Content type
application/json
{
  • "error": false,
  • "user_apps": [
    ]
}

Modify a User Apps

Modify the details of a User Apps.

Request Body schema: application/json
required
service_token
required
string

The token for your service

access_token
required
string

The access token for the authenticated user.

user_app_id
required
integer
app_name
required
string
app_key
required
string
app_secret
required
string

The application secret.

Responses

Request samples

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

Content type
application/json
{
  • "error": false
}

Delete a User Apps

Permamently delete a User Apps.

Request Body schema: application/json
required
service_token
required
string

The token for your service

access_token
required
string

The access token for the authenticated user.

user_app_id
required
integer

Responses

Request samples

Content type
application/json
{
  • "service_token": "YOUR_SERVICE_TOKEN",
  • "access_token": "YOUR_ACCESS_TOKEN",
  • "user_app_id": 1
}

Response samples

Content type
application/json
{
  • "error": false,
  • "inactive_auth_ids": [
    ]
}

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
    ->share()
    ->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
    ->share()
    ->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
    ->share()
    ->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, service token, or access token to a client configuration file.


Endpoint

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

https://api.blog2social.com/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.
  • MCP Bundles — Discover the Blog2Social MCP server through MCPBundles.
  • MCP Servers — Discover the Blog2Social MCP server through the MCP Servers directory.
  • Official MCP Registry — Blog2Social MCP is listed in the official Model Context Protocol Registry.

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.


Available Tools

The Blog2Social MCP server provides the following tools. Availability can depend on the connected account and client. Read-only tools retrieve information; write tools change data or publish content.

Connections

Tool Type Purpose
connections.list Read-only Lists the social media accounts connected to the authenticated Blog2Social account. Returns details such as network, account type, display name, and client_user_network_id.
connections.add Writes Starts the authorization flow to connect a social account. Requires network_id and network_type_id.
connections.remove Destructive Removes a connected social account. Requires its client_user_network_id.

connections.add uses these account type values for network_type_id:

Value Account type
0 Profile
1 Page
2 Group

Use networks.list to check available networks and account types before connecting an account. Pinterest may require a custom application configuration instead of the standard authorization link. Removing an account disconnects it from publishing; only do this when the user explicitly requests it.

Networks and publishing requirements

Tool Type Purpose
networks.list Read-only Lists connectable social networks, their IDs, and supported profiles, pages, and groups.
networks.properties Read-only Returns publishing capabilities and restrictions for a network and account type, such as supported media formats and character limits.

The Blog2Social API supports these networks. Availability and publishing capabilities can vary by account type; check networks.list and networks.properties for current details:

Facebook, X, LinkedIn, Instagram, Pinterest, Reddit, Tumblr, Medium, Telegram, TikTok, YouTube, Vimeo, Bluesky, Threads, Mastodon, Discord, Google Business Profile, VK, Xing, Blogger, DEV.to, Flickr, Diigo, Bloglovin, Torial, Ravelry, Instapaper, Band, and HumHub.

Credits

Tool Type Purpose
credits.balance Read-only Returns the current credit balance of the authenticated Blog2Social API account.
account.overview Read-only Returns the current credit balance and daily credit usage grouped by endpoint and network. Optionally accepts days from 1 to 30; defaults to 1 day.

Publishing and video status

Tool Type Purpose
posts.create Writes Publishes content to a connected social media account identified by client_user_network_id.
videos.status Read-only Checks the publishing status of a video using the video_token returned by posts.create.

posts.create supports these post format values:

Value Post format
0 Text / Link
1 Image
2 Video

Depending on the format, a post can include text, links, images, or videos. Use networks.properties to check network-specific posting requirements before preparing the post. For non-video posts, the result can include a publish_url. Video publishing can return a video_token; use it with videos.status to retrieve the current status (pending, failed, or successful). A successful video publication can include a publish_url.


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 status MCP code Error
405 -32601 Method not allowed - HTTP method is not supported
415 -32600 Invalid request - Content-Type must be application/json
406 -32600 Invalid request - Accept must include application/json and text/event-stream
400 -32600 Invalid request - Request body is required
400 -32700 Parse error - Invalid JSON
400 -32600 Invalid request - Invalid JSON-RPC request
200 -32601 Method not found - Unknown JSON-RPC method

Session and initialization errors

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

tools/list and tools/call errors

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

Authentication and authorization errors

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

Internal MCP session errors

HTTP status MCP code Error
500 -32603 Unable to create MCP session
500 -32603 MCP session state is incomplete
500 -32603 Unable to persist MCP session
500 -32603 Unable to load MCP session
500 -32603 Unable 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:

Application MCP support
ChatGPT Depends on MCP/connector availability
Claude Depends on MCP/connector availability
Claude Desktop Depends on MCP configuration and OAuth
Cline Depends on MCP configuration and OAuth
GitHub Copilot Depends on MCP configuration and OAuth
Cursor Depends on MCP configuration and OAuth
MCPJam MCP client; verify OAuth support
Mistral Depends on MCP/connector availability
n8n Depends on MCP configuration and OAuth
Notion Depends on MCP configuration and OAuth
Slackbot Depends on MCP configuration and OAuth
VS Code Depends 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

For clients that use a JSON configuration, the server entry is typically:

{
  "mcpServers": {
    "blog2social": {
      "url": "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

For a JSON-based MCP configuration, use an entry equivalent to:

{
  "servers": {
    "blog2social": {
      "url": "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.

Integration Use case
MCP AI assistants, AI agents, natural-language workflows
REST API Custom applications and backend integrations
AI API Specification AI-assisted API development and code generation
Automation platforms Automated 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.

List connected accounts

Show me all my connected social media accounts.

Check available networks and publishing requirements

Which social networks can I connect to Blog2Social?
What media formats and character limits are supported for LinkedIn?

Check the credit balance

How many Blog2Social credits do I have?

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.

Publish an image

Publish this image post to my Facebook page using the attached image
and this message:

Our latest article is now online.

Check video publishing status

Check the publishing status of my latest video post.

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.


Further MCP Documentation

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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /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.
  • /network/list
  • /network/add
  • /network/categories
  • /user/auth/list
  • /network/post/create
  • /video/upload
  • /video/check