Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Manage Lindy AI credits, rate limits, and usage optimization. Use when hitting rate limits, optimizing credit consumption, or implementing usage controls. Trigger with phrases like "lindy rate limit", "lindy credits", "lindy quota", "lindy throttling", "lindy API limits".
.claude/skills/jeremylongshore-lindy-rate-limits/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 45% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 60% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 44% | 0% |
| case-09 | ✗→✓ | ▲ Improved | -15% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 34% | 0% |
Lindy uses a credit-based consumption model, not traditional API rate limits. Every task (everything an agent does after being triggered) costs credits. Cost scales with model intelligence, task complexity, premium actions, and duration.
| Factor | Credit Impact | |--------|-------------| | Basic model task | 1-3 credits | | Large model task (GPT-4, Claude) | ~10 credits | | Premium actions (webhooks, phone) | Additional credits | | Phone calls (US/Canada landline) | ~20 credits/minute | | Phone calls (international mobile) | 21-53 credits/minute | | Minimum per task | 1 credit |
| Plan | Credits/Month | Approx Tasks | Price | |------|--------------|-------------|-------| | Free | 400 | ~40-400 | $0 | | Pro | 5,000 | ~500-1,500 | $49.99/mo | | Business | 30,000 | ~3,000-30,000 | $299.99/mo | | Enterprise | Custom | Custom | Custom |
Important: Credit limit enforcement is not instant. Lindy can only limit usage after the limit has been breached, not precisely when it is reached. A task that starts before the limit may complete and push usage slightly over.
In the Lindy dashboard:
Choose the right model for each step:
| Task Type | Recommended Model | Credits | |-----------|------------------|---------| | Simple routing/classification | Gemini Flash | ~1 | | Standard text generation | Claude Sonnet / GPT-4o-mini | ~3 | | Complex reasoning/analysis | GPT-4 / Claude Opus | ~10 | | Phone calls (simple) | Gemini Flash | ~20/min | | Phone calls (complex) | Claude Sonnet | ~20/min |
Reduce action count per task:
Prevent credit waste from over-triggering:
Problem: Email Received trigger fires on ALL emails → 200 tasks/day
Solution: Add trigger filter: "sender contains '@customers.com'
AND subject does not contain 'auto-reply'"
→ 20 tasks/day (90% reduction)Trigger filter best practices:
When your application triggers Lindy agents via webhooks, rate-limit on your side:
typescript// Rate limiter for outbound Lindy webhook triggers class LindyRateLimiter { private tokens: number; private maxTokens: number; private refillRate: number; // tokens per second private lastRefill: number; constructor(maxPerMinute: number) { this.maxTokens = maxPerMinute; this.tokens = maxPerMinute; this.refillRate = maxPerMinute / 60; this.lastRefill = Date.now(); } async acquire(): Promise<boolean> { const now = Date.now(); const elapsed = (now - this.lastRefill) / 1000; this.tokens = Math.min(this.maxTokens, this.tokens + elapsed * this.refillRate); this.lastRefill = now; if (this.tokens >= 1) { this.tokens -= 1; return true; } return false; } get remaining(): number { return Math.floor(this.tokens); } } // Usage: limit to 30 webhook triggers per minute const limiter = new LindyRateLimiter(30); async function triggerLindy(payload: any) { if (!(await limiter.acquire())) { console.warn(`Rate limited. ${limiter.remaining} tokens remaining`); throw new Error('Lindy trigger rate limited'); } await fetch(WEBHOOK_URL, { method: 'POST', headers: { 'Authorization': `Bearer ${SECRET}`, 'Content-Type': 'application/json' }, body: JSON.stringify(payload), }); }
Set up monitoring to catch runaway agents before they drain credits:
typescript// Credit usage monitor interface CreditAlert { threshold: number; // percentage of monthly credits action: 'warn' | 'pause' | 'notify'; } const alerts: CreditAlert[] = [ { threshold: 50, action: 'warn' }, // 50% used: log warning { threshold: 80, action: 'notify' }, // 80% used: Slack alert { threshold: 95, action: 'pause' }, // 95% used: pause non-critical agents ];
Track which agents consume the most credits:
Lindy includes built-in protection: when a task starts using more resources than expected, Lindy pauses and checks in before continuing. This prevents runaway agent steps from consuming unlimited credits.
| Issue | Cause | Solution | |-------|-------|----------| | Credits exhausted mid-month | High-usage agents | Upgrade plan or optimize usage | | Task paused by Lindy | Resource protection triggered | Review agent — likely looping | | Webhook trigger returns 429 | Too many concurrent requests | Implement client-side rate limiting | | Agent not running | Credit balance at zero | Wait for monthly reset or upgrade |
Proceed to lindy-security-basics for API key and agent security.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 24,200 | 24,096 | -0% | 1 | 1 | 0% | 2,937 | 4,266 | +45% | 0 | 0 | — |
case-02 | fail→fail | 27,617 | 15,912 | -42% | 1 | 1 | 0% | 3,579 | 3,894 | +9% | 0 | 0 | — |
case-03 | fail→fail | 30,187 | 25,262 | -16% | 1 | 1 | 0% | 4,821 | 5,459 | +13% | 0 | 0 | — |
case-04 | pass→pass | 21,246 | 17,547 | -17% | 1 | 1 | 0% | 3,012 | 4,099 | +36% | 0 | 0 | — |
case-05 | pass→fail | 22,231 | 20,405 | -8% | 1 | 1 | 0% | 2,746 | 4,142 | +51% | 0 | 0 | — |
case-06 | pass→pass | 34,020 | 22,497 | -34% | 1 | 1 | 0% | 3,819 | 4,891 | +28% | 0 | 0 | — |
case-07 | fail→pass | 12,670 | 8,696 | -31% | 1 | 1 | 0% | 1,419 | 2,271 | +60% | 0 | 0 | — |
case-08 | fail→pass | 18,198 | 11,033 | -39% | 1 | 1 | 0% | 1,655 | 2,389 | +44% | 0 | 0 | — |
case-09 | fail→pass | 21,292 | 2,315 | -89% | 1 | 1 | 0% | 2,306 | 1,949 | -15% | 0 | 0 | — |
case-10 | fail→pass | 20,088 | 12,775 | -36% | 1 | 1 | 0% | 1,919 | 2,576 | +34% | 0 | 0 | — |
case-11 | fail→pass | 28,768 | 10,860 | -62% | 1 | 1 | 0% | 3,082 | 2,489 | -19% | 0 | 0 | — |
case-12 | pass→pass | 11,610 | 9,878 | -15% | 1 | 1 | 0% | 1,552 | 2,360 | +52% | 0 | 0 | — |
case-13 | pass→pass | 10,333 | 7,906 | -23% | 1 | 1 | 0% | 1,657 | 2,589 | +56% | 0 | 0 | — |
case-14 | pass→pass | 21,605 | 15,257 | -29% | 1 | 1 | 0% | 2,267 | 2,933 | +29% | 0 | 0 | — |
case-15 | pass→pass | 14,331 | 10,204 | -29% | 1 | 1 | 0% | 1,930 | 2,826 | +46% | 0 | 0 | — |
case-16 | pass→pass | 11,474 | 15,020 | +31% | 1 | 1 | 0% | 1,940 | 3,093 | +59% | 0 | 0 | — |
case-17 | pass→pass | 10,475 | 3,635 | -65% | 1 | 1 | 0% | 889 | 2,190 | +146% | 0 | 0 | — |
case-18 | pass→pass | 15,290 | 11,062 | -28% | 1 | 1 | 0% | 1,707 | 2,545 | +49% | 0 | 0 | — |
case-19 | pass→pass | 12,897 | 17,541 | +36% | 1 | 1 | 0% | 2,173 | 3,244 | +49% | 0 | 0 | — |
case-20 | fail→pass | 15,169 | 9,254 | -39% | 1 | 1 | 0% | 1,868 | 2,096 | +12% | 0 | 0 | — |
case-21 | fail→pass | 15,378 | 13,095 | -15% | 1 | 1 | 0% | 2,626 | 2,708 | +3% | 0 | 0 | — |
case-22 | pass→pass | 14,410 | 8,113 | -44% | 1 | 1 | 0% | 1,298 | 1,963 | +51% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +32 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.