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 Images, Videos
TikTok Posts Images, Videos
YouTube Videos, Shorts, Playlists Videos
Vimeo Videos Videos
Bluesky Posts Links, Images
Threads Posts Images, Videos
Mastodon Posts Links, Images, Videos
Discord Messages Images, Videos
Google Business Profile Business Posts Images, Videos
VK (VKontakte) Posts Images, Videos
Xing Posts 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, Videos

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 session.

Both tokens are required for most API requests.

Step 1: Create an Application

Login to:

https://console.blog2social.com

Create a new application and copy your service_token.

The service_token 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 App at https://console.blog2social.com
  2. POST /user/auth
  3. POST /network/list
  4. POST /network/add
  5. POST /user/auth/list
  6. 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

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": "YOUR_CLIENT_USER_NETWORK_ID"
}

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.

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.

language
required
string

The language used for the authorization flow or form.

service_conditions_id
required
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
required
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
{
  • "error_code": 1002,
  • "error_message": "required parameter missing {PARAMETER}"
}

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": "YOUR_CLIENT_USER_NETWORK_ID",
  • "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

Recieve a Video Token for a Video Post
A response of 200 OK only means, the progress of sending the post was successfully done by our API. Please check the result of the post, to see the result, from 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": "YOUR_CLIENT_USER_NETWORK_ID",
    "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, 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.

AI API Specification

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.


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
  • Videos

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 or postFormat = 2 for video 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 or videos.
  • 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
  • Videos

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 or postFormat = 2 for video 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 and videos 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

  • Images
  • Videos

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 = 1 for image messages or postFormat = 2 for video messages.

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 or videos 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

  • 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 = 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

  • Images
  • Videos

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 = 1 for image posts or postFormat = 2 for video 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 or videos 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

  • 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 = 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