> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superblocks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate limits and quotas

> Learn about the service limits applied to Applications, Workflows, and Scheduled Jobs to optimize the performance and stability of the Superblocks cloud

export const Alert = ({type, title, children}) => {
  const getIcon = () => {
    switch (type) {
      case 'info':
        return "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm0 15c-.552 0-1-.448-1-1s.448-1 1-1 1 .448 1 1-.448 1-1 1zm1-3H9V6h2v6z' fill='%230099FF'/%3E%3C/svg%3E";
      case 'success':
        return "data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm4.293 6.293L9 11.586 5.707 8.293c-.391-.391-1.024-.391-1.414 0s-.391 1.024 0 1.414l4 4c.391.391 1.024.391 1.414 0l6-6c.391-.391.391-1.024 0-1.414s-1.024-.391-1.414 0z' fill='%230CC26D'/%3E%3C/svg%3E";
      case 'warning':
        return "data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbDpzcGFjZT0ncHJlc2VydmUnIHdpZHRoPScxMDgwJyBoZWlnaHQ9JzEwODAnPjxyZWN0IHdpZHRoPScxMDAlJyBoZWlnaHQ9JzEwMCUnIGZpbGw9J3RyYW5zcGFyZW50Jy8+PHBhdGggZD0nTTEzLjc5NCAxMC43NSA4LjMgMS4yNWExLjUgMS41IDAgMCAwLTIuNiAwbC01LjQ5NCA5LjVBMS40OTQgMS40OTQgMCAwIDAgMS41IDEzaDExYTEuNDkzIDEuNDkzIDAgMCAwIDEuMjk0LTIuMjVNNi41IDUuNWEuNS41IDAgMCAxIDEgMFY4YS41LjUgMCAwIDEtMSAwek03IDExYS43NS43NSAwIDEgMSAwLTEuNS43NS43NSAwIDAgMSAwIDEuNScgc3R5bGU9J3N0cm9rZTpub25lO3N0cm9rZS13aWR0aDoxO3N0cm9rZS1kYXNoYXJyYXk6bm9uZTtzdHJva2UtbGluZWNhcDpidXR0O3N0cm9rZS1kYXNob2Zmc2V0OjA7c3Ryb2tlLWxpbmVqb2luOm1pdGVyO3N0cm9rZS1taXRlcmxpbWl0OjQ7ZmlsbDojZmY5ZjM1O2ZpbGwtcnVsZTpub256ZXJvO29wYWNpdHk6MScgdHJhbnNmb3JtPSd0cmFuc2xhdGUoLjAyIDE5LjMwNSlzY2FsZSg3Ny4xNCknLz48L3N2Zz4=";
      case 'danger':
        return "data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm5.707 4.293L10 9.586 4.293 4.293c-.391-.391-1.024-.391-1.414 0s-.391 1.024 0 1.414L8.586 11l-5.707 5.293c-.391.391-.391 1.024 0 1.414s1.024.391 1.414 0L10 12.414l5.707 5.293c.391.391 1.024.391 1.414 0s.391-1.024 0-1.414L11.414 11l5.707-5.293c.391-.391.391-1.024 0-1.414s-1.024-.391-1.414 0z' fill='%23F45252'/%3E%3C/svg%3E";
      case 'note':
        return "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath d='M10 0C4.477 0 0 4.477 0 10s4.477 10 10 10 10-4.477 10-10S15.523 0 10 0zm0 15c-.552 0-1-.448-1-1s.448-1 1-1 1 .448 1 1-.448 1-1 1zm1-3H9V6h2v6z' fill='%230099FF'/%3E%3C/svg%3E";
      default:
        return "";
    }
  };
  return <div className={`alert alert--${type}`}>
      <div className="alert-icon" style={{
    backgroundImage: `url("${getIcon()}")`,
    backgroundRepeat: 'no-repeat',
    backgroundPosition: 'center center',
    backgroundSize: '20px',
    width: '24px',
    height: '24px',
    position: 'absolute',
    left: '16px',
    top: '16px'
  }} />
      <div className="alert-content">
        {title && <div className="alert-title">{title}</div>}
        <div className="alert-body">{children}</div>
      </div>
    </div>;
};

<Alert type="info">
  The following applies only to customers on the Superblocks Cloud architecture. It does <strong>not</strong> apply to customers using the Superblocks Hybrid or Cloud-Prem architectures (<a href="/enterprise/deployment-overview">details</a>).
</Alert>

For users on Superblocks Cloud, tier based service limits are in place to optimize product performance and stability. If you need higher service limits for your use case, please reach out to our [support team](/enterprise/support/help) to request a limit increase.

## Time quotas

| Quota                    | Description                                                                                        | Free       | Trial      | Pro        | Enterprise |
| ------------------------ | -------------------------------------------------------------------------------------------------- | ---------- | ---------- | ---------- | ---------- |
| Application API duration | Duration of an API in an Application                                                               | 30 seconds | 5 minutes  | 5 minutes  | 5 minutes  |
| Workflow duration        | Duration of a Workflow                                                                             | 30 seconds | 10 minutes | 10 minutes | 10 minutes |
| Scheduled Job duration   | Duration of a Scheduled Job                                                                        | 1 minute   | 30 minutes | 30 minutes | 30 minutes |
| Language step duration   | Duration of any language step (Python / JavaScript) in an Application, Workflow, or Scheduled Job) | 1 minute   | 1 minute   | 2 minutes  | 2 minutes  |

## Size quotas

| Quota              | Description                                                    | Free   | Trial  | Pro   | Enterprise |
| ------------------ | -------------------------------------------------------------- | ------ | ------ | ----- | ---------- |
| Step size\*        | Step output returned                                           | 5 MB   | 10 MB  | 20 MB | 20 MB      |
| Stream send size   | Size of data sent to the client per message for streaming APIs | 500 kB | 500 kB | 1 MB  | 2 MB       |
| Parallel pool size | Number of paths that can be used in the Parallel block         | 10     | 10     | 50    | 50         |

\* The **step size** refers to an API step's *output* (return value + console logs). You can still process in excess of these limits *within* a language step as long as the data is not returned. Note, API steps return serialized JSON which is included in this limit.

### Returning data from the Application backend to the frontend

<Alert type="info">
  The following applies only to organizations whose payload quota is set at > 10 MB.
</Alert>

When returning data from backend API steps to the  frontend, it is recommended to keep it below **10MB** for performance reasons. Returning more data could cause degraded performance for end-users. This may require the use of server-side paginationa to limit the payload of the data.

## Rate limits

API steps are rate limited. The **throughput** of steps cannot exceed the following limits.

| Rate Limit                      | Description                                             | Free | Trial | Pro   | Enterprise |
| ------------------------------- | ------------------------------------------------------- | ---- | ----- | ----- | ---------- |
| Steps per second - User         | Steps executed per second for an individual user        | 500  | 500   | 5000  | 5000       |
| Steps per second - Organization | Steps executed per second across an entire organization | 5000 | 5000  | 50000 | 50000      |
| Steps per second - API          | Steps executed per second for a single API              | 500  | 500   | 5000  | 5000       |
