Die Kommentar-API für Live-Diskussionen

Kommentare, Moderation und Social Feeds über eine einzige REST-API und SDKs für mehr als 10 Sprachen. Abrufen, veröffentlichen und moderieren Sie direkt aus Ihrem Backend und streamen Sie neue Aktivität in Echtzeit über WebSockets an jeden Leser.

Eine Plattform, drei APIs

FastComments ist mehr als nur Kommentare. Erstellen Sie Diskussionen, Moderation und Social Feeds auf derselben API- und SDK-Suite.

Kommentar-API

Verschachtelte Kommentare und Live-Chat. Abrufen, veröffentlichen, abstimmen, anpinnen, antworten und suchen, mit integriertem SSO und Echtzeit-Updates.

Moderations-API

Eine dedizierte Moderationsschnittstelle mit über 40 Endpunkten. Freigeben, melden, blockieren, sperren, schließen und prüfen, unterstützt durch automatische Spam-Filterung.

Social-Feed-API

Erstellen Sie Activity- und Social Feeds mit Beiträgen, Medien, Reaktionen und Followern und pushen Sie neue Beiträge live an jeden Client.

Rufen Sie die API aus jedem Stack auf

cURL und typisierte SDKs für Node, Python, PHP, Ruby, Go, Java, Rust, Swift und C++. Über 200 Endpunkte decken Kommentare, Abstimmungen, Seiten, SSO-Benutzer, Feed-Beiträge, Moderation und Benachrichtigungen ab, alle hinter einem einzigen API-Schlüssel.

Installierennpm install fastcomments-sdk
import { createFastCommentsSDK } from 'fastcomments-sdk/server';

const sdk = createFastCommentsSDK({
  apiKey: 'your-api-key',               // server-side only
  basePath: 'https://fastcomments.com'  // optional (default)
});

// Fetch comments for a page
const { comments } = await sdk.publicApi.getCommentsPublic({
  tenantId: 'your-tenant-id',
  urlId: 'page-url-id'
});

// Post a comment
await sdk.publicApi.createCommentPublic({
  tenantId: 'your-tenant-id',
  broadcastId: crypto.randomUUID(),
  createComment: {
    urlId: 'page-url-id',
    url: 'https://example.com/post',
    comment: 'Hello from the API!',
    commenterName: 'Alice'
  }
});
# Fetch comments for a page
curl -s 'https://fastcomments.com/api/v1/comments?tenantId=your-tenant-id&urlId=page-url-id' \
  -H 'x-api-key: YOUR_API_KEY'
Installierenpip install fastcomments
import client
from client.api.public_api import GetCommentsPublicOptions

configuration = client.Configuration(host="https://fastcomments.com")
with client.ApiClient(configuration) as api_client:
    api = client.PublicApi(api_client)
    response = api.get_comments_public(
        "your-tenant-id",
        "page-url-id",
        GetCommentsPublicOptions(page=0, limit=30),
    )
    for comment in response.comments:
        print(comment.commenter_name, comment.comment)
Installierencomposer require fastcomments/fastcomments-php
<?php
require_once(__DIR__ . '/vendor/autoload.php');

$api = new FastComments\Client\Api\PublicApi(new GuzzleHttp\Client());

$result = $api->getCommentsPublic('your-tenant-id', 'page-url-id', [
    'page'  => 0,
    'limit' => 30,
]);

foreach ($result->getComments() as $comment) {
    echo $comment->getCommenterName() . ': ' . $comment->getComment() . PHP_EOL;
}
Installierengem install fastcomments
require 'fastcomments-client'

api = FastCommentsClient::PublicApi.new
result = api.get_comments_public('your-tenant-id', 'page-url-id', { page: 0, limit: 30 })

result.comments.each do |comment|
  puts "#{comment.commenter_name}: #{comment.comment}"
end
Installierengo get github.com/fastcomments/fastcomments-go
package main

import (
	"context"
	"fmt"
	openapiclient "github.com/fastcomments/fastcomments-go/client"
)

func main() {
	client := openapiclient.NewAPIClient(openapiclient.NewConfiguration())

	resp, _, err := client.PublicAPI.
		GetCommentsPublic(context.Background(), "your-tenant-id").
		UrlId("page-url-id").Page(0).Limit(30).Execute()
	if err != nil {
		panic(err)
	}
	for _, c := range resp.Comments {
		fmt.Printf("%s: %s\n", c.GetCommenterName(), c.GetComment())
	}
}
import com.fastcomments.invoker.ApiClient;
import com.fastcomments.invoker.Configuration;
import com.fastcomments.api.PublicApi;

ApiClient client = Configuration.getDefaultApiClient();
client.setBasePath("https://fastcomments.com");

PublicApi api = new PublicApi(client);
var result = api.getCommentsPublic("your-tenant-id", "page-url-id")
                .page(0)
                .limit(30)
                .execute();
System.out.println(result.getComments());
use fastcomments_sdk::client::apis::configuration::Configuration;
use fastcomments_sdk::client::apis::public_api::{get_comments_public, GetCommentsPublicParams};

let config = Configuration::new();
let params = GetCommentsPublicParams {
    tenant_id: "your-tenant-id".to_string(),
    url_id: "page-url-id".to_string(),
    page: Some(0),
    limit: Some(30),
    ..Default::default()
};
let result = get_comments_public(&config, params).await.unwrap();
for comment in result.comments {
    println!("{:?}: {:?}", comment.commenter_name, comment.comment);
}
import FastCommentsSwift

var options = PublicAPI.GetCommentsPublicOptions()
options.page = 0
options.limit = 30

let result = try await PublicAPI.getCommentsPublic(
    tenantId: "your-tenant-id",
    urlId: "page-url-id",
    options: options
)
print(result.comments ?? [])
#include "FastCommentsClient/api/PublicApi.h"
#include "FastCommentsClient/ApiClient.h"
#include "FastCommentsClient/ApiConfiguration.h"

using namespace org::openapitools::client::api;

auto config = std::make_shared<ApiConfiguration>();
config->setBaseUrl(utility::conversions::to_string_t("https://fastcomments.com"));

PublicApi publicApi(std::make_shared<ApiClient>(config));

auto resp = publicApi.getCommentsPublic(
    utility::conversions::to_string_t("your-tenant-id"),
    utility::conversions::to_string_t("page-url-id")
).get();

Abonnieren Sie den Live-Feed

Öffnen Sie eine Verbindung und empfangen Sie jeden neuen Kommentar, jede Bearbeitung, jede Abstimmung und jedes Präsenz-Update in dem Moment, in dem es passiert. Kein Ereignis geht verloren: Bei einer erneuten Verbindung wird das event log neu abgerufen, um alles nachzuspielen, was gesendet wurde, während der Client offline war. Native WebSocket-Abonnenten werden für Node, React Native, Java, Swift und C++ ausgeliefert. Jede andere Sprache bleibt durch Abfragen des event log in Echtzeit.

Installierennpm install fastcomments-sdk
import { subscribeToChanges, LiveEventType } from 'fastcomments-sdk/browser';

const config = { tenantId: 'your-tenant-id', urlId: 'page-url-id' };

const subscription = subscribeToChanges(
  config,
  'your-tenant-id',   // tenantIdWS
  'page-url-id',      // urlIdWS
  'user-session-id',  // userIdWS (from the getComments response)
  (event) => {
    if (event.type === LiveEventType.new_comment) {
      console.log('New comment:', event.comment?.comment);
    }
    return true;      // event handled
  },
  (isConnected) => console.log(isConnected ? 'connected' : 'disconnected')
);

// later: subscription.close();
Installierennpm install fastcomments-react-native-sdk
import React, { useState } from 'react';
import { FastCommentsLiveCommenting } from 'fastcomments-react-native-sdk';
import { FastCommentsCommentWidgetConfig } from 'fastcomments-typescript';

export default function Comments() {
  // <FastCommentsLiveCommenting> subscribes to the live feed automatically.
  const [config] = useState<FastCommentsCommentWidgetConfig>({
    tenantId: 'your-tenant-id',
    urlId: 'page-url-id',
    showLiveRightAway: true,
    countAll: true,
  });

  return <FastCommentsLiveCommenting config={config} />;
}
import com.fastcomments.pubsub.LiveEventSubscriber;
import com.fastcomments.pubsub.SubscribeToChangesResult;
import com.fastcomments.core.CommentWidgetConfig;
import com.fastcomments.model.LiveEventType;

CommentWidgetConfig config = new CommentWidgetConfig();
config.tenant = "your-tenant-id";
config.urlId = "page-url-id";

LiveEventSubscriber subscriber = new LiveEventSubscriber();
SubscribeToChangesResult result = subscriber.subscribeToChanges(
    config,
    "your-tenant-id",   // tenantIdWS
    "page-url-id",      // urlId
    "page-url-id",      // urlIdWS
    "my-presence-id",   // userIdWS
    null,               // canSeeCommentsCallback (optional)
    (event) -> {
        if (event.getType() == LiveEventType.NEW_COMMENT) {
            System.out.println("New comment: " + event.getComment().getId());
        }
    }
);
// later: result.close();
import FastCommentsSwift

let config = LiveEventConfig(
    tenantId: "your-tenant-id",
    urlId: "page-url-id",
    urlIdWS: "page-url-id",   // URL-safe id for the WS server
    userIdWS: "my-presence-id"
)

let subscriber = LiveEventSubscriber()
let result = subscriber.subscribeToChanges(config: config) { event in
    if event.type == .newComment, let comment = event.comment {
        print("New comment: \(comment.id ?? "")")
    }
}
// later: result?.close()
#include <fastcomments/live/live_stream.hpp>
#include <iostream>

using namespace fastcomments::live;

LiveStreamConfig cfg;
cfg.wsBaseUrl = "wss://fastcomments.com";   // no trailing slash

LiveStream stream(cfg);
stream.onEvent([](const LiveEvent& ev) {
    if (ev.type == EventType::NewComment) {
        std::cout << "New comment at " << ev.timestamp << std::endl;
    }
});

stream.subscribe("your-tenant-id", "page-url-id", "my-presence-id").wait();
// later: stream.close().wait();
Installierenpip install fastcomments
import time
import client

configuration = client.Configuration(host="https://fastcomments.com")
with client.ApiClient(configuration) as api_client:
    api = client.PublicApi(api_client)
    start_time = int(time.time() * 1000)  # ms epoch
    while True:
        result = api.get_event_log(
            "your-tenant-id", "page-url-id", "my-user-id", start_time
        )
        for event in result.events:
            print("event:", event.data)
            start_time = int(event.created_at.timestamp() * 1000) + 1
        time.sleep(2)
# startTime = epoch millis to replay from; advance it past the last event you saw
curl -s 'https://fastcomments.com/api/v1/event-log/your-tenant-id?urlId=page-url-id&userIdWS=my-user-id&startTime=1720560000000' \
  -H 'x-api-key: YOUR_API_KEY'

Native Mobile-SDKs, sofort einsatzbereit

Sparen Sie sich das Erstellen und Warten einer eigenen Kommentar-UI. Unsere dedizierten, gepflegten SDKs für React Native, Android und iOS liefern native UI-Komponenten für verschachtelte Kommentare, Live-Chat und Feeds. Fügen Sie eine View ein, übergeben Sie eine Konfiguration, und Sie sind fertig.

React Native

npm: fastcomments-react-native-sdk

Native Komponenten, keine Webview. Fügen Sie FastCommentsLiveCommenting, FastCommentsLiveChat oder FastCommentsFeed ein und übergeben Sie eine Konfiguration.

Live-Demo ansehen

Android

com.fastcomments:sdk

Native Android-UI-Komponenten. Fügen Sie FastCommentsView zu Ihrem Layout hinzu für verschachtelte Kommentare, Abstimmungen, Benachrichtigungen und Feeds. Android 8.0+.

Auf GitHub ansehen

iOS

Swift Package: FastCommentsUI

Eine native SwiftUI-Bibliothek für verschachtelte Kommentare, Social Feeds und Live-Chat. iOS 16+ und macOS 14+.

Auf GitHub ansehen

Die Teile, die Sie sonst selbst entwickeln müssten

Über 200 REST-Endpunkte

Ein API-Schlüssel, eine Basis-URL. Alles, was das Dashboard kann, kann auch Ihr Code.

SDKs für mehr als 10 Sprachen

Typisierte Clients für Node, Python, PHP, Ruby, Go, Java, Rust, Swift, C++ und mehr, damit Sie in Ihrem Stack entwickeln statt in unserem.

Echtzeit über WebSockets

Neue Kommentare erreichen jeden Leser im Moment der Veröffentlichung, ohne Aktualisieren und ohne Polling. Verbindet sich ein Leser erneut, werden verpasste Ereignisse aus dem Log nachgespielt.

Moderation, SSO und Spam-Schutz

Single Sign-On, Kommentarmoderation und Spam-Filterung sind integriert, sodass die schwierigen Teile erledigt sind, bevor Sie eine Zeile schreiben.

Für Sie gehostet und skaliert

Wir betreiben den Speicher und die Echtzeit-Infrastruktur über ein globales Netzwerk. Sie rufen die API auf und liefern aus.

Was Sie erstellen können

Eine API- und SDK-Suite hinter Kommentar-Threads, Chat und Live-Aktivität über Web-, Mobile- und Server-Apps hinweg.

Live-Chat-Räume

Streamen Sie Nachrichten in Echtzeit an alle im Raum, mit Präsenzzählern und Tipp-Aktivität.

Kommentar-Threads

Fügen Sie Artikeln, Produkten und Beiträgen mit wenigen API-Aufrufen verschachtelte, abstimmbare Kommentarbereiche hinzu.

Activity Feeds

Veröffentlichen Sie in einem Feed und pushen Sie neue Elemente und Reaktionen an verbundene Clients, sobald sie eintreffen.

Q&A und Umfragen

Sammeln Sie Fragen, Antworten, Abstimmungen und Umfrageergebnisse und ordnen und zeigen Sie sie live an.

In drei Schritten live

1

Holen Sie sich Ihren API-Schlüssel

Starten Sie eine kostenlose Testphase und holen Sie sich Ihre Mandanten-ID und Ihren API-Schlüssel aus dem Dashboard.

2

Installieren Sie das SDK

Fügen Sie das SDK für Ihre Sprache hinzu oder rufen Sie die REST-API direkt mit cURL und Ihrem x-api-key-Header auf.

3

Abrufen, veröffentlichen und live gehen

Laden Sie Kommentare, veröffentlichen Sie aus Ihrem Backend und abonnieren Sie Änderungen, um Updates an jeden Leser zu streamen.

Global verteilt und hochverfügbar

FastComments läuft über mehrere Regionen auf unserer eigenen Infrastruktur. Schreibvorgänge replizieren zwischen Regionen, Knoten führen automatische Failover durch, und Leser werden vom nächstgelegenen Standort bedient.

Multi-Master, Multi-Region

Schreibvorgänge werden in mehr als einer Region angenommen und zwischen ihnen repliziert, sodass es keinen einzelnen Ausfallpunkt gibt.

Unser eigenes Edge-Netzwerk

Kommentare und Medien werden über unser eigenes globales CDN und DNS bereitgestellt, ausgeliefert vom Standort, der Ihren Nutzern am nächsten ist. Kein CDN von Drittanbietern.

Automatisches Failover

Redundante Knoten führen von selbst ein Failover durch, sodass der Traffic auch während eines Ausfalls weiterfließt. Gestützt durch 99.99% Verfügbarkeit.

Regionale Datenhaltung

Betrieb in den USA oder der EU. Die EU-Region unter eu.fastcomments.com hält Daten aus Compliance-Gründen in der Region.

Werden auch Sie ein zufriedener Kunde!

Tausende zufriedener Kunden vertrauen auf unseren außergewöhnlichen Service, unsere Zuverlässigkeit und unsere innovativen Lösungen. Werden auch Sie Teil unserer wachsenden Gemeinschaft und erleben Sie den Unterschied!

Jetzt starten

Häufige Fragen zur Kommentar-API

Muss ich das FastComments-Widget verwenden?

Nein. Das Widget ist optional. Sie können Ihr gesamtes Kommentarerlebnis auf der REST-API und den SDKs aufbauen und alles selbst rendern.

Welche Sprachen haben ein SDK?

Node, Python, PHP, Ruby, Go, Java, Rust, Swift, C++ und Nim, dazu ein React Native SDK für Mobile. Jede Sprache kann die REST-API auch direkt aufrufen.

Wie funktioniert Echtzeit?

Clients öffnen einen WebSocket und empfangen neue Kommentare, Bearbeitungen, Abstimmungen und Präsenz-Updates als Ereignisse, sodass es kein Aktualisieren und kein Polling gibt. Kein Ereignis geht verloren: Trennt sich ein Client, ruft er beim erneuten Verbinden das event log neu ab, um alles nachzuspielen, was während der Offline-Zeit gesendet wurde.

Muss ich meinen eigenen WebSocket-Server betreiben?

Nein. FastComments hostet die Echtzeit-Infrastruktur. Ihr Client abonniert mit dem SDK, und wir liefern die Ereignisse.

Wie bleiben Sprachen ohne nativen Abonnenten live?

Sie fragen den event-log-Endpunkt ab, der jede Änderung seit einem Zeitstempel zurückgibt. Die SDKs für Node, React Native, Java, Swift und C++ enthalten stattdessen einen nativen WebSocket-Abonnenten.

Wie funktioniert die Paginierung?

Speziell für Kommentare berechnet FastComments die Paginierung bei jedem Schreibvorgang für optimale Ladezeiten vor, sodass selbst sehr große Threads schnell paginieren.

Gibt es eine kostenlose Testphase?

Ja. Starten Sie eine kostenlose Testphase mit vollem Zugriff auf die API und die SDKs, ohne Kreditkarte. Nach der Testphase skalieren die kostenpflichtigen Tarife mit Ihrem Traffic.

Wo finde ich die API-Dokumentation?

Die vollständige REST-API- und SDK-Referenz finden Sie unter docs.fastcomments.com, wo jeder Endpunkt, Parameter und jede Antwort dokumentiert ist.

Kann ich Daten in der EU halten?

Ja. FastComments betreibt eine EU-Region unter eu.fastcomments.com, und die SDKs unterstützen das Routing dorthin.

Beginnen Sie in wenigen Minuten mit dem Entwickeln

Starten Sie eine kostenlose Testphase, holen Sie sich Ihren API-Schlüssel und fügen Sie Ihrer App noch heute Live-Diskussionen hinzu.