๐Ÿ“Š Overview

Dictionary enforces rate limits to ensure fair usage, maintain service stability, and prevent abuse. Limits are applied per API key and vary based on your subscription tier.

When a limit is reached, the API will respond with HTTP status code 429 Too Many Requests along with a Retry-After header indicating how many seconds to wait before making another request.

โ„น๏ธ Important Note
Rate limits reset on a rolling window basis. Burst allowances allow short spikes in traffic but must average out to your sustained limit over time.

๐Ÿ“ˆ Tiered Rate Limits

Limit Type Free Pro Enterprise
Requests / Minute 60 1,000 Custom (up to 10,000+)
Daily Quota 1,000 50,000 Unlimited
Burst Allowance 10 / sec 50 / sec Custom
Concurrent Requests 2 20 Unlimited
Response Payload Limit 1 MB 5 MB 10 MB

Need higher limits or custom configurations? Enterprise plans include dedicated throughput guarantees and SLA-backed performance.

โš ๏ธ What Happens When You Exceed Limits?

When your application exceeds the allowed request rate, Dictionary will return a 429 Too Many Requests response. The response body includes details about the limit type and retry window.

Sample 429 Response

{
  "error": {
    "code": 429,
    "message": "Rate limit exceeded.",
    "retry_after": 12,
    "limit_type": "per_minute",
    "current_usage": 60,
    "limit": 60
  }
}

Handling Rate Limits in Code

Implement exponential backoff to gracefully handle throttling:

async function fetchWithRetry(url, retries = 3) {
  for (let i = 0; i < retries; i++) {
    const res = await fetch(url);
    if (res.status === 429) {
      const retryAfter = res.headers.get('Retry-After') || Math.pow(2, i);
      console.log(`โณ Waiting ${retryAfter}s before retry...`);
      await new Promise(r => setTimeout(r, retryAfter * 1000));
      continue;
    }
    return res.json();
  }
  throw new Error('Max retries exceeded');
}

โœจ Best Practices

๐Ÿ” Cache Responses

Store frequent lookups locally. Dictionary data rarely changes; caching can reduce API calls by 80%+.

๐Ÿ“ฆ Batch Requests

Use the `/batch/lookup` endpoint to fetch multiple words in a single request instead of sequential calls.

๐Ÿ“Š Monitor Usage

Check your dashboard or use the `X-RateLimit-Remaining` header to track consumption in real-time.

โšก Optimize Payloads

Use the `fields` query parameter to request only the data you need (e.g., `?fields=definition,phonetic`).

\n

โ“ Frequently Asked Questions

How are rate limits calculated?

Rate limits use a sliding window algorithm. For example, a 60 req/min limit means any 60-second window cannot exceed 60 requests, not just fixed minute boundaries.

Can I increase my limits without upgrading?

Temporary spikes can be accommodated with burst allowances. For sustained higher throughput, please upgrade your plan or contact our sales team for Enterprise custom limits.

Are different endpoints rate-limited separately?

Yes. `/search`, `/define`, and `/translate` each have independent quotas. Check the API reference for endpoint-specific limits.

Need Higher Limits?

Upgrade to Pro for 1,000 requests/minute or contact us for Enterprise custom configurations.

View Pricing โ†’