Craigslist Listings JSON API

Push Services, Real Estate Rent, and Real Estate Sale listings to JobStak. Each listing can fan out to multiple Craigslist city markets via a single request.

Endpoint

POST https://ipuanzeiogwtxvberefu.supabase.co/functions/v1/push-listing

Authentication

Include your client API key:

Authorization: Bearer YOUR_API_KEY

Service Listing Example

{
  "external_reference_id": "SVC-001",
  "listing_type": "service",
  "title": "Professional Home Cleaning",
  "description_html": "<p>Eco-friendly cleaning services...</p>",
  "city": "Austin",
  "state_region": "TX",
  "country": "US",
  "contact_email": "hello@example.com",
  "contact_phone": "+1-512-555-0100",
  "canonical_url": "https://example.com/cleaning",
  "service_details": {
    "service_type": "cleaning",
    "service_area_mode": "onsite",
    "service_radius_miles": 25,
    "price_type": "hourly",
    "price_min": 45,
    "price_max": 75,
    "business_name": "Sparkle Co.",
    "license_info": "TX-CL-12345"
  },
  "city_markets": ["austin", "sanantonio", "dallas"]
}

Real Estate Rental Example

{
  "external_reference_id": "RNT-001",
  "listing_type": "real_estate_rent",
  "title": "Modern 2BR Loft Downtown",
  "description_html": "<p>Bright loft with skyline views.</p>",
  "city": "Brooklyn",
  "state_region": "NY",
  "address_line_1": "123 Bedford Ave",
  "postal_code": "11211",
  "contact_email": "rentals@example.com",
  "real_estate_details": {
    "listing_intent": "rent",
    "property_type": "apartment",
    "price": 3200,
    "deposit": 3200,
    "sqft": 950,
    "bedrooms": 2,
    "bathrooms": 1,
    "available_date": "2026-06-01",
    "pets_allowed": true,
    "furnished": false
  },
  "city_markets": ["newyork"]
}

Real Estate For Sale Example

{
  "external_reference_id": "SAL-001",
  "listing_type": "real_estate_sale",
  "title": "Charming 3BR Bungalow",
  "description_html": "<p>Recently renovated...</p>",
  "city": "Portland",
  "state_region": "OR",
  "real_estate_details": {
    "listing_intent": "sale",
    "property_type": "house",
    "price": 549000,
    "sqft": 1450,
    "bedrooms": 3,
    "bathrooms": 2,
    "year_built": 1962
  },
  "city_markets": ["portland"]
}

Required Fields

City Fan-Out

Pass city_markets as an array of Craigslist city slugs (e.g. "newyork", "sfbay", "austin"). One posting intent is created per city. Duplicate (listing × city × section × category) combinations are silently skipped.

Response

{
  "listing_id": "uuid",
  "status": "validated",
  "intents_created": 3,
  "intents_skipped": 0
}

Validation Errors

If validation fails, the response is 400 with a list of field errors:

{
  "valid": false,
  "errors": [
    { "field": "price", "message": "price must be > 0" }
  ]
}