smartchat

Costs and limits

#The protection limit

There is one limit: 120 requests per minute for each API key or MCP connection. REST and MCP calls made with the same key or connection count together. It protects you and us from a mistake such as a loop that calls the API without end. It is not a usage cap. A key can lower its own limit; it cannot raise it.

Every answer shows where you stand:

HeaderMeaning
X-RateLimit-LimitRequests allowed per minute for this key.
X-RateLimit-RemainingRequests left in the current minute.
X-RateLimit-ResetWhen the minute ends (Unix time in seconds).
X-RateLimit-ClassThe class of the call: read, write, send, bulk or upload.

If you go over, the answer is 429 rate_limited with the header Retry-After (seconds). Wait that long and send the request again. It is safe to repeat the request; nothing was done.

The Python example needs the package requests (pip install requests).

import os
import time
import requests

def get_with_wait(url, headers):
    while True:
        response = requests.get(url, headers=headers)
        if response.status_code != 429:
            return response
        time.sleep(int(response.headers.get("Retry-After", "1")))

headers = {"Authorization": "Bearer " + os.environ["SMARTCHAT_API_KEY"]}
print(get_with_wait("https://api.smartchat.marketing/v1/me", headers).status_code)

SmartChat counts calls in an audit log. If the amount of calls looks unusual, the SmartChat team is warned. There is no other limit on how much you may do.

#The daily limit of the WhatsApp number

This is not a limit of your key. WhatsApp limits how many new people one phone number may write to per day. A newsletter preview shows it: daily_limit is that number (or null if there is none) and estimated_days is how many days the send takes because of it. A larger audience is sent over several days; nothing is lost. See get_newsletter_send_preview.

#Credits

Calls to the API do not use credits. Doing the same thing in the app with an AI feature may use credits. A reference page says "Uses credits" if a call is an exception. Sending messages follows the quota of your plan; if it is used up, the answer is quota_exceeded.