# Appfolio Upgrade Migration

> Migrate between AppFolio API versions and handle endpoint changes. Trigger: "appfolio upgrade".

- Skill: `jeremylongshore/appfolio-upgrade-migration` (Agent Skill)
- Install (CLI): `npx skillmds@latest add jeremylongshore/appfolio-upgrade-migration`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jeremylongshore/appfolio-upgrade-migration/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- License: MIT
- Author: jeremylongshore (https://skillmd.com/u/jeremylongshore)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/jeremylongshore/appfolio-upgrade-migration

---


# appfolio upgrade migration | sed 's/\b\(.\)/\u\1/g'

## API Version Migration
```typescript
// Adapter pattern for API version changes
class AppFolioVersionAdapter {
  private version: "v1" | "v2";
  private client: any;

  constructor(version: "v1" | "v2" = "v1") {
    this.version = version;
  }

  async getProperties(): Promise<any[]> {
    if (this.version === "v2") {
      // v2 may return paginated results
      return this.paginatedGet("/properties");
    }
    return (await this.client.get("/properties")).data;
  }

  private async paginatedGet(path: string): Promise<any[]> {
    const results: any[] = [];
    let cursor: string | null = null;
    do {
      const { data } = await this.client.get(path, { params: { cursor } });
      results.push(...data.results);
      cursor = data.next_cursor;
    } while (cursor);
    return results;
  }
}
```

## Resources

- [AppFolio Stack APIs](https://www.appfolio.com/stack/partners/api)
- [AppFolio Engineering Blog](https://engineering.appfolio.com)


