Skip to main content

Rate Limits & Quotas

To ensure service stability and fair usage, Heify enforces rate limits and resource quotas. This guide explains these limits and how to work within them.

Rate Limits by Endpoint

Rate limits are applied per account and are measured in requests per minute with burst capacity.

Configuration Endpoints

EndpointRequests/MinuteBurst Capacity
POST /create-configuration102
POST /get-configurations503
POST /delete-configuration503
Configuration endpoints have lower limits since they’re typically used for setup operations, not high-frequency requests.

Transcription Endpoints

EndpointRequests/MinuteBurst Capacity
POST /request-upload-url50017
POST /submit50017
POST /details50017
POST /delete-transcription50017
POST /update-transcription-group50017
Transcription endpoints support high-frequency operations to accommodate bulk processing and real-time applications.
For example, if you have a 500 requests per minute limit (approximately 8.3 per second), a “burst” of 17 means that at any given point in time you can make up to 17 requests in rapid succession (in a burst) before the normal strict limit is applied.

Resource Quotas

In addition to rate limits, Heify enforces quotas on resources.

Account Limits

ResourceLimit
Configurations per Client20
Max Audio Duration2 hours (7200 seconds)
Max Audio File Size200 MB
Transcriptions in Queue100
Concurrent Processing25

Supported Audio Formats

FormatExtensionNotes
AAC.aacAdvanced Audio Coding
AIFF.aiffAudio Interchange File Format
AMR.amrAdaptive Multi-Rate
ASF.asfAdvanced Systems Format
FLAC.flacFree Lossless Audio Codec
MP3.mp3MPEG Audio Layer 3
OGG.oggOgg Vorbis
WAV.wavWaveform Audio File Format
WebM.webmWebM Audio
M4A.m4aMPEG-4 Audio
MP4.mp4MPEG-4 Audio Container

Testing Rate Limits

During development, you can test your rate limit handling:
Python
import requests
import time

def test_rate_limiting():
    """Test rate limit handling by making rapid requests"""
    url = "https://api.heify.com/get-configurations"
    headers = {"x-api-key": "YOUR_API_KEY"}
    
    for i in range(100):
        response = requests.post(url, headers=headers, json={})
        
        print(f"Request {i+1}: {response.status_code}")
        
        if response.status_code == 429:
            print("Rate limited! Testing backoff...")
            time.sleep(5)
            
            # Retry
            retry = requests.post(url, headers=headers, json={})
            print(f"Retry: {retry.status_code}")
            break
        
        # Small delay between requests
        time.sleep(0.1)

test_rate_limiting()

Increasing Limits

If your application requires higher limits, contact our sales team:

Contact Sales

Discuss enterprise plans with custom rate limits and quotas

Next Steps