---
name: Realie
description: Use when querying property data via API, CLI, or MCP server; searching for properties by address, location, parcel ID, or comparables; building real estate applications; analyzing property records; or integrating nationwide property data into workflows.
metadata:
    mintlify-proj: realie
    version: "1.0"
---

# Realie

## Product summary

Realie is an AI-powered property data platform that provides comprehensive, normalized property information from public sources via REST API, CLI, or MCP server. Use Realie to query 180+ million property records across the US, including address/parcel lookups, geographic searches, comparable properties, ownership data, tax assessments, and automated valuation models. Key entry points: REST API at `https://app.realie.ai/api/public/`, CLI via `realie` command, or MCP server at `https://docs.realie.ai/mcp`. Authenticate with an API key from the dashboard. Primary docs: https://docs.realie.ai

## When to use

Reach for Realie when you need to:
- Look up a single property by address, parcel ID, or coordinates
- Search properties across a county, state, or region with filters (city, zip, beds, price range)
- Find comparable properties near a location for valuation or market analysis
- Access property ownership, tax, mortgage, or transfer history
- Integrate property data into a real estate app, underwriting tool, or risk model
- Query property data from the terminal (CLI) or from within AI tools (MCP)
- Bulk-download statewide or nationwide property datasets

Do not use Realie for: non-property data, real-time transaction feeds, or data outside the US.

## Quick reference

### API Endpoints

| Endpoint | Use case | Key parameters |
|----------|----------|-----------------|
| `/public/property/address` | Single property by address | `address`, `state`, `county` (optional) |
| `/public/property/search` | Multiple properties in area | `state`, `county`, `city`, `zip`, `limit`, `cursor` |
| `/public/property/parcelId` | Property by parcel ID | `parcelId`, `state`, `county` |
| `/public/property/location` | Properties near coordinates | `latitude`, `longitude`, `radius`, `limit` |
| `/public/premium/comparables` | Similar properties | `latitude`, `longitude`, `timeFrame`, `bedsMin`, `bedsMax`, `priceMin`, `priceMax` |

### CLI Commands

| Command | Purpose |
|---------|---------|
| `realie login --api-key KEY` | Authenticate (non-interactive) |
| `realie lookup --address "..." --state TX` | Look up single property |
| `realie search --state TX --county DENTON --limit 10` | Search properties |
| `realie comparables --latitude 30.2 --longitude -97.7` | Find comparables |
| `realie parcel --parcel-id "R12345" --state TX --county TRAVIS` | Parcel lookup |
| `realie location --latitude 30.2 --longitude -97.7 --radius 0.05` | Nearby properties |
| `realie usage` | Check token usage |
| `realie --json <command>` | Machine-readable output (for agents) |

### Configuration

Store at `~/.realie/config.json` or use environment variable:

| Key | Method | Value |
|-----|--------|-------|
| API Key | `REALIE_API_KEY` env var | Your API key |
| API Key | `realie login --api-key KEY` | Direct auth |
| Base URL | Config file | Default: `https://app.realie.ai` |
| Default State | Config file | State code (e.g., `TX`) |

### Response Fields (Common)

| Field | Type | Example |
|-------|------|---------|
| `address` | string | "1234 JOHN ST" |
| `addressFull` | string | "1234 JOHN ST, PLANO, TX 75093" |
| `parcelId` | string | "R-3726-00C-0100-1" |
| `totalBedrooms` | integer | 5 |
| `totalBathrooms` | float | 3.5 |
| `buildingArea` | float | 5882 |
| `yearBuilt` | integer | 1998 |
| `totalMarketValue` | float | 1669610 |
| `modelValue` | float | 1739895 |
| `latitude`, `longitude` | float | 33.0313, -96.8230 |

See [Property Data Schema](https://docs.realie.ai/api-reference/property-data-schema) for 100+ fields.

## Decision guidance

### When to use each endpoint

| Scenario | Endpoint | Why |
|----------|----------|-----|
| You have one address | Address Lookup | Fastest (~10ms), optimized for single queries |
| You need all properties in a county | Property Search | Designed for pagination through large areas |
| You have a parcel ID | Parcel ID Lookup | Official government records |
| You have coordinates | Location Search | Geospatial query with radius |
| You need similar properties | Comparables Search | Market analysis, valuations |

### Pagination: Cursor vs Offset

| Approach | Use when | Avoid when |
|----------|----------|-----------|
| **Cursor** (recommended) | Fetching >1000 records, incremental sync, resuming from saved position | Prototyping first page only |
| **Offset** (legacy) | Small result sets (<1000), first page only | Deep pagination (offset >5000), production sync |

Cursor pagination is constant-time at any depth. Offset degrades and times out beyond a few thousand records.

### CLI vs API vs MCP

| Tool | Use when | Avoid when |
|------|----------|-----------|
| **CLI** (`realie` command) | Querying from terminal, AI agents, CI/CD, one-off lookups | Building web apps, high-volume requests |
| **REST API** | Building applications, integrating into services, high throughput | Simple terminal queries |
| **MCP Server** | Using Claude, Cursor, VS Code with AI tools | Non-AI workflows |

## Workflow

### 1. Set up authentication
```bash
# Option A: Environment variable (CI/CD, agents)
export REALIE_API_KEY=your_api_key

# Option B: CLI login (interactive)
realie login --api-key your_api_key

# Option C: API header
Authorization: your_api_key
```

### 2. Choose your query method
- **Single address**: Use Address Lookup endpoint or `realie lookup`
- **Multiple properties**: Use Property Search endpoint or `realie search` with cursor pagination
- **By coordinates**: Use Location Search or Comparables endpoint
- **By parcel ID**: Use Parcel ID Lookup endpoint

### 3. Execute the query
**CLI example:**
```bash
realie search --state TX --county TRAVIS --limit 100 --json
```

**API example:**
```bash
curl 'https://app.realie.ai/api/public/property/search/?state=TX&county=TRAVIS&limit=100&cursor=' \
  -H 'Authorization: your_api_key'
```

### 4. Handle pagination (if needed)
For large result sets, use cursor pagination:
```bash
# First request
realie search --state TX --limit 100 --json

# Save nextCursor from response, then:
realie search --state TX --limit 100 --cursor "saved_cursor_value" --json
```

### 5. Parse and use the response
Response structure:
```json
{
  "properties": [
    {
      "address": "...",
      "parcelId": "...",
      "totalBedrooms": 5,
      "totalMarketValue": 1669610,
      ...
    }
  ],
  "metadata": {
    "limit": 100,
    "count": 100,
    "nextCursor": "eyJ..."
  }
}
```

### 6. Verify results
- Check `metadata.count` to confirm records returned
- Validate address format (USPS standard, uppercase)
- If wrong parcel returned, try Location Search or Parcel ID Lookup
- Check token usage: `realie usage`

## Common gotchas

- **Wrong parcel for address**: Multiple parcels may exist at one address. Use Property Search to see all, or try Location Search / Parcel ID Lookup.
- **Unit number format**: Remove leading designators (e.g., "APT 103B" → "103B"). Use the [unit normalization script](https://docs.realie.ai/code-references) in Code Reference Library.
- **Offset pagination times out**: Offset pagination fails beyond ~5000 records. Always use cursor pagination for large datasets. Migrate with one parameter change: replace `offset=N` with `cursor=` on first request.
- **Rate limit (1200 req/min)**: Hitting 429 responses? Slow down or contact support for enterprise limits.
- **$0.50 card hold**: When enabling API access, a temporary $0.50 authorization is placed on your card to verify it. This is not a charge and is released immediately.
- **API key not found**: Copy from dashboard at `https://app.realie.ai/dashboard/` → API access. Requires payment method added first.
- **Empty results**: Verify address format (USPS standard), state/county spelling, and that the property exists in Realie's dataset. Use the [Property Lookup tool](https://app.realie.ai/lookup/) to double-check.
- **Slow address lookups**: If querying many addresses concurrently, use the Address Lookup endpoint (not Property Search). Realie's average latency is ~10ms.
- **JSON output not working**: Always use `--json` flag for machine-readable output. Without it, CLI returns human-readable text.

## Verification checklist

Before submitting work with Realie:

- [ ] API key is set (via env var, config, or CLI login)
- [ ] Request includes required parameters (state, address or coordinates, etc.)
- [ ] Using cursor pagination for result sets >1000 records
- [ ] Handling `nextCursor: null` to detect end of results
- [ ] Parsing response structure: `properties` array + `metadata` object
- [ ] Validating address format (USPS standard, uppercase)
- [ ] Checking token usage doesn't exceed plan limits (`realie usage`)
- [ ] Testing with `--json` flag if building for agents/scripts
- [ ] Handling rate limits (1200 req/min) with backoff if needed
- [ ] Confirming correct parcel returned (if multiple exist at address)

## Resources

- **Full documentation**: https://docs.realie.ai/llms.txt (comprehensive page-by-page navigation for agents)
- **API Reference**: https://docs.realie.ai/api-reference/property-data
- **Property Data Schema**: https://docs.realie.ai/api-reference/property-data-schema
- **Realie CLI**: https://docs.realie.ai/realie-cli
- **Code Examples**: https://docs.realie.ai/code-references

---

> For additional documentation and navigation, see: https://docs.realie.ai/llms.txt