{"openapi":"3.0.3","info":{"title":"Skywalk API","description":"REST API for AppFolio Property Manager data.\n\nSkywalk API provides programmatic access to AppFolio Property Manager data via a JSON REST API.\n\n## Authentication\nPass your API key in the `X-API-Key` header with every request.\n\n**Note:** Requests made with a key against production endpoints count toward your account's usage.\n\n## Async Polling Pattern\nGET requests return cached data. If data is stale, the response will have `meta.status: \"updating\"` and a background job fetches fresh data from AppFolio. Poll the same URL every 10 seconds until `meta.status` is `\"ok\"`.\n\n## Rate Limiting\n1 request per second per API key.","version":"1.0.0","contact":{"url":"https://skywalkapi.com/docs/api"}},"servers":[{"url":"https://api.skywalkapi.com","description":"Production"}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Your Skywalk API key"}}},"tags":[{"name":"Property Information","description":"Get properties, property groups, portfolios and unit details."},{"name":"Tenant Information","description":"Get tenant details."},{"name":"Vendor Information","description":"Get information about Vendors."},{"name":"GL Accounts","description":"Get Chart of Accounts (General Ledger Accounts)."},{"name":"Financial Reports","description":"Get standard financial reports."},{"name":"Leasing","description":"Get standard leasing reports."},{"name":"Maintenance","description":"Get standard maintenance reports."},{"name":"Write Data","description":"Creatable items."},{"name":"Attachments","description":"Get attachment details and download URLs."},{"name":"Communications","description":"Get emails and other communications."},{"name":"User Management","description":"Get AppFolio user accounts and details."}],"paths":{"/v1/attachments":{"get":{"operationId":"attachments","summary":"Attachments","description":"Get a list of attachments for an occupancy or a work order.","tags":["Attachments"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"occupancyId","in":"query","required":false,"description":"AppFolio ID of the occupancy to get attachments for.","schema":{"type":"string"}},{"name":"workOrderId","in":"query","required":false,"description":"AppFolio ID of the work order to get attachments for.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the attachment."},"createdAt":{"type":"string","description":"Date the attachment was created."},"folderName":{"type":"string","description":"Name of the folder the attachment is in."},"userName":{"type":"string","description":"Name of the user who uploaded the attachment."},"sharedWith":{"type":"array","items":{"type":"string"},"description":"List of types the attachment is shared with: Tenant, Owner."},"file":{"type":"object","properties":{"id":{"type":"string","description":"AppFolio ID of the attachment."},"signedUrl":{"type":"string","description":"Signed URL to download the attachment."},"fileName":{"type":"string","description":"Name of the attachment file."},"contentType":{"type":"string","description":"MIME content type of the attachment."},"fileSize":{"type":"integer","description":"File size in bytes."}}}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/file":{"get":{"operationId":"file","summary":"File","description":"Get the file for an attachment.","tags":["Attachments"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"id","in":"query","required":false,"description":"AppFolio ID of the attachment to download.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"AppFolio ID of the attachment."},"signedUrl":{"type":"string","description":"Signed URL to download the attachment file."},"fileName":{"type":"string","description":"Original file name of the attachment."},"contentType":{"type":"string","description":"MIME content type of the attachment file."},"fileSize":{"type":"integer","description":"File size in bytes."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/balance-sheet":{"get":{"operationId":"balanceSheet","summary":"Balance Sheet","description":"Get the balance sheet statement.","tags":["Financial Reports"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"accounting","in":"query","required":false,"description":"Accounting Basis.\n      Default: cash.\n      Possible Values: cash, accrual","schema":{"type":"string","enum":["cash","accrual"],"default":"cash"}},{"name":"date","in":"query","required":false,"description":"\"As of\" date for report given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"asOf","in":"query","required":false,"description":"Relative \"as of\" date for the report. Ignored when `date` is supplied. Default: end_of_this_month. Possible Values: today, yesterday, end_of_last_week, end_of_last_month, end_of_last_quarter, end_of_last_year, end_of_this_month, end_of_this_quarter, end_of_this_year","schema":{"type":"string","enum":["today","yesterday","end_of_last_week","end_of_last_month","end_of_last_quarter","end_of_last_year","end_of_this_month","end_of_this_quarter","end_of_this_year"],"default":"end_of_this_month"}},{"name":"includeZeroBalanceGlAccounts","in":"query","required":false,"description":"Include GL accounts whose balance is zero. Default: No. Possible Values: Yes, No","schema":{"type":"string","default":"No"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Ephemeral ID for the purpose of child/parent traversal."},"title":{"type":"string","description":"Name of record."},"glAccountId":{"type":"string","description":"Unique ID for this GL Account."},"glAccountIds":{"type":"array","items":{"type":"string"},"description":"Associated glAccount Ids for this account."},"glAccountName":{"type":"string","description":"Name of associated GL Account."},"glAccountCode":{"type":"string","description":"Name of associated GL Account."},"balance":{"type":"string","description":"Account balance."},"parentId":{"type":"string","description":"Maps to the ID of the parent record."},"childIds":{"type":"array","items":{"type":"string"},"description":"Maps to the ID of the child records."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/bank-accounts":{"get":{"operationId":"bankAccounts","summary":"Bank Accounts","description":"Get a list of Bank Accounts.","tags":["Financial Reports"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of Bank Account."},"name":{"type":"string","description":"Name of Bank Account."},"bankName":{"type":"string","description":"Name of Bank."},"corporate":{"type":"boolean","description":"Is bank account corporate."},"maskedAccountNumber":{"type":"string","description":"Account number of bank account (masked)."},"maskedRoutingNumber":{"type":"string","description":"Routing number of bank account (masked)."},"lastReconciliation":{"type":"string","description":"Date of last reconciliation of bank account."},"paymentsEnabledStatus":{"type":"string","description":"If payments are enabled."},"hidden":{"type":"boolean","description":"If this bank account is hidden."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/bank-account-activity":{"get":{"operationId":"bankAccountActivity","summary":"Bank Account Activity","description":"Get bank account activity for a given bank account.","tags":["Financial Reports"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"bankAccountId","in":"query","required":false,"description":"AppFolio ID of the Bank Account to get activity for.","schema":{"type":"string"}},{"name":"dateRange","in":"query","required":false,"description":"Date Range for report.","schema":{"type":"string","enum":["","today","this_week","this_week_to_date","this_month","this_month_to_date","this_quarter","this_quarter_to_date","this_year_to_date","last_year","last_year_to_date","yesterday","last_week","last_week_to_date","last_month","last_month_to_date","last_quarter","last_quarter_to_date","last_7_days","last_30_days","last_60_days","last_90_days","trailing_12_months","next_7_days","next_30_days","next_60_days","next_90_days","next_week","next_month","next_quarter","until_1_week_ago","until_1_month_ago","all_time"],"default":"this_month_to_date"}},{"name":"dateFrom","in":"query","required":false,"description":"Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"dateTo","in":"query","required":false,"description":"Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"rowId":{"type":"integer","description":"Line number of entry in the tenant ledger."},"credit":{"type":"string","description":"Credit amount for entry"},"debit":{"type":"string","description":"Debut amount for entry."},"balance":{"type":"string","description":"Running balance of bank account including this row."},"transactionType":{"type":"string","description":"Type of transaction."},"date":{"type":"string","description":"Date of enty."},"description":{"type":"string","description":"Description of entry."},"reference":{"type":"string","description":"Reference of entry."},"payeeName":{"type":"string","description":"Name of Payee."},"transaction":{"type":"object","properties":{"id":{"type":"integer","description":"ID number of transaction of this row."},"type":{"type":"string","description":"Type of transaction."}}},"createdAt":{"type":"string","description":"Date transaction was created."},"lastEditedAt":{"type":"string","description":"Date transaction was last edited."},"reconciled":{"type":"string","description":"If transaction has been reconciled"}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/cash-flow":{"get":{"operationId":"cashFlow","summary":"Cash Flow","description":"Get the cash flow statement.","tags":["Financial Reports"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"accounting","in":"query","required":false,"description":"Accounting Basis.\n      Default: cash.\n      Possible Values: cash, accrual","schema":{"type":"string","enum":["cash","accrual"],"default":"cash"}},{"name":"dateRange","in":"query","required":false,"description":"Date Range for report.","schema":{"type":"string","enum":["","today","this_week","this_week_to_date","this_month","this_month_to_date","this_quarter","this_quarter_to_date","this_year_to_date","last_year","last_year_to_date","yesterday","last_week","last_week_to_date","last_month","last_month_to_date","last_quarter","last_quarter_to_date","last_7_days","last_30_days","last_60_days","last_90_days","trailing_12_months","next_7_days","next_30_days","next_60_days","next_90_days","next_week","next_month","next_quarter","until_1_week_ago","until_1_month_ago","all_time"],"default":"this_month_to_date"}},{"name":"dateFrom","in":"query","required":false,"description":"Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"dateTo","in":"query","required":false,"description":"Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"ownerPercentBased","in":"query","required":false,"description":"Reflect Owner % in reported numbers.\n      Default: No.\n      Possible Values: Yes, No","schema":{"type":"string","default":"No"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Ephemeral ID for the purpose of child/parent traversal."},"title":{"type":"string","description":"Name of record."},"glAccountId":{"type":"string","description":"Unique ID for this GL Account."},"glAccountName":{"type":"string","description":"Name of associated GL Account."},"glAccountCode":{"type":"string","description":"Name of associated GL Account."},"selectedPeriod":{"type":"string","description":"Account value for the selected period."},"selectedPeriodAsPercent":{"type":"string","description":"Account value expressed as a % for the selected period."},"fiscalYearToDate":{"type":"string","description":"Account value for the fiscal YTD."},"fiscalYearToDateAsPercent":{"type":"string","description":"Account value expressed as a % for the fiscal YTD."},"parentId":{"type":"string","description":"Maps to the ID of the parent record."},"childIds":{"type":"array","items":{"type":"string"},"description":"Maps to the ID of the child records."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/properties":{"get":{"operationId":"properties","summary":"Properties","description":"Get a list of properties.","tags":["Property Information"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"Unique ID of Property used by AppFolio."},"label":{"type":"string","description":"Name of the property; if not set then the full address of the property."},"fullAddress":{"type":"string","description":"Full address of property."},"name":{"type":"string","description":"Name of property."},"description":{"type":"string","description":"Description of property."},"type":{"type":"string","description":"Type of the property."},"unitCount":{"type":"integer","description":"Total number of units in the property."},"sqFt":{"type":"string","description":"Total square feet of the units in the property."},"marketRent":{"type":"string","description":"Total market rent for the property."},"address":{"type":"object","properties":{"street":{"type":"string","description":"Street address."},"street2":{"type":"string","description":"Street address line 2."},"city":{"type":"string","description":"City of property."},"state":{"type":"string","description":"State of property."},"zip":{"type":"string","description":"Zip code of property."}}},"agentOfRecord":{"type":"string","description":"Property agrent of record."},"amenities":{"type":"array","items":{"type":"string"},"description":"List of property amenity tags."},"lateFee":{"type":"object","properties":{"type":{"type":"string","description":"Type of late fee."},"baseAmount":{"type":"string","description":"Base late fee amount."},"dailyAmount":{"type":"string","description":"Daily late fee amount."},"gracePeriod":{"type":"integer","description":"Number of days of grace period for late fee."},"gracePeriodFixedDay":{"type":"string","description":"Fixed day of grace period."},"graceBalance":{"type":"string","description":"Grace balance to not charge late fees on."},"maxDailyAmount":{"type":"string","description":"Maximum daily late fee amount."}}},"leaseFee":{"type":"object","properties":{"type":{"type":"string","description":"Lease fee type."},"flatFee":{"type":"string","description":"Flat fee amount for leases."},"percentFee":{"type":"string","description":"Percent fee amount for leases."}}},"lisaEnabled":{"type":"boolean","description":"Is Lisa enabled for property."},"management":{"type":"object","properties":{"flatFee":{"type":"string","description":"Flat management fee for property."},"percentFee":{"type":"string","description":"Percent management fee for property."},"feeType":{"type":"string","description":"Type of management fee for property."},"startDate":{"type":"string","description":"Date management started."},"endDate":{"type":"string","description":"Date management ended."},"endReason":{"type":"string","description":"Reason management ended."}}},"manager":{"type":"object","properties":{"name":{"type":"string","description":"Property manager's name."},"phoneNumber":{"type":"string","description":"Property manager's phone number."}}},"maintenance":{"type":"object","properties":{"limit":{"type":"string","description":"Limit amount for maintenance."},"notes":{"type":"string","description":"Maintenance notes."},"group":{"type":"string","description":"Maintenance group."}}},"onlineMaintenanceRequestInstructions":{"type":"string","description":"Instructions for online maintenance requests."},"owners":{"type":"object","properties":{"names":{"type":"array","items":{"type":"string"},"description":"Array of owner names for this property."},"appfolioIds":{"type":"array","items":{"type":"string"},"description":"Array of appfolio Ids of owners."},"contractExpirations":{"type":"array","items":{"type":"string"},"description":"List of owner contract expirations."}}},"ownerPaymentType":{"type":"string","description":"Payment ."},"payerName":{"type":"string","description":"Name of 1099 payer for property."},"portfolio":{"type":"string","description":"Portfolio name."},"premiumLeads":{"type":"object","properties":{"status":{"type":"string","description":"Status of premium leads."},"monthlyCap":{"type":"string","description":"Monthly cap spend amount on premium leads."},"activationDate":{"type":"string","description":"Date premium leads were activated."}}},"propertyClass":{"type":"string","description":"Property Class."},"propertyCreatedBy":{"type":"string","description":"User who created the property in Appfolio."},"propertyCreatedOn":{"type":"string","description":"Date property was created in Appfolio."},"propertyGroupAppfolioIds":{"type":"array","items":{"type":"string"},"description":"Array of IDs of the property groups this property belongs to."},"reserve":{"type":"string","description":"Reserve funds amount."},"taxYearEnd":{"type":"string","description":"Month of tax year end."},"yearBuilt":{"type":"string","description":"Year property was built."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/property-groups":{"get":{"operationId":"propertyGroups","summary":"Property Groups","description":"Get a list of property groups.","tags":["Property Information"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"Unique ID for this property group."},"name":{"type":"string","description":"Name of this property group."},"propertyIds":{"type":"array","items":{"type":"string"},"description":"Array of AppFolio Ids of property belonging to this property group."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/units":{"get":{"operationId":"units","summary":"Units","description":"Get a list of units.","tags":["Property Information"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"Unique AppFolio ID for unit."},"name":{"type":"string","description":"Name of unit. Often the unit number."},"marketRent":{"type":"string","description":"Market rent for the unit."},"sqFt":{"type":"string","description":"Unit's Square footage."},"bedrooms":{"type":"string","description":"Number of bedrooms in unit."},"bathrooms":{"type":"string","description":"Number of bathrooms in unit."},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags for the unit."},"rentStatus":{"type":"string","description":"Rental status of the unit."},"rentable":{"type":"boolean","description":"If the unit is rentable."},"description":{"type":"string","description":"Description of the unit."},"property":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the property this unit belongs to."},"label":{"type":"string","description":"Label of the property this unit belongs to."}}},"fullAddress":{"type":"string","description":"Full address of this unit."},"address":{"type":"object","properties":{"street":{"type":"string","description":"Street address of this unit."},"street2":{"type":"string","description":"Street address line 2 of this unit."},"city":{"type":"string","description":"City of this unit."},"state":{"type":"string","description":"State of this unit."},"zip":{"type":"string","description":"Zip code of this unit"}}},"marketingTitle":{"type":"string","description":"Title used for marketing."},"marketingDescription":{"type":"string","description":"Description used for marketing."},"advertisedRent":{"type":"string","description":"Advertised rent amount."},"computedMarketRent":{"type":"string","description":"Computed market rent."},"postedToWebsite":{"type":"boolean","description":"If this unit is posted to the website."},"postedToInternet":{"type":"boolean","description":"If this unit is posted to the internet."},"youTubeURL":{"type":"string","description":"URL of the youtube link for this unit."},"type":{"type":"string","description":"Type of unit."},"createdOn":{"type":"string","description":"Date this unit was created on."},"rubsEnabled":{"type":"boolean","description":"If rubs is enabled."},"rubsEnabledOn":{"type":"string","description":"Date rubs was enabled."},"applicationFee":{"type":"string","description":"Application fee for this unit."},"rentReady":{"type":"boolean","description":"If this unit is rent ready."},"rentDueDay":{"type":"string","description":"Day unit rent is due."},"legalRent":{"type":"string","description":"Legal rent for this unit."},"readyForShowingOn":{"type":"string","description":"Date unit is ready to be shown."},"defaultDeposit":{"type":"string","description":"Default security deposit for this unit."},"rentableUid":{"type":"string","description":"Uid used for rentable link."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/unit-photos":{"get":{"operationId":"unitPhotos","summary":"Unit Photos","description":"Get a list of unit photos.","tags":["Leasing"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property for the photos.","schema":{"type":"string"}},{"name":"unitId","in":"query","required":false,"description":"AppFolio ID of a Unit for the photos.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"Unique AppFolio ID for unit."},"name":{"type":"string","description":"Name of unit. Often the unit number."},"default":{"type":"boolean","description":"Is photo the default."},"url":{"type":"object","properties":{"original":{"type":"string","description":"URL to original photo."},"small":{"type":"string","description":"URL to small photo."},"medium":{"type":"string","description":"URL to medium photo."},"large":{"type":"string","description":"URL to large photo."}}}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/tenants":{"get":{"operationId":"tenants","summary":"Tenants","description":"Get a list of tenants.","tags":["Tenant Information"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"visibility","in":"query","required":false,"description":"Tenant Visibility status to serve as filter.","schema":{"type":"string","enum":["active","hidden","all"],"default":"active"}},{"name":"status","in":"query","required":false,"description":"Tenant Status to serve as filter.","schema":{"type":"string","enum":["current","past","future","evict","notice","all"],"default":["current","notice"]}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"Unique AppFolio ID for this tenant."},"name":{"type":"string","description":"Display name of tenant."},"firstName":{"type":"string","description":"First name of tenant."},"lastName":{"type":"string","description":"Last name of tenant."},"birthdate":{"type":"string","description":"Birth date of tenant."},"emailAddresses":{"type":"array","items":{"type":"string"},"description":"Email addresses for the tenant."},"phoneNumbers":{"type":"array","items":{"type":"object","properties":{"number":{"type":"string"}}},"description":"Phone numbers of the tenant."},"fullAddress":{"type":"string","description":"Full address of the tenant."},"address":{"type":"object","properties":{"street":{"type":"string","description":"Tenant's street address - line 1."},"street2":{"type":"string","description":"Tenant's street address - line 2."},"city":{"type":"string","description":"Tenant's city."},"state":{"type":"string","description":"Tenant's state."},"zip":{"type":"string","description":"Tenant's zip code."}}},"primaryTenant":{"type":"string","description":"If tenant is primary tenant on lease."},"status":{"type":"string","description":"Current status of tenant."},"type":{"type":"string","description":"Type of tenant."},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags for the tenant."},"pets":{"type":"string","description":"Pets of tenant."},"licensePlates":{"type":"string","description":"Tenant's license plates."},"occupancyAppfolioId":{"type":"string","description":"AppFolio ID for occupancy (lease) this tenant belongs to."},"guestCardAppfolioId":{"type":"string","description":"AppFolio ID for the guest card this tenant belongs to."},"rentalApplicationAppfolioId":{"type":"string","description":"AppFolio ID for the rental application this tenant belongs to."},"moveIn":{"type":"string","description":"Move in date of the tenant."},"moveOut":{"type":"string","description":"Move out date of the tenant."},"insuranceCompanyName":{"type":"string","description":"Tenant's insurance company's name."},"insuranceExpiration":{"type":"string","description":"Tenant's insurance policy expiration date."},"insurancePolicyNumber":{"type":"string","description":"Tenant's insurance policy number."},"property":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID for property this tenant belongs to."},"label":{"type":"string","description":"Label for property this tenant belongs to."}}},"unit":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID for unit this tenant belongs to."},"name":{"type":"string","description":"Name of unit this tenant belongs to."},"type":{"type":"string","description":"Type of unit."}}},"rent":{"type":"string","description":"Rent for the tenant."},"deposit":{"type":"string","description":"Total deposit amount of tenant."},"lastRentIncrease":{"type":"string","description":"Date of the last rent increase."},"nextRentIncrease":{"type":"string","description":"Date of the next rent increase."},"sendRentReminders":{"type":"boolean","description":"True if portal should send tenant reminders."},"ignorePartialPayments":{"type":"boolean","description":"If partial payments should be ignored."},"leaseFrom":{"type":"string","description":"Starting day of the tenant's lease."},"leaseTo":{"type":"string","description":"Ending day of the tenant's lease."},"lastLeaseRenewal":{"type":"string","description":"Date of the last lease renewal."},"lateFee":{"type":"object","properties":{"type":{"type":"string","description":"Type of late fee."},"baseAmount":{"type":"string","description":"Base late fee amount."},"dailyAmount":{"type":"string","description":"Daily late fee amount."},"gracePeriod":{"type":"integer","description":"Number of days of grace period for late fee."},"gracePeriodFixedDay":{"type":"string","description":"Fixed day of grace period."},"graceBalance":{"type":"string","description":"Grace balance to not charge late fees on."},"maxDailyAmount":{"type":"string","description":"Maximum daily late fee amount."}}}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/tenant-ledger":{"get":{"operationId":"tenantLedger","summary":"Tenant Ledger","description":"Get tenant ledger for a given tenant.","tags":["Tenant Information"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"occupancyId","in":"query","required":false,"description":"AppFolio ID of a Occupancy for the tenant ledger.","schema":{"type":"string"}},{"name":"dateRange","in":"query","required":false,"description":"Date Range for report.","schema":{"type":"string","enum":["","today","this_week","this_week_to_date","this_month","this_month_to_date","this_quarter","this_quarter_to_date","this_year_to_date","last_year","last_year_to_date","yesterday","last_week","last_week_to_date","last_month","last_month_to_date","last_quarter","last_quarter_to_date","last_7_days","last_30_days","last_60_days","last_90_days","trailing_12_months","next_7_days","next_30_days","next_60_days","next_90_days","next_week","next_month","next_quarter","until_1_week_ago","until_1_month_ago","all_time"],"default":"all_time"}},{"name":"dateFrom","in":"query","required":false,"description":"Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"dateTo","in":"query","required":false,"description":"Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"rowId":{"type":"integer","description":"Line number of entry in the tenant ledger."},"credit":{"type":"string","description":"Credit amount for entry"},"debit":{"type":"string","description":"Debut amount for entry."},"balance":{"type":"string","description":"Running balance of ledger including this row."},"date":{"type":"string","description":"Date of enty."},"description":{"type":"string","description":"Description of entry."},"payer":{"type":"string","description":"Payer of entry."},"transaction":{"type":"object","properties":{"id":{"type":"integer","description":"ID number of transaction of this row."},"type":{"type":"string","description":"Type of transaction."},"createdAt":{"type":"string","description":"Date transaction was created."}}}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/tenant-charge":{"post":{"operationId":"tenantCharge","summary":"Tenant Charge","description":"Create a tenant charge for a given tenant.","tags":["Write Data"],"security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"occupancyId":{"type":"string","description":"AppFolio ID of a Occupancy for the tenant ledger."},"amount":{"type":"string","description":"The amount of the tenant charge in dollars."},"chargeDate":{"type":"string","description":"The charge date of the tenant charge."},"postingDate":{"type":"string","description":"The posting date of the tenant charge."},"glAccountId":{"type":"string","description":"AppFolio ID of the GL Account for the tenant charge."},"description":{"type":"string","description":"Description for the tenant charge."},"warningsOk":{"type":"string","description":"If true the tenant charge will still be created even if there are warnings such as previous month."}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string"},"path":{"type":"string"},"jobId":{"type":"string"}}},"data":{"type":"object"}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"422":{"description":"Validation error"},"429":{"description":"Rate limit exceeded"}}}},"/v1/tenant-events":{"get":{"operationId":"tenantEvents","summary":"Tenant Events","description":"Get tenant events (move-ins, move-outs, notices).","tags":["Tenant Information"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"dateRange","in":"query","required":false,"description":"Event date Range for report.","schema":{"type":"string","enum":["","today","this_week","this_week_to_date","this_month","this_month_to_date","this_quarter","this_quarter_to_date","this_year_to_date","last_year","last_year_to_date","yesterday","last_week","last_week_to_date","last_month","last_month_to_date","last_quarter","last_quarter_to_date","last_7_days","last_30_days","last_60_days","last_90_days","trailing_12_months","next_7_days","next_30_days","next_60_days","next_90_days","next_week","next_month","next_quarter","until_1_week_ago","until_1_month_ago","all_time"],"default":"this_month"}},{"name":"dateFrom","in":"query","required":false,"description":"Event date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"dateTo","in":"query","required":false,"description":"Event date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"eventType","in":"query","required":false,"description":"Filter events by type.\n      Possible Values: all, Move-in, Move-out, Notice","schema":{"type":"string","enum":["all","Move-in","Move-out","Notice"],"default":["all"]}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"occurredDate":{"type":"string","description":"Date the event occurred."},"event":{"type":"string","description":"Type of event (Move-in, Move-out, Notice)."},"property":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"Appfolio id of the property."},"name":{"type":"string","description":"Name of the property."},"address":{"type":"string","description":"Full address of the property."},"street":{"type":"string","description":"Street line 1 of the property."},"street2":{"type":"string","description":"Street line 2 of the property."},"city":{"type":"string","description":"City of the property."},"state":{"type":"string","description":"State of the property."},"zip":{"type":"string","description":"Zip code of the property."},"type":{"type":"string","description":"Property type (e.g. Multi-Family)."}}},"unit":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"Appfolio id of the unit."},"name":{"type":"string","description":"Unit name/number."},"tags":{"type":"string","description":"Tags associated with the unit."},"type":{"type":"string","description":"Type of the unit."}}},"tenant":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"Appfolio id of the tenant."},"name":{"type":"string","description":"Name of the tenant."},"phoneNumber":{"type":"string","description":"Phone number of the tenant."},"email":{"type":"string","description":"Email address of the tenant."},"tags":{"type":"string","description":"Tags associated with the tenant."},"status":{"type":"string","description":"Status of the tenant."}}},"occupancy":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"Appfolio id of the occupancy."}}},"rent":{"type":"string","description":"Rent amount."},"leaseFrom":{"type":"string","description":"Lease start date."},"leaseTo":{"type":"string","description":"Lease end date."},"deposit":{"type":"string","description":"Deposit amount."},"depositsAuthorized":{"type":"string","description":"Authorized deposits amount."},"moveOutDate":{"type":"string","description":"Move-out date."},"moveOutReason":{"type":"string","description":"Reason for move-out."},"moveInDate":{"type":"string","description":"Move-in date."},"leaseSignDate":{"type":"string","description":"Date the lease was signed."},"assignedUser":{"type":"string","description":"User assigned to this tenant."},"tenantSdrPayment":{"type":"string","description":"Security deposit refund payment status."},"rentalApplicationId":{"type":"integer","description":"ID of the associated rental application."},"portfolioId":{"type":"integer","description":"ID of the portfolio."},"sdrEcheckEligibility":{"type":"string","description":"eCheck eligibility for security deposit refund."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/owners":{"get":{"operationId":"owners","summary":"Owners","description":"Get a list of owners.","tags":["Property Information"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"ownerVisibility","in":"query","required":false,"description":"Owner Visibility status to serve as filter.","schema":{"type":"string","enum":["active","hidden","all"],"default":"active"}},{"name":"propertyVisibility","in":"query","required":false,"description":"Property Visibility status to serve as filter.","schema":{"type":"string","enum":["active","hidden","all"],"default":"active"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"Unique AppFolio ID for this owner."},"name":{"type":"string","description":"Display name of owner."},"firstName":{"type":"string","description":"First name of owner."},"lastName":{"type":"string","description":"Last name of owner."},"emailAddress":{"type":"string","description":"Email addresses for the owner."},"phoneNumbers":{"type":"array","items":{"type":"object","properties":{"number":{"type":"string"}}},"description":"Phone numbers of the owner."},"fullAddress":{"type":"string","description":"Full address of the owner."},"address":{"type":"object","properties":{"street":{"type":"string","description":"Owner's street address - line 1."},"street2":{"type":"string","description":"Owner's street address - line 2."},"city":{"type":"string","description":"Owner's city."},"state":{"type":"string","description":"Owner's state."},"zip":{"type":"string","description":"Owner's zip code."},"country":{"type":"string","description":"Owner's country code."}}},"propertyIds":{"type":"array","items":{"type":"string"},"description":"Property IDs belonging to owner."},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags for the owner."},"notesForOwner":{"type":"string","description":"Notes for owner."},"ownerPacketReports":{"type":"array","items":{"type":"string"},"description":"Reports in Owner's packet."},"sendOwnerPacketsByEmail":{"type":"boolean","description":"Send owner's packet by email?"},"lastPacketSent":{"type":"string","description":"Date of last owner packet sent."},"alternativePayee":{"type":"string","description":"Alternate payee name."},"paymentType":{"type":"string","description":"Payment method."},"lastPaymentDate":{"type":"string","description":"Last owner payment date."},"holdPayments":{"type":"boolean","description":"Hold payments to this owner."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/vendors":{"get":{"operationId":"vendors","summary":"Vendors","description":"Get a list of vendors.","tags":["Vendor Information"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"Unique AppFolio ID for vendor."},"companyName":{"type":"string","description":"Company name of vendor."},"name":{"type":"string","description":"Company name of full name of vendor."},"firstName":{"type":"string","description":"First name of vendor."},"lastName":{"type":"string","description":"Last name of vendor."},"fullAddress":{"type":"string","description":"Full address."},"address":{"type":"object","properties":{"street":{"type":"string","description":"Line one of street address."},"street2":{"type":"string","description":"Line two of street address."},"city":{"type":"string","description":"City of vendor."},"state":{"type":"string","description":"State of vendor."},"zip":{"type":"string","description":"Zip code of vendor."}}},"phoneNumbers":{"type":"array","items":{"type":"object","properties":{"number":{"type":"string"}}},"description":"Phone numbers for vendor."},"email":{"type":"string","description":"Email of vendor."},"defaultGLAccount":{"type":"string","description":"Default GL account for vendor."},"paymentType":{"type":"string","description":"Payment type for vendor."},"send1099":{"type":"boolean","description":"True if 1099 should be sent to vendor."},"workersCompExpires":{"type":"string","description":"Date workers comp insurance expires."},"liabilityInsExpires":{"type":"string","description":"Date liability insurance expires."},"epaCertExpires":{"type":"string","description":"Date EPA certificate expires."},"stateLicExpires":{"type":"string","description":"Date state license expires."},"contractExpires":{"type":"string","description":"Date contract expires."},"tags":{"type":"array","items":{"type":"string"},"description":"List of tags of vendor."},"enrolledInNetVendor":{"type":"boolean","description":"True if vendor is enrolled in net vendor."},"autoInsExpires":{"type":"string","description":"Date auto insurance expires."},"vendorTrades":{"type":"string","description":"List of vendor trades."},"doNotUseForWorkOrder":{"type":"boolean","description":"If true do not use vendor for work orders."},"terms":{"type":"string","description":"Set terms for vendor."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/gl-accounts":{"get":{"operationId":"glAccounts","summary":"GL Accounts","description":"Get a list of GL Accounts.","tags":["GL Accounts"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of GL Account."},"accountName":{"type":"string","description":"Name of GL Account."},"accountType":{"type":"string","description":"Type of GL Account."},"number":{"type":"string","description":"Number of GL Account."},"subAccountOf":{"type":"string","description":"Name of parent GL Account; includes account number."},"subAccountOfId":{"type":"string","description":"ID of parent GL Account."},"offsetAccount":{"type":"string","description":"Name of offset account for this GL account; includes account number."},"offsetAccountId":{"type":"string","description":"ID of offset account."},"options":{"type":"array","items":{"type":"string"},"description":"List of GL account options such as \"Exclude from 1099\" or \"Include On Cash Flow\"."},"hidden":{"type":"boolean","description":"If this GL account is hidden."},"subjectToTaxAuthority":{"type":"boolean","description":"If this account is subject to tax authority."},"fundAccount":{"type":"string","description":"Account to fund this GL account."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/unit-vacancies":{"get":{"operationId":"unitVacancies","summary":"Unit Vacancies","description":"Unit vacancy details.","tags":["Property Information"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"dateRange","in":"query","required":false,"description":"Available Date Range for report.","schema":{"type":"string","enum":["","today","this_week","this_week_to_date","this_month","this_month_to_date","this_quarter","this_quarter_to_date","this_year_to_date","last_year","last_year_to_date","yesterday","last_week","last_week_to_date","last_month","last_month_to_date","last_quarter","last_quarter_to_date","last_7_days","last_30_days","last_60_days","last_90_days","trailing_12_months","next_7_days","next_30_days","next_60_days","next_90_days","next_week","next_month","next_quarter","until_1_week_ago","until_1_month_ago","all_time"],"default":"this_month_to_date"}},{"name":"dateFrom","in":"query","required":false,"description":"Available Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"dateTo","in":"query","required":false,"description":"Available Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"Unique AppFolio ID for unit."},"name":{"type":"string","description":"Name of unit. Often the unit number."},"description":{"type":"string","description":"Description of the unit."},"availableOn":{"type":"string","description":"Unit available to rent starting on."},"advertisedRent":{"type":"string","description":"Advertised rent amount."},"computedMarketRent":{"type":"string","description":"Computed market rent."},"amenities":{"type":"string","description":"Amenities offered."},"amenitiesPrice":{"type":"string","description":"Amenities price."},"bedAndBath":{"type":"string","description":"Combination bed/bath count."},"sqFt":{"type":"string","description":"Unit's Square footage."},"daysVacant":{"type":"integer","description":"Days unit has been vacant."},"lastMoveIn":{"type":"string","description":"Previous tenant move in date."},"lastMoveOut":{"type":"string","description":"Previous tenant move out date."},"lastRent":{"type":"string","description":"Previous rent amount."},"newRent":{"type":"string","description":"New rent amount."},"nextMoveIn":{"type":"string","description":"Next move in date."},"postedToInternet":{"type":"boolean","description":"If this unit is posted to the internet."},"postedToWebsite":{"type":"boolean","description":"If this unit is posted to the website."},"readyForShowingOn":{"type":"string","description":"Date unit is ready to be shown."},"rentReady":{"type":"boolean","description":"If this unit is rent ready."},"schdRent":{"type":"string","description":"Scheduled rent amount."},"status":{"type":"string","description":"Status of unit."},"turnTargetDate":{"type":"string","description":"Turn target date."},"type":{"type":"string","description":"TKTK."},"tags":{"type":"array","items":{"type":"string"},"description":"Type of unit."},"property":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the property this unit belongs to."},"label":{"type":"string","description":"Label of the property this unit belongs to."}}},"fullAddress":{"type":"string","description":"Full address of this unit."},"address":{"type":"object","properties":{"street":{"type":"string","description":"Street address of this unit."},"street2":{"type":"string","description":"Street address line 2 of this unit."},"city":{"type":"string","description":"City of this unit."},"state":{"type":"string","description":"State of this unit."},"zip":{"type":"string","description":"Zip code of this unit"}}}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/annual-budget-comparative":{"get":{"operationId":"annualBudgetComparative","summary":"Annual Budget Comparative","description":"Get the annual budget comparative statement.","tags":["Financial Reports"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"accounting","in":"query","required":false,"description":"Accounting Basis.\n      Default: cash.\n      Possible Values: cash, accrual","schema":{"type":"string","enum":["cash","accrual"],"default":"cash"}},{"name":"date","in":"query","required":false,"description":"\"As of\" date for report given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Ephemeral ID for the purpose of child/parent traversal."},"title":{"type":"string","description":"Name of record."},"glAccountId":{"type":"string","description":"Unique ID for this GL Account."},"glAccountName":{"type":"string","description":"Name of associated GL Account."},"glAccountCode":{"type":"string","description":"Name of associated GL Account."},"mtdActual":{"type":"string","description":"Month to date Actual."},"mtdBudget":{"type":"string","description":"Month to date Budget."},"mtdAmountVariance":{"type":"string","description":"Month to date variance from budget."},"mtdPercentVariance":{"type":"string","description":"Month to date percent variance from budget."},"ytdActual":{"type":"string","description":"Year to date Actual."},"ytdBudget":{"type":"string","description":"Year to date Budget."},"ytdAmountVariance":{"type":"string","description":"Year to date variance from budget."},"ytdPercentVariance":{"type":"string","description":"Year to date percent variance from budget."},"annual":{"type":"string","description":"Annual budget."},"note":{"type":"string","description":"Note."},"parentId":{"type":"string","description":"Maps to the ID of the parent record."},"childIds":{"type":"array","items":{"type":"string"},"description":"Maps to the ID of the child records."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/lead-source-tracking":{"get":{"operationId":"leadSourceTracking","summary":"Lead Source Tracking","description":"Get metrics on lead sources.","tags":["Leasing"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"dateRange","in":"query","required":false,"description":"Date Range for report.","schema":{"type":"string","enum":["","today","this_week","this_week_to_date","this_month","this_month_to_date","this_quarter","this_quarter_to_date","this_year_to_date","last_year","last_year_to_date","yesterday","last_week","last_week_to_date","last_month","last_month_to_date","last_quarter","last_quarter_to_date","last_7_days","last_30_days","last_60_days","last_90_days","trailing_12_months","next_7_days","next_30_days","next_60_days","next_90_days","next_week","next_month","next_quarter","until_1_week_ago","until_1_month_ago","all_time"],"default":"this_month_to_date"}},{"name":"dateFrom","in":"query","required":false,"description":"Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"dateTo","in":"query","required":false,"description":"Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"applications":{"type":"string","description":"Number of applications recieved for this lead source type"},"approvedApplications":{"type":"string","description":"Number of approved applications recieved for this lead source type"},"convertedTenants":{"type":"string","description":"Number of converted tenants recieved for this lead source type"},"guestCardInquiries":{"type":"string","description":"Number of guest card inquiries recieved for this lead source type"},"showings":{"type":"string","description":"Number of showings recieved for this lead source type"},"source":{"type":"string","description":"Name of this lead source type"}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/guest-cards":{"get":{"operationId":"guestCards","summary":"Guest Cards","description":"Get guest cards.","tags":["Leasing"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"dateRange","in":"query","required":false,"description":"Date Range for report.","schema":{"type":"string","enum":["","today","this_week","this_week_to_date","this_month","this_month_to_date","this_quarter","this_quarter_to_date","this_year_to_date","last_year","last_year_to_date","yesterday","last_week","last_week_to_date","last_month","last_month_to_date","last_quarter","last_quarter_to_date","last_7_days","last_30_days","last_60_days","last_90_days","trailing_12_months","next_7_days","next_30_days","next_60_days","next_90_days","next_week","next_month","next_quarter","until_1_week_ago","until_1_month_ago","all_time"],"default":"this_month_to_date"}},{"name":"dateFrom","in":"query","required":false,"description":"Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"dateTo","in":"query","required":false,"description":"Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"leadStatus","in":"query","required":false,"description":"Filter guest cards for a specific status.","schema":{"type":"string","enum":["all","prequalified","active","waitlisted","application_completed","inactive","cold"],"default":"all"}},{"name":"leadType","in":"query","required":false,"description":"Filter guest cards for a specific type.\n      Default: all.\n      Possible Values: all, Free, Premium, Hang Up, Refunded","schema":{"type":"string","enum":["all","Free","Premium","Hang Up","Refunded"],"default":"all"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"tenantID":{"type":"string","description":"ID of tenant associated with this guest card"},"guestCardId":{"type":"string","description":"Unique ID of this guest card"},"propertyId":{"type":"string","description":"ID of property associated with this guest card"},"unitId":{"type":"string","description":"ID of unit associated with this guest card"},"status":{"type":"string","description":"Status of the guest card"},"source":{"type":"string","description":"Source of the guest card"},"name":{"type":"string","description":"Name of prospect"},"bedBathPreference":{"type":"string","description":"Bed and bath preference of prospect"},"creditScore":{"type":"string","description":"Credit score of prospect"},"emailAddress":{"type":"string","description":"Email address of prospect"},"lastActivityDate":{"type":"string","description":"Last date of activity on this guest card"},"lastActivityType":{"type":"string","description":"Type of last activity on this guest card"},"leadType":{"type":"string","description":"Type of lead of this guest card"},"lisaForecast":{"type":"string","description":"Lisa forecast for this guest card"},"lisaLead":{"type":"string","description":"If this guest card is a Lisa lead"},"maxRent":{"type":"string","description":"Max rent of this prospect"},"monthlyIncome":{"type":"string","description":"Monthly income of this prospect"},"moveInPreference":{"type":"string","description":"Move in date preference of this prospect"},"petPreference":{"type":"string","description":"Pet preference of this prospect"},"phoneNumber":{"type":"string","description":"Phone number of this prospect"},"property":{"type":"string","description":"Full property name associated with this guest card"},"propertyName":{"type":"string","description":"Property name associated with this guest card"},"unit":{"type":"string","description":"Unit name associated with this guest card"},"received":{"type":"string","description":"Date guest card received"},"notes":{"type":"string","description":"Notes on the guest card"},"assignedUser":{"type":"string","description":"User assigned to this guest card"},"assignedUserID":{"type":"string","description":"ID of the user assigned to this guest card"}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/rental-applications":{"get":{"operationId":"rentalApplications","summary":"Rental Applications","description":"Get rental applications.","tags":["Leasing"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"dateRange","in":"query","required":false,"description":"Application \"Received On\" Date Range for report.","schema":{"type":"string","enum":["","today","this_week","this_week_to_date","this_month","this_month_to_date","this_quarter","this_quarter_to_date","this_year_to_date","last_year","last_year_to_date","yesterday","last_week","last_week_to_date","last_month","last_month_to_date","last_quarter","last_quarter_to_date","last_7_days","last_30_days","last_60_days","last_90_days","trailing_12_months","next_7_days","next_30_days","next_60_days","next_90_days","next_week","next_month","next_quarter","until_1_week_ago","until_1_month_ago","all_time"],"default":"this_month_to_date"}},{"name":"dateFrom","in":"query","required":false,"description":"Application \"Received On\" Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"dateTo","in":"query","required":false,"description":"Application \"Received On\" Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"applicationStatus","in":"query","required":false,"description":"Filter guest cards for a specific status.","schema":{"type":"string","enum":["all","New","Decision Pending","Approved","Denied","Canceled","Converting","Converted"],"default":"all"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"rentalApplicationId":{"type":"integer","description":"ID of rental application."},"unitId":{"type":"string","description":"ID of unit for this rental application"},"adminFeePaid":{"type":"string","description":"Yes or No if admin fee has been paid"},"applicantReportedSource":{"type":"string","description":"Reported source by applicant"},"applicants":{"type":"string","description":"Name of applicants"},"applicationFeePaid":{"type":"string","description":"Yes or No if application fee has been paid"},"applyingFor":{"type":"string","description":"Unit number applicant is applying for"},"approvedAt":{"type":"string","description":"When application was approved"},"assignedUser":{"type":"string","description":"User assigned to rental application"},"assignedUserId":{"type":"string","description":"User ID assigned to rental application"},"campaignTitle":{"type":"string","description":"Title of campaign associated with rental application"},"canceledAt":{"type":"string","description":"When application was cancelled"},"createdBy":{"type":"string","description":"Who created the application"},"deniedAt":{"type":"string","description":"When application was denied"},"desiredMoveIn":{"type":"string","description":"Desired move in date of applicant"},"email":{"type":"string","description":"Email of applicant"},"leadSource":{"type":"string","description":"Lead source of applicant"},"petsKinds":{"type":"string","description":"Kinds of pets"},"petsNames":{"type":"string","description":"Names of pets"},"petsWeights":{"type":"string","description":"Weights of pets"},"phoneNumber":{"type":"string","description":"Phone number of applicant"},"propertyId":{"type":"string","description":"Property ID associated with application"},"propertyName":{"type":"string","description":"Property name associated with application"},"reasonForStatus":{"type":"string","description":"Reason for status of application"},"received":{"type":"string","description":"When application was received"},"rentalApplicationGroupId":{"type":"string","description":"Group ID for application"},"screening":{"type":"string","description":"Status of screening of application"},"status":{"type":"string","description":"Status of application"},"tenantId":{"type":"string","description":"Tenant ID associated with application"},"unit":{"type":"object","properties":{"address":{"type":"string","description":"Unit address associated with application"},"city":{"type":"string","description":"Unit city associated with application"},"state":{"type":"string","description":"Unit state associated with application"},"street":{"type":"string","description":"Unit street associated with application"},"street2":{"type":"string","description":"Unit street line 2 associated with application"},"title":{"type":"string","description":"Unit title associated with application"},"type":{"type":"string","description":"Unit type associated with application"},"zip":{"type":"string","description":"Unit zip associated with application"}}},"currentAddress":{"type":"object","properties":{"address1":{"type":"string","description":"Current Address - address line 1"},"address2":{"type":"string","description":"Current Address- address line 2"},"city":{"type":"string","description":"Current Address- city"},"zip":{"type":"string","description":"Current Address- zip"},"state":{"type":"string","description":"Current Address- state"},"residedFrom":{"type":"string","description":"Current Address- residedFrom"},"residedTo":{"type":"string","description":"Current Address- residedTo"},"landlordName":{"type":"string","description":"Current Address- Landlord name"},"landlordEmail":{"type":"string","description":"Current Address- Landlord email"},"landlordPhoneNumber":{"type":"string","description":"Current Address- Landlord phoneNumber"},"monthlyRent":{"type":"string","description":"Current Address- Monthly Rent"}}},"previousAddress1":{"type":"object","properties":{"address1":{"type":"string","description":"Previous Address 1 - address line 1"},"address2":{"type":"string","description":"Previous Address 1 - address line 2"},"city":{"type":"string","description":"Previous Address 1 - city"},"zip":{"type":"string","description":"Previous Address 1 - zip"},"state":{"type":"string","description":"Previous Address 1 - state"},"residedFrom":{"type":"string","description":"Previous Address 1 - residedFrom"},"residedTo":{"type":"string","description":"Previous Address 1 - residedTo"},"landlordName":{"type":"string","description":"Previous Address 1 - Landlord name"},"landlordEmail":{"type":"string","description":"Previous Address 1 - Landlord email"},"landlordPhoneNumber":{"type":"string","description":"Previous Address 1 - Landlord phoneNumber"},"monthlyRent":{"type":"string","description":"Previous Address 1 - Monthly Rent"}}},"previousAddress2":{"type":"object","properties":{"address1":{"type":"string","description":"Previous Address 2 - address line 1"},"address2":{"type":"string","description":"Previous Address 2 - address line 2"},"city":{"type":"string","description":"Previous Address 2 - city"},"zip":{"type":"string","description":"Previous Address 2 - zip"},"state":{"type":"string","description":"Previous Address 2 - state"},"residedFrom":{"type":"string","description":"Previous Address 2 - residedFrom"},"residedTo":{"type":"string","description":"Previous Address 2 - residedTo"},"landlordName":{"type":"string","description":"Previous Address 2 - Landlord name"},"landlordEmail":{"type":"string","description":"Previous Address 2 - Landlord email"},"landlordPhoneNumber":{"type":"string","description":"Previous Address 2 - Landlord phoneNumber"},"monthlyRent":{"type":"string","description":"Previous Address 1 - Monthly Rent"}}}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/rent-roll":{"get":{"operationId":"rentRoll","summary":"Rent Roll","description":"Get rent roll of properties.","tags":["Financial Reports"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"date","in":"query","required":false,"description":"\"As of\" date for report given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"Unique AppFolio ID for unit."},"unit":{"type":"string","description":"Name of unit. Often the unit number."},"unitId":{"type":"string","description":"ID of unit."},"unitType":{"type":"string","description":"Unit type."},"unitTags":{"type":"array","items":{"type":"string"},"description":"Tags of the unit."},"bdBa":{"type":"string","description":"Number of bedrooms and bathrooms in unit."},"sqft":{"type":"string","description":"Square footage of the unit."},"amenities":{"type":"string","description":"Amenities of the unit."},"rentReady":{"type":"boolean","description":"If the unit is rent ready."},"rentStatus":{"type":"string","description":"Rent status of the unit."},"applicationFee":{"type":"string","description":"Application fees of the unit."},"amenitiesPrice":{"type":"string","description":"Price of all the amenities of the unit."},"propertyGroupId":{"type":"array","items":{"type":"string"},"description":"Property group of the unit."},"portfolioId":{"type":"integer","description":"Portfolio of the unit."},"property":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the property this unit belongs to."},"label":{"type":"string","description":"Label of the property this unit belongs to."},"name":{"type":"string","description":"Name of the property this unit belongs to."}}},"propertyAddress":{"type":"object","properties":{"full":{"type":"string","description":"Full address of the building of this unit."},"street":{"type":"string","description":"Street address the building of this unit."},"street2":{"type":"string","description":"Street address line 2 the building of this unit."},"city":{"type":"string","description":"City the building of this unit."},"state":{"type":"string","description":"State the building of this unit."},"zip":{"type":"string","description":"Zip code the building of this unit."}}},"leaseFrom":{"type":"string","description":"Lease from for this tenant."},"leaseTo":{"type":"string","description":"Lease to for this tenant."},"moveIn":{"type":"string","description":"Move in date of this tenant."},"moveOut":{"type":"string","description":"Move out date of this tenant"},"rent":{"type":"string","description":"Rent of this tenant."},"marketRent":{"type":"string","description":"Market rent of this unit."},"computedMarketRent":{"type":"string","description":"Computed market rent of this unit."},"legalRent":{"type":"string","description":"Legal rent of this unit."},"advertisedRent":{"type":"string","description":"Advertised rent of this unit."},"annualRent":{"type":"string","description":"Annual rent of this unit."},"monthlyRentSquareFt":{"type":"string","description":"Rent per square foot per month."},"annualRentSquareFt":{"type":"string","description":"Rent per square foot per year."},"monthlyMarketRentSquareFt":{"type":"string","description":"Market rent per square foot per month."},"annualMarketRentSquareFt":{"type":"string","description":"Market rent per square foot per year."},"previousOccupancyRent":{"type":"string","description":"Rent of previous occupancy."},"previousRent":{"type":"string","description":"Previous rent of this unit."},"lastMoveOut":{"type":"string","description":"Date of last move out."},"preferentialRent":{"type":"string","description":"Preferencial rent of this unit."},"occupancyId":{"type":"string","description":"ID of the occupancy of this unit."},"tenantId":{"type":"string","description":"ID of the tenant of this unit"},"tenant":{"type":"string","description":"Tenant name"},"additionalTenants":{"type":"array","items":{"type":"string"},"description":"Additional tenant names."},"additionalTenantIds":{"type":"array","items":{"type":"string"},"description":"Additional tenant ids."},"tenantTags":{"type":"array","items":{"type":"string"},"description":"Tenant tags."},"tenantAgent":{"type":"string","description":"Agent of tenant."},"status":{"type":"string","description":"Status"},"statusBySquareFeet":{"type":"string","description":"Status by square feet."},"monthlyCharges":{"type":"string","description":"Monthly charges."},"deposit":{"type":"string","description":"Current Deposit"},"depositAuthorized":{"type":"string","description":"Authorized Deposit"},"pastDue":{"type":"string","description":"Past Due Amount"},"nsf":{"type":"string","description":"NSF Count"},"late":{"type":"string","description":"Late Count"},"leaseExpiresMonth":{"type":"string","description":"Lease expires month"},"lastRentIncrease":{"type":"string","description":"Last rent increase."},"nextRentAdjustment":{"type":"string","description":"Next rent adjustment."},"nextRentIncreaseAmount":{"type":"string","description":"Next rent increase amount."},"nextRentIncrease":{"type":"string","description":"Date of next rent increase."},"affordableProgram":{"type":"string","description":"Affordable program."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/rent-roll-recurring":{"get":{"operationId":"rentRollRecurring","summary":"Rent Roll Recurring","description":"Get list of recurring rent roll charges of properties.","tags":["Financial Reports"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"date","in":"query","required":false,"description":"\"As of\" date for report given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"glAccountIds","in":"query","required":false,"description":"GL Account IDs to fitler.\n      Default: ''.\n      Possible Values: Comma Separated list of gl account Ids","schema":{"type":"string","default":""}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"propertyGroupId":{"type":"array","items":{"type":"string"},"description":"Property group of the unit."},"portfolioId":{"type":"integer","description":"Portfolio of the unit."},"property":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the property this unit belongs to."},"name":{"type":"string","description":"Name of the property this unit belongs to."},"street":{"type":"string","description":"Street address the building of this unit."},"street2":{"type":"string","description":"Street address line 2 the building of this unit."},"city":{"type":"string","description":"City the building of this unit."},"state":{"type":"string","description":"State the building of this unit."},"zip":{"type":"string","description":"Zip code the building of this unit."}}},"unit":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the unit of this rent roll item."},"name":{"type":"string","description":"Name of unit. Often the unit number."},"sqft":{"type":"string","description":"Square footage of the unit."}}},"occupancy":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the occupancy of this rent roll item."},"name":{"type":"string","description":"Name of occupancy."}}},"glAccount":{"type":"string","description":"GLAccount name of recurring rent roll item."},"startDate":{"type":"string","description":"Date recurring rent roll item starts recurring."},"endDate":{"type":"string","description":"Date recurring rent roll item stops recurring. No end if null."},"chargeAmount":{"type":"string","description":"Charged amount of rent roll item."},"amountAsMonthly":{"type":"string","description":"Monthly charge amount of recurring rent roll item."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/work-orders":{"get":{"operationId":"workOrders","summary":"Work Orders","description":"Get work orders.","tags":["Maintenance"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"occupancyId","in":"query","required":false,"description":"AppFolio ID of an Occupancy. When provided, returns only work orders for that occupancy.","schema":{"type":"string"}},{"name":"status_date","in":"query","required":false,"description":"Filter work orders by date of a specific status.","schema":{"type":"string","enum":["All","Created On","Estimate Requested On","Estimated On","Scheduled Start","Work Done On","Completed On"],"default":"All"}},{"name":"dateRange","in":"query","required":false,"description":"Status Date Range Range for report.","schema":{"type":"string","enum":["","today","this_week","this_week_to_date","this_month","this_month_to_date","this_quarter","this_quarter_to_date","this_year_to_date","last_year","last_year_to_date","yesterday","last_week","last_week_to_date","last_month","last_month_to_date","last_quarter","last_quarter_to_date","last_7_days","last_30_days","last_60_days","last_90_days","trailing_12_months","next_7_days","next_30_days","next_60_days","next_90_days","next_week","next_month","next_quarter","until_1_week_ago","until_1_month_ago","all_time"],"default":"this_month_to_date"}},{"name":"dateFrom","in":"query","required":false,"description":"Status Date Range to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"dateTo","in":"query","required":false,"description":"Status Date Range to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"priority","in":"query","required":false,"description":"Filter work orders for a specific priority.","schema":{"type":"string","enum":["Normal","Urgent","Low","All"],"default":"All"}},{"name":"type","in":"query","required":false,"description":"Filter work orders for a specific type.","schema":{"type":"string","enum":["All","Internal","Resident","Unit Turn"],"default":"All"}},{"name":"status","in":"query","required":false,"description":"Filter work orders for a specific status.","schema":{"type":"string","enum":["All","New","Estimate Requested","Estimated","Assigned","Scheduled","Waiting","Work Done","Ready To Bill","Completed","Canceled","Completed No Need To Bill"],"default":"All"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"Unique AppFolio ID for the work order."},"workOrderNumber":{"type":"string","description":"Work Order Number for the work order."},"workOrderType":{"type":"string","description":"Work Order Type for the work order."},"workOrderIssue":{"type":"string","description":"Work Order Issue for the work order."},"recurring":{"type":"string","description":"If work order is recurring."},"submittedByTenant":{"type":"string","description":"If work order was submitted by tenant."},"requestingTenant":{"type":"string","description":"Tenant requesting the work order; if set"},"occupancyId":{"type":"string","description":"Occupancy for the work order; if set"},"unitTurnId":{"type":"string","description":"Unit turn id for the work order; if set"},"unitTurnCategory":{"type":"string","description":"Unit turn category for the work order; if set"},"surveyId":{"type":"string","description":"Survey ID for the work order."},"vendorId":{"type":"string","description":"Vendor ID for the work order."},"vendor":{"type":"string","description":"Vendor name for the work order."},"primaryTenant":{"type":"string","description":"Primary tenant of unit for the work order."},"primaryTenantEmail":{"type":"string","description":"Primary tenant email of unit for the work order."},"primaryTenantPhoneNumber":{"type":"string","description":"Primary tenant phone number of unit for the work order."},"priority":{"type":"string","description":"Priority for the work order."},"status":{"type":"string","description":"Status for the work order."},"statusNotes":{"type":"string","description":"Status notes for the work order."},"jobDescription":{"type":"string","description":"Job description for the work order."},"instructions":{"type":"string","description":"Istructions for the work order."},"createdAt":{"type":"string","description":"Date created at for the work order."},"createdBy":{"type":"string","description":"Created by for the work order."},"assignedUser":{"type":"string","description":"Assigned User for the work order."},"estimatedOn":{"type":"string","description":"Date work order was estimated"},"scheduledStart":{"type":"string","description":"Date work order is scheduled to start"},"scheduledStartSort":{"type":"string","description":"Work order scheduled start sort."},"scheduledEnd":{"type":"string","description":"Date work order is scheduled to end."},"workCompletedOn":{"type":"string","description":"Date work order's work was completed"},"completedOn":{"type":"string","description":"Date work order completed."},"lastBilledOn":{"type":"string","description":"Date work order last billed."},"cancelledOn":{"type":"string","description":"Date work order cancelled."},"followUpOn":{"type":"string","description":"Date follow up on for the work order."},"amount":{"type":"string","description":"Amount for the work order."},"invoice":{"type":"string","description":"Invoice for the work order."},"tenantTotalChargeAmount":{"type":"string","description":"Total amount of tenant charges"},"tenantChargeIds":{"type":"array","items":{"type":"string"},"description":"List of IDs of related tenant charges."},"vendorBillId":{"type":"string","description":"ID of bill for vendor."},"vendorBillAmount":{"type":"string","description":"Amount of bill for vendor."},"vendorChargeId":{"type":"string","description":"ID of charge for vendor."},"vendorChargeAmount":{"type":"string","description":"Amount of charge for vendor."},"markupAmount":{"type":"string","description":"Amount of markup."},"markupBillId":{"type":"string","description":"ID of bill for markup."},"discountAmount":{"type":"string","description":"Amount of bill for discount."},"discountBillId":{"type":"string","description":"ID of bill for discount."},"corporateChargeAmount":{"type":"string","description":"Amount of charge for corporate charge."},"corporateChargeId":{"type":"string","description":"ID of charge for corporate charge."},"estimate":{"type":"object","properties":{"amount":{"type":"string","description":"Amount of estimate."},"approvalStatus":{"type":"string","description":"Approval status of estimate."},"approvedOn":{"type":"string","description":"Date estimated approved."},"requestedOn":{"type":"string","description":"Date estimate requested."},"approvalLastRequestedOn":{"type":"string","description":"Date of last requested approval of estimate."}}},"serviceRequest":{"type":"object","properties":{"appfolioId":{"type":"string","description":"ID of service request."},"number":{"type":"string","description":"Number of service request."},"description":{"type":"string","description":"Description of service request."}}},"property":{"type":"object","properties":{"appfolioId":{"type":"string","description":"ID of property."},"name":{"type":"string","description":"Property name associated with work order"},"full":{"type":"string","description":"Property full address associated with work order"},"city":{"type":"string","description":"Property city associated with work order"},"state":{"type":"string","description":"Property state associated with work order"},"street":{"type":"string","description":"Property street associated with work order"},"street2":{"type":"string","description":"Property street line 2 associated with work order"},"zip":{"type":"string","description":"Property zip associated with work order"}}},"unit":{"type":"object","properties":{"appfolioId":{"type":"string","description":"ID of unit."},"address":{"type":"string","description":"Unit address associated with work order"},"city":{"type":"string","description":"Unit city associated with work order"},"state":{"type":"string","description":"Unit state associated with work order"},"street":{"type":"string","description":"Unit street associated with work order"},"street2":{"type":"string","description":"Unit street line 2 associated with work order"},"title":{"type":"string","description":"Unit title associated with work order"},"zip":{"type":"string","description":"Unit zip associated with work order"}}}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/lease-history":{"get":{"operationId":"leaseHistory","summary":"Lease History","description":"Get lease history.","tags":["Tenant Information"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"dateRange","in":"query","required":false,"description":"Date Range for report.","schema":{"type":"string","enum":["","this_month","this_quarter","this_year","this_year_to_month","last_month","last_quarter","last_year","trailing_3_months","trailing_6_months","trailing_12_months","rolling_12_months","this_and_next_3_months","this_and_next_6_months"],"default":"this_and_next_6_months"}},{"name":"dateFrom","in":"query","required":false,"description":"Date to given in MM/YYYY (e.g. 01/2021)","schema":{"type":"string"}},{"name":"dateTo","in":"query","required":false,"description":"Date to given in MM/YYYY (e.g. 01/2021)","schema":{"type":"string"}},{"name":"leaseStatus","in":"query","required":false,"description":"Filter leases for a specific status.\n      Default: all.\n      Possible Values: all, Completed, Did Not Renew, Month To Month, Pending, Status Cannot Be Determined","schema":{"type":"string","enum":["all","Completed","Did Not Renew","Month To Month","Pending","Status Cannot Be Determined"],"default":"all"}},{"name":"unitVisibility","in":"query","required":false,"description":"Filter by unit visibility.\n      Default: all.\n      Possible Values: all, active, hidden","schema":{"type":"string","enum":["all","active","hidden"],"default":"all"}},{"name":"tenantVisibility","in":"query","required":false,"description":"Filter by tenant visibility.\n      Default: all.\n      Possible Values: all, active, hidden","schema":{"type":"string","enum":["all","active","hidden"],"default":"all"}},{"name":"filterLeaseBy","in":"query","required":false,"description":"Filter leases by date.\n      Default: Lease Start Date.\n      Possible Values: Lease Start Date, Lease Countersigned Date","schema":{"type":"string","enum":["Lease Start Date","Lease Countersigned Date"],"default":"Lease Start Date"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"leaseUUID":{"type":"string","description":"Unique identifier of the lease."},"leaseDocumentUUID":{"type":"string","description":"Unique identifier of the lease document."},"inquiryId":{"type":"integer","description":"ID of inquiry which converted into this lease."},"status":{"type":"string","description":"Status of the lease."},"createdAt":{"type":"string","description":"Date lease create."},"updatedAt":{"type":"string","description":"Most recent date lease updated."},"sentDate":{"type":"string","description":"Date lease was sent to applicant."},"leaseStart":{"type":"string","description":"Lease start date."},"leaseEnd":{"type":"string","description":"Lease end date."},"moveIn":{"type":"string","description":"Move in date."},"moveOut":{"type":"string","description":"Move out date if applicable."},"signedOnDate":{"type":"string","description":"Date lease was signed."},"rent":{"type":"string","description":"Rent of lease."},"marketRent":{"type":"string","description":"Market rent of unit."},"mostRecentRent":{"type":"string","description":"Most recent rent of unit."},"securityDeposit":{"type":"string","description":"Security deposit amount for lease."},"renewal":{"type":"string","description":"If lease a renewal."},"countersignedBy":{"type":"string","description":"Who countersigned the lease."},"countersignedById":{"type":"integer","description":"ID of user who countersigned the lease."},"countersignedDate":{"type":"string","description":"Date lease was countersigned."},"timeFromSendingToCountersigning":{"type":"string","description":"Number of days for lease to be countersigned."},"timeFromSendingToSigning":{"type":"string","description":"Number of days for lease to be signed."},"occupancy":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"Appfolio id of occupancy linked to this lease."},"name":{"type":"string","description":"Full name of occupancy linked to this lease."}}},"tenant":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"Appfolio id of tenant linked to this lease."},"name":{"type":"string","description":"Full name of tenant linked to this lease."},"visibility":{"type":"string","description":"Visibility of tenant linked to this lease."}}},"unit":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"Appfolio id of unit linked to this lease."},"name":{"type":"string","description":"Name of unit linked to this lease."},"type":{"type":"string","description":"Type of unit linked to this lease."}}},"property":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"Appfolio id of property linked to this lease."},"name":{"type":"string","description":"Name of property linked to this lease."},"address":{"type":"string","description":"Address of property linked to this lease."},"street":{"type":"string","description":"Street line 1 of property linked to this lease."},"street2":{"type":"string","description":"Street line 2 of property linked to this lease."},"city":{"type":"string","description":"City of property linked to this lease."},"state":{"type":"string","description":"State of property linked to this lease."},"zip":{"type":"string","description":"Zip code of property linked to this lease."}}}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/letters":{"get":{"operationId":"letters","summary":"Letters","description":"Get a list of letters for an occupancy.","tags":["Attachments"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"occupancyId","in":"query","required":false,"description":"AppFolio ID of the occupancy.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the letter."},"name":{"type":"string","description":"Name of the letter."},"createdAt":{"type":"string","description":"Date the letter was created."},"category":{"type":"string","description":"Category of the letter (e.g. Letters)."},"file":{"type":"object","properties":{"id":{"type":"string","description":"Attachment ID of the letter file."},"signedUrl":{"type":"string","description":"Signed URL to download the letter."},"fileName":{"type":"string","description":"Name of the letter file."},"contentType":{"type":"string","description":"MIME content type of the letter."},"fileSize":{"type":"integer","description":"File size in bytes."}}}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/lease-documents":{"get":{"operationId":"leaseDocuments","summary":"Lease Documents","description":"Get a list of lease documents for an occupancy.","tags":["Attachments"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"occupancyId","in":"query","required":false,"description":"AppFolio ID of the occupancy.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the lease document."},"leaseFrom":{"type":"string","description":"Lease start date (e.g. \"09/23/2024\")."},"leaseTo":{"type":"string","description":"Lease end date (e.g. \"09/22/2025\")."},"status":{"type":"string","description":"Status of the lease document (e.g. \"Fully Executed\")."},"leaseDocumentId":{"type":"string","description":"AppFolio ID of the lease document."},"file":{"type":"object","properties":{"id":{"type":"string","description":"Attachment ID of the lease document file."},"signedUrl":{"type":"string","description":"Signed URL to download the lease document."},"fileName":{"type":"string","description":"Name of the lease document file."},"contentType":{"type":"string","description":"MIME content type of the lease document."},"fileSize":{"type":"integer","description":"File size in bytes."}}}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/showings":{"get":{"operationId":"showings","summary":"Showings","description":"Get a list of property showings.","tags":["Leasing"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"dateRange","in":"query","required":false,"description":"Showing Date Range for report.","schema":{"type":"string","enum":["","today","this_week","this_week_to_date","this_month","this_month_to_date","this_quarter","this_quarter_to_date","this_year_to_date","last_year","last_year_to_date","yesterday","last_week","last_week_to_date","last_month","last_month_to_date","last_quarter","last_quarter_to_date","last_7_days","last_30_days","last_60_days","last_90_days","trailing_12_months","next_7_days","next_30_days","next_60_days","next_90_days","next_week","next_month","next_quarter","until_1_week_ago","until_1_month_ago","all_time"],"default":"this_month_to_date"}},{"name":"dateFrom","in":"query","required":false,"description":"Showing Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"dateTo","in":"query","required":false,"description":"Showing Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"Filter showings for a specific status. Default: all.","schema":{"type":"string","enum":["all","scheduled","confirmed","completed","canceled","no_show"],"default":"all"}},{"name":"assignedUser","in":"query","required":false,"description":"Filter showings for a specific assigned user. Accepts the AppFolio user display name (e.g. \"Jane Manager\") or AppFolio user ID. Default: All.","schema":{"type":"string"}},{"name":"propertyVisibility","in":"query","required":false,"description":"Filter by property visibility. Default: active.","schema":{"type":"string","enum":["active","active_and_inactive","inactive"],"default":"active"}},{"name":"sortOrder","in":"query","required":false,"description":"Sort order for ShowingTime. Default: desc.","schema":{"type":"string","enum":["desc","asc"],"default":"desc"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the showing."},"inquiryId":{"type":"string","description":"AppFolio ID of the inquiry that led to the showing."},"inquiryType":{"type":"string","description":"Type of the inquiry (e.g. \"User\")."},"showingTime":{"type":"string","description":"ISO timestamp of the scheduled showing."},"confirmationTime":{"type":"string","description":"ISO timestamp when the showing was confirmed (null if never confirmed)."},"createdAt":{"type":"string","description":"ISO timestamp when the showing was created."},"createdBy":{"type":"string","description":"Display name of the user who created the showing."},"createdById":{"type":"string","description":"AppFolio ID of the user who created the showing."},"status":{"type":"string","description":"Status of the showing (e.g. \"Scheduled\", \"Confirmed\", \"Completed\", \"Canceled\", \"No Show\")."},"type":{"type":"string","description":"Type of the showing (e.g. \"In-Person\", \"Self-Showing\")."},"description":{"type":"string","description":"Free-text description/notes attached to the showing."},"assignedUser":{"type":"string","description":"Display name of the user assigned to the showing."},"assignedUserId":{"type":"string","description":"AppFolio ID of the user assigned to the showing."},"lisaScheduled":{"type":"boolean","description":"True if the showing was scheduled through AppFolio Lisa."},"guestCard":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the guest card."},"uuid":{"type":"string","description":"UUID of the guest card."},"name":{"type":"string","description":"Display name on the guest card (e.g. \"Doe, Jane\")."},"email":{"type":"string","description":"Email address on the guest card."},"phoneNumber":{"type":"string","description":"Phone number on the guest card as displayed in AppFolio."},"leadType":{"type":"string","description":"Lead type of the guest card (e.g. \"Free\", \"Premium\")."},"source":{"type":"string","description":"Lead source recorded on the guest card."},"lastActivityDate":{"type":"string","description":"ISO date (YYYY-MM-DD) of the most recent activity on the guest card."},"lastActivityType":{"type":"string","description":"Type of the most recent activity on the guest card."}}},"property":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the property."},"label":{"type":"string","description":"Property label as displayed in AppFolio (name + address)."},"name":{"type":"string","description":"Name of the property."},"address":{"type":"string","description":"Full street address of the property."},"street":{"type":"string","description":"Street address line 1 of the property."},"street2":{"type":"string","description":"Street address line 2 of the property."},"city":{"type":"string","description":"City of the property."},"state":{"type":"string","description":"State of the property."},"zip":{"type":"string","description":"ZIP code of the property."}}},"unit":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the unit being shown."},"label":{"type":"string","description":"Unit number/label being shown."},"type":{"type":"string","description":"Unit-type label (e.g. \"3 Bed + 2 Bath\")."},"typeId":{"type":"string","description":"AppFolio ID of the unit type."}}},"rentalApplication":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the associated rental application (null if none)."},"groupId":{"type":"string","description":"AppFolio ID of the associated rental application group (null if none)."},"status":{"type":"string","description":"Status of the associated rental application (null if none)."},"receivedAt":{"type":"string","description":"ISO timestamp when the associated rental application was received (null if none)."},"showingToApplicationTimeDays":{"type":"string","description":"Decimal number of days between the showing and the rental application being received, as a string."}}}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/general-ledger":{"get":{"operationId":"generalLedger","summary":"General Ledger","description":"Get general ledger transactions.","tags":["Financial Reports"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"accounting","in":"query","required":false,"description":"Accounting Basis.\n      Default: cash.\n      Possible Values: cash, accrual","schema":{"type":"string","enum":["cash","accrual"],"default":"cash"}},{"name":"dateRange","in":"query","required":false,"description":"Post Date Range for report.","schema":{"type":"string","enum":["","today","this_week","this_week_to_date","this_month","this_month_to_date","this_quarter","this_quarter_to_date","this_year_to_date","last_year","last_year_to_date","yesterday","last_week","last_week_to_date","last_month","last_month_to_date","last_quarter","last_quarter_to_date","last_7_days","last_30_days","last_60_days","last_90_days","trailing_12_months","next_7_days","next_30_days","next_60_days","next_90_days","next_week","next_month","next_quarter","until_1_week_ago","until_1_month_ago","all_time"],"default":"this_month_to_date"}},{"name":"dateFrom","in":"query","required":false,"description":"Post Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"dateTo","in":"query","required":false,"description":"Post Date to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"glAccountId","in":"query","required":false,"description":"GL account ID to filter by, or \"all\" to include all accounts. Default: all.","schema":{"type":"string","default":"all"}},{"name":"reverseTransaction","in":"query","required":false,"description":"Include reverse transactions. Default: No. Possible Values: Yes, No","schema":{"type":"string","default":"No"}},{"name":"excludeZeroDollarReceiptsFromCashAccounts","in":"query","required":false,"description":"Exclude zero-dollar receipts from cash accounts. Default: Yes. Possible Values: Yes, No","schema":{"type":"string","default":"Yes"}},{"name":"excludeZeroDollarBills","in":"query","required":false,"description":"Exclude zero-dollar bills. Default: Yes. Possible Values: Yes, No","schema":{"type":"string","default":"Yes"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","description":"AppFolio internal row ID."},"rowType":{"type":"string","description":"Row type as returned by AppFolio (e.g. \"row\")."},"postDate":{"type":"string","description":"Date the transaction was posted in MM/DD/YYYY format (e.g. \"04/01/2026\")."},"month":{"type":"string","description":"Month label (e.g. \"Apr 2026\")."},"quarter":{"type":"string","description":"Quarter label (e.g. \"2026 Q2\")."},"year":{"type":"integer","description":"Year of the transaction."},"type":{"type":"string","description":"Display type of the transaction (e.g. \"Receipt\", \"Bill\", \"Journal Entry\")."},"debit":{"type":"string","description":"Debit amount (e.g. \"3,095.00\", null if this line is a credit)."},"credit":{"type":"string","description":"Credit amount (e.g. \"3,095.00\", null if this line is a debit)."},"creditDebitBalance":{"type":"string","description":"Running credit/debit balance for the account (e.g. \"-144,692.17\")."},"bankAccount":{"type":"string","description":"Display name of the bank account (null if not applicable)."},"bankAccountId":{"type":"integer","description":"AppFolio ID of the bank account (null if not applicable)."},"cashAccount":{"type":"string","description":"Display name of the cash GL account (null if not applicable)."},"cashAccountId":{"type":"integer","description":"AppFolio ID of the cash GL account (null if not applicable)."},"reference":{"type":"string","description":"Reference string attached to the transaction (null if none)."},"remarks":{"type":"string","description":"Remarks attached to the transaction (null if none)."},"description":{"type":"string","description":"Description attached to the transaction (null if none)."},"createdBy":{"type":"string","description":"Display name of the user who created the transaction (e.g. \"System\")."},"owners":{"type":"string","description":"Display name(s) of the property owner(s)."},"batchId":{"type":"integer","description":"AppFolio batch ID associated with the transaction."},"accountUpdatedAt":{"type":"string","description":"Timestamp when the GL account was last updated (e.g. \"12/03/2015 at 04:20 PM\")."},"serviceFrom":{"type":"string","description":"Service period start date (null if not applicable)."},"serviceTo":{"type":"string","description":"Service period end date (null if not applicable)."},"intercompanyPartyName":{"type":"string","description":"Display name of the intercompany party (null if not applicable)."},"intercompanyPartyId":{"type":"integer","description":"AppFolio ID of the intercompany party (null if not applicable)."},"projectCostCategory":{"type":"string","description":"Project cost category (null if not applicable)."},"project":{"type":"string","description":"Project name (null if not applicable)."},"projectId":{"type":"integer","description":"AppFolio ID of the project (null if not applicable)."},"transaction":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"AppFolio ID of the transaction."},"integrationId":{"type":"string","description":"UUID of the transaction in AppFolio."},"type":{"type":"string","description":"Internal AppFolio transaction type key (e.g. \"ReceivablePayment\")."},"detailId":{"type":"integer","description":"AppFolio ID of the transaction detail line."},"detailIntegrationId":{"type":"string","description":"UUID of the transaction detail line in AppFolio."},"date":{"type":"string","description":"Date of the transaction in MM/DD/YYYY format (e.g. \"04/01/2026\")."},"createdAt":{"type":"string","description":"Timestamp when the transaction was created (e.g. \"04/01/2026 at 12:43 AM\")."},"updatedAt":{"type":"string","description":"Timestamp when the transaction was last updated (e.g. \"04/01/2026 at 12:43 AM\")."}}},"invoice":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio invoice ID (e.g. \"359,447\", null if not applicable)."},"detailId":{"type":"integer","description":"AppFolio ID of the invoice detail line (null if not applicable)."},"updatedAt":{"type":"string","description":"Timestamp when the invoice was last updated (e.g. \"04/01/2026 at 12:43 AM\", null if not applicable)."}}},"deposit":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"AppFolio ID of the deposit (null if not applicable)."},"date":{"type":"string","description":"Date of the deposit (null if not applicable)."},"number":{"type":"string","description":"Deposit reference number (null if not applicable)."}}},"glAccount":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"AppFolio ID of the GL account."},"integrationId":{"type":"string","description":"UUID of the GL account in AppFolio."},"name":{"type":"string","description":"GL account name (e.g. \"102-100 - Net Rent Income (Apt or Retail)\")."},"number":{"type":"string","description":"GL account number (null if not set)."},"normalBalance":{"type":"string","description":"Normal balance direction of the account (e.g. \"1\")."}}},"party":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"AppFolio ID of the party (null if not applicable)."},"name":{"type":"string","description":"Display name of the party (tenant, vendor, owner)."},"type":{"type":"string","description":"Type of the party (e.g. \"Occupancy\", \"Vendor\", \"Owner\")."}}},"property":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"AppFolio ID of the property."},"integrationId":{"type":"string","description":"UUID of the property in AppFolio."},"label":{"type":"string","description":"Property label as displayed in AppFolio (name + address)."},"name":{"type":"string","description":"Name of the property."},"address":{"type":"string","description":"Full street address of the property."},"street":{"type":"string","description":"Street address line 1 of the property."},"street2":{"type":"string","description":"Street address line 2 of the property."},"city":{"type":"string","description":"City of the property."},"state":{"type":"string","description":"State of the property."},"zip":{"type":"string","description":"ZIP code of the property."}}},"unit":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"AppFolio ID of the unit."},"integrationId":{"type":"string","description":"UUID of the unit in AppFolio."},"label":{"type":"string","description":"Unit number/label."}}}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/income-statement":{"get":{"operationId":"incomeStatement","summary":"Income Statement","description":"Get the income statement (profit & loss) report.","tags":["Financial Reports"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"accounting","in":"query","required":false,"description":"Accounting Basis.\n      Default: cash.\n      Possible Values: cash, accrual","schema":{"type":"string","enum":["cash","accrual"],"default":"cash"}},{"name":"asOfDate","in":"query","required":false,"description":"As-of month/year given in MM/YYYY (e.g. 03/2026). Defaults to the current month.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","description":"AppFolio row ID."},"accountName":{"type":"string","description":"Name of the GL account (e.g. \"Parking\")."},"level":{"type":"string","description":"Nesting depth of the row in the report hierarchy."},"treeNodeLabel":{"type":"string","description":"Dot-separated path label for this node in the report tree (e.g. \"GL.108-600.Parking\")."},"treeNodeId":{"type":"integer","description":"AppFolio tree node identifier."},"accountNumber":{"type":"string","description":"GL account number (e.g. \"108-600\")."},"rowType":{"type":"string","description":"Row type as returned by AppFolio (e.g. \"row\")."},"monthToDate":{"type":"string","description":"Month-to-date amount for this account (e.g. \"49,065.00\")."},"monthToDatePercent":{"type":"string","description":"Month-to-date amount as a percentage of total income/expense (e.g. \"84.83\")."},"yearToDate":{"type":"string","description":"Year-to-date amount for this account (e.g. \"49,065.00\")."},"yearToDatePercent":{"type":"string","description":"Year-to-date amount as a percentage of total income/expense (e.g. \"84.83\")."},"lastYearToDate":{"type":"string","description":"Same period last year amount for this account (e.g. \"44,349.00\")."},"lastYearToDatePercent":{"type":"string","description":"Same period last year amount as a percentage of total income/expense (e.g. \"93.21\")."},"monthToDateDollarsPerUnit":{"type":"string","description":"Month-to-date amount per unit (e.g. \"3,066.56\")."},"glAccountId":{"type":"string","description":"AppFolio GL account ID (e.g. \"36\")."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/gross-potential-rent":{"get":{"operationId":"grossPotentialRent","summary":"Gross Potential Rent","description":"Get the Gross Potential Rent report for your properties.","tags":["Financial Reports"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"month","in":"query","required":true,"description":"Month of the report (1-12).","schema":{"type":"string"}},{"name":"year","in":"query","required":true,"description":"Year of the report (e.g. 2026).","schema":{"type":"string"}},{"name":"propertyVisibility","in":"query","required":false,"description":"Filter by property visibility. Default: active.","schema":{"type":"string","enum":["active","active_and_inactive","inactive"],"default":"active"}},{"name":"accounting","in":"query","required":false,"description":"Accounting Basis.\n      Default: cash.\n      Possible Values: cash, accrual","schema":{"type":"string","enum":["cash","accrual"],"default":"cash"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio row ID for this Gross Potential Rent record."},"period":{"type":"string","description":"Billing period covered by this record (e.g. \"04/01/2026 to 04/30/2026\")."},"tenant":{"type":"string","description":"Name of the current tenant occupying the unit, or null if vacant."},"property":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the property."},"label":{"type":"string","description":"Property label as displayed in AppFolio (name + address)."},"name":{"type":"string","description":"Name of the property."},"address":{"type":"string","description":"Full street address of the property."},"street":{"type":"string","description":"Street address line 1 of the property."},"street2":{"type":"string","description":"Street address line 2 of the property."},"city":{"type":"string","description":"City of the property."},"state":{"type":"string","description":"State of the property."},"zip":{"type":"string","description":"ZIP code of the property."},"type":{"type":"string","description":"Property type (e.g. \"Multi-Family\", \"Single Family\")."}}},"unit":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the unit."},"label":{"type":"string","description":"Unit number/label (e.g. \"102\")."},"type":{"type":"string","description":"Unit type label (e.g. \"Loft\")."},"tags":{"type":"string","description":"Comma-separated tags assigned to the unit, or null if none."},"bdBa":{"type":"string","description":"Beds/baths descriptor (e.g. \"2/1.00\")."}}},"occupancyId":{"type":"string","description":"AppFolio ID of the current occupancy, or null if vacant."},"grossPotentialRent":{"type":"string","description":"Gross potential rent formatted as a display string (e.g. \"2,995.00\")."},"lossGain":{"type":"string","description":"Loss/gain amount formatted as a display string."},"monthlyRent":{"type":"string","description":"Monthly rent formatted as a display string."},"concessions":{"type":"string","description":"Concessions amount formatted as a display string."},"vacancyLoss":{"type":"string","description":"Vacancy loss amount formatted as a display string."},"modelLoss":{"type":"string","description":"Model loss amount formatted as a display string."},"renovationLoss":{"type":"string","description":"Renovation loss amount formatted as a display string."},"officeLoss":{"type":"string","description":"Office loss amount formatted as a display string."},"delinquencyLoss":{"type":"string","description":"Delinquency loss amount formatted as a display string."},"netRentIncome":{"type":"string","description":"Net rent income formatted as a display string."},"marketRent":{"type":"string","description":"Market rent formatted as a display string."},"rentCharges":{"type":"string","description":"Rent charges formatted as a display string."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/leasing-summary":{"get":{"operationId":"leasingSummary","summary":"Leasing Summary","description":"Get the Leasing Summary report for your properties. Returns per-unit-type (or per-property) counts for inquiries, showings, applications, move-ins, move-outs, and leases executed. Portfolio-level totals are exposed in meta.summary.","tags":["Leasing"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"dateRange","in":"query","required":false,"description":"Report period Range for report.","schema":{"type":"string","enum":["","today","this_week","this_week_to_date","this_month","this_month_to_date","this_quarter","this_quarter_to_date","this_year_to_date","last_year","last_year_to_date","yesterday","last_week","last_week_to_date","last_month","last_month_to_date","last_quarter","last_quarter_to_date","last_7_days","last_30_days","last_60_days","last_90_days","trailing_12_months","next_7_days","next_30_days","next_60_days","next_90_days","next_week","next_month","next_quarter","until_1_week_ago","until_1_month_ago","all_time"],"default":"this_month_to_date"}},{"name":"dateFrom","in":"query","required":false,"description":"Report period to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}},{"name":"dateTo","in":"query","required":false,"description":"Report period to given in MM/DD/YYYY (e.g. 01/31/2021)","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"unitType":{"type":"string","description":"Unit-type label as shown in AppFolio (e.g. \"The Kokomo | 2B\")."},"unitCount":{"type":"integer","description":"Total number of units of this type."},"modelUnitCount":{"type":"integer","description":"Number of model units of this type."},"inquiriesReceived":{"type":"integer","description":"Number of inquiries received during the reporting period."},"showingsCompleted":{"type":"integer","description":"Number of showings completed during the reporting period."},"applicationsReceived":{"type":"integer","description":"Number of applications received during the reporting period."},"moveIns":{"type":"integer","description":"Number of move-ins during the reporting period."},"moveOuts":{"type":"integer","description":"Number of move-outs during the reporting period."},"leased":{"type":"integer","description":"Number of leases executed during the reporting period. AppFolio defines \"Leased\" as the count of lease documents that were sent and signed (new leases or renewals fully executed) within the report window."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/renewal-summary":{"get":{"operationId":"renewalSummary","summary":"Renewal Summary","description":"Get the Renewal Summary report for your properties. Returns per-lease renewal details (previous vs new rent, dollar/percent change, status, term) for leases whose new start date falls in the report window.","tags":["Leasing"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"propertyId","in":"query","required":false,"description":"AppFolio ID of a Property to serve as a filter.","schema":{"type":"string"}},{"name":"propertyGroupId","in":"query","required":false,"description":"AppFolio ID of a Property Group to serve as a filter.","schema":{"type":"string"}},{"name":"ownerId","in":"query","required":false,"description":"AppFolio ID of an Owner to serve as a filter.","schema":{"type":"string"}},{"name":"dateRange","in":"query","required":false,"description":"New lease start Range for report.","schema":{"type":"string","enum":["","this_month","this_quarter","this_year","this_year_to_month","last_month","last_quarter","last_year","trailing_3_months","trailing_6_months","trailing_12_months","rolling_12_months","this_and_next_3_months","this_and_next_6_months"],"default":"this_and_next_6_months"}},{"name":"dateFrom","in":"query","required":false,"description":"New lease start to given in MM/YYYY (e.g. 01/2021)","schema":{"type":"string"}},{"name":"dateTo","in":"query","required":false,"description":"New lease start to given in MM/YYYY (e.g. 01/2021)","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"Filter by renewal status. Default: All. Possible values: All, Renewed, Not Renewed, Month To Month, Pending, Canceled By User","schema":{"type":"string","enum":["All","Renewed","Not Renewed","Month To Month","Pending","Canceled By User"],"default":"All"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"property":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"AppFolio ID of the property."},"name":{"type":"string","description":"Name of the property."}}},"unit":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"AppFolio ID of the unit."},"name":{"type":"string","description":"Name of the unit."}}},"tenant":{"type":"object","properties":{"appfolioId":{"type":"integer","description":"AppFolio ID of the tenant."},"name":{"type":"string","description":"Name of the tenant."}}},"leaseStart":{"type":"string","description":"New lease start date (MM/DD/YYYY)."},"leaseEnd":{"type":"string","description":"New lease end date (MM/DD/YYYY)."},"previousLeaseStart":{"type":"string","description":"Previous lease start date (MM/DD/YYYY)."},"previousLeaseEnd":{"type":"string","description":"Previous lease end date (MM/DD/YYYY)."},"previousRent":{"type":"string","description":"Rent amount from the previous lease."},"rent":{"type":"string","description":"Rent amount for the renewed lease."},"dollarDifference":{"type":"string","description":"Dollar difference between renewed and previous rent."},"percentDifference":{"type":"string","description":"Percent difference between renewed and previous rent."},"status":{"type":"string","description":"Renewal status (e.g. Renewed, Did Not Renew)."},"term":{"type":"string","description":"Lease term description (e.g. \"12 months\")."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/emails":{"get":{"operationId":"emails","summary":"Emails","description":"Get a list of emails for a guest card or occupancy.","tags":["Communications"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"guestCardId","in":"query","required":false,"description":"AppFolio ID of the guest card to get emails for.","schema":{"type":"string"}},{"name":"occupancyId","in":"query","required":false,"description":"AppFolio ID of the occupancy to get emails for.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the email."},"status":{"type":"string","description":"Delivery status of the email (e.g. Delivered)."},"sentAt":{"type":"string","description":"Date and time the email was sent."},"to":{"type":"string","description":"Recipient of the email as displayed in AppFolio."},"from":{"type":"string","description":"Sender of the email as displayed in AppFolio."},"subject":{"type":"string","description":"Subject line of the email (plain text)."},"hasAttachment":{"type":"boolean","description":"True when the email has one or more attachments."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/email":{"get":{"operationId":"email","summary":"Email","description":"Get the body and details of a single email.","tags":["Communications"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"emailId","in":"query","required":false,"description":"AppFolio ID of the email to fetch.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the email."},"direction":{"type":"string","description":"Direction of the email (e.g. outbound or inbound)."},"subject":{"type":"string","description":"Subject line of the email."},"body":{"type":"string","description":"Raw HTML body of the email as returned by AppFolio."},"from":{"type":"string","description":"Sender email address."},"to":{"type":"array","items":{"type":"string"},"description":"List of recipient email addresses."},"cc":{"type":"string","description":"Comma-separated list of CC'd email addresses."},"bcc":{"type":"string","description":"Comma-separated list of BCC'd email addresses."},"sentAt":{"type":"string","description":"Date and time the email was sent or received."},"createdAt":{"type":"string","description":"Date and time the email record was created in AppFolio."},"updatedAt":{"type":"string","description":"Date and time the email record was last updated in AppFolio."},"attachments":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"}}},"description":"List of attachments on the email. Each entry is a lightweight File reference with \"fileId\" and \"name\". Hydrate to a full File (signed URL, content type, size) via /v1/file?id=<fileId>."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/sms":{"get":{"operationId":"sms","summary":"SMS","description":"Get a list of text messages for a phone number.","tags":["Communications"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"},{"name":"toNumber","in":"query","required":false,"description":"Phone number to get text messages for. Accepts any common US format; normalized to `(XXX) XXX-XXXX`.","schema":{"type":"string"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the text message."},"body":{"type":"string","description":"Plain-text body of the message."},"sentOrReceivedAt":{"type":"string","description":"ISO timestamp the message was sent (outbound) or received (inbound)."},"status":{"type":"string","description":"Delivery status of the message (e.g. delivered, failed, received)."},"direction":{"type":"string","description":"Direction of the message (e.g. outbound-api, inbound)."},"remotePartyNumber":{"type":"string","description":"Phone number of the other party on the message, formatted as displayed in AppFolio."},"senderName":{"type":"string","description":"Display name of the AppFolio user who sent the message. Null for inbound messages."},"media":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"}}},"description":"List of media attachments on the message (MMS). Each entry has \"url\" (signed S3 link) and \"contentType\" (MIME type such as image/jpeg). Empty array when there is no media."},"read":{"type":"boolean","description":"True when the message has been read in AppFolio."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/users":{"get":{"operationId":"users","summary":"Users","description":"Get a list of AppFolio users.","tags":["User Management"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the user."},"name":{"type":"string","description":"Full name of the user."},"firstName":{"type":"string","description":"First name of the user."},"lastName":{"type":"string","description":"Last name of the user."},"email":{"type":"string","description":"Email address of the user."},"phoneNumber":{"type":"string","description":"Phone number of the user."},"uuid":{"type":"string","description":"Unique identifier (UUID) of the user."},"currentSignInAt":{"type":"string","description":"Date and time of the user's most recent sign-in."},"active":{"type":"boolean","description":"Whether the user account is active."},"userRole":{"type":"string","description":"Role of the user (e.g., President, Manager)."},"adminUser":{"type":"boolean","description":"Whether the user has admin privileges."},"agentUser":{"type":"boolean","description":"Whether the user is an agent."},"mfaEnabled":{"type":"boolean","description":"Whether multi-factor authentication is enabled for the user."},"locked":{"type":"boolean","description":"Whether the user account is locked."},"internalUser":{"type":"boolean","description":"Whether the user is an internal user."},"profilePhotoUrl":{"type":"string","description":"URL of the user's profile photo."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/me":{"get":{"operationId":"me","summary":"Current User","description":"Get the current authenticated AppFolio user details.","tags":["User Management"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"appfolioId":{"type":"string","description":"AppFolio ID of the current user."},"name":{"type":"string","description":"Full name of the current user."},"firstName":{"type":"string","description":"First name of the current user."},"lastName":{"type":"string","description":"Last name of the current user."},"email":{"type":"string","description":"Email address of the current user."},"defaultEmailSignature":{"type":"string","description":"Default email signature of the current user."},"role":{"type":"string","description":"Role assigned to the current user (e.g., President, Manager)."},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping of permission roles to their privilege levels for the current user (e.g. { \"services\": \"hidden\", \"admin_api_access\": \"full\" })."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}},"/v1/user-roles":{"get":{"operationId":"userRoles","summary":"User Roles","description":"Get the current user's role and permissions.","tags":["User Management"],"security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Pagination cursor from links.next"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"type":"object","properties":{"status":{"type":"string","enum":["ok","stale","updating"],"description":"Data freshness status"},"path":{"type":"string"},"count":{"type":"integer"},"lastUpdated":{"type":"integer","description":"Unix timestamp"},"page":{"type":"integer"},"jobId":{"type":"string"}}},"links":{"type":"object","properties":{"next":{"type":"string","description":"Cursor URL for next page"},"prev":{"type":"string","description":"Cursor URL for previous page"}}},"data":{"type":"array","items":{"type":"object","properties":{"roleName":{"type":"string","description":"Name of the user's role (e.g., President, Property Manager)."},"roleId":{"type":"string","description":"AppFolio ID of the user role."},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"Mapping of permission roles to their privilege levels (e.g. { \"services\": \"hidden\", \"advanced_accounting\": \"write\" })."}}}}}}}}},"401":{"description":"Unauthorized - Invalid or missing API key"},"403":{"description":"Forbidden"},"429":{"description":"Rate limit exceeded"}}}}}}