File requirements
- Extension:
.csvonly. - Encoding: UTF-8 (UTF-8 with BOM is also accepted).
- Delimiter: comma (
,). Tab-separated files are not supported. - Line endings:
\nor\r\n. - Max size: 20 MB.
- Header row required: first non-empty row must contain column names exactly as listed below (case-sensitive, snake_case).
Quoting & escaping
- Wrap any cell containing a comma, double quote, or newline in double quotes (
"…").description_htmlalmost always needs quoting. - Escape literal double quotes by doubling them:
"She said ""hello""." - Leave cells empty (not
null, notN/A) when a field doesn't apply. - Don't include thousands separators (write
3200, not3,200) or currency symbols.
Column reference
| Column | Required | Notes |
|---|---|---|
external_reference_id | Recommended | Your unique ID. Used for deduplication on re-upload. |
listing_type | Required | service | real_estate_rent | real_estate_sale |
title | Required | 5–70 characters. |
description_html | Required | HTML allowed; quote the cell when it contains commas, quotes, or newlines. |
city | Required | Physical city of the listing. |
state_region | Required | State or region code. |
contact_email | One required | Either email or phone must be present. |
contact_phone | One required | E.164 or local format. |
canonical_url | Optional | Must be a valid URL when present. |
service_type | Conditional | Required when listing_type = service. |
price_type | Conditional | Service: fixed | hourly | starting_at | quote_required. |
price_min | Conditional | Service: required unless price_type = quote_required. |
price_max | Optional | Service: ≥ price_min. |
service_area_mode | Optional | onsite | remote | mobile | hybrid. |
service_radius_miles | Optional | Cannot be set when service_area_mode = remote. |
listing_intent | Conditional | Real estate: rent or sale (must match listing_type). |
property_type | Conditional | Real estate: apartment, house, condo, etc. |
price | Conditional | Real estate: > 0 USD. |
deposit | Optional | Rent: ≥ 0. |
sqft | Optional | Integer. |
bedrooms | Optional | Integer (0 = studio). |
bathrooms | Optional | Allows 0.5 increments. |
available_date | Optional | YYYY-MM-DD. |
pets_allowed | Optional | yes / no. |
furnished | Optional | yes / no. |
city_markets | Required | Craigslist city slugs separated by |, ;, or , (when the cell is quoted). |
city_markets format
The city_markets cell packs all target Craigslist slugs into a single value:
- Pipe (recommended):
austin|sanantonio|waco - Semicolon:
austin;sanantonio;waco - Comma inside quotes:
"austin,sanantonio,waco"
One posting intent is generated per slug.
Validation rules
- Title: 5–70 characters.
- Description: ≥ 20 chars of visible text after HTML is stripped.
- Contact: at least one of
contact_emailorcontact_phone. - Service price:
price_minrequired unlessprice_type = quote_required;price_max≥price_min. - Real estate:
price > 0;listing_intentmust matchlisting_type. - Dates:
available_datemust beYYYY-MM-DD. - Deduplication: repeat
external_reference_idvalues are skipped. - Row-level errors: invalid rows skip with a reason; valid rows in the same file still import.
CSV example
external_reference_id,listing_type,title,description_html,city,state_region,contact_email,contact_phone,service_type,price_type,price_min,price_max,service_area_mode,service_radius_miles,listing_intent,property_type,price,bedrooms,bathrooms,available_date,city_markets
SVC-001,service,Eco-Friendly House Cleaning,"<p>Weekly or one-time cleaning with non-toxic products.</p>",Austin,TX,hello@example.com,+15125550142,cleaning,hourly,45,75,onsite,25,,,,,,austin|sanantonio|waco
RNT-2026-014,real_estate_rent,Modern 2BR Loft in Williamsburg,"<p>Bright top-floor loft with skyline views.</p>",Brooklyn,NY,rentals@example.com,,,,,,,,rent,apartment,3200,2,1,2026-06-01,newyork
SAL-A55,real_estate_sale,3BR Craftsman in Ballard,"<p>Restored 1923 craftsman with original woodwork.</p>",Seattle,WA,agent@example.com,,,,,,,,sale,house,875000,3,2,,seattle
Exporting from spreadsheets
- Google Sheets: File → Download → Comma-separated values (.csv).
- Excel: File → Save As → CSV UTF-8 (Comma delimited) (*.csv). Avoid the legacy "CSV (Comma delimited)" option.
- Numbers (macOS): File → Export To → CSV.