Free tools in 60 seconds
Every free tool is an API call that needs no account. This page splits a text into an X thread with splitThread (X thread maker); every other tool works the same way.
1. Install
- Python
- Node.js
- PHP
- Go
- Ruby
- Java
- C#
- Rust
- CLI
pip install postboost
npm install postboost
composer require postboost/php-sdk
go get github.com/postboost-co/postboost-go
gem install postboost
# Not on Maven Central yet: build it into your local Maven repository
git clone https://github.com/postboost-co/postboost-java.git
cd postboost-java && ./gradlew publishToMavenLocal
dotnet add package PostBoost.Client
cargo add postboost serde_json tokio --features tokio/full
curl -LO https://github.com/postboost-co/postboost-cli/releases/latest/download/postboost-cli.tar.gz
tar xzf postboost-cli.tar.gz
curl needs no install. The SDKs page has the details per language.
2. Call a tool without a token
- curl
- Python
- Node.js
- PHP
- Go
- Ruby
- Java
- C#
- Rust
- CLI
curl -X POST https://postboost.co/app/api/tools/x-thread-maker \
-H 'Content-Type: application/json' \
-d '{"text":"Short one.\n\nShort two.\n---\nSecond post.","numbering":true}'
from postboost import ApiClient, Configuration
from postboost.api.free_tools_api import FreeToolsApi
from postboost.models import FreeToolSplitThreadRequest
with ApiClient(Configuration()) as client:
api = FreeToolsApi(client)
result = api.split_thread(FreeToolSplitThreadRequest.from_dict({"text": "Short one.\n\nShort two.\n---\nSecond post.", "numbering": True}))
print(result.to_dict())
import { FreeToolsApi } from 'postboost';
const api = new FreeToolsApi();
const { body } = await api.splitThread({ text: "Short one.\n\nShort two.\n---\nSecond post.", numbering: true });
console.log(body);
use PostBoostClient\Api\FreeToolsApi;
use PostBoostClient\Model\FreeToolSplitThreadRequest;
$api = new FreeToolsApi(new GuzzleHttp\Client());
$result = $api->splitThread(new FreeToolSplitThreadRequest(['text' => "Short one.\n\nShort two.\n---\nSecond post.", 'numbering' => true]));
echo $result;
import (
"context"
"encoding/json"
"fmt"
postboost "github.com/postboost-co/postboost-go"
)
var request postboost.FreeToolSplitThreadRequest
if err := json.Unmarshal([]byte(`{"text":"Short one.\n\nShort two.\n---\nSecond post.","numbering":true}`), &request); err != nil {
panic(err)
}
client := postboost.NewAPIClient(postboost.NewConfiguration())
result, _, err := client.FreeToolsAPI.SplitThread(context.Background()).FreeToolSplitThreadRequest(request).Execute()
fmt.Println(result, err)
require 'postboost'
api = PostBoost::FreeToolsApi.new
result = api.split_thread(PostBoost::FreeToolSplitThreadRequest.new({ text: "Short one.\n\nShort two.\n---\nSecond post.", numbering: true }))
puts result.to_hash
import com.postboost.ApiClient;
import com.postboost.api.FreeToolsApi;
import com.postboost.model.FreeToolSplitThreadRequest;
import com.postboost.model.FreeToolSplitThreadResponse;
FreeToolsApi api = new FreeToolsApi(new ApiClient());
FreeToolSplitThreadRequest request = FreeToolSplitThreadRequest.fromJson("{\"text\":\"Short one.\\n\\nShort two.\\n---\\nSecond post.\",\"numbering\":true}");
FreeToolSplitThreadResponse result = api.splitThread(request);
System.out.println(result.toJson());
using Newtonsoft.Json;
using PostBoost.Client.Api;
using PostBoost.Client.Client;
using PostBoost.Client.Model;
var api = new FreeToolsApi(new Configuration());
var request = JsonConvert.DeserializeObject<FreeToolSplitThreadRequest>(@"{""text"":""Short one.\n\nShort two.\n---\nSecond post."",""numbering"":true}");
var result = await api.SplitThreadAsync(request);
Console.WriteLine(result.ToJson());
use postboost::apis::configuration::Configuration;
use postboost::apis::free_tools_api;
use postboost::models::FreeToolSplitThreadRequest;
let config = Configuration::new();
let request: FreeToolSplitThreadRequest = serde_json::from_str(r##"{"text":"Short one.\n\nShort two.\n---\nSecond post.","numbering":true}"##)?;
let result = free_tools_api::split_thread(&config, request).await?;
println!("{:?}", result);
echo '{"text":"Short one.\n\nShort two.\n---\nSecond post.","numbering":true}' | ./postboost-cli --content-type application/json splitThread -
No account, no key: guests get the guest limits.
3. With a token
Any PostBoost API token (create one in the dashboard: avatar menu, Access Tokens) raises the limits. Free-tool operations work without a token, so the SDKs do not attach the token from their usual auth settings (access_token, setAccessToken, bearer_access_token) to them. Send it as a default Authorization header instead; the call itself stays the same as in step 2.
- curl
- Python
- Node.js
- PHP
- Go
- Ruby
- Java
- C#
- Rust
- CLI
curl -X POST https://postboost.co/app/api/tools/x-thread-maker \
-H "Authorization: Bearer $POSTBOOST_API_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"text":"Short one.\n\nShort two.\n---\nSecond post.","numbering":true}'
client = ApiClient(Configuration(), header_name="Authorization", header_value="Bearer " + token)
const api = new FreeToolsApi();
api.defaultHeaders = { Authorization: `Bearer ${token}` };
$api = new FreeToolsApi(new GuzzleHttp\Client(['headers' => ['Authorization' => 'Bearer '.$token]]));
cfg := postboost.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+token)
client := postboost.NewAPIClient(cfg)
PostBoost::ApiClient.default.default_headers['Authorization'] = "Bearer #{token}"
ApiClient client = new ApiClient();
client.addDefaultHeader("Authorization", "Bearer " + token);
FreeToolsApi api = new FreeToolsApi(client);
var config = new Configuration();
config.DefaultHeaders.Add("Authorization", $"Bearer {token}");
var api = new FreeToolsApi(config);
let mut headers = reqwest::header::HeaderMap::new();
headers.insert(reqwest::header::AUTHORIZATION, format!("Bearer {}", token).parse()?);
let mut config = Configuration::new();
config.client = reqwest::Client::builder().default_headers(headers).build()?;
echo '{"text":"Short one.\n\nShort two.\n---\nSecond post.","numbering":true}' | ./postboost-cli --content-type application/json splitThread Authorization:"Bearer $POSTBOOST_API_TOKEN" -
An invalid token returns 401: leave the header out to call as a guest.