Generate content
betterpost_generate_contentGenerate a new piece of content for a project from its timely, relevant stories. Fast in steady state. Charges credits on success only. If you pass a topic the project has no stories about, this returns a topic_unavailable error (no charge) carrying an inScope flag and next steps — it never silently writes an off-topic piece.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Output format. 'x' and 'bluesky' are generated as a single post or, more often, a short numbered thread of connected posts (multiple tweets) when there is enough to say — this is the default for those channels. 'blog', 'newsletter', and 'linkedin' are one piece. | |
| reuse | No | Reuse the most recent topic. | |
| tieIn | No | A product/service to weave in. | |
| topic | No | Steer the piece to a specific topic. Generation only writes from stories actually about it. If none exist yet, it returns topic_unavailable (no charge) with an inScope flag: inScope:true means the topic fits the project and betterpost_expand_coverage can gather it, while inScope:false means it is outside the project scope so expanding to it requires the user's confirmation. | |
| projectId | Yes | ||
| wordLimit | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | ||
| topic | Yes | ||
| content | Yes | The generated content. Fields present depend on `type`. | |
| summary | Yes | ||
| contentId | Yes | ||
| publicUrl | Yes | ||
| storyCount | Yes | ||
| imagesHosted | Yes | ||
| creditsCharged | Yes |