For AI agents: Find a documentation index at https://talkjs.com/llms.txt (full content at https://talkjs.com/llms-full.txt). Get a markdown version of any page by appending .md to its URL path.
Skip to content

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} 
    />
  );
}
Buyer
Buyer
Hi, I’m interested in the Hemisphere Bowl. Is this the polished stainless steel version?
You
Hi! Yes, it’s the polished stainless steel Hemisphere Bowl, in excellent condition.

New Bid

$1800.00

by Buyer

Bid for Hemisphere Bowl in polished stainless steel, used only as a display piece.

Hemisphere Bowl
Buyer
Buyer
Great. Has it ever been used, or just displayed?
You
Thanks, I’ve received your $1,800 bid. I’ll accept it now and confirm shipping details in chat.
Reply to the buyer...
Buyer
Hi! Is the Tokyobike Sport still available?
10:12
You
Hi! Yes, it’s still available and in great condition.
10:13

New Bid

$500.00

by Jordan Lee

Bid for Tokyobike Sport in matte black, regularly serviced and ready to ride.

Tokyobike Sport
Buyer
That works for me. Can we arrange pickup this weekend?
10:15
You
Yes, Saturday morning works. I’ll confirm the address in chat once the payment is processed.
10:16
Reply to the buyer...
Styleseat
Kaddy

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

Seller
Yes, the bike is still for sale. Happy to answer any questions.
10:41
You
Great! Text me at 555-0134 or email maya@example.com and we can sort out a time.
10:42
Write a message...

What the seller sees

You
Yes, the bike is still for sale. Happy to answer any questions.
10:41
Maya
Great! Text me at (hidden information) or email (hidden information) and we can sort out a time.
10:42
Reply to the buyer...

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 seller
Case study
StyleSeat logo

StyleSeat 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 study

Marketplace 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.

Seller
Hey, I noticed you’re interested in the PS5 controller for sale. Any questions? Are you happy with the price?
4m ago
You
If it’s still under warranty, yes, I‘m happy.
3m ago
Seller
Yes, it‘s still under warranty for another six months.
5m ago

New Bid

€50.00

by Jennifer Pritchard

DualSense brings haptic feedback and adaptive triggers to PlayStation 5, turning simple actions into precise tactile experiences.

Image
Just placed a bid. Let me know if this works.

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.sent webhook 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.

Catawiki logo
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.
Dennis Pereira
Head of Product, Catawiki

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.

FAQs

Yes, if you allow your own domain. With link masking on, both the URL and its link preview are hidden, so add your marketplace’s hostname to the allowed list under Mask unwanted content on the Chat UI tab. You can allow your support phone number or email address the same way.

Not by default. Masking looks for the usual formats of phone numbers, email addresses and links. For numbers spelled out like “five five five”, add your own regular expression patterns or a word list on the same Chat UI tab, or have an AI moderation service check each new message through our message.sent webhook.