LinkedIn headline generator API
Enter your role, your skills and who you help, pick a tone, and get five headline drafts of 220 characters or less, or start from the formula and templates below.
- Endpoint:
POST https://postboost.co/app/api/tools/linkedin-headline-generator(operationIdgenerateLinkedInHeadline) - Web tool: postboost.co/tools/linkedin-headline-generator
- Token: required. A new generation spends 1 AI credit of the workspace you name (or your active workspace); a repeated identical request is answered from the cache for free. A scoped API key needs the
aiability and pays with its own workspace - MCP: tool
generate-linked-in-headlineonhttps://postboost.co/mcp/tools(listed only with a token)
Request
| Field | Type | Default | Description |
|---|---|---|---|
role | string | Your role or what you do. | |
skills | string | Your skills and the value you bring. | |
audience | string | "" | Who you help (optional). |
tone | string: professional, bold, friendly | "professional" | |
workspace | string | UUID of the workspace whose AI credits pay for the call. Default: your active workspace (a scoped API key: its own workspace). |
Call it
- curl
- Python
- Node.js
- PHP
- Go
- Ruby
- Java
- C#
- Rust
- CLI
curl -X POST https://postboost.co/app/api/tools/linkedin-headline-generator \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"role":"Customer success lead","skills":"B2B SaaS onboarding, churn analysis, customer training","audience":"SaaS founders"}'
from postboost import ApiClient, Configuration
from postboost.api.free_tools_api import FreeToolsApi
from postboost.models import FreeToolGenerateLinkedInHeadlineRequest
with ApiClient(Configuration()) as client:
api = FreeToolsApi(client)
result = api.generate_linked_in_headline(FreeToolGenerateLinkedInHeadlineRequest.from_dict({"role": "Customer success lead", "skills": "B2B SaaS onboarding, churn analysis, customer training", "audience": "SaaS founders"}))
print(result.to_dict())
import { FreeToolsApi } from 'postboost';
const api = new FreeToolsApi();
const { body } = await api.generateLinkedInHeadline({ role: "Customer success lead", skills: "B2B SaaS onboarding, churn analysis, customer training", audience: "SaaS founders" });
console.log(body);
use PostBoostClient\Api\FreeToolsApi;
use PostBoostClient\Model\FreeToolGenerateLinkedInHeadlineRequest;
$api = new FreeToolsApi(new GuzzleHttp\Client());
$result = $api->generateLinkedInHeadline(new FreeToolGenerateLinkedInHeadlineRequest(['role' => "Customer success lead", 'skills' => "B2B SaaS onboarding, churn analysis, customer training", 'audience' => "SaaS founders"]));
echo $result;
import (
"context"
"encoding/json"
"fmt"
postboost "github.com/postboost-co/postboost-go"
)
var request postboost.FreeToolGenerateLinkedInHeadlineRequest
if err := json.Unmarshal([]byte(`{"role":"Customer success lead","skills":"B2B SaaS onboarding, churn analysis, customer training","audience":"SaaS founders"}`), &request); err != nil {
panic(err)
}
client := postboost.NewAPIClient(postboost.NewConfiguration())
result, _, err := client.FreeToolsAPI.GenerateLinkedInHeadline(context.Background()).FreeToolGenerateLinkedInHeadlineRequest(request).Execute()
fmt.Println(result, err)
require 'postboost'
api = PostBoost::FreeToolsApi.new
result = api.generate_linked_in_headline(PostBoost::FreeToolGenerateLinkedInHeadlineRequest.new({ role: "Customer success lead", skills: "B2B SaaS onboarding, churn analysis, customer training", audience: "SaaS founders" }))
puts result.to_hash
import com.postboost.ApiClient;
import com.postboost.api.FreeToolsApi;
import com.postboost.model.FreeToolGenerateLinkedInHeadlineRequest;
import com.postboost.model.FreeToolGenerateLinkedInHeadlineResponse;
FreeToolsApi api = new FreeToolsApi(new ApiClient());
FreeToolGenerateLinkedInHeadlineRequest request = FreeToolGenerateLinkedInHeadlineRequest.fromJson("{\"role\":\"Customer success lead\",\"skills\":\"B2B SaaS onboarding, churn analysis, customer training\",\"audience\":\"SaaS founders\"}");
FreeToolGenerateLinkedInHeadlineResponse result = api.generateLinkedInHeadline(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<FreeToolGenerateLinkedInHeadlineRequest>(@"{""role"":""Customer success lead"",""skills"":""B2B SaaS onboarding, churn analysis, customer training"",""audience"":""SaaS founders""}");
var result = await api.GenerateLinkedInHeadlineAsync(request);
Console.WriteLine(result.ToJson());
use postboost::apis::configuration::Configuration;
use postboost::apis::free_tools_api;
use postboost::models::FreeToolGenerateLinkedInHeadlineRequest;
let config = Configuration::new();
let request: FreeToolGenerateLinkedInHeadlineRequest = serde_json::from_str(r##"{"role":"Customer success lead","skills":"B2B SaaS onboarding, churn analysis, customer training","audience":"SaaS founders"}"##)?;
let result = free_tools_api::generate_linked_in_headline(&config, request).await?;
println!("{:?}", result);
echo '{"role":"Customer success lead","skills":"B2B SaaS onboarding, churn analysis, customer training","audience":"SaaS founders"}' | ./postboost-cli --content-type application/json generateLinkedInHeadline -
This tool needs a token: send Authorization: Bearer YOUR_API_TOKEN as a default header (how, per SDK).
Response
{
"headlines": [
"Customer Success Lead | Helping SaaS founders turn new sign-ups into long-term customers",
"Customer Success Lead for B2B SaaS | Onboarding, churn analysis and customer training",
"I help SaaS founders keep the customers they win | Customer Success Lead",
"Customer Success Lead | Onboarding that sticks, churn you can explain",
"B2B SaaS Customer Success | Onboarding, training and churn analysis for growing teams"
],
"credits_spent": 1,
"cached": false
}
With MCP
Connect https://postboost.co/mcp/tools (setup) and ask, for example: Write five LinkedIn profile headlines with AI (needs a token, spends AI credits) with the PostBoost generate-linked-in-headline tool.
Errors
| Status | When |
|---|---|
401 | No token, or an invalid one. The body has register_url to create a free account. |
403 | workspace is not a workspace you belong to, or your account has no workspace, or a scoped API key lacks the ai ability or is bound to another workspace (code: insufficient_scope). |
413 | The JSON body is larger than 128 KB. |
422 | A field is invalid; the body lists the errors per field. |
429 | The workspace has no AI credits left this billing cycle (code: ai_credits_exhausted, upgrade_url), or the per-minute limit is reached. |
502 | The AI provider failed or timed out. No credit was spent. |
503 | AI tools are switched off right now. |