Skip to main content

Overview

ChatAside and ChatAds share infrastructure, but they are different products.
  • ChatAside uses cwk_ widget keys
  • ChatAside tracks usage in widget_daily_usage
  • ChatAside has widget-tier limits
  • ChatAds monetization still uses a cak_ key behind the scenes when monetization is enabled
This separation matters because widget traffic does not use standard ChatAds daily billing tables or ChatAds plan limits.

Widget Rate Limits

ChatAside applies multiple limits at different layers.

Team Daily Chat Limit

Each team has a daily widget chat cap enforced server-side.
TierDaily Team Chat Limit
Free100/day
Pro500/day
Business1500/day
When the team hits its daily limit, widget chat requests return a 429 error.

Per-Visitor Daily Limit

You can also set a per-visitor daily message cap.
  • This is enforced by IP address
  • It is separate from the team-level daily limit
  • When enabled, requests over the limit return WIDGET_LIMIT_EXCEEDED
This is useful for preventing one visitor from consuming your entire daily quota.

Per-Minute Protection

ChatAside also uses a short-window rate limiter to protect the service from bursts and spam.
  • Team-level per-minute limit: 300 requests per minute
  • Endpoint-specific IP rate limits are also applied to widget routes
If a burst limit is exceeded, the API returns 429.

Page Context Limits

When page context is enabled, ChatAside includes content from the current page in the prompt. Page context is capped by widget tier:
TierContext Cap
Free6,000 characters
Pro15,000 characters
Business15,000 characters
This keeps requests bounded while still letting the model answer questions about the current article.

Daily Ad Cap

If monetization is enabled, you can also apply a daily ad cap. This limits how often monetized responses are shown in a day. The widget uses the has_affiliate_links flag in chat responses to track when an answer included affiliate links.

Monetization Flow

When ChatAside monetization is on, the widget tries to add affiliate links without changing your embed snippet. The flow is:
  1. Visitor sends a message through the widget using a cwk_ key
  2. ChatAside generates an on-topic answer
  3. If monetization is enabled, ChatAside first checks whether the current page already contains relevant affiliate links
  4. If not, ChatAside makes an internal request to /v1/chatads/messages
  5. That internal call uses a team cak_ key for standard ChatAds monetization
  6. The final response comes back to the widget with inline affiliate markdown already assembled
Monetization is opt-in. If you do not enable it, ChatAside still works as a content-aware site chat widget.

cwk_ vs cak_

These two key types have different jobs:
Key PrefixPurpose
cwk_Public-facing widget authentication
cak_Internal ChatAds monetization requests
The widget itself should only be embedded with a cwk_ key.
Do not put a cak_ key into your client-side embed snippet.

Affiliate Click and Usage Tracking

ChatAside tracks widget activity separately from ChatAds API usage. Daily widget tracking includes:
  • Message count
  • Page load count
  • Click count on affiliate links
This data is stored per team per day and powers ChatAside usage charts in the dashboard.

Monetization Requirements

To monetize ChatAside responses, your team needs:
  • ChatAside enabled
  • Widget monetization turned on
  • A usable ChatAds API key (cak_) available for internal monetization calls
  • Affiliate configuration such as an Amazon tag for supported flows
If no monetization key or affiliate setup is available, the widget still responds to users, but affiliate links may be skipped.

What Users See at the Limit

When limits are reached, the widget degrades in visible ways:
  • Team daily limit reached: chat requests are blocked for the day
  • Per-visitor limit reached: that visitor can no longer keep chatting that day
  • Some limit states hide or disable the widget input until the next reload or day boundary
In the client, daily limit errors are surfaced as a friendly message instead of a raw API response.

Best Practices

Separate your key types

Keep cwk_ keys in the embed snippet and reserve cak_ keys for ChatAds monetization only.

Set a visitor cap

Use per-visitor daily limits to prevent a single user from exhausting team quota.

Monitor usage

Watch message count, page loads, and clicks in the ChatAside dashboard.

Enable monetization intentionally

Turn on monetization only when affiliate links fit your content and audience.