Skip to main content

Create Your First Listing

A listing represents a business for sale on Venturu. Let’s get one live!

Quick Start

Every listing created through the API needs a broker. You can either reference an existing broker or create one inline with the listing. Both approaches work great!
Endpoint: PUT /partner/v1/listings/{externalListingId}
1

Choose an External ID

Pick a unique ID from your system:
  • MLS number: MLS-123456
  • Database ID: LISTING-789
  • Custom format: biz-miami-restaurant-001
This ID is permanent - choose wisely!
2

Link to a Broker

You have two options:
  • Reference Existing Broker (Easier)
  • Create Broker Inline (Faster)
Use the broker’s external ID:
{
  "brokerExternalId": "BROKER-789",
  // ... rest of listing
}
3

Add Business Details

Minimum Required Fields
{
  "brokerExternalId": "BROKER-789",
  "status": "FOR_SALE",
  "businessType": "Restaurant",
  "location": {
    "city": "Miami",
    "state": "Florida",
    "country": "US",
    "visibility": "SHOW_CITY_STATE"
  }
}
4

Send the Request

curl -X PUT "https://www.venturu.com/api/partner/v1/listings/LISTING-123" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d @listing.json
5

Success!

{
  "status": "success",
  "message": "Listing created successfully",
  "venturuListingId": 98765,
  "venturuListingUrl": "https://www.venturu.com/business/restaurant-miami-98765"
}
Listing is live! Buyers can now find it on Venturu.

Complete Example

Here’s a full listing with all the important fields:
{
  "brokerExternalId": "BROKER-789",
  "status": "FOR_SALE",
  "title": "Profitable Downtown Pizzeria",
  "description": "Well-established pizzeria in the heart of downtown. Famous for authentic recipes and loyal customer base. Turnkey operation with fully equipped kitchen.",
  "businessType": "Restaurant",
  "establishedAt": "2010-05-15T00:00:00.000Z",
  
  "location": {
    "streetAddress1": "123 Main St",
    "city": "Miami",
    "state": "Florida",
    "postalCode": "33101",
    "country": "US",
    "visibility": "SHOW_FULL_ADDRESS"
  },
  
  "financials": {
    "askingPrice": 550000,
    "revenue": 800000,
    "sde": 220000,
    "inventory": 25000,
    "ffande": 150000
  },
  
  "property": {
    "propertyKind": "RENTED",
    "areaSqft": 2500,
    "rentData": {
      "amount": 5000,
      "frequency": "MONTHLY",
      "leaseRenewable": true,
      "leaseExpiration": "2028-12-31T00:00:00.000Z"
    }
  },
  
  "financing": {
    "financingAvailable": true,
    "sbaPrequalified": true,
    "minimumDownPayment": 100000
  },
  
  "photos": [
    {
      "url": "https://example.com/photos/storefront.jpg",
      "sortKey": 1
    },
    {
      "url": "https://example.com/photos/kitchen.jpg",
      "sortKey": 2
    }
  ]
}

Essential Fields

Option 1: Reference existing broker
"brokerExternalId": "BROKER-789"
Option 2: Create broker inline
"broker": {
  "externalBrokerId": "BROKER-789",
  "name": "Jane Doe",
  "email": "jane@realestate.com"
}
Controls visibility:
  • FOR_SALE - Live and searchable (use this!)
  • DRAFT - Not yet published
  • ARCHIVED - Temporarily hidden
  • UNDER_CONTRACT - Deal in progress
  • SOLD - Business sold
See Managing Listing Status for all options.
The type of business:
  • Restaurant
  • Retail
  • Service Business
  • E-commerce
  • Manufacturing
  • And more…
"location": {
  "city": "Miami",
  "state": "Florida",
  "country": "US",
  "visibility": "SHOW_CITY_STATE"
}
Visibility options:
  • SHOW_FULL_ADDRESS - Show complete address
  • SHOW_CITY_STATE - Show only city and state
  • SHOW_STATE_ONLY - Show only state
  • Financials
  • Property
  • Photos
  • Description
"financials": {
  "askingPrice": 550000,
  "revenue": 800000,
  "sde": 220000,
  "inventory": 25000,
  "ffande": 150000
}
SDE = Seller’s Discretionary Earnings. This is what most buyers care about!

Common Questions

No worries! If you use the same externalListingId, it will update instead of creating a duplicate. See Updating a Listing.
Yes! Use the inline broker object. Both will be created/updated in one API call.
Instantly for FOR_SALE listings. We generate SEO-optimized URLs and descriptions in the background (takes ~1 minute).
Use "status": "DRAFT" to create without publishing. Change to FOR_SALE when ready. See Managing Listing Status.

Next Steps