Profiles

Get writing style

Reads the trained writing style for one LinkedIn profile (priority rules, voice, structure, vocabulary, custom instructions, learnings, examples).

GET/api/public/linkedin-profiles/:id/writing-style
cURLGET /api/public/linkedin-profiles/:id/writing-style
curl "https://postiv.ai/api/public/linkedin-profiles/ID_ID/writing-style" \
  -H "Authorization: Bearer pk_postiv_..."
200Response
{
  "success": true,
  "writingStyle": {
    "integration": {
      "id": 1234,
      "provider": "linkedin",
      "status": "active",
      "parentIntegrationId": null
    },
    "profile": {
      "id": 1234,
      "name": "Jan",
      "headline": "Founder",
      "picture": "https://..."
    },
    "hasWritingStyle": true,
    "writingStyle": {
      "tone": "direct"
    },
    "modelContext": "Write in a direct, no-fluff tone...",
    "updatedAt": "2026-06-01T00:00:00.000Z"
  }
}

Authorization

Requires an organization API key with the profiles:read scope, sent as Authorization: Bearer or x-api-key.

Path parameters

idstringrequired

Resource id from the corresponding list or create endpoint.

Response

The profile's writing style state.

writingStyle.integration.idint
writingStyle.integration.providerstring
writingStyle.integration.statusstring
writingStyle.integration.parentIntegrationIdint|null
writingStyle.profileobject

{ id, name, headline, picture }

writingStyle.hasWritingStyleboolean
writingStyle.writingStyleobject|null

Raw structured style JSON (agent_profiles.tone_voice), null if untrained.

writingStyle.modelContextstring

Formatted prose version meant to be fed to an LLM as writing instructions; empty string if untrained.

writingStyle.updatedAttimestamp|null

Errors

400id path param must be a positive integer (zod coercion failure -> validation_error)
404linkedin_profile_not_found: integration id not in this workspace

Good to know

  • hasWritingStyle=false means no trained style yet: callers should write naturally rather than inventing one.