Agent skill

appfolio-rate-limits

Handle AppFolio API rate limits with throttling and backoff. Trigger: "appfolio rate limit".

Stars 1,803
Forks 241

Install this agent skill to your Project

npx add-skill https://github.com/jeremylongshore/claude-code-plugins-plus-skills/tree/main/plugins/saas-packs/appfolio-pack/skills/appfolio-rate-limits

SKILL.md

appfolio rate limits | sed 's/\b(.)/\u\1/g'

Overview

AppFolio API enforces rate limits per partner. Implement throttling to stay within limits.

Rate Limit Handler

typescript
import Bottleneck from "bottleneck";

const limiter = new Bottleneck({
  maxConcurrent: 5,
  minTime: 200,  // 5 requests/second max
});

async function throttledRequest(client: any, path: string) {
  return limiter.schedule(() => client.http.get(path));
}

// 429 retry
async function withRetry(fn: () => Promise<any>, maxRetries = 3) {
  for (let i = 1; i <= maxRetries; i++) {
    try { return await fn(); }
    catch (err: any) {
      if (err.response?.status !== 429 || i === maxRetries) throw err;
      const delay = Math.min(1000 * Math.pow(2, i), 30000);
      await new Promise(r => setTimeout(r, delay));
    }
  }
}

Resources

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results