Rate Limiting

Rate limit is the maximum number of requests you can make to the webMethods.io Integration server in a span of one minute. The rate limit works at the tenant level and is applicable to manually run, trigger-enabled, and webhook-enabled workflows.

How Rate Limiting Works

webMethods.io Integration employs rate limiting for webhook-enabled workflows only, which are further categorized into two:

  1. Rate limiting for sync webhook-enabled workflows
  2. Rate limiting for manually run, trigger-enabled, and async webhook-enabled workflows

1. Rate limiting for sync webhook-enabled workflows

Sync webhook-enabled workflows are the ones which contain the Return Data on Sync Webhook action. This action is used to send the workflow output in the body of the webhook URL.

The webhook URL for sync webhook-enabled workflows looks similar to the one given below:

Rate limit condition for paid plans

Under paid plans, if you send execution requests for more than 150 sync webhook-enabled workflows within a minute, the first 150 requests will be processed while the rest of the requests will be rejected. In such a case, you will need to send the execution request for the rejected workflows again.

Rate limit condition for trial/unpaid plans

Under trial/unpaid plans, if you send execution requests for more than 30 sync webhook-enabled workflows within a minute, the first 30 requests will be processed while the rest of the requests will be rejected. In such a case, you will need to send the execution request for the rejected workflows again.

When a workflow request is rejected, you will receive the following data in the response header:

"Retry-After": <retry_after_time>
"X-RateLimit-Limit": <total_requests_allowed>
"X-RateLimit-Remaining": <total_requests_remain>
"X-RateLimit-Reset": <next_limit_start_date>

You can use these details to design your APIs accordingly and resend the execution requests.

2. Rate limiting for manually run, trigger-enabled, and async webhook-enabled workflows

The rate limiting mechanism for manually run, trigger-enabled, and async webhook-enabled (workflows which don’t contain the Return Data on Sync Webhook action) workflows varies from the sync-webhook enabled workflows.

Rate limit condition for paid plans

Under paid plans, if you send execution requests for more than 150 manually run/trigger-enabled/async webhook-enabled workflows within a minute, the first 150 requests will be processed while the rest of the requests will be kept on hold. Such workflows will have a ‘Hold’ status against them in the Monitoring > Workflow Execution screen.

Rate limit condition for trial/unpaid plans

Under trial/unpaid plans, if you send execution requests for more than 30 manually run/trigger-enabled/async webhook-enabled workflows within a minute, the first 30 requests will be processed while the rest of the requests will be kept on hold. Such workflows will have a ‘Hold’ status against them in the Monitor > Workflow Execution screen.

Note: All workflow execution requests which are kept on hold will be automatically executed after some time.

Resuming workflows

You can alternatively manually resume the execution of the workflows that didn’t complete execution due to some error and were not automatically re-executed. To do so, click the respective workflow name and then click the Resume button located at the top right corner of the execution log screen.

You will also be notified about the workflows which are kept on hold, through the notifications panel.

If you resume a workflow at a time when the rate limit is already reached, you will receive an error message along with the following data in the response header:

"Retry-After": <retry_after_time>
"X-RateLimit-Limit": <total_requests_allowed>
"X-RateLimit-Remaining": <total_requests_remain>
"X-RateLimit-Reset": <next_limit_start_date>

You can use these details to design your APIs accordingly and resend the further execution requests.