Are there any external call out limits in Marketing Cloud?

To my knowledge, the following are the limitations:

  1. Callout Limits: Currently there is not much documented, but there is a 'limit' of 2000 SOAP calls per minute. The other consideration is that if your Automation using this script is a huge resource draw, you can see the rest of your Enterprise slow to a crawl and likely will draw the attention of SFMC that may limit or pause your automation until you resolve it.
  2. Time Limit: For SOAP, they list:
Asynchronous operations - 30 seconds
Synchronous operations (not including tracking retrieves) - 120 seconds
Synchronous operations retrieving large sets of data - 300 seconds

  For REST:

120 seconds for non-tracking opertaions
300 seconds for tracking and data retrieve operations.

  Oh and a script activity has a timeout of 30 minutes.

  1. Payload: The max payload for REST is measured in size, not characters and is listed as 4MB. For SOAP it is listed as 5MB. Outside of that limit, the rest of the limitations are on a call by call basis. For instance there is a limit on total amount of rows that you can push into a Data Extension in a single call, etc.

Note the following bullet points listed in the docs (SOAP) to stay within the provided SLA by SFMC:

- Avoid sending a completely rendered email in high-volume or triggered sends.
- Use dynamic content instead of starting a send definition, pausing it, changing the message, and restarting the send definition. This practice delivers inconsistent tracking information, no aggregate tracking data, and adds data rows to your tracking information.
- Avoid using high-volume triggered send calls using the synchronous SOAP API. Consider using asynchronous API calls to reduce server strain.
- Store message content in content areas instead of data extensions.
- Use send logging instead of send-time attributes where possible.
- Restrict the number of synchronous threads in your calls to 20 or fewer.
- Restrict your API requests to 50 objects per synchronous call or 100 objects per asynchronous call.

There is a list of 'Yearly limits' in the documentation, but as far as I know these are not officially enforced yet.

I also found an 'Optimum Thresholds' table. Although I believe it is centered around SOAP API only, I thought it worth sharing:

enter image description here