FeedBoss Documentation
Post Generation API
Base URL: https://server.feedboss.ai/api/v1/ai-conversation
Authentication
All endpoints require authentication. You can authenticate using a Service API Key.
Service API Key
Add your Service API Key to the x-api-key header.
x-api-key: fb_live_xxxxxxxxxxxxxxxxxxxxxxxx
1. Generate Single Post
Generates a single LinkedIn post based on user input. This endpoint uses Server-Sent Events (SSE) to stream the generation progress and results.
Endpoint: POST /generate-post/:workspaceId
Path Parameters
| Parameter | Type | Description |
|---|---|---|
workspaceId | string | The distinct ID of the workspace. |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
userInput | string | Yes | The main topic, prompt, or context for the post. |
conversationId | string | No | ID of an existing conversation. If provided, the AI generates context-aware content based on history. |
postId | string | No | ID of an existing post. If provided and conversationId is missing, the system will look up the linked conversation. |
contentStyleId | string | No | ID of a predefined content style to guide the tone and format. |
Response (Streaming)
The server responds with a text/event-stream. Listen for the following named events:
Event: post_ids
Sent when the post and conversation entries are successfully created/retrieved.
{
"conversationId": "60d5ecb8b5c9...",
"postId": "60d5ecb8b5c9...",
"refinementQuestions": []
}
Other Events
- URL Processing: Updates if the input contained URLs that were scraped.
- Chat Delta: Streaming text tokens if the AI generates a conversational response alongside the post.
2. Generate Batch Posts
Generates 5 distinctive variations of LinkedIn posts based on a single prompt. Variations include styles like “Story-driven”, “Educational”, “Thought-provoking”, “Actionable”, and “Conversational”. This endpoint also supports regeneration of specific posts.
Endpoint: POST /generate-batch-posts/:workspaceId
Path Parameters
| Parameter | Type | Description |
|---|---|---|
workspaceId | string | The distinct ID of the workspace. |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
userInput | string | Yes | The main topic/prompt. Used as base context for all variations. |
contentStyleId | string | No | Optional style ID to apply. |
postIds | string[] | No | Regeneration Mode: If provided, the system will ONLY regenerate the specified drafts instead of creating 5 new variations. Usage counts against the quota based on the number of IDs. |
Response (Streaming)
The server responds with a text/event-stream.
Event: batch_progress
Sent effectively before and after each post in the batch is processed.
{
"current": 1, // Current post number (1-5)
"total": 5, // Total posts in batch
"variationName": "Story-driven",
"status": "generating", // "generating", "completed", or "failed"
"postId": "..." // (Only on completion)
}
Event: post_{N}_post_ids (e.g., post_1_post_ids)
Sent for each individual post generation index (1-based) containing the specific post/conversation IDs.
Event: batch_complete
Sent when the entire batch is finished.
{
"success": true,
"originalPrompt": "User input text...",
"isRegeneration": false,
"posts": [
{
"index": 1,
"postId": "...",
"conversationId": "...",
"content": "Generated post content...",
"variationName": "Story-driven",
"status": "draft"
}
// ... up to 5 items
],
"errors": [],
"summary": {
"total": 5,
"generated": 5,
"failed": 0
}
}
Event: chat_delta
A message summarizing the result (e.g., “I’ve created 5 different variations…”).
Common Errors (HTTP & Stream)
- 400 Bad Request: missing
userInput, invalid API key. - 403 Forbidden: Usage limit exceeded (e.g., not enough posts remaining in quota).
3. Update Post Content
Updates the text content of a post. This operation updates both the LinkedInPost record and the associated Conversation’s current content.
NOTE
Only posts with status draft or scheduled can be updated.
Endpoint: PUT /post/:workspaceId/:postId
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
workspaceId | string | Yes | The ID of the workspace. |
postId | string | Yes | The ID of the post to update. |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
content | string | Yes | The new text content. Max 3000 characters. Cannot be empty. |
Headers
| Header | Value | Required | Description |
|---|---|---|---|
Authorization | Bearer <token> | Yes | User authentication token. Requires owner, admin, or member role. |
x-api-key | <api-key> | Yes | Service API key. |
Response
Success (200 OK)
{
"success": true,
"data": {
"postId": "672...",
"content": "Updated content string"
},
"message": "Post content updated successfully"
}
Error Responses
- 400 Bad Request:
- Content is required
- Content exceeds LinkedIn’s character limit (3000 characters)
- Cannot edit post with status:
<status>. Only draft and scheduled posts can be edited.
- 404 Not Found: Post not found
- 500 Internal Server Error: Failed to update post content
4. Delete Post
Deletes a specific post and its associated conversation history. Use this to remove drafts or scheduled posts.
WARNING
This action is irreversible. The post and all its versions will be permanently deleted.
Endpoint: DELETE /post/:workspaceId/:postId
Status Constraints
- Published Posts: Cannot be deleted via this API. You must delete published posts directly on LinkedIn.
- Draft/Scheduled Posts: Can be deleted.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
workspaceId | string | Yes | The ID of the workspace. |
postId | string | Yes | The ID of the post to delete. |
Headers
| Header | Value | Required | Description |
|---|---|---|---|
Authorization | Bearer <token> | Yes | User authentication token. Requires owner, admin, or member role. |
x-api-key | <api-key> | Yes | Service API key. |
Response
Success (200 OK)
{
"success": true,
"message": "Post and conversation deleted successfully",
"data": {
"deletedPostId": "672...",
"deletedConversationId": "672...",
"postType": "text",
"status": "draft"
}
}
Error Responses
- 400 Bad Request:
- Cannot delete published post. Please delete it from LinkedIn directly.
- 404 Not Found:
- Post not found
- 500 Internal Server Error:
- Failed to delete post