Marketplace solutions
Buyer-seller chat that keeps the deal on your marketplace
TalkJS is a chat API with ready-made buyer-seller chat for your marketplace’s web and mobile apps. Buyers ask about a listing without leaving your app, and we store and deliver every message. Hide phone numbers, email addresses and links until the sale goes through, then show them to that buyer and seller only.
import { Chatbox } from '@talkjs/react-components';
import '@talkjs/react-components/default.css';
import { getTalkSession } from '@talkjs/core';
import { useEffect } from 'react';
function Chat() {
const appId = '<APP_ID>';
const userId = 'frank';
const otherUserId = 'nina';
const conversationId = 'new_conversation';
const session = getTalkSession({ appId, userId });
useEffect(() => {
session.currentUser.createIfNotExists({ name: 'Frank' });
session.user(otherUserId).createIfNotExists({ name: 'Nina' });
const conversation = session.conversation(conversationId);
conversation.createIfNotExists();
conversation.participant(otherUserId).createIfNotExists();
}, [session, conversationId, otherUserId]);
return (
<Chatbox
style={{ width: "400px", height: "600px" }}
appId={appId}
userId={userId}
conversationId={conversationId}
/>
);
}New Bid
by Buyer
Bid for Hemisphere Bowl in polished stainless steel, used only as a display piece.

New Bid
by Jordan Lee
Bid for Tokyobike Sport in matte black, regularly serviced and ready to ride.

Mask phone numbers and email addresses in buyer-seller messages
Big marketplaces keep early conversations on their own platform. Airbnb says “all guest communications prior to booking must be on Airbnb”. Upwork calls sharing contact details before a contract starts “circumvention”, and Fiverr allows other channels “only after an order has been placed”. Airbnb says its rules are there “to protect our community”, and Upwork and Fiverr warn that users who move off the platform risk scams and lose its protections.
In TalkJS, you turn on masking for a role on the Chat UI tab of your dashboard. Choose what to hide: email addresses, phone numbers, links, or all three. Each one is replaced with “(hidden information)”, or text you write, and the rest of the message is delivered.
- In selective mode, senders see their own message as they wrote it and everyone else sees it masked. Senders don't see that it was masked, which makes it harder for them to work around it. Global mode masks it for everyone.
- Masked details stay hidden in email, SMS and push notifications too.
- Masking is included on every plan.
What the buyer sees
What the seller sees
Unmask contact details after the sale
Once the sale goes through, the buyer still needs to know where to pick up the bike. Airbnb works the same way: only guests with a confirmed reservation can see their host’s contact number. With TalkJS, your server shows the buyer and seller each other’s details in that one conversation and nowhere else.
Create a role with masking turned off. Then point the buyer’s and the seller’s contentMasking setting in that conversation to the new role, with one REST API call each, or with the JavaScript Data API. It applies to messages they’ve already exchanged, and everyone else keeps your usual masking rules.
# Show contact details to the buyer in one conversation
# talkjs.com/docs/Guides/Control_Content_Masking/
curl https://api.talkjs.com/v1/<APP_ID>/conversations/order_391_fc/participants/betty_buyer \
-H "Authorization: Bearer <YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-X PATCH \
-d '{ "takeSettingsFromRole": { "contentMasking": "no_masking" } }'
# Repeat for the sellerStyleSeat achieved a 3x increase in booking conversions using TalkJS
StyleSeat used to connect professionals and their clients over masked SMS. After moving those conversations into TalkJS chat, booking conversion went up 3x, says Sean Elliot, Engineering Manager at StyleSeat.
Read the full case studyMarketplace chat conversations for each listing or order
You decide what a conversation covers: one per listing, so all of a buyer’s questions about it stay together, or one per purchase, so each order gets its own chat.
Give each conversation the listing’s title and photo, and store your product or order ID on it as custom data. Post order updates as system messages, which everyone in the conversation sees in a neutral style. When we email someone about a message they missed, the email can link straight to the product or order page.
New Bid
by Jennifer Pritchard
DualSense brings haptic feedback and adaptive triggers to PlayStation 5, turning simple actions into precise tactile experiences.

Marketplace chat moderation features
Masking takes care of contact details. For the rest of your marketplace’s trust and safety work, TalkJS gives you these tools:
- Roles and permissions. For example, a moderator role can remove messages, while a visitor role can only read and react.
- A report button on each message, added as a custom message action that sends the report to your own code.
- Warnings sent as system messages, and read-only access as a cool-down for users who break your rules.
- Removing a user’s access to conversations through the REST API.
- Word lists and your own regular expression patterns for anything else you want hidden, with exceptions for words that get caught by mistake. Try a word list in our free profanity word list tester.
- Spam controls: link blocking, no mentions and no all caps.
- A
message.sentwebhook for every new message, so your server or an AI moderation service can check it, plus REST API endpoints to edit or delete a message.
Add buyer-seller chat to React, React Native or Flutter
Our ready-made chat UI comes as components for React, React Native and Flutter, plus Web Components that work in any JavaScript app. Tell the component who the user is and which conversation to show, and it handles the rest. To build your own chat UI instead, use our Data APIs for JavaScript, Kotlin and Swift.
<Session appId="9352938974" userId={me.id}>
<Chatbox conversationId={conversation.id}/>
</Session>White-label chat UI that matches your marketplace
TalkJS provides prebuilt themes you can use right away or customize to match your brand’s design and user experience.
Themes give you complete control over how your chat looks and feels—from overall layout and message styling to fonts, colors, and interactive elements. You can fine-tune every visual detail, extend functionality, or design a fully bespoke chat interface.
Whether you start from a default theme or build your own, TalkJS provides a flexible foundation to create a consistent and responsive chat experience within your product.
We needed chat and didn’t want to build it ourselves because it needs to be really great. The TalkJS team is laser-focused on chat, and we’re focused on building a great auction marketplace.
Email, SMS and push notifications with reply by email
When a buyer or seller misses a message, we send an email, SMS, browser or mobile push notification, depending on what you turn on. They can reply to the email, and their reply shows up in the chat, so the whole conversation stays on your marketplace. SMS messages are charged separately.
Marketplace chat pricing per monthly active user
We price TalkJS per monthly active user, with unlimited conversations, messages and message history on every plan. A monthly active user is anyone who connects to TalkJS at least once that month, so a buyer counts once whether they send one message or a hundred.
- Basic: $279 a month, with 10,000 monthly active users included.
- Growth: $569 a month, with 25,000 included.
- Enterprise: custom pricing.
Every plan includes a free development mode, so you can build and test your marketplace chat before you pay. See pricing for what each plan includes, or compare TalkJS vs Sendbird and other chat APIs.
