Back to home

Curb API

Integrate professional real estate listing descriptions directly into your applications. The Curb API allows you to generate compelling property descriptions programmatically, perfect for MLS integrations, property management systems, and real estate platforms.

Fast Generation

Get 3 professional listings + social captions in seconds

Simple Integration

RESTful API with JSON responses, easy to integrate anywhere

Secure Access

Bearer token authentication with per-key rate limiting

Authentication

All API requests require authentication via a Bearer token in the Authorization header. API access is available on the Agency plan ($75/month).

Getting Your API Key
  1. Sign up for a Curb account at curb.io/signup
  2. Upgrade to the Agency plan from your billing settings
  3. Navigate to Settings → API Keys
  4. Click "Create New Key" and copy your secret key
Keep your API key secure! Never expose it in client-side code, public repositories, or share it with others. Treat it like a password.

Authorization Header

Authorization: Bearer sk_live_your_api_key_here
http

Rate Limits

API requests are rate-limited to ensure fair usage and platform stability.

PlanDaily LimitReset Time
Agency100 requests/dayMidnight UTC

Usage tracking: Each API response includes a usage object showing your current usage and limit. Plan your integrations accordingly.

Generate Listing Descriptions

POST/api/v1/generate

Generate professional listing descriptions in multiple tones, plus social media captions for Instagram, Facebook, Twitter, and LinkedIn.

Request Body

Send a JSON object with property details. At minimum, provide the property type and some identifying details (beds, sqft, or features).

ParameterTypeRequiredDescription
propertyTypestringRequiredType of property: 'single-family', 'condo', 'townhouse', 'multi-family', or 'land'
bedsstringOptionalNumber of bedrooms (e.g., '3')
bathsstringOptionalNumber of bathrooms (e.g., '2.5')
sqftstringOptionalSquare footage (e.g., '2500')
lotSizestringOptionalLot size with unit (e.g., '0.25 acres')
yearBuiltstringOptionalYear the property was built (e.g., '2018')
pricestringOptionalListing price (not included in generated text)
addressstringOptionalProperty address for location context
featuresstring[]OptionalArray of property features to highlight
neighborhoodNotesstringOptionalNotes about the neighborhood, nearby amenities, schools, etc.

Tip: The more details you provide, the better the generated descriptions. Include specific features like "granite countertops" or "hardwood floors" rather than generic terms.

Response Format

Successful requests return a JSON object with listings in three tones, social media captions, and usage information.

Response Structure

{
  "listings": [
    {
      "tone": "Professional",
      "description": "This exceptional 4-bedroom, 3-bathroom residence spans 2,500 square feet on a generous 0.25-acre lot. Built in 2018, the home showcases granite countertops, hardwood floors throughout, and stainless steel appliances...",
      "wordCount": 127
    },
    {
      "tone": "Warm & Inviting",
      "description": "Picture yourself in this beautiful 4-bedroom sanctuary where every detail has been thoughtfully curated. From the gleaming hardwood floors to the chef-inspired kitchen with granite countertops...",
      "wordCount": 134
    },
    {
      "tone": "Luxury",
      "description": "A distinguished 4-bedroom, 3-bathroom estate commanding attention in one of Austin's most sought-after locations. This 2018-built residence exemplifies modern sophistication...",
      "wordCount": 142
    }
  ],
  "socialCaptions": {
    "instagram": "🏡 Just listed in Austin! 4BR/3BA with smart home tech + covered patio 🌳 DM for details! #JustListed #AustinRealEstate #DreamHome",
    "facebook": "New listing alert! Stunning 4-bed, 3-bath home in Austin with modern finishes throughout. Schedule your tour today! 🏠 #NewListing #AustinHomes",
    "twitter": "🏠 NEW: 4BR/3BA in Austin! Smart home + granite counters + hardwood floors 🔑 #JustListed #AustinTX",
    "linkedin": "New listing: 4-bedroom, 3-bathroom property in Austin, TX. Premium finishes and smart home features. Contact for details. #RealEstate"
  },
  "usage": {
    "used": 42,
    "limit": 100
  }
}
json

Listing Tones

  • Professional: Polished, fact-focused copy suitable for MLS listings
  • Warm & Inviting: Emotional language that helps buyers envision living there
  • Luxury: Upscale, sophisticated tone emphasizing premium features

Social Captions

  • Instagram: Emoji-friendly caption with 3-5 hashtags
  • Facebook: Conversational post with call-to-action
  • Twitter: Under 280 characters, punchy and attention-grabbing
  • LinkedIn: Professional tone without emojis

Error Codes

The API uses standard HTTP status codes and returns descriptive error messages.

StatusCodeDescription
200OKRequest successful, listings generated
400Bad RequestInvalid JSON body or missing required fields
401UnauthorizedMissing, invalid, or inactive API key
429Too Many RequestsRate limit exceeded (100 requests/day)
500Internal Server ErrorSomething went wrong on our end

Error Response Format

{
  "error": "Rate limit exceeded. Maximum 100 requests per day.",
  "usage": {
    "used": 100,
    "limit": 100,
    "resetsAt": "midnight UTC"
  }
}
json

Code Examples

Complete examples in popular languages to get you started quickly.

curl -X POST https://curb.io/api/v1/generate \
  -H "Authorization: Bearer sk_live_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "propertyType": "single-family",
    "beds": "4",
    "baths": "3",
    "sqft": "2500",
    "lotSize": "0.25 acres",
    "yearBuilt": "2018",
    "address": "123 Oak Street, Austin, TX",
    "features": [
      "granite countertops",
      "hardwood floors",
      "stainless steel appliances",
      "smart home system",
      "covered patio"
    ],
    "neighborhoodNotes": "walking distance to top-rated elementary school"
  }'
bash

Ready to integrate?

Get started with the Curb API today. Create your API key and start generating professional listing descriptions in minutes.