ShipMate
DocsSign in
ShipMate as a Service

Your voice. Any app. One API.

The ShipMate own-voice engine is available as a REST API. One Bearer token, and any app can generate authentic, on-voice content for any user. No style training on your end. We handle the voice engine.

Get an API keyRead the docs
The API workflow

Three calls. Authentic content.

Extract a style profile, call generate, get on-voice drafts. No prompting, no template wrangling.

01

Extract a style profile

POST writing samples to /api/style/extract. ShipMate learns vocabulary, tone, sentence patterns, and what to avoid. One call, done.

curl -X POST https://api.shipmate.so/api/style/extract \
  -H "Authorization: Bearer sk-sm-..." \
  -H "Content-Type: application/json" \
  -d '{"samples": ["Just shipped OAuth with magic link fallback..."]}'
02

Call /api/generate

Send a brief description of what you or your user shipped. Specify the target platform. The engine handles the rest.

curl -X POST https://api.shipmate.so/api/generate \
  -H "Authorization: Bearer sk-sm-..." \
  -H "Content-Type: application/json" \
  -d '{"entry": "shipped OAuth with magic link fallback", "platforms": ["linkedin", "x_twitter"]}'
03

Get on-voice drafts back

Receive platform-ready posts that sound like the person who wrote those samples. Review, approve, or publish.

{
  "posts": [
    {
      "platform": "linkedin",
      "content": "Just shipped OAuth with magic link fallback..."
    },
    {
      "platform": "x_twitter",
      "content": "OAuth is live. Magic links as fallback..."
    }
  ]
}
Full API reference->AI words we block (201 terms)->
Who builds with SMaaS

One API, five segments

Standalone Creator

Log what you shipped. Get posts in your exact voice. One API key, no extra apps or tab switching.

Prosumer Workflow

Wire ShipMate into n8n, Zapier, or your own scripts. Trigger on a commit, get a draft in your voice.

App Builders

Embed "write in your voice" into any social app, scheduler, CRM, or newsletter tool. One endpoint, any voice.

Agencies

Many clients, many voices, one API. A separate style profile per client. Scale without ghostwriters.

Businesses

Brand-voice consistency across every channel, every author, every market. Set it once, enforce it everywhere.

API pricing

Metered. Transparent. No surprises.

Included quota each month. Only pay for what goes over. Cancel any time.

EURUSD

Free

0 €/mo
  • ✓50 generations / mo
  • ✓Overage: Hard stop at limit
  • ✓10 req / min
  • ✓1 API key
Get started
Popular

Retail

29 €/mo
  • ✓1,000 generations / mo
  • ✓Overage: 0,03 € per generation
  • ✓60 req / min
  • ✓3 API keys
Get an API key

Business

149 €/mo
  • ✓10,000 generations / mo
  • ✓Overage: 0,02 € per generation
  • ✓300 req / min
  • ✓10 keys + team
Get an API key

Enterprise

Custom
  • ✓Custom quota
  • ✓Overage: Custom
  • ✓Custom
  • ✓Unlimited keys
Contact us

Prices shown in EUR, detected from your browser locale (switch anytime with the toggle above). Metered overage billed at the end of each period. See the full API docs for quota details and rate-limit headers.

OEM / Platform embed

Build ShipMate into your product the way we did.

The CC (control-center) dashboard embeds ShipMate as a proxied service: one API key in env, one style profile per user, every generation call routed through a backend that shields the key from clients. Ship that pattern in any product.

Read the integration guideGet a sandbox key

One service key, many users

Your backend holds a single ShipMate API key. Your end-users never see it. Each generation call passes their style profile inline.

One style profile per end-user

Extract a voice profile from each user's writing samples once. Store it in your DB. Pass it inline to every generate call. Fully multi-tenant.

SSRF-guarded proxy, not client-side calls

All requests flow through your own backend. The CC (control-center) reference implementation includes an SSRF guard that rejects off-origin path injection.

Reference implementation

Proxy once. Serve many voices.

1. Backend proxy (TypeScript)

// Your backend proxy (Next.js example)
// Based on the CC/control-center shipmate-proxy pattern
export async function POST(req: Request) {
  const session = await getSession(req);
  if (!session) return new Response("Unauthorized", { status: 401 });

  const upstream = await fetch(
    `${process.env.SHIPMATE_API_URL}/api/generate`,
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${process.env.SHIPMATE_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: req.body,
    }
  );
  return new Response(upstream.body, {
    status: upstream.status,
    headers: { "Content-Type": "application/json" },
  });
}

2. Extract + generate per user (curl)

# Step 1: extract a style profile for a new user
curl -X POST https://shipmate.so/api/style/extract \
  -H "Authorization: Bearer ${SHIPMATE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "textSamples": [
      "Shipped dark mode. Took 3 hours...",
      "OAuth is live. Magic links as fallback..."
    ]
  }'
# -> { "text": "Voice: direct and concise..." }

# Step 2: store the result keyed by YOUR user's ID
# in your own database

# Step 3: generate content for that user
curl -X POST https://shipmate.so/api/generate \
  -H "Authorization: Bearer ${SHIPMATE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "activityData": {
      "anchorText": "Shipped the analytics dashboard",
      "anchorType": "commit"
    },
    "styleProfile": {
      "styleDescriptionText": "Voice: direct and concise...",
      "fewShotExamples": []
    },
    "targetPlatforms": ["linkedin", "x_twitter"]
  }'
Full integration guide (proxy pattern, multi-profile, SDK)->
Start for free

Get a sandbox key

Create a free account, generate an API key from your settings, and start integrating. The free tier includes 50 generations per month so you can validate the proxy pattern and multi-profile flow before committing to a plan.

  • ✓50 generations / month on the free tier
  • ✓Full API access: generate, style/extract, activity
  • ✓sk-sm- prefixed keys, revocable any time
  • ✓No credit card required to start
Create account and get a key

Or go straight to /settings/api-keys if you already have an account.

OEM / Enterprise

Talk to us

Custom quota, dedicated support, white-label options, SLA. Tell us what you are building and we will scope a plan together.

Or skip the form and email [email protected]

ShipMate
API docsOEM Integration GuideStatusGet an API keyPrivacyTerms