Skip to content

Commit cb211e0

Browse files
umair-ablyclaude
andcommitted
docs(pricing): fix moderation billing and clarify inbound/outbound message counts
Moderation rule invocations are billed as outbound webhook events, not inbound messages, so correct the moderation rows in the chat and consolidated message-counting tables. Also relabel operations that were described with a bare "message" to use the inbound/outbound terminology that matches the billing stats users see (messages.inbound.* / messages.outbound.*). History retrieval, rewind, presence queries, push delivery, meta events, and LiveObjects sync/fetch are outbound; LiveObjects batch operations are inbound. Persistence storage is left unchanged pending confirmation of its stat category. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 9f916fb commit cb211e0

4 files changed

Lines changed: 24 additions & 24 deletions

File tree

src/pages/docs/chat/pricing.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ The following table shows how Chat operations contribute to your message count:
2121
| Delete message | 1 inbound message |
2222
| Message deletion delivery | 1 outbound message per subscriber |
2323
| [History](/docs/chat/rooms/history) ||
24-
| History retrieval | 1 message per retrieved message |
24+
| History retrieval | 1 outbound message per retrieved message |
2525
| [Typing indicators](/docs/chat/rooms/typing) ||
2626
| Typing keystroke | 1 inbound message; repeats every heartbeat interval (default 10s) |
2727
| Typing keystroke delivery | 1 outbound message per subscriber per heartbeat |
@@ -42,7 +42,7 @@ The following table shows how Chat operations contribute to your message count:
4242
| [Occupancy](/docs/chat/rooms/occupancy) ||
4343
| Occupancy event | 1 outbound message per subscriber (generated on membership changes, debounced up to 15s) |
4444
| [Moderation](/docs/chat/moderation) ||
45-
| Moderation action | 1 inbound message; triggers a message update or delete which follows standard delivery |
45+
| Moderation rule invocation (before or after publish) | 1 outbound webhook event per moderated message (`messages.outbound.httpEvent.messages`) |
4646

4747
## Rooms and channels <a id="channels"/>
4848

src/pages/docs/liveobjects/pricing.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ The following table shows how LiveObjects operations contribute to your message
2222
| LiveCounter increment or decrement | 1 inbound message |
2323
| LiveCounter create | 2 inbound messages (create + assign) |
2424
| ObjectMessage delivery | 1 outbound message per connected client |
25-
| [Synchronization](#synchronization) | 1 message per object synchronized |
26-
| [REST API](#rest-api) fetch | 1 message per object in response |
27-
| [Batch](/docs/liveobjects/batch) operation | 1 message per operation in the batch |
25+
| [Synchronization](#synchronization) | 1 outbound message per object synchronized |
26+
| [REST API](#rest-api) fetch | 1 outbound message per object in response |
27+
| [Batch](/docs/liveobjects/batch) operation | 1 inbound message per operation in the batch |
2828

2929
Nested object creation generates additional messages for each nested object.
3030

src/pages/docs/platform/pricing/message-counting.mdx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,24 +46,24 @@ The following table shows how [Pub/Sub](/docs/pub-sub) operations contribute to
4646
| Presence leave | 1 inbound message |
4747
| Presence update | 1 inbound message |
4848
| Presence event delivery | 1 outbound message per presence subscriber |
49-
| Presence REST query | 1 message per member returned |
50-
| Batch presence request | 1 message per member across all queried channels |
49+
| Presence REST query | 1 outbound message per member returned |
50+
| Batch presence request | 1 outbound message per member across all queried channels |
5151
| [Storage and history](/docs/storage-history/storage) ||
5252
| Persistence storage | 1 additional message per stored message |
53-
| History retrieval | 1 message per retrieved message |
54-
| [Rewind](/docs/channels/options/rewind) on attach | 1 message per rewound message (up to 100) |
53+
| History retrieval | 1 outbound message per retrieved message |
54+
| [Rewind](/docs/channels/options/rewind) on attach | 1 outbound message per rewound message (up to 100) |
5555
| [Integrations](/docs/platform/integrations) ||
5656
| Integration delivery | 1 outbound message per integration target |
5757
| [Inbound integration publish](/docs/platform/integrations#inbound) | 1 inbound message |
5858
| [Push notifications](/docs/push) ||
59-
| Push notification delivery | 1 message per delivered notification |
59+
| Push notification delivery | 1 outbound message per delivered notification |
6060
| [Annotations](/docs/messages/annotations) ||
6161
| Annotation publish | 1 inbound message |
6262
| Annotation delete | 1 inbound message |
6363
| [Annotation summary delivery](/docs/messages/annotations#annotation-summaries) | 1 outbound message per subscriber; multiple annotations may be rolled up into a single summary |
6464
| [Metadata and stats](/docs/metadata-stats/metadata) ||
65-
| Lifecycle event (`[meta]connection.lifecycle`, `[meta]channel.lifecycle`) | 1 message per event |
66-
| `[meta]stats:minute` event | 1 message per event |
65+
| Lifecycle event (`[meta]connection.lifecycle`, `[meta]channel.lifecycle`) | 1 outbound message per event |
66+
| `[meta]stats:minute` event | 1 outbound message per event |
6767
| `[meta]log` subscription | Not counted |
6868

6969
For Pub/Sub-specific cost optimization strategies, see [Pub/Sub pricing](/docs/pub-sub/pricing).
@@ -82,7 +82,7 @@ The [Chat SDK](/docs/chat) is built on top of [Pub/Sub](/docs/pub-sub). All Chat
8282
| Delete message | 1 inbound message |
8383
| Message deletion delivery | 1 outbound message per subscriber |
8484
| [History](/docs/chat/rooms/history) ||
85-
| History retrieval | 1 message per retrieved message |
85+
| History retrieval | 1 outbound message per retrieved message |
8686
| [Typing indicators](/docs/chat/rooms/typing) ||
8787
| Typing keystroke | 1 inbound message; repeats every heartbeat interval (default 10s) |
8888
| Typing keystroke delivery | 1 outbound message per subscriber per heartbeat |
@@ -103,7 +103,7 @@ The [Chat SDK](/docs/chat) is built on top of [Pub/Sub](/docs/pub-sub). All Chat
103103
| [Occupancy](/docs/chat/rooms/occupancy) ||
104104
| Occupancy event | 1 outbound message per subscriber (generated on membership changes, debounced up to 15s) |
105105
| [Moderation](/docs/chat/moderation) ||
106-
| Moderation action | 1 inbound message; triggers a message update or delete which follows standard delivery |
106+
| Moderation rule invocation (before or after publish) | 1 outbound webhook event per moderated message (`messages.outbound.httpEvent.messages`) |
107107

108108
For Chat-specific cost optimization strategies, see [Chat pricing](/docs/chat/pricing).
109109

@@ -120,9 +120,9 @@ For Chat-specific cost optimization strategies, see [Chat pricing](/docs/chat/pr
120120
| LiveCounter increment or decrement | 1 inbound message |
121121
| LiveCounter create | 2 inbound messages (create + assign) |
122122
| ObjectMessage delivery | 1 outbound message per connected client |
123-
| [Synchronization](/docs/liveobjects/pricing#synchronization) | 1 message per object synchronized |
124-
| [REST API](/docs/liveobjects/pricing#rest-api) fetch | 1 message per object in response |
125-
| [Batch](/docs/liveobjects/batch) operation | 1 message per operation in the batch |
123+
| [Synchronization](/docs/liveobjects/pricing#synchronization) | 1 outbound message per object synchronized |
124+
| [REST API](/docs/liveobjects/pricing#rest-api) fetch | 1 outbound message per object in response |
125+
| [Batch](/docs/liveobjects/batch) operation | 1 inbound message per operation in the batch |
126126

127127
Nested object creation generates additional messages for each nested object.
128128

src/pages/docs/pub-sub/pricing.mdx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,24 @@ The following table shows how Pub/Sub operations contribute to your message coun
2121
| Presence leave | 1 inbound message |
2222
| Presence update | 1 inbound message |
2323
| Presence event delivery | 1 outbound message per presence subscriber |
24-
| Presence REST query | 1 message per member returned |
25-
| Batch presence request | 1 message per member across all queried channels |
24+
| Presence REST query | 1 outbound message per member returned |
25+
| Batch presence request | 1 outbound message per member across all queried channels |
2626
| [Storage and history](/docs/storage-history/storage) ||
2727
| Persistence storage | 1 additional message per stored message |
28-
| History retrieval | 1 message per retrieved message |
29-
| [Rewind](/docs/channels/options/rewind) on attach | 1 message per rewound message (up to 100) |
28+
| History retrieval | 1 outbound message per retrieved message |
29+
| [Rewind](/docs/channels/options/rewind) on attach | 1 outbound message per rewound message (up to 100) |
3030
| [Integrations](/docs/platform/integrations) ||
3131
| Integration delivery | 1 outbound message per integration target |
3232
| [Inbound integration publish](/docs/platform/integrations#inbound) | 1 inbound message |
3333
| [Push notifications](/docs/push) ||
34-
| Push notification delivery | 1 message per delivered notification |
34+
| Push notification delivery | 1 outbound message per delivered notification |
3535
| [Annotations](/docs/messages/annotations) ||
3636
| Annotation publish | 1 inbound message |
3737
| Annotation delete | 1 inbound message |
3838
| [Annotation summary delivery](/docs/messages/annotations#annotation-summaries) | 1 outbound message per subscriber; multiple annotations may be rolled up into a single summary |
3939
| [Metadata and stats](/docs/metadata-stats/metadata) ||
40-
| Lifecycle event (`[meta]connection.lifecycle`, `[meta]channel.lifecycle`) | 1 message per event |
41-
| `[meta]stats:minute` event | 1 message per event |
40+
| Lifecycle event (`[meta]connection.lifecycle`, `[meta]channel.lifecycle`) | 1 outbound message per event |
41+
| `[meta]stats:minute` event | 1 outbound message per event |
4242
| `[meta]log` subscription | Not counted |
4343

4444
## Channels <a id="channels"/>

0 commit comments

Comments
 (0)