Agent skill

Appfolio Common Errors

by jeremylongshore in jeremylongshore/tons-of-skills-marketplace

Diagnose and fix common AppFolio API integration errors. An agent skill from jeremylongshore/tons-of-skills-marketplace.

MITAuto-check passedBackend & APIs

Install Appfolio Common Errors

skills CLI
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill appfolio-common-errors -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jeremylongshore/tons-of-skills-marketplace appfolio-common-errors --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.curated/appfolio-common-errors .claude/skills/appfolio-common-errors && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
appfolio-common-errors
GitHub stars
2.8k
Token cost
~1.8k tokens
SKILL.md length
744 words
Files
1
Skills in repo
3,342
Repo updated
First seen
Licence
MIT

At a glance

Diagnose and fix common AppFolio API integration errors. An agent skill from jeremylongshore/tons-of-skills-marketplace.

  • Works in 4 steps: Classify the response by authentication,… → Verify the portfolio base URL before… → For 409 or partial write failures, query… → …
  • Tasks that involve Third-party API integration
  • SKILL.md covers Overview, Prerequisites, Instructions and Error Reference, plus 8 more sections
  • Calls curl; needs APPFOLIO_CLIENT_SECRET

What it does

Appfolio Common Errors is an agent skill from jeremylongshore/tons-of-skills-marketplace. Diagnose and fix common AppFolio API integration errors. Trigger: "appfolio error".

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: Designed for Claude Code

It sits in Backend & APIs, covering Third-party API integration. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.

When your agent uses it

  • Tasks that involve Third-party API integration

Example prompts

  • “appfolio error”
  • “/appfolio-common-errors”

Requirements

  • A credential in APPFOLIO_CLIENT_SECRET
  • Compatibility (from SKILL.md): Designed for Claude Code
  • Pre-approved tools (allowed-tools): Read, Write, Edit, Bash(npm:*), Bash(curl:*), Grep

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Classify the response by authentication, rate-limit, validation, or server
  2. Verify the portfolio base URL before changing credentials or retrying a
  3. For 409 or partial write failures, query the canonical record and use the
  4. Honor Retry-After for 429 and stop after the configured retry budget;

What it can do on your machine

Read from SKILL.md and the folder at commit 80f86df. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Bash(npm:*)
    • Bash(curl:*)
    • Grep

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • appfolio.com
    • status.appfolio.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • APPFOLIO_CLIENT_SECRET

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Designed for Claude Code

    From compatibility in the SKILL.md frontmatter.

Context cost

Appfolio Common Errors loads about 1.8k tokens when it runs. Until then it costs about 27 tokens; SKILL.md has 744 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~27
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jeremylongshore/tons-of-skills-marketplace at commit 80f86df, republished under its MIT licence (© jeremylongshore). 744 words, ~1,819 tokens.

Download SKILL.mdSave it as .claude/skills/appfolio-common-errors/SKILL.md (or your agent's skills folder).
name
appfolio-common-errors
description
Diagnose and fix common AppFolio API integration errors. Trigger: "appfolio error".
allowed-tools
Read, Write, Edit, Bash(npm:*), Bash(curl:*), Grep
compatibility
Designed for Claude Code
version
1.5.0
license
MIT
author
Jeremy Longshore <jeremy@intentsolutions.io>
tags
saas, property-management, appfolio, real-estate

AppFolio Common Errors

Overview

AppFolio's Stack API powers property management integrations for tenant screening, work orders, lease management, and accounting. Each portfolio operates under its own subdomain ({company}.appfolio.com), meaning a single integration may need to handle multiple base URLs. Errors commonly stem from authentication misconfiguration, incorrect base URLs per portfolio, and business logic violations like duplicate tenant records or conflicting lease dates. Tenant lookup failures (404) are the most frequent issue, typically caused by targeting the wrong portfolio subdomain. This reference covers HTTP-level failures, property-management-specific validation errors, and recovery patterns for the most frequently encountered issues.

Prerequisites

  • A redacted incident record containing the portfolio identifier, endpoint, status code, request correlation ID, and time window; never copy tenant or lease payloads into a shared ticket.
  • Access to the correct sandbox or production portfolio endpoint and a credential owner who can rotate or validate credentials without exposing them in logs or command arguments.
  • A bounded retry policy, an idempotency mechanism for writes, and a known operator escalation path for uncertain tenant, lease, or work-order state.

Instructions

  1. Classify the response by authentication, rate-limit, validation, or server failure and preserve only the redacted diagnostic fields.
  2. Verify the portfolio base URL before changing credentials or retrying a 404; a valid tenant ID in another portfolio is not evidence of absence.
  3. For 409 or partial write failures, query the canonical record and use the operation’s idempotency key or operator review before issuing another write.
  4. Honor Retry-After for 429 and stop after the configured retry budget; pause the batch on 5xx or unknown write outcomes.

Error Reference

CodeMessageCauseFix
401UnauthorizedInvalid or rotated client_id/secret pairRegenerate credentials in AppFolio Stack partner portal
403ForbiddenAccount not approved as Stack partnerComplete partner application at appfolio.com/stack
404Tenant not foundWrong portfolio base URL or deleted tenantVerify base URL is {company}.appfolio.com/api/v1
409Lease conflictOverlapping lease dates for same unitCheck existing leases on unit before creating new one
422Validation failedMissing required fields on work order or tenantInclude all required fields: unit_id, description, priority
429Too Many RequestsExceeded 120 requests/minute limitImplement exponential backoff starting at 1s delay
500Internal Server ErrorAppFolio platform issueRetry after 30s; check status.appfolio.com
503Service UnavailableMaintenance window (typically weekends)Retry with backoff; subscribe to maintenance calendar

Error Handler

typescript
interface AppFolioError {
  code: number;
  message: string;
  category: "auth" | "rate_limit" | "validation" | "server";
}

function classifyAppFolioError(status: number, body: string): AppFolioError {
  if (status === 401 || status === 403) {
    return { code: status, message: body, category: "auth" };
  }
  if (status === 429) {
    return { code: 429, message: "Rate limit exceeded", category: "rate_limit" };
  }
  if (status === 404 || status === 409 || status === 422) {
    return { code: status, message: body, category: "validation" };
  }
  return { code: status, message: body, category: "server" };
}

Debugging Guide

Authentication Errors

AppFolio uses HTTP Basic Auth with client_id:client_secret. Verify credentials are not URL-encoded. Each portfolio has its own base URL -- confirm you are targeting the correct {company}.appfolio.com subdomain. Credentials rotate on partner approval changes.

Show full SKILL.md (317 more words)Show less
Rate Limit Errors

The Stack API enforces 120 requests/minute per API key. Batch tenant lookups instead of individual calls. Use Retry-After header value when present. Bulk endpoints (e.g., /properties?page=1&per_page=100) reduce call count significantly. Rate limits are per-key, not per-portfolio, so multi-portfolio integrations share the same budget.

Validation Errors

Work order creation requires unit_id, description, and priority. Tenant creation requires first_name, last_name, and email. Lease creation fails with 409 if dates overlap an existing active lease on the same unit -- query current leases first. Move-in and move-out dates must be valid ISO 8601 format. Unit IDs are portfolio-specific and cannot be reused across subdomains.

Error Handling

ScenarioPatternRecovery
Tenant lookup returns 404Search by email before creatingUse /tenants?email= endpoint
Work order 422Missing priority fieldDefault to normal if unspecified
Lease date conflictOverlapping active leaseEnd existing lease before creating new
Bulk import partial failureSome records rejectedParse error array, retry failed records only
Auth token expired mid-batch401 on subsequent callsRe-authenticate and resume from last offset

Quick Diagnostic

bash
# Verify API connectivity without placing Basic Auth credentials in argv.
NETRC_FILE="$(mktemp)"
trap 'rm -f "$NETRC_FILE"' EXIT
chmod 600 "$NETRC_FILE"
APPFOLIO_HOST="${APPFOLIO_BASE_URL#https://}"
printf 'machine %s login %s password %s\n' "$APPFOLIO_HOST" \
  "$APPFOLIO_CLIENT_ID" "$APPFOLIO_CLIENT_SECRET" > "$NETRC_FILE"
curl -s -o /dev/null -w "%{http_code}" --netrc-file "$NETRC_FILE" \
  "${APPFOLIO_BASE_URL}/api/v1/properties"

Output

  • A redacted classification of the failure and the verified portfolio context
  • A bounded recovery decision: correct configuration, delay/retry, reconcile, rotate through the credential owner, or escalate an unknown write result
  • An incident receipt that identifies the affected batch without retaining tenant, lease, or credential data

Examples

When a work-order import receives 429, stop dispatching new records, retain the batch cursor and idempotency keys, and wait for the server-provided retry window before resuming at the same record. For a 409 lease conflict, query the unit’s current lease through the correct portfolio and route the result to an authorized operator rather than ending or replacing a lease automatically. If the follow-up read is unavailable or the outcome of a prior write is unknown, quarantine that record and continue only with unrelated safe work.

Resources

Next Steps

See appfolio-debug-bundle.

© jeremylongshore, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/.curated/appfolio-common-errors of jeremylongshore/tons-of-skills-marketplace.

Open the folder on GitHubat commit 80f86df

Compare with similar skills

Appfolio Common Errors next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Appfolio Common Errors compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Appfolio Common Errors this skilljeremylongshore/tons-of-skills-marketplace2.8k—~1.8kAutomated safety check: PassMIT
Sub2API AdminWei-Shaw/sub2api44k1 repos~717Automated safety check: PassLGPL-3.0
Firecrawl Build Onboardingfirecrawl/firecrawl190k1 repos~1.4kAutomated safety check: NotesISC
ToolJet Marketplace Plugin BuilderToolJet/ToolJet41k—~2.1kAutomated safety check: PassAGPL-3.0
Firecrawl Search Integrationfirecrawl/firecrawl190k1 repos~1.1kAutomated safety check: PassISC
CoinGecko API Reference2025Emma/vibe-coding-cn23k1 repos~646Automated safety check: PassMIT

Similar skills

  • Sub2API Admin

    Wei-Shaw/sub2api

    Manages a Sub2API deployment from the command line: accounts, redeem and invitation codes, groups, proxies, imports, exports and raw admin API calls.

    44k GitHub starsUsed in 1 repo~717 tokens
    Backend & APIsAuto-check passed
  • Firecrawl Build Onboarding

    firecrawl/firecrawl

    Gets Firecrawl working in a project: signs you in through the browser, saves FIRECRAWL_API_KEY to .env and picks the first SDK or REST path.

    190k GitHub starsUsed in 1 repo~1.4k tokens
    Backend & APIsAuto-check: notes
  • Turns an API description, such as an OpenAPI file or a Postman collection, into a connector plugin for ToolJet's marketplace and checks it with the repo's validator.

    41k GitHub stars~2.1k tokensUpdated today
    Backend & APIsAuto-check passed
  • Firecrawl Search Integration

    firecrawl/firecrawl

    Guidance for adding Firecrawl's /search endpoint to product code and agent workflows when a feature starts from a query rather than a URL.

    190k GitHub starsUsed in 1 repo~1.1k tokens
    Backend & APIsAuto-check passed
  • CoinGecko API Reference

    2025Emma/vibe-coding-cn

    CoinGecko API documentation - cryptocurrency market data API, price feeds, market cap, volume, historical data. Use when integrating CoinGecko API, building…

    23k GitHub starsUsed in 1 repo~646 tokens
    Backend & APIsAuto-check passed
  • OmniRoute Provider Management

    diegosouzapw/OmniRoute

    Manages AI provider connections, API keys, OAuth flows and connection tests through OmniRoute's REST API across its 327-provider catalog.

    74k GitHub stars~2.4k tokensUpdated today
    Backend & APIsAuto-check passed

More from jeremylongshore/tons-of-skills-marketplace

All 3,342 skills in this repo
  • Performing Security Code Review

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.

    2.8k GitHub starsUsed in 2 repos~1.3k tokens
    Auto-check: notes
  • Adapting Transfer Learning Models

    jeremylongshore/tons-of-skills-marketplace

    Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Agent Context Loader

    jeremylongshore/tons-of-skills-marketplace

    Execute proactive auto-loading: automatically detects and loads agents.md files.

    2.8k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Aggregating Performance Metrics

    jeremylongshore/tons-of-skills-marketplace

    Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.

    2.8k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Analyzing Capacity Planning

    jeremylongshore/tons-of-skills-marketplace

    Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.

    2.8k GitHub stars~947 tokensUpdated today
    Auto-check passed
  • Analyzing Database Indexes

    jeremylongshore/tons-of-skills-marketplace

    Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.

    2.8k GitHub stars~2k tokensUpdated today
    Auto-check passed

Categories

Questions about Appfolio Common Errors

What does Appfolio Common Errors do?

Diagnose and fix common AppFolio API integration errors. An agent skill from jeremylongshore/tons-of-skills-marketplace. Appfolio Common Errors is an agent skill from jeremylongshore/tons-of-skills-marketplace. Diagnose and fix common AppFolio API integration errors.

When should I use Appfolio Common Errors?

Appfolio Common Errors fits situations like: tasks that involve Third-party API integration.

How do I install Appfolio Common Errors in Claude Code?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill appfolio-common-errors -a claude-code`. Or copy the skill folder (skills/.curated/appfolio-common-errors in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/appfolio-common-errors in your project. Claude Code loads it when a task matches its description.

How do I install Appfolio Common Errors in Codex?

Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill appfolio-common-errors -a codex`. Or copy the skill folder (skills/.curated/appfolio-common-errors in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/appfolio-common-errors in your project. Codex loads it when a task matches its description.

Can I use Appfolio Common Errors in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill appfolio-common-errors -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/appfolio-common-errors, .gemini/skills/appfolio-common-errors, .github/skills/appfolio-common-errors and .opencode/skills/appfolio-common-errors in your project.

What does Appfolio Common Errors need to run?

Going by SKILL.md and its folder, Appfolio Common Errors needs the command-line tools its instructions call (curl) and credentials named APPFOLIO_CLIENT_SECRET. Our summary lists: A credential in APPFOLIO_CLIENT_SECRET. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash(npm:*), Bash(curl:*), Grep. Compatibility (from SKILL.md): Designed for Claude Code.

Does Appfolio Common Errors access the network?

SKILL.md names 2 domains. As links in the text: appfolio.com and status.appfolio.com. This is read from the text; nothing was executed.

Is Appfolio Common Errors safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Appfolio Common Errors use?

Appfolio Common Errors is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Appfolio Common Errors use?

About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Appfolio Common Errors?

Skills that share tags, products or a category with Appfolio Common Errors: Sub2API Admin (Wei-Shaw/sub2api, 44k stars), Firecrawl Build Onboarding (firecrawl/firecrawl, 190k stars), ToolJet Marketplace Plugin Builder (ToolJet/ToolJet, 41k stars) and Firecrawl Search Integration (firecrawl/firecrawl, 190k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Appfolio Common Errors?

jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,825 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 9, 2026.

Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.