Tektolo

Open data

Security deposit rules by US state and city

Download the security deposit rules for all 50 states, DC and 9 cities as one CSV or JSON file. You can reuse and republish them under the CC BY 4.0 license, as long as you credit Tektolo.

Download CSVDownload JSON

Version sd-2026.11.20, sources last checked 2026-10-15. Free, no sign-in. How to credit Tektolo.

Jurisdictions
60
Fields
69

License

The data is published under the Creative Commons Attribution 4.0 International license (CC BY 4.0). You can copy it, share it and build on it for any purpose, including commercial use. In return, credit Tektolo, link to the license, and say if you changed the data.

The statutes and ordinances themselves are public law. The license covers how Tektolo collected, summarized and structured them.

How to credit Tektolo

To cite the data, copy this:

Tektolo. Security deposit rules by US state and city, version sd-2026.11.20. https://tektolo.com/data/deposit-rules/. Licensed under CC BY 4.0.

For a short credit in an app or on a web page:

Security deposit rules from Tektolo (tektolo.com), CC BY 4.0.

Download

FileLatestVersion sd-2026.11.20
CSV, one row per state and citydeposit-rules.csvsd-2026.11.20/deposit-rules.csv
JSON, the same rows with every citationdeposit-rules.jsonsd-2026.11.20/deposit-rules.json
Frictionless data package: the fields, license and version of the files beside itdatapackage.jsonsd-2026.11.20/datapackage.json

The latest files always match the rules the tool uses today. A version's address keeps that version: the current one while it is current, and an archived one for good. Every file states its ruleset version and hash, and the hash changes whenever any rule changes.

What each version changed, with feeds by state, is in the rules changelog. To check a Tektolo summary or statement, open its verify link or paste the code at /verify.

What is in the data

What is not in it

Work out your own case

The data gives the rule. To apply it to a real case, with your own dates and amounts, use the free Deposit settlement tool. It runs on the same rules and shows its work.

See whether your landlord returned your deposit on time and which deductions your state's rule allows. Open the security deposit check.

How the data is made

The files are built from the same ruleset the tool runs on, so the data and the tool's answers agree. A test checks the published files against the tool's own rules lookup. Each rule was read at its official source on the date given in the row.

Found a rule that looks wrong? Tell us.

Fields

Each row is one of the 60 jurisdictions. The CSV and the JSON have the same fields. A list is an array in the JSON and is joined with | in the CSV. The JSON also gives every citation for each row.

All 69 fields
FieldTypeDescription
idstringTwo-letter state code (TX), or the city's id (chicago) for a city row.
jurisdiction_typestringstate (the 50 states and DC) or city (a city ordinance layered on the state rule).
statestringTwo-letter state code.
state_namestringState name.
citystringCity name on a city row; empty on a state row.
summarystringThe rule in one paragraph, as the Tektolo rules operation states it: deadline, other deadlines, interest, penalty and forfeiture, with the statute.
statutestringThe state statute the rule comes from.
city_ordinancestringThe city ordinance layered on the state rule (city rows).
deadline_citationstringThe section that sets the return deadline.
deadline_quotestringThat section's text, quoted or summarized (see deadline_quote_verbatim).
deadline_quote_verbatimbooleantrue: deadline_quote is the statute's own words; false: it is a summary.
source_titlestringThe official source the deadline section was read at.
source_urlstringAddress of that official source.
source_checked_ondateThe day the source was last read.
city_ordinance_urlstringAddress of the city ordinance's official source (city rows).
verifiedbooleantrue: the main rule text was read word for word at the official source; false: read at a secondary copy or summarized.
return_daysintegerDays to return the deposit (or send the itemized statement and any balance). Empty when the period is in months or there is no deadline.
return_monthsintegerMonths to return the deposit, where the statute counts months.
return_countingstringcalendar or business days.
return_startsstringThe event the period runs from (a key: vacate, termination, forwarding_address, demand, ...).
return_starts_textstringThe same event in words.
no_statutory_deadlinebooleantrue: the statute sets no deadline to return the deposit.
needs_forwarding_addressbooleantrue: the duty starts only once the tenant gives a written forwarding address.
last_day_rolls_forwardbooleantrue: a last day on a weekend or legal holiday moves to the next business day under the state's time-computation statute.
deadline_textstringThe return deadline in one sentence.
other_deadlineslistOther deadlines the statute sets in some cases, each with its condition in words. A list in JSON; joined with ' | ' in the CSV.
statement_requiredbooleantrue: an itemized statement of deductions is required.
statement_with_refundbooleantrue: the statement goes with the refund, by the same deadline; false: it has its own deadline (statement_days or statement_months).
statement_daysintegerDays to send the itemized statement, when it has its own deadline.
statement_monthsintegerMonths to send the itemized statement, when it has its own deadline in months.
receipts_requiredbooleantrue: receipts or invoices must back the deductions.
receipts_over_usdnumberThe receipts duty applies above this repair and cleaning total (US dollars).
photos_requiredbooleantrue: dated photos must back the deductions.
photos_required_fromdateThe photo duty applies to move-outs on or after this day.
move_in_checklist_sectionstringThe section that ties deductions to a written move-in condition statement, where there is one.
allowed_deductionslistWhat the statute lets the landlord deduct (keys: unpaid_rent, damage_beyond_wear, ...). A list in JSON; joined with ' | ' in the CSV.
allowed_deductions_textstringThe same list in words.
normal_wear_excludedbooleantrue: normal wear and tear cannot be deducted.
depreciationstringrequired (the statute prorates by age), guidance (an official guide does) or silent (no formula in the statute).
interest_requiredstringyes, no or conditional: whether the landlord must pay interest on the deposit.
interest_conditionstringWhen interest is owed, for a conditional rule.
interest_rate_percentnumberThe interest rate in percent a year (the current rate when it is published yearly).
interest_rate_kindstringfixed_percent, statutory_index (published each year) or bank_rate (what the account earns).
interest_rate_yearintegerThe year interest_rate_percent is for, for a published rate.
interest_payablestringannually or at_end (with the deposit).
interest_notestringThe interest rule in words.
penalty_kindstringmultiple (a multiple of an amount), fixed (a set amount), forfeiture_only or actual_only (actual damages).
penalty_multiplenumberThe multiple, for a multiple penalty.
penalty_basisstringWhat the multiple is taken of: deposit, amount_withheld or monthly_rent.
penalty_fixed_usdnumberA set amount (US dollars): the penalty itself, or added to the multiple.
penalty_minimum_usdnumberThe penalty is at least this (US dollars).
penalty_conditionstringWhen the penalty applies (a key: bad_faith, any_late, willful, ...).
penalty_applies_ifstringThe same condition in words.
penalty_textstringThe penalty in words.
penalty_attorney_feesbooleantrue: the statute also awards attorney fees.
penalty_discretionarybooleantrue: a court may award the penalty but need not.
penalty_notestringThe penalty rule in words, from the statute.
city_additional_penaltystringA city penalty in addition to the state's (city rows).
forfeiturelistWhat the landlord loses by missing a deadline, in words. A list in JSON; joined with ' | ' in the CSV.
deposit_cap_months_rentnumberThe most the deposit may be, in months of rent. Empty when the statute sets no cap.
deposit_cap_textstringThe deposit cap in words.
deposit_cap_notestringDetails and exceptions of the cap.
applicabilitystringWho the rule covers, where the statute limits it.
recent_changeslistRecent amendments, each with its effective date. A list in JSON; joined with ' | ' in the CSV.
noteslistNotes on the rule for landlords and tenants. A list in JSON; joined with ' | ' in the CSV.
official_guideslistOfficial plain-language guides (government publishers). A list of addresses in JSON; joined with ' | ' in the CSV.
page_urlstringThe rule's page on tektolo.com, with a worked example and the tool.
ruleset_versionstringThe Tektolo ruleset version this row is from.
ruleset_hashstringSHA-256 of the whole ruleset: it changes whenever any rule changes.

This data summarizes the law for planning. It is not legal advice, and the statute or ordinance governs. Disclaimer.