Legal
Service level agreement
A 99.99% monthly uptime target on the Scale and Enterprise plans, with a 10% credit per 30 minutes below it. What counts as downtime, what does not, and how the credit reaches your invoice without you filing anything.
Last updated 22 August 2026
In plain language
Service level summary
This document sets out our platform uptime commitment and the billing credits applied automatically during an outage.
- We commit to a 99.99% monthly uptime target on Scale and Enterprise, measured per covered service, which allows about 4 minutes 23 seconds a month.
- Downtime covers outages on our own systems. Maintenance announced 48 hours in advance does not count against the target.
- We credit 10% of your monthly bill for every 30 minutes below target, applied automatically, up to the full invoice amount. Starter and Team run on best-effort uptime with no credits.
- Availability is published on the status page. Credits land on your next invoice and you do not fill in a form to get them.
The summary is here to save you time. The text below it is the part that binds us.
1. Scope
This agreement forms part of the terms of service and applies to the Scale and Enterprise plans. Starter and Team accounts run on best-effort uptime and earn no credits. It covers the Covered Services listed in section 3, and it leaves out features marked beta in the product, the free Personal plan, and the open source SDK you run yourself.
Enterprise agreements can raise the target, add a 24/7 pager path and change the credit schedule. Where an order form says something different from this page, the order form wins.
2. Definitions
- Month means a calendar month.
- Total Minutes means the number of minutes in the month, so 43,200 in a 30 day month and 44,640 in a 31 day month.
- Downtime Minutes means minutes counted under section 4.
- Monthly Uptime means (Total Minutes minus Downtime Minutes) divided by Total Minutes, expressed as a percentage to three decimal places.
- Monthly Fee means the fee for the affected month. On an annual plan it is one twelfth of the annual fee.
3. Covered Services and the target
The target is 99.99% Monthly Uptime for each of these, measured independently:
| Covered Service | What it means |
|---|---|
| API and gateway | The REST API, the WebSocket stream and the inbound webhook listeners |
| Channel ingestion | Accepting a message from a connected network and making it visible in the inbox |
| Message sending | Accepting an outbound message and handing it to the network |
| Search index | Returning a correct result set for a query |
| Apps | The web application and the native clients loading and authenticating |
AI inference is measured and published on the status page but sits outside this agreement, because a transcription arriving eleven minutes late is a delay rather than an outage.
At 99.99%, the allowance is 4 minutes 19 seconds in a 30 day month and 4 minutes 28 seconds in a 31 day month. Across an average month it works out at about 4 minutes 23 seconds.
4. What counts as downtime
A minute is a Downtime Minute for a Covered Service when, during that minute, more than 5% of requests to it fail with a server-side error, or the service is unreachable, or a request takes more than ten times the published latency target. We measure from external probes in Frankfurt, Amsterdam, Dublin and Warsaw, at 30 second intervals, and a minute counts when two consecutive probes from two locations agree.
A partial outage counts in full. If ingestion fails for one connected network, that is downtime for Channel ingestion for every customer with that network connected. We do not divide a minute by the fraction of the product that was working.
The status page is the record. Probe data behind it is kept for 13 months and we hand over the raw series for your own month on request.
5. What does not count
- Maintenance we announced at least 48 hours in advance, capped at four hours a month and scheduled between 01:00 and 05:00 Central European Time.
- Emergency security patching, announced as far ahead as the situation allows and capped at one hour a month.
- A failure on a third-party network. WhatsApp changing a protocol, Telegram rate limiting an account, or Meta suspending a number is outside our control. We publish it as an incident and we tell you, and it earns no credit under this agreement. We sometimes issue a discretionary credit anyway, which stays at our discretion and sets no precedent.
- A failure caused by your own configuration, your identity provider being down, a revoked BYOK key, or a credential you did not renew.
- Traffic above the documented rate limits on your plan, or a request our abuse controls blocked.
- Force majeure as described in the terms of service.
- A suspension for non-payment or for a breach of the acceptable use section.
- Beta features, and anything you run yourself on a self-hosted deployment.
These are the exclusions we apply today. A change to them goes through the notice process in section 11.
6. Credits
Credits are calculated per Covered Service on total Downtime Minutes for that service in the month. Where two services were down in the same minute, the minute counts once, at the higher credit.
| Downtime Minutes in the month | Credit against the Monthly Fee |
|---|---|
| Inside the allowance | None. The target was met |
| Over the allowance, up to 30 minutes | 10% |
| Over 30, up to 60 minutes | 20% |
| Over 60, up to 90 minutes | 30% |
| Over 90, up to 120 minutes | 40% |
| Each further 30 minutes | Another 10% |
| Over 4 hours 30 minutes | 100%, the cap for the month |
A credit is a reduction of the next invoice. It is not a cash refund, and it is applied before VAT. Credits do not carry beyond 100% of a single Monthly Fee, and they do not stack across services past that cap.
7. How the credit reaches you
You do not claim it. Within five working days of the end of a month in which we missed the target, we calculate the credit, email the billing contacts with the Downtime Minutes and the arithmetic, and post the credit to the next invoice. It also appears as a line in the billing screen and as an entry in your audit log.
If you think we counted wrong, write to [email protected] within 60 days of the end of the month, with the times you observed. We will send the raw probe series for that period and correct it if the data says you are right. Any claim you raise more than 60 days after the month has closed falls away.
A credit issued while your account carries an unpaid invoice is applied to that invoice first.
8. Repeated misses
If we fall below 99.99% for three consecutive months, or below 99.5% in any single month, you can terminate the subscription in writing within 30 days of the last of those months. You keep the credits already issued and we refund the unused part of any prepaid term pro rata. The export window still runs for 30 days after termination and the export ceiling on your plan still applies.
9. Support response targets
These are targets rather than a credit-bearing commitment, and they run Monday to Friday, 08:30 to 18:00 Central European Time.
| Severity | Example | First response |
|---|---|---|
| Critical | The workspace is unreachable, or messages are not arriving at all | 30 minutes, any hour, any day |
| High | One channel is down, or search is returning nothing | 1 hour |
| Normal | A feature is behaving oddly, a report looks wrong | 4 hours |
| Low | A question, a feature request, a security questionnaire | 24 hours |
10. Incident communication
For a Critical incident we post to the status page within 15 minutes of confirming it, update it every 30 minutes until it is resolved, and publish a written root cause analysis within five working days. We keep the analysis on the status page permanently and we do not edit it afterwards to look better.
11. Changes to this agreement
We can change this agreement with 60 days of written notice to the administrators on record. A change that lowers the target or the credits does not apply to an annual term already paid for. The date at the top of this page shows the current version and older versions are available on request.
12. Contact
CommunicationOS BV, Hoveniersstraat 30, 2018 Antwerp, Belgium.
Credits and billing: [email protected]
Published availability: the status page
CommunicationOS BV, Hoveniersstraat 30, 2018 Antwerp, Belgium.