attio-rate-limits

Featured

Handle Attio API rate limits with exponential backoff, queue-based throttling, and Retry-After header parsing. Trigger: "attio rate limit", "attio 429", "attio throttling", "attio retry", "attio backoff", "attio too many requests".

AI & Automation 2,266 stars 315 forks Updated today MIT

Install

View on GitHub

Quality Score: 99/100

Stars 20%
100
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Attio Rate Limits ## Overview Attio uses a **sliding window algorithm** with a **10-second window**. Rate limit scores are summed across all apps and access tokens hitting the API. When exceeded, you get HTTP 429 with a `Retry-After` header containing a date (usually the next second). Attio may temporarily reduce limits during incidents. ## Rate Limit Response ``` HTTP/1.1 429 Too Many Requests Retry-After: Sat, 22 Mar 2025 14:30:01 GMT Content-Type: application/json { "status_code": 429, "type": "rate_limit_error", "code": "rate_limit_exceeded", "message": "Rate limit exceeded, please try again later" } ``` **Key fact:** The `Retry-After` header is a date string (not seconds). Parse it as a Date to calculate wait time. ## Instructions ### Step 1: Parse Retry-After Header ```typescript function parseRetryAfter(headers: Headers): number { const retryAfter = headers.get("Retry-After"); if (!retryAfter) return 1000; // Default 1s // Attio sends a date string const retryDate = new Date(retryAfter); const waitMs = retryDate.getTime() - Date.now(); return Math.max(waitMs, 100); // Minimum 100ms } ``` ### Step 2: Exponential Backoff with Retry-After Awareness ```typescript import { AttioApiError } from "./client"; interface RetryConfig { maxRetries: number; baseMs: number; maxMs: number; } async function withRateLimitRetry<T>( operation: () => Promise<{ data: T; headers?: Headers }>, config: RetryConfig = { maxRetries: 5, baseMs: 1000, m...

Details

Author
jeremylongshore
Repository
jeremylongshore/claude-code-plugins-plus-skills
Created
7 months ago
Last Updated
today
Language
Python
License
MIT

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category

AI & Automation Featured

klaviyo-rate-limits

Implement Klaviyo rate limiting, backoff, and request queuing patterns. Use when handling 429 errors, implementing retry logic, or optimizing API request throughput for Klaviyo. Trigger with phrases like "klaviyo rate limit", "klaviyo throttling", "klaviyo 429", "klaviyo retry", "klaviyo backoff", "klaviyo Retry-After".

2,266 Updated today
jeremylongshore
AI & Automation Featured

customerio-rate-limits

Implement Customer.io rate limiting and backoff. Use when handling high-volume API calls, implementing retry logic, or hitting 429 errors. Trigger: "customer.io rate limit", "customer.io throttle", "customer.io 429", "customer.io backoff", "customer.io too many requests".

2,266 Updated today
jeremylongshore
AI & Automation Featured

attio-cost-tuning

Optimize Attio API usage costs -- reduce request volume, select the right plan, monitor usage, and implement budget alerts. Trigger: "attio cost", "attio billing", "reduce attio costs", "attio pricing", "attio expensive", "attio budget", "attio usage".

2,266 Updated today
jeremylongshore
AI & Automation Featured

apollo-rate-limits

Implement Apollo.io rate limiting and backoff. Use when handling rate limits, implementing retry logic, or optimizing API request throughput. Trigger with phrases like "apollo rate limit", "apollo 429", "apollo throttling", "apollo backoff", "apollo request limits".

2,266 Updated today
jeremylongshore
AI & Automation Featured

attio-performance-tuning

Optimize Attio API performance -- caching, batch queries, pagination strategies, connection pooling, and latency reduction. Trigger: "attio performance", "optimize attio", "attio slow", "attio latency", "attio caching", "attio batch requests".

2,266 Updated today
jeremylongshore