Getting Started

Cobroker API Documentation

Cobroker provides a REST API that gives AI agents commercial real estate capabilities. Create projects, manage properties, enrich with ESRI demographics and Tapestry psychographics, analyze foot traffic, search Google Places, and run AI-powered research — all via HTTP.

Base URL

https://app.cobroker.ai/api/agent/openclaw

Authentication

Every request requires two headers. No OAuth, no token refresh — just two static headers on every call.

# Required headers on every request
X-Agent-User-Id: your-user-id
X-Agent-Secret: your-secret
Content-Type: application/json
Sign up at app.cobroker.ai/signup to get your agent credentials.

Quick Start

Create a project with properties in one call:

curl -X POST "https://app.cobroker.ai/api/agent/openclaw/projects" \
  -H "Content-Type: application/json" \
  -H "X-Agent-User-Id: your-user-id" \
  -H "X-Agent-Secret: your-secret" \
  -d '{
    "name": "Dallas Warehouses",
    "public": true,
    "properties": [
      {
        "address": "123 Main St, Dallas, TX 75201",
        "fields": { "Price": "$500,000", "Size": "10,000 SF" }
      }
    ]
  }'

Response:

{
  "success": true,
  "projectId": "uuid",
  "publicUrl": "https://app.cobroker.ai/public/uuid",
  "propertyCount": 1,
  "geocodedCount": 1,
  "columns": [{ "id": "uuid", "name": "Price" }, { "id": "uuid", "name": "Size" }]
}

Projects & Properties

Create a Project

POST/projects

Create a new project with properties and custom fields. Properties are automatically geocoded from addresses. Maximum 50 properties per request.

{
  "name": "Dallas Warehouses",
  "description": "Q1 industrial survey",
  "source": "openclaw",
  "public": true,
  "properties": [
    {
      "address": "123 Main St, Dallas, TX 75201",
      "fields": {
        "Price": "$500,000",
        "Size": "10,000 SF",
        "Type": "Warehouse"
      }
    }
  ]
}
Always set public: true so the project URL can be shared. New field names automatically create new columns.

List / Get Projects

GET/projects

Returns all projects with name, description, property count, and URLs.

GET/projects/{id}

Returns full project details including all properties, columns, and field values. Field names are human-readable (not UUIDs).

Add Properties

POST/projects/{id}/properties

Add properties to an existing project. New field names automatically create new columns. Existing field names map to existing columns.

{
  "properties": [
    {
      "address": "456 Oak Ave, Dallas, TX 75202",
      "fields": { "Price": "$750K", "Size": "15,000 SF" }
    }
  ]
}

Update / Delete

PATCH/projects/{id}

Update project name, description, or visibility. Only provided fields are updated.

PATCH/projects/{id}/properties

Update property addresses or field values. Property id is required. Address changes trigger re-geocoding.

DELETE/projects/{id}

Delete project and all associated data.

DELETE/projects/{id}/properties

Remove properties by ID.

Demographics & Psychographics

Overview

Enrich properties with ESRI GeoEnrichment data. 15+ categories covering demographics, psychographics, consumer spending, crime, business data, and more. Each data type can be queried by radius (miles), drive-time (minutes), or walk-time (minutes). Properties must have coordinates (geocoded from addresses).

Available Data Types

GET/projects/{id}/demographics

Returns all available data types grouped by category.

Core Demographics

population, median_age, households, population_density, household_size, daytime_population

Income

income, per_capita_income, avg_household_income, disposable_income, income brackets ($25K–$250K+)

Employment

total_employment, retail_jobs, healthcare_jobs, office_jobs, food_service_jobs, manufacturing_jobs, construction_jobs, education_jobs, unemployment_rate

Housing

median_home_value, median_rent, owner_occupied, renter_occupied, vacant_housing, housing_after_2010, avg_home_value, median_year_built

Age Groups

age_0_4, age_5_17, age_18_24, age_25_34, age_35_44, age_45_54, age_55_64, age_65_74, age_75_plus, working_age

Race/Ethnicity

white_population, black_population, hispanic_population, asian_population, two_or_more_races, diversity_index

Tapestry Psychographics

tapestry_segment (67 lifestyle segments), tapestry_top3, lifemode_group

Consumer Spending

restaurant_spending, retail_spending, entertainment_spending, grocery_spending, spending_potential_index

Market Potential Index

dining_propensity, shopping_propensity, fitness_propensity

Business Data

business_count, employee_count, retail_trade_businesses, food_service_businesses

Crime Indexes

total_crime_index, property_crime_index, personal_crime_index

Retail Marketplace

retail_demand, retail_supply_gap, food_service_demand

Commute

avg_commute_time, work_from_home_pct, public_transit_pct

Education

bachelors_degree_pct, graduate_degree_pct

Health Insurance

uninsured_rate

Add Demographics

POST/projects/{id}/demographics
{
  "dataType": "population",
  "radius": 1,
  "mode": "radius"
}

Parameters:

  • dataType — demographic metric (see list above)
  • radius — 0.1 to 100 (miles for radius, minutes for drive/walk)
  • mode — "radius" | "drive" | "walk" (default: "radius")
  • columnName — optional, auto-generated if omitted

Foot Traffic

Overview

Location intelligence data for commercial properties. Foot traffic counts, dwell time, trade area analysis, competitive rankings, retail sales estimates, and visitor journey data — derived from mobile location signals.

Available Metrics

Visitation

visits, visit_trends, visits_by_hour, visits_by_day, visit_frequency

Dwell Time

dwell_time (visitor duration segments)

Trade Area

trade_area (visitor origins by Census Block Group), drive_time_trade_area

Competitive

rankings, competitive_benchmark, nearby_activity

Retail Sales

transaction_volume, avg_ticket_size, sales_trends, daily_sales

Visitor Journey

visitor_origins, cross_shopping, favorite_chains

Get Traffic Data

POST/projects/{id}/traffic
{
  "dataType": "visits",
  "period": "last_12_months",
  "granularity": "monthly"
}

Parameters:

  • dataType — traffic metric (see list above)
  • period — last_month, last_3_months, last_6_months, last_12_months
  • granularity — daily, weekly, monthly

Places Search

Search Places

POST/projects/{id}/places/search

Search Google Places for existing businesses, chains, and locations. Preview before saving. Use projectId: "new" to auto-create a project.

// Preview mode — returns results without saving
{ "query": "Starbucks in Dallas", "preview": true }

// Save to new project
{ "query": "Starbucks in Dallas", "projectName": "Starbucks Dallas" }

// Save to existing project
// POST /projects/{existingId}/places/search
{ "query": "Starbucks in Dallas" }

Parameters:

  • query — search text
  • preview — if true, returns without saving (default: false)
  • maxResults — max 400 (default: 50)
  • regionSearch — search across 7 US regions for nationwide coverage

Nearby Analysis

POST/projects/{id}/places/nearby

Analyze what's near each property. Two modes:

// Nearest mode — find closest matching place
{ "query": "grocery store", "radiusMiles": 2, "mode": "nearest" }

// Count mode — count place types within radius
{ "placeTypes": ["restaurant", "cafe"], "radiusMiles": 1, "mode": "count" }

Map Layers

Save places as a map layer with brand logos instead of project properties:

{
  "query": "Starbucks",
  "destination": "layer",
  "layerName": "Starbucks Locations",
  "markerColor": "#00704A"
}
Requires an existing project (not "new"). Returns 409 if layer name already exists.

AI Research

Submit Enrichment

POST/projects/{id}/enrichment

Ask any question about each property. The API researches the answer using web sources and returns structured results. Async — returns immediately, poll for results.

{
  "prompt": "What is the zoning classification for this property?",
  "columnName": "Zoning",
  "processor": "core"
}

Processor tiers:

  • base — fast, ~15–100s per property
  • core — balanced (default), ~1–5min
  • pro — thorough, ~3–9min
  • ultra — exhaustive, ~5–25min

Poll for Results

GET/projects/{id}/enrichment?columnId={columnId}

Poll every ~30 seconds. When status is "complete", fetch project details to read the enrichment column values.

curl -X GET "https://app.cobroker.ai/api/agent/openclaw/projects/{id}/enrichment?columnId={columnId}" \
  -H "X-Agent-User-Id: your-user-id" \
  -H "X-Agent-Secret: your-secret"

Integrations

OpenClaw Skill

Install the cobroker-projects skill in your OpenClaw agent. Requires COBROKER_AGENT_USER_ID and COBROKER_AGENT_SECRET environment variables.

Full OpenClaw integration guide →

Download skill file →

MCP Server

Cobroker publishes an MCP discovery file for automatic integration with Claude Code, Cursor, and other MCP clients.

View MCP config →

CLI Coming Soon

Command-line interface for the Cobroker API. Install via npm or pip. Manage projects, run enrichments, and search places from your terminal.

Knowledge Base

FAQ

What is Cobroker?

Cobroker is an API platform that gives AI agents commercial real estate capabilities — projects, properties, ESRI demographics, Tapestry psychographics, foot traffic, Google Places search, and AI research. It's built for agents, not dashboards.

Can I use this with my own AI agent?

Yes. Cobroker is a standard REST API. If your agent can make HTTP requests, it can use Cobroker. Works with Claude Code, OpenClaw, LangChain, or any framework.

How does authentication work?

Two static headers on every request: X-Agent-User-Id and X-Agent-Secret. No OAuth, no token refresh.

What data sources does the API use?

Demographics from ESRI GeoEnrichment (58+ types). Places from Google Places API. Foot traffic from mobile location intelligence. AI research from Parallel AI.

What demographic data is available?

15+ categories: population, income, employment, housing, age, ethnicity, Tapestry psychographics (67 lifestyle segments), consumer spending, crime indexes, business counts, retail marketplace, commute, education, health insurance.

What foot traffic data is available?

Estimated visits, hourly/daily patterns, dwell time, visit frequency, trade area (visitor origins by Census Block Group), competitive rankings, retail sales estimates, and visitor journey (cross-shopping, origins).

How does AI research work?

Submit a question, the API researches the answer for each property asynchronously. Four processor tiers: base (~15s), core (~1-5min), pro (~3-9min), ultra (~5-25min).

What does Places Search find?

Existing businesses and locations via Google Places — Starbucks, grocery stores, restaurants. Not available space for lease. Preview before saving, nationwide search up to 400 results.

Can I use Cobroker with OpenClaw?

Yes. Install the cobroker-projects skill. Full guide at cobroker.ai/openclaw.

Is there an MCP integration?

Yes. MCP discovery file at cobroker.ai/.well-known/mcp.json with all API tools declared.

Does the API handle geocoding?

Yes. Properties with addresses are automatically geocoded. You can also provide lat/long directly.

How do I get started?

Sign up at app.cobroker.ai/signup to get credentials. Then start making API calls. Check llms.txt at cobroker.ai/llms.txt for a quick start.

Address Format

Addresses must have at least 3 comma-separated components:

✓ "123 Main St, Dallas, TX 75201"

✓ "123 Main St, Suite 100, Dallas, TX 75201"

✗ "123 Main St Dallas TX 75201" — no commas

✗ "123 Main St, Dallas TX 75201" — only 2 parts

Constraints & Limits

  • Maximum 50 properties per create/add request
  • Places search: 50 results default, up to 400 with regionSearch
  • Properties are auto-geocoded from addresses
  • Demographics require properties with coordinates
  • Enrichment is async — poll status endpoint for results
  • Map layers require an existing project
  • Duplicate layer names return 409
  • Always create projects as public: true for shareable URLs

Response Format

All responses are JSON with a top-level success boolean.

// Success response
{ "success": true, "projectId": "uuid", "publicUrl": "..." }

// Error response
{ "success": false, "message": "Description of the error" }
  • Project creation returns: projectId, publicUrl, propertyCount, columns
  • Property operations return counts
  • Demographics and enrichment return column metadata
  • Enrichment submit returns 202 with columnId for polling
© copyright COBROKER 2026. All rights reserved.