Skip to content

Creates a post, renders its Markdown, attaches media and topics, and returns the transformed post ready to prepend to the feed.

message is required. Pass space with a space slug to post into a space, or the sentinel __self__post__ to post to your own profile, which only works when global posts are enabled. Spaces with topic_required reject posts carrying no valid topic_ids, and topics beyond the configured maximum are trimmed. Reposting the same text into the same space within seven days is rejected as a duplicate. Mentions are parsed and recorded, and moderators may set send_announcement_email=yes to email the space.

Endpoint

  • Method: POST

  • Path: /feeds

  • Edition: Core

  • Controller: FeedsController@store

  • Route source: fluent-community/app/Http/Routes/api.php:43

  • Controller source: fluent-community/app/Http/Controllers/FeedsController.php

  • Requires the can_create_post permission in the target space.

  • Where content moderation or scheduling changes the status, the response carries that status instead of a published message, and the notification hooks do not fire.

Live sample

The request and response below were recorded against a running FluentCommunity install and then anonymised — member names, emails, avatars and post content are fictional, and long collections are trimmed to a few entries.

POST Create Feed

POST
/feeds

Creates a post, renders its Markdown, attaches media and topics, and returns the transformed post ready to prepend to the feed.

Controller: FeedsController@store
Route source: fluent-community/app/Http/Routes/api.php:43

Authorizations

ApplicationPasswords

WordPress Application Passwords — use Basic auth with username:application_password.

Type
API Key (header: Authorization)

Request Body

application/json
JSON
{
  
"space": "string",
  
"topic_ids": [
  
  
"string"
  
],
  
"send_announcement_email": "string",
  
"content_type": "string",
  
"message": "string",
  
"survey": {
  
  
"options": [
  
  
  
"string"
  
  
],
  
  
"end_date": "string",
  
  
"type": "string"
  
},
  
"title": "string"
}

Responses

Successful response

application/json
JSON
{
  
"feed": {
  
  
"bookmarked": true,
  
  
"comments": [
  
  
  
{
  
  
  
  
"additionalProperties": "string"
  
  
  
}
  
  
],
  
  
"comments_count": 0,
  
  
"content_type": "string",
  
  
"created_at": "string",
  
  
"default_comment_sort_by": "string",
  
  
"expired_at": "string",
  
  
"featured_image": "string",
  
  
"has_user_react": true,
  
  
"id": 0,
  
  
"is_sticky": 0,
  
  
"message": "string",
  
  
"message_rendered": "string",
  
  
"meta": {
  
  
  
"preview_data": "string"
  
  
},
  
  
"parent_id": "string",
  
  
"permalink": "string",
  
  
"priority": 0,
  
  
"privacy": "string",
  
  
"reactions_count": 0,
  
  
"scheduled_at": "string",
  
  
"slug": "string",
  
  
"space": {
  
  
  
"cover_photo": "string",
  
  
  
"created_at": "string",
  
  
  
"created_by": "string",
  
  
  
"description": "string",
  
  
  
"id": 0,
  
  
  
"logo": "string",
  
  
  
"parent_id": "string",
  
  
  
"privacy": "string",
  
  
  
"serial": "string",
  
  
  
"settings": {
  
  
  
  
"can_request_join": "string",
  
  
  
  
"custom_lock_screen": "string",
  
  
  
  
"default_comment_sort_by": "string",
  
  
  
  
"default_post_sort_by": "string",
  
  
  
  
"disable_layout_style": "string",
  
  
  
  
"disable_post_sort_by": "string",
  
  
  
  
"document_access": "string",
  
  
  
  
"document_library": "string",
  
  
  
  
"document_upload": "string",
  
  
  
  
"emoji": "string",
  
  
  
  
"hide_members_count": "string",
  
  
  
  
"layout_style": "string",
  
  
  
  
"links": [
  
  
  
  
  
{
  
  
  
  
  
  
"additionalProperties": "string"
  
  
  
  
  
}
  
  
  
  
],
  
  
  
  
"media_access": "string",
  
  
  
  
"media_gallery": "string",
  
  
  
  
"members_page_status": "string",
  
  
  
  
"og_image": "string",
  
  
  
  
"restricted_post_only": "string",
  
  
  
  
"shape_svg": "string",
  
  
  
  
"show_paywalls": "string",
  
  
  
  
"show_sidebar": "string",
  
  
  
  
"topic_required": "string"
  
  
  
},
  
  
  
"slug": "string",
  
  
  
"status": "string",
  
  
  
"title": "string",
  
  
  
"type": "string",
  
  
  
"updated_at": "string"
  
  
},
  
  
"space_id": "string",
  
  
"status": "string",
  
  
"title": "string",
  
  
"type": "string",
  
  
"updated_at": "string",
  
  
"user": {
  
  
  
"ID": 0,
  
  
  
"display_name": "string",
  
  
  
"photo": "string",
  
  
  
"user_email": "string",
  
  
  
"user_login": "string",
  
  
  
"user_nicename": "string",
  
  
  
"user_registered": "string",
  
  
  
"user_status": "string",
  
  
  
"user_url": "string",
  
  
  
"xprofile": {
  
  
  
  
"avatar": "string",
  
  
  
  
"badge": "string",
  
  
  
  
"created_at": "string",
  
  
  
  
"display_name": "string",
  
  
  
  
"id": "string",
  
  
  
  
"is_verified": 0,
  
  
  
  
"last_activity": "string",
  
  
  
  
"meta": {
  
  
  
  
  
"badge_slug": "string",
  
  
  
  
  
"cover_photo": "string",
  
  
  
  
  
"social_links": {
  
  
  
  
  
  
"fb": "string",
  
  
  
  
  
  
"instagram": "string",
  
  
  
  
  
  
"linkedin": "string",
  
  
  
  
  
  
"twitter": "string",
  
  
  
  
  
  
"youtube": "string"
  
  
  
  
  
},
  
  
  
  
  
"website": "string"
  
  
  
  
},
  
  
  
  
"permalink": "string",
  
  
  
  
"short_description": "string",
  
  
  
  
"status": "string",
  
  
  
  
"total_points": 0,
  
  
  
  
"updated_at": "string",
  
  
  
  
"user_id": 0,
  
  
  
  
"username": "string"
  
  
  
}
  
  
},
  
  
"user_id": "string",
  
  
"xprofile": {
  
  
  
"avatar": "string",
  
  
  
"badge": "string",
  
  
  
"created_at": "string",
  
  
  
"display_name": "string",
  
  
  
"id": "string",
  
  
  
"is_verified": 0,
  
  
  
"last_activity": "string",
  
  
  
"meta": {
  
  
  
  
"badge_slug": "string",
  
  
  
  
"cover_photo": "string",
  
  
  
  
"social_links": {
  
  
  
  
  
"fb": "string",
  
  
  
  
  
"instagram": "string",
  
  
  
  
  
"linkedin": "string",
  
  
  
  
  
"twitter": "string",
  
  
  
  
  
"youtube": "string"
  
  
  
  
},
  
  
  
  
"website": "string"
  
  
  
},
  
  
  
"permalink": "string",
  
  
  
"short_description": "string",
  
  
  
"status": "string",
  
  
  
"total_points": 0,
  
  
  
"updated_at": "string",
  
  
  
"user_id": 0,
  
  
  
"username": "string"
  
  
}
  
},
  
"last_fetched_timestamp": 0,
  
"message": "string"
}

Playground

Authorization
Body

Samples

Powered by VitePress OpenAPI

FluentCommunity developer documentation