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

|

UncategorizedID: jeremylongshore/claude-code-plugins-plus-skills/appfolio-rate-limits

Install this agent skill to your local

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

Skill Files

Browse the full folder contents for appfolio-rate-limits.

Download Skill

Loading file tree…

plugins/saas-packs/appfolio-pack/skills/appfolio-rate-limits/SKILL.md

Skill Metadata

Name
appfolio-rate-limits
Description
|

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