Skip to main content

SDKs & Client Libraries

PostBoost provides auto-generated client libraries for 9 languages, all generated from the OpenAPI spec using OpenAPI Generator.

Available SDKs

LanguagePackageGenerator
Pythonpostboostpython
PHPpostboost/php-sdkphp
Node.js / TypeScriptpostboosttypescript-node
Gopostboost-gogo
Rubypostboostruby
Javacom.postboost:postboost-java-sdkjava
C# / .NETPostBoost.Clientcsharp
Rustpostboostrust
Bash (CLI)postboost-clibash

Python

pip install postboost
from postboost import ApiClient, Configuration, PostsApi

config = Configuration(access_token="YOUR_API_TOKEN")
with ApiClient(config) as client:
api = PostsApi(client)
post = api.create_post(workspace_uuid="...", post_input={
"versions": [{"account_id": 0, "is_original": True, "content": [{"body": "Hello!"}]}],
"schedule_now": True,
})
print(post.uuid)

PHP

composer require postboost/php-sdk
use PostBoost\Client\Api\PostsApi;
use PostBoost\Client\Configuration;

$config = Configuration::getDefaultConfiguration()
->setAccessToken('YOUR_API_TOKEN');

$api = new PostsApi(new GuzzleHttp\Client(), $config);
$post = $api->createPost($workspaceUuid, [
'versions' => [['account_id' => 0, 'is_original' => true, 'content' => [['body' => 'Hello!']]]],
'schedule_now' => true,
]);
echo $post->getUuid();

Node.js / TypeScript

npm install postboost
import { PostsApi, Configuration } from 'postboost';

const api = new PostsApi(new Configuration({ accessToken: process.env.POSTBOOST_API_TOKEN }));

const post = await api.createPost(workspaceUuid, {
versions: [{ accountId: 0, isOriginal: true, content: [{ body: 'Hello!' }] }],
scheduleNow: true,
});
console.log(post.uuid);

Go

go get github.com/postboost-co/postboost-go
import postboost "github.com/postboost-co/postboost-go"

cfg := postboost.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+apiToken)
client := postboost.NewAPIClient(cfg)

post, _, err := client.PostsAPI.CreatePost(ctx, workspaceUuid).
PostInput(postboost.PostInput{
Versions: []postboost.PostVersion{{
AccountId: postboost.PtrInt32(0),
IsOriginal: postboost.PtrBool(true),
Content: []postboost.PostContent{{Body: postboost.PtrString("Hello!")}},
}},
ScheduleNow: postboost.PtrBool(true),
}).Execute()

Ruby

gem install postboost
require 'postboost'

PostBoost.configure { |c| c.access_token = ENV['POSTBOOST_API_TOKEN'] }

api = PostBoost::PostsApi.new
post = api.create_post(workspace_uuid, {
versions: [{ account_id: 0, is_original: true, content: [{ body: 'Hello!' }] }],
schedule_now: true
})
puts post.uuid

Java

<!-- Maven — add GitHub Packages repository first -->
<repositories>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/postboost-co/postboost-java</url>
</repository>
</repositories>

<dependency>
<groupId>com.postboost</groupId>
<artifactId>postboost-java-sdk</artifactId>
<version>1.3.0</version>
</dependency>
ApiClient client = new ApiClient();
client.setBearerToken(apiToken);

PostsApi api = new PostsApi(client);
Post post = api.createPost(workspaceUuid, new PostInput()
.addVersionsItem(new PostVersion()
.accountId(0)
.isOriginal(true)
.addContentItem(new PostContent().body("Hello!")))
.scheduleNow(true));
System.out.println(post.getUuid());

C# / .NET

dotnet add package PostBoost.Client
using PostBoost.Client.Api;
using PostBoost.Client.Model;

var config = new Configuration { AccessToken = apiToken };
var api = new PostsApi(config);

var post = await api.CreatePostAsync(workspaceUuid, new PostInput(
versions: new List<PostVersion> {
new PostVersion(accountId: 0, isOriginal: true,
content: new List<PostContent> { new PostContent(body: "Hello!") })
},
scheduleNow: true
));
Console.WriteLine(post.Uuid);

Rust

[dependencies]
postboost = "1.3.0"
use postboost::apis::posts_api;
use postboost::models::PostInput;

let mut config = postboost::apis::configuration::Configuration::new();
config.bearer_access_token = Some(api_token.to_string());

let post = posts_api::create_post(&config, &workspace_uuid, post_input).await?;
println!("{}", post.uuid.unwrap());

Bash CLI

# Download latest release
curl -LO https://github.com/postboost-co/postboost-cli/releases/latest/download/postboost-cli.tar.gz
tar xzf postboost-cli.tar.gz

# Set token
export POSTBOOST_API_TOKEN="YOUR_API_TOKEN"

# List posts
./postboost-cli listPosts --workspaceUuid "your-workspace-uuid"

Generating SDKs yourself

All SDKs are generated from the OpenAPI spec. You can regenerate them at any time:

# Clone the PostBoost repo and install the generator
npm install @openapitools/openapi-generator-cli

# Generate all SDKs
make sdks

# Or a specific language
make sdk-python

Requires Java 11+.