1. Download a sample file
Both samples contain three valid listings: a service, a real estate rental, and a real estate sale.
Download sample-listings.xml Download sample-listings.csv
2. Upload it
- Sign in and open CL Listings → Import XML/CSV.
- Pick the sample file and click Upload & Process.
- You should see 3 added · 0 skipped · 5 city postings created.
- Click the file name in Recent Uploads to open the import status page with per-row results.
Once that works, replace the sample rows with your own listings and re-upload.
3. Required fields cheat sheet
Full schema reference: XML · CSV.
| Field | Applies to | Notes |
|---|---|---|
listing_type | All | service | real_estate_rent | real_estate_sale |
title | All | 5–70 chars, plain text. |
description_html | All | ≥ 20 chars of visible text after stripping HTML. |
city | All | Physical city of the listing. |
state_region | All | State or region code (e.g. TX). |
contact_email or contact_phone | All | At least one is required. |
city_markets | All | One or more Craigslist city slugs. |
service_type | Service | e.g. cleaning, moving, lessons. |
price_type | Service | fixed | hourly | starting_at | quote_required. |
price_min | Service | Required unless price_type = quote_required. |
listing_intent | Real estate | rent or sale (must match listing_type). |
property_type | Real estate | apartment, house, condo, etc. |
price | Real estate | Greater than 0 USD. |
4. Common validation errors
Each error appears on the import status page next to the row that triggered it.
| Error | Likely cause | How to fix |
|---|---|---|
title must be 5–70 characters | Title too short, too long, or empty. | Trim to a clear 5–70 character headline. Avoid ALL CAPS and emoji-spam. |
description must contain at least 20 characters of visible text | Description is empty or only HTML tags / whitespace. | Write at least 20 characters of real copy. HTML tags don't count. |
contact_email or contact_phone is required | Both contact fields missing. | Provide at least one. Email must be valid; phone can be E.164 or local. |
city_markets is required | No Craigslist city slugs supplied. | Add one or more slugs (e.g. austin, sfbay, newyork). |
price_min is required unless price_type = quote_required | Service listing has a numeric price_type but no price_min. | Set price_min, or change price_type to quote_required. |
price_max must be ≥ price_min | Range inverted on a service listing. | Swap the values, or omit price_max. |
service_radius_miles cannot be set when service_area_mode = remote | Radius supplied for a remote service. | Remove the radius or change the mode. |
price must be greater than 0 | Real estate listing price is 0 or missing. | Set a positive USD value with no currency symbol or thousands separator. |
listing_intent must match listing_type | real_estate_rent paired with intent=sale (or vice versa). | Use rent for real_estate_rent and sale for real_estate_sale. |
available_date must be YYYY-MM-DD | Wrong date format (e.g. 06/01/2026). | Use ISO format: 2026-06-01. |
duplicate external_reference_id — listing skipped | That ID already exists for your account. | Use a new ID, or update the existing listing instead. |
invalid XML / CSV parse error | Unescaped & < > outside CDATA, missing closing tag, or unquoted comma in CSV cell. | Wrap HTML in <![CDATA[…]]> for XML. Quote any CSV cell with commas, quotes, or newlines. |