Default - 100 requests/secModerate - 20 requests/secElevated - 5 requests/secStrict - 1 request/secRatelimit-Limit: The maximum number of requests that the consumer is permitted to make in a given time window.Ratelimit-Remaining: The number of requests remaining in the current rate limit window.Ratelimit-Tier: The rate limit tier for the query or mutation. (Default, Strict, Elevated, Moderate)Ratelimit-Reset: The time at which the current rate limit window resets in seconds.12345678910111213141516171819202122232425262728293031323334353637async function makeRateLimitedRequest(url) { try { const response = await axios.get(url); // Extract rate limit headers const rateLimit = parseInt(response.headers['ratelimit-limit'], 10); const rateLimitRemaining = parseInt(response.headers['ratelimit-remaining'], 10); const rateLimitReset = parseInt(response.headers['ratelimit-reset'], 10) * 1000; // Convert to milliseconds if (rateLimitRemaining === 0) { // If no requests are left, wait until the reset time const waitTime = rateLimitReset - Date.now(); console.log(`Rate limit hit. Waiting ${waitTime} ms...`); await delay(waitTime); } // Return the response data return response.data; } catch (error) { console.error('Error making request:', error); throw error; } } // Usage async function main() { const url = 'https://api.example.com/your-endpoint'; try { const data = await makeRateLimitedRequest(url); console.log('Response data:', data); } catch (error) { console.error('Failed to retrieve data:', error); } } main();
Strict tierElevated tier