> appfolio-rate-limits

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

fetch
$curl "https://skillshub.wtf/jeremylongshore/claude-code-plugins-plus-skills/appfolio-rate-limits?format=md"
SKILL.mdappfolio-rate-limits

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

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

┌ stats

installs/wk0
░░░░░░░░░░
github stars1.7K
██████████
first seenMar 23, 2026
└────────────

┌ repo

jeremylongshore/claude-code-plugins-plus-skills
by jeremylongshore
└────────────