Longbridge Developers
Get Started

Create Topic Reply

Post a reply to a community topic. Supports nesting under an existing reply. Browse the community on Topics.

Only users who have opened a Longbridge account and hold assets are allowed to publish community topics and replies via Longbridge Developers API or CLI. Returns 403 otherwise.

Body format: Plain text only — HTML and Markdown are not rendered.

Stock symbols mentioned in the body (e.g. 700.HK, TSLA.US) are automatically recognized and linked as related stocks by the platform.

⚠️ Do not abuse symbol linking to associate unrelated stocks. Content moderation may restrict publishing or mute the account.

Rate limit: The first 3 replies per user per topic have no wait requirement. After that, each subsequent reply must wait an incrementally longer interval since the previous one:

Reply # (after 3rd)Required wait
4th3 s
5th5 s
6th8 s
7th13 s
8th21 s
9th34 s
10th+55 s (cap)

Exceeding the limit returns 429.

⚠️ Rate limit thresholds are for reference only and may be adjusted by the platform at any time.

>_ CLI
longbridge topic create-reply 6993508780031016960 --body "Great analysis!"

Request

HTTP MethodPOST
HTTP URL/v1/content/topics/
/comments

Path Parameters

NameTypeRequiredDescription
topic_idstringYESTopic ID (e.g. 6993508780031016960)

Request Body

NameTypeRequiredDescription
bodystringYESReply body. Plain text only — Markdown is not rendered. Symbols mentioned in the body are auto-linked by the platform.
reply_to_idstringNOID of the reply to nest under. Omit or set to "0" for a top-level reply.

Request Example

>_ CLI
# Top-level reply
longbridge topic create-reply 6993508780031016960 --body "Great analysis!"
# Nested reply
longbridge topic create-reply 6993508780031016960 --body "I agree." --reply-to 7001234567890123456
from longbridge.openapi import ContentContext, Config, OAuthBuilder

oauth = OAuthBuilder("your-client-id").build(lambda url: print("Visit:", url))
config = Config.from_oauth(oauth)
ctx = ContentContext(config)

# Top-level reply
reply = ctx.create_topic_reply("6993508780031016960", body="Great analysis!")
print(reply.id)

# Nested reply
nested = ctx.create_topic_reply(
    "6993508780031016960",
    body="I agree.",
    reply_to_id="7001234567890123456",
)
print(nested.id)
import asyncio
from longbridge.openapi import AsyncContentContext, Config, OAuthBuilder

async def main() -> None:
    oauth = await OAuthBuilder("your-client-id").build_async(lambda url: print("Visit:", url))
    config = Config.from_oauth(oauth)
    ctx = AsyncContentContext.create(config)

    reply = await ctx.create_topic_reply("6993508780031016960", body="Great analysis!")
    print(reply.id)

if __name__ == "__main__":
    asyncio.run(main())
package main

import (
	"context"
	"fmt"
	"log"

	"github.com/longbridge/openapi-go/config"
	"github.com/longbridge/openapi-go/content"
)

func main() {
	conf, err := config.NewFromEnv()
	if err != nil {
		log.Fatal(err)
	}
	ctx, err := content.NewFromCfg(conf)
	if err != nil {
		log.Fatal(err)
	}
	reply, err := ctx.CreateTopicReply(context.Background(), "6993508780031016960",
		&content.CreateReplyOptions{Body: "Great analysis!"},
	)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("reply id:", reply.ID)
}
use std::sync::Arc;
use longbridge::{oauth::OAuthBuilder, content::{ContentContext, CreateReplyOptions}, Config};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let oauth = OAuthBuilder::new("your-client-id").build(|url| println!("Open: {url}")).await?;
    let config = Arc::new(Config::from_oauth(oauth));
    let ctx = ContentContext::new(config);

    let reply = ctx.create_topic_reply(
        "6993508780031016960",
        CreateReplyOptions { body: "Great analysis!".to_string(), reply_to_id: None },
    ).await?;
    println!("reply id: {}", reply.id);
    Ok(())
}

Response

Response Headers

  • Content-Type: application/json

Response Example

{
  "code": 0,
  "message": "success",
  "data": {
    "item": {
      "id": "7001234567890123460",
      "topic_id": "6993508780031016960",
      "body": "Great analysis!",
      "reply_to_id": "0",
      "author": {
        "member_id": "10086",
        "name": "Jane Doe",
        "avatar": "https://example.com/avatar.jpg"
      },
      "images": [],
      "likes_count": 0,
      "comments_count": 0,
      "created_at": "1742002000"
    }
  }
}

Response Status

StatusDescriptionSchema
200Successcreate_reply_response
403Forbidden — user has not opened a Longbridge account or has no assetsNone
429Too Many Requests — rate limit exceeded; wait and retryNone
500Internal errorNone

Schemas

create_reply_response

NameTypeRequiredDescription
itemobjecttrueCreated reply details
∟ idstringtrueReply ID
∟ topic_idstringtrueParent topic ID
∟ bodystringfalseReply body (plain text)
∟ reply_to_idstringfalseParent reply ID; "0" = top-level reply
∟ authorobjectfalseAuthor info
∟∟ member_idstringfalseAuthor member ID
∟∟ namestringfalseAuthor display name
∟∟ avatarstringfalseAuthor avatar URL
∟ imagesobject[]falseAttached images
∟∟ urlstringfalseOriginal image URL
∟∟ smstringfalseSmall thumbnail URL
∟∟ lgstringfalseLarge image URL
∟ likes_countint32falseLikes count
∟ comments_countint32falseNested replies count
∟ created_atstringtrueCreation time as Unix timestamp (seconds)