AppFolio logo
    Property Management

    Metro 2 Integration for AppFolio

    Connect AppFolio Property Manager through its Reports API. A System Administrator generates a Client ID and Client Secret in AppFolio (General Settings → Manage API Settings → Reports API Credentials); you paste them into the AppFolio connector along with your AppFolio database name. The connector authenticates with HTTP Basic auth, pulls the property and unit directories, the rent roll, the tenant directory, charge detail, and receivables activity, and stores every raw report for audit. Rent charges and receipts are reduced to one payment record per lease per month using your grace period and due-day policy, mapped to Metro 2 Base and J1 segments, validated against CDIA rules, and delivered to Equifax, Experian, TransUnion, and Innovis under your own data furnisher credentials. Full-file (late and unpaid rent) reporting is a portfolio policy you switch on, gated by each resident's consent.

    How It Works

    BureauRelay authenticates to https://{your-database}.appfolio.com/api/v2/reports with HTTP Basic auth using the Reports API Client ID and Client Secret. Twice a day it pulls property_directory, unit_directory, rent_roll (or tenant_tickler), tenant_directory, charge_detail, and receivables_activity, reduces the ledger to one payment record per lease per month under your grace-period policy, and stores raw snapshots for audit. On the 5th of each month the build turns enrolled residents' payment records into Metro 2 Base and J1 segments, validates them against CDIA rules, and queues them for delivery to Equifax, Experian, TransUnion, and Innovis.

    AppFolio logoAppFolio
    BureauRelayBureauRelay
    Credit Bureaus

    API Integration Details

    Technical details about connecting to the AppFolio API.

    Authentication

    HTTP Basic (Reports API Client ID + Client Secret)

    Base URL

    https://{your-database}.appfolio.com/api/v2/reports/

    Documentation

    View Docs

    Sandbox

    Not available

    Pricing

    Reports API access is included with AppFolio Plus and Max; not available on Core. Plus is read-only, Max is read/write; the connector only reads.

    Key API Endpoints

    MethodEndpointDescription
    POST/api/v2/reports/property_directory.jsonProperty names and addresses for the Metro 2 address fields.
    POST/api/v2/reports/unit_directory.jsonUnit numbers and bed/bath for the address line 2.
    GET/api/v1/reports/rent_roll.jsonOccupancies with status, lease dates, move-in/out, and monthly rent.
    GET/api/v1/reports/tenant_directory.jsonOne row per resident with contact details, linked to the occupancy.
    POST/api/v2/reports/charge_detail.jsonRent charges with amounts applied, filtered to a charge-date range.
    POST/api/v2/reports/receivables_activity.jsonReceipts by resident and date, used for payment dates and amounts.

    Benefits

    Reports API, No Partner Approval Needed

    AppFolio Plus and Max customers generate Reports API credentials themselves. There is no marketplace approval, no partner queue, and no OAuth redirect: paste the Client ID and Client Secret and the connection is live.

    Full Ledger, Not Just a Rent Roll

    The connector reads the property directory, unit directory, rent roll, tenant directory, charge detail, and receivables activity, so scheduled rent, payments received, and payment dates all come from AppFolio's own ledger.

    Positive and Negative Reporting

    Configure a grace period and due day, then choose positive-only or full-file reporting. Late and unpaid months are aged into 30/60/90/120-day Metro 2 statuses only for residents whose consent covers negative information.

    Portfolio-Wide or Property-Scoped

    Sync every active property or limit the connection to specific AppFolio property IDs. Past residents can be included so move-outs get their final month reported and the tradeline closed.

    Read-Only by Design

    The Reports API is read-only on the Plus plan and the connector never writes back to AppFolio on any plan. Credentials are encrypted at rest and never displayed again after you save them.

    Audit Trail on Every Sync

    Every raw report pulled from AppFolio is retained with the sync batch, and every payment record carries the charge and receipt IDs it was derived from, so any disputed tradeline traces back to the source ledger.

    Data Fields That Sync

    BureauRelay maps these fields from AppFolio to Metro 2 format automatically.

    • Resident names, emails, and phone numbers from the tenant directory
    • Resident SSN and date of birth: not exposed by the Reports API; captured during consent enrollment in BureauRelay
    • Lease start, end, move-in, and move-out dates plus monthly rent from the rent roll
    • Property address and unit number from the property and unit directories
    • Scheduled rent from rent-GL charges and payments received from charge allocations or receipts
    • Days late per month from receipt dates against your due day and grace period
    • Account status and payment rating derived from the monthly payment record

    Get Set Up in 5 Steps

    1

    Verify AppFolio Plan and Role

    Reports API access is included with AppFolio Plus and Max (it is not on Core). A user with the System Administrator role must generate the credentials.

    2

    Generate Reports API Credentials

    In AppFolio, open your account name menu → General Settings → Manage API Settings → Reports API Credentials → Generate New Credentials. Copy the Client ID and Client Secret; generating new credentials later invalidates the previous pair.

    3

    Connect in BureauRelay

    Go to Integrations → Add AppFolio, enter your AppFolio database (the subdomain of your AppFolio URL), the Client ID, and the Client Secret, then click Test connection. The probe lists the properties it can see.

    4

    Configure Reporting Policy

    Set the rent due day, grace period, and which GL accounts count as rent. Choose positive-only or full-file reporting, pick which resident statuses to include, and optionally limit the sync to specific properties.

    5

    Dry Run, Then Go Live

    Run a dry-run sync to see the counts and payment statuses that would be written, then run the full sync. Enroll residents with a signed consent; only enrolled residents are furnished. Automatic syncs run twice daily and the monthly Metro 2 build runs on the 5th.

    Frequently Asked Questions

    Does this work with AppFolio Plus and Max?

    Yes. The Reports API is available on both Plus and Max. Plus is read-only, which is all the connector needs; Max adds write access that the connector never uses.

    How does AppFolio API authentication work?

    AppFolio's Reports API uses HTTP Basic authentication with a Client ID and Client Secret that a System Administrator generates inside AppFolio. There is no OAuth redirect and no partner approval step. BureauRelay encrypts the secret at rest and never displays it again.

    Can you report late and unpaid rent from AppFolio?

    Yes. Turn on full-file reporting in the connector's policy. Unpaid and partially paid months are aged from your due date, so they report as 30, 60, 90, or 120+ days delinquent, and move-outs with a balance close as unpaid. Residents whose consent is positive-only are never reported negatively regardless of the policy.

    Doesn't AppFolio already report rent to credit bureaus?

    AppFolio partners with RentPlus by Rent Dynamics for native rent reporting. This integration generates a full Metro 2 file under your own data furnisher credentials for Equifax, Experian, TransUnion, and Innovis, with your own grace-period and negative-reporting policy.

    What about partial payments?

    Charge detail shows the amount applied to each rent charge; where that column is not present, receipts posted in the month are used instead. A month paid short is recorded as partial, with the outstanding balance and days late carried into the Metro 2 record.

    How often does data sync?

    Automatic syncs run twice a day. You can trigger a dry run or a full sync at any time from the connector page. AppFolio's Reports API has no webhooks, so the connector polls within AppFolio's 7-requests-per-15-seconds limit.

    What is the difference between the Reports API and AppFolio Stack?

    AppFolio Stack is the partner marketplace; its partner API uses OAuth and is gated behind AppFolio's partner program. The Reports API is the customer-facing API on Plus and Max that you enable yourself. This connector uses the Reports API, so nothing depends on partner approval.

    How is the Payment Rating calculated?

    Each month the connector compares the rent charged against payments received and their dates. Payments within your grace period are on time; later payments carry the days late; unpaid months age until paid. The monthly build maps that into Account Status and Payment Rating following the CDIA Metro 2 rental guidance.

    Ready to Connect AppFolio?

    Start reporting to credit bureaus from AppFolio today. Our team will help you get set up quickly.