Skip to content
RSFlowHub
Developer docs API v1 Stable OpenAPI SDKs Playground
Rate Limits, Credits & Reliability

Rate Limits, Credits & Reliability

Your plan's request limits, the exact credit formula, what happens when a call fails or a provider is down, and how to retry safely.

Direct System Definition: Rate Limits & Credits

RSFlowHub bills API calls in prepaid credits. Each call costs the endpoint's base credits plus 1 credit per 1,000 input characters (and 1 credit per 500 output characters for endpoints that generate text), with a minimum of 2 credits. Failed calls and cache hits are free. Every plan has a per-minute request limit; over the limit the API returns HTTP 429 with a Retry-After header.

Rate limits

Two limits apply per minute: a plan-wide limit across all endpoints, and a per-endpoint limit (60 requests/minute unless stated otherwise). The one that runs out first applies. There is no separate concurrency limit.

API plan Plan-wide limit Over the limit
Free 10 requests / minute HTTP 429 RATE_LIMIT_EXCEEDED
Basic 15 requests / minute HTTP 429 RATE_LIMIT_EXCEEDED
Starter 30 requests / minute HTTP 429 RATE_LIMIT_EXCEEDED
Growth 60 requests / minute HTTP 429 RATE_LIMIT_EXCEEDED
Pro 120 requests / minute HTTP 429 RATE_LIMIT_EXCEEDED

Every API response includes these headers:

HeaderMeaning
X-RateLimit-LimitRequests per minute allowed by the limit that runs out first.
X-RateLimit-RemainingRequests left in the current minute.
Retry-AfterOnly on 429: seconds to wait before retrying. Also in the body as error.details.retry_after_seconds.
X-RateLimit-ResetOnly on 429: Unix time when you can retry.
X-Request-IdOur ID for this call. Include it when you contact support.
Need a higher limit?
Higher plans have higher limits. If you need more than the top plan allows, contact us and we can set a custom limit for your account. We do not offer a contractual uptime SLA today.

Timeouts and retries

Most calls finish in a few seconds, but a call can wait up to 20 seconds for the AI provider and then try a backup model. Set your client timeout to 60 seconds. Retry only on 429, 502, 503, 504 and network errors, and add random jitter so many clients do not retry at the same moment. Do not retry 400, 401, 402, 403 or 422: the same request will fail again.

Python (retry with Retry-After and jitter)
import random
import time

import requests

RETRYABLE = {429, 502, 503, 504}

def call_rsflowhub(url, headers, payload, max_retries=4, base_delay=1.0, max_delay=16.0):
    for attempt in range(max_retries + 1):
        try:
            response = requests.post(url, headers=headers, json=payload, timeout=60)
        except requests.RequestException:
            response = None

        if response is not None and response.status_code not in RETRYABLE:
            return response
        if attempt == max_retries:
            break

        retry_after = response.headers.get("Retry-After") if response is not None else None
        if retry_after and retry_after.isdigit():
            delay = float(retry_after)
        else:
            delay = random.uniform(0, min(max_delay, base_delay * (2 ** attempt)))
        time.sleep(delay)

    raise RuntimeError("RSFlowHub request failed after retries")
Retries and credits
A failed call is never charged, so retrying after a 5xx costs nothing extra. If your client gives up but our server finished the call, that call is charged; you will see it in Dashboard → Usage with its request ID.

Provider fallback and its limits

  • Each endpoint has a primary AI model and, for most endpoints, a backup model from a different provider.
  • If the primary model errors or times out, the same request is sent to the backup. If a model keeps failing, a circuit breaker pauses it for a short time and calls go straight to the backup.
  • The price does not change when the backup is used: credits depend only on the endpoint and the size of your text.
  • Image generation has no backup model. If its provider is down, the call fails with 502 AI_PROVIDER_ERROR and is not charged.
  • If both models fail, you get 502 AI_PROVIDER_ERROR and nothing is charged. A backup model can phrase answers a little differently from the primary.
  • Live provider health is on the status page.

How a call is charged

1. Reserve

Before the AI call we reserve an estimate based on your input and the maximum output. If your balance cannot cover it you get 402 INSUFFICIENT_CREDITS; over your monthly spending limit you get 403 SPENDING_LIMIT_REACHED. Nothing is charged.

2. Process

The request goes to the AI model (or its backup). Validation errors (422) are returned before any AI call.

3. Settle

On success the real charge is calculated from the actual input and output size, and the reservation is settled to that amount (usually lower than the estimate).

4. No charge for failures

If the call fails, the reservation is released and nothing is charged. Cache hits (identical requests within 24 hours, on endpoints that cache) are free.

Freemium Utility API Quotas (Per Plan)

Selected utility endpoints (e.g. Sentiment Analysis, PII Redaction, Spam Detection, Intent Detection) are available completely free without deducting credits from your balance, up to a monthly global quota determined by your active plan:

Subscription Plan Global Freemium Limit (per month)
Free 1,000 requests across all free endpoints
Basic 1,000 requests across all free endpoints
Starter 2,000 requests across all free endpoints
Growth 5,000 requests across all free endpoints
Pro 10,000 requests across all free endpoints
Forms plans are separate
Contact forms and newsletter signups have their own plans, message limits and AI allowances, and never use your API credits or this freemium quota. See Forms plans and limits.
Freemium Limit Shared Across Endpoints
Your plan's freemium utility quota is shared across all endpoints marked as "Freemium" in our documentation. Free calls cover inputs up to 2,000 characters; larger inputs are billed in credits. Once the limit is reached, standard credit rates apply. The quota resets on the 1st of every calendar month (UTC).

The credit formula

The charge for a successful, non-cached call is:

Formula
credits = base_credits
        + ceil(input_characters / 1000)
        + ceil(output_characters / 500)   (text-generating endpoints only)
minimum 2 credits
  • Input characters are the text you send. Our system prompts are never billed.
  • Output characters count only for endpoints that write text (replies, summaries, chat, translation, extraction and similar). Classifiers such as sentiment or spam detection are billed on input only.
  • Free freemium calls and cache hits cost 0 credits. Every charge is listed per call in Dashboard → Usage.
Worked example
An endpoint with 2 base credits receives 1,400 input characters and returns 600 output characters:
2 + ceil(1400 / 1000) + ceil(600 / 500) = 2 + 2 + 2 = 6 credits

Endpoint Base Credits Reference

Category API Endpoint Base Credits (Pre-Flight)
Text & Language /api/v1/ai/intent-detection 1 Credit
Text & Language /api/v1/ai/translation 1 Credit
Conversational AI /api/v1/ai/chat 1 Credit
Email /api/v1/ai/email-reply 2 Credits
Content Generation /api/v1/ai/content-generation 2 Credits
Image & Vision /api/v1/ai/image-generation 150 Credits / image
Account & Usage /api/v1/account/usage 0 Credits
Account & Usage /api/v1/account/usage-summary 0 Credits
Account & Usage /api/v1/account/api-key/current 0 Credits
Data & Extraction /api/v1/ai/json-extractor 2 Credits
Email /api/v1/ai/email-analyze 2 Credits
Email /api/v1/ai/email-workflow 2 Credits
Text & Language /api/v1/ai/sentiment-analysis 1 Credit
Safety & Moderation /api/v1/ai/spam-detection 2 Credits
Text & Language /api/v1/ai/text-summarize 1 Credit
Text & Language /api/v1/ai/grammar-fix 1 Credit
Safety & Moderation /api/v1/ai/pii-redaction 1 Credit
FAQ & Knowledge Base /api/v1/ai/faq-collections 0 Credits
FAQ & Knowledge Base /api/v1/ai/faq-match 2 Credits
Reviews /api/v1/ai/review-analyze 3 Credits
Reviews /api/v1/ai/review-summary 3 Credits
Reviews /api/v1/ai/review-reply 2 Credits
Reviews /api/v1/ai/review-insights 4 Credits
Social & Comments /api/v1/ai/comment-analyze 2 Credits
Social & Comments /api/v1/ai/comment-reply 2 Credits
Social & Comments /api/v1/ai/comment-moderate 3 Credits
Customer Support /api/v1/ai/ticket-analyze 3 Credits
Customer Support /api/v1/ai/ticket-reply 2 Credits
Customer Support /api/v1/ai/ticket-workflow 3 Credits
Data & Extraction /api/v1/ai/search-query-parse 3 Credits
Conversational AI /api/v1/knowledge-bases 1 Credit
Conversational AI /api/v1/chatbots 4 Credits

Billing & Limits Technical Q&A

Each API plan has a plan-wide per-minute limit (shown in the table on this page), plus a per-endpoint limit of 60 requests per minute. The one that runs out first applies, and X-RateLimit-Limit / X-RateLimit-Remaining headers tell you where you are. If you need more than the top plan allows, contact us for a custom limit.

No charge for failures: credits are reserved before the AI call and released if it fails. When a backup provider answers, the price is the same, because credits depend only on the endpoint and the size of your text.

Credits = base credits + 1 credit per 1,000 input characters + 1 credit per 500 output characters (output only for endpoints that generate text), with a minimum of 2 credits per non-cached call. Our system prompts are never billed.

A call that has already started finishes normally, because its credits were reserved up front. New calls receive 402 INSUFFICIENT_CREDITS until you buy a plan. We never charge your card without you.

Ready to build?

Create your free account and make your first API call in minutes.

RSFlowHub

Sign in to continue

You'll come straight back to this page.

Forgot password?

New to RSFlowHub? Create a free account