On this pagetap to expand
Tu Lugar API
Public REST API for real estate listings, projects, agents, companies, and market data in Paraguay and South America. Free read access, no API key required.
Write access
Any Tu Lugar account can create, update, and publish listings via the API or an AI assistant — no application needed. Connect once with OAuth 2.1 (PKCE); publishing requires a verified WhatsApp number (which you can do from chat too), and every listing passes automated review before going public. Limits start small and grow automatically with your track record — see Limits & fair use above.
Quick Start
No API key needed. Try it right now:
# Search apartments for sale in Asunción curl "https://tulugar.com/api/v1/listings?city=Asunci%C3%B3n&listing_type=sale&property_type=apartment&limit=3" # Get market summary curl "https://tulugar.com/api/v1/market/summary?city=Asunci%C3%B3n" # List all countries curl "https://tulugar.com/api/v1/locations/countries"
Common Workflows
Chain API calls to accomplish typical tasks. This example finds apartments for sale in a specific neighborhood.
See available countries
GET /api/v1/locations/countriesLists all countries with listing counts.
curl "https://tulugar.com/api/v1/locations/countries"
# Response: [{ "name": "Paraguay", "listing_count": 2500 }, ...]Get cities in Paraguay
GET /api/v1/locations/cities?country=ParaguayPass the country name to see its cities.
curl "https://tulugar.com/api/v1/locations/cities?country=Paraguay"
# Response: [{ "name": "Asunción", "listing_count": 1200 }, ...]List neighborhoods in Asunción
GET /api/v1/locations/neighborhoods?city=Asunci%C3%B3nPass the city name to browse its neighborhoods.
curl "https://tulugar.com/api/v1/locations/neighborhoods?city=Asunci%C3%B3n"
# Response: [{ "name": "Villa Morra", "listing_count": 245 }, ...]Search listings in Villa Morra
GET /api/v1/listings?city=Asunci%C3%B3n&neighborhood=Villa+Morra&listing_type=saleSearch using city and neighborhood names as filters.
curl "https://tulugar.com/api/v1/listings?city=Asunci%C3%B3n&neighborhood=Villa+Morra&listing_type=sale&property_type=apartment&limit=10"
Response Format
List response
{
"data": [ ... ],
"pagination": {
"total": 150,
"limit": 20,
"offset": 0
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-04-10T..."
}
}Error response
{
"error": {
"code": "VALIDATION_ERROR",
"message": "city is required",
"status": 400
},
"meta": {
"request_id": "req_abc123"
}
}Pagination: Use limit (max 100) and offset on all list endpoints.
Locale: Pass ?locale=en to get translated titles and descriptions (en, es, pt).
Caching: Responses include Cache-Control headers. Listings cache for 2 minutes, locations and market data for 1 hour.
Authentication
Read endpoints are public — no key required. The Agent API (write) endpoints require an OAuth 2.1 access token (authorization code + PKCE). The simplest way to get one is to add the Tu Lugar connector in Claude or another MCP client — it runs the entire flow for you. Direct integrations use the standard flow described below. Send the token as a bearer header:
Authorization: Bearer YOUR_ACCESS_TOKEN
Scopes
| Scope | Grants |
|---|---|
| listings:read | Read your own listings and inquiries (incl. drafts) |
| listings:write | Create, edit, and publish listings; upload images |
| listings:delete | Archive your listings |
| profile:read | Read your account profile and status |
| profile:write | Update your account profile |
Authorization flow (direct integrations)
- Fetch discovery metadata from the
.well-knownendpoints below. - Register a client via Dynamic Client Registration (RFC 7591) at
POST /api/oauth/register. - Send the user to
/api/oauth/authorizewith a PKCES256challenge; they sign in and consent. - Exchange the returned code at
POST /api/oauth/tokenfor an access + refresh token. - Call the API with
Authorization: Bearer. Refresh tokens rotate on use.
Discovery endpoints
| /.well-known/oauth-protected-resource | Protected Resource Metadata (RFC 9728) |
| /.well-known/oauth-authorization-server | Authorization Server Metadata (RFC 8414) |
| POST /api/oauth/register | Dynamic Client Registration (RFC 7591) |
| GET /api/oauth/authorize | Authorization endpoint (PKCE S256) |
| POST /api/oauth/token | Token endpoint (authorization_code, refresh_token) |
Listings
Search, filter, and retrieve real estate listings.
Projects
Development projects (residential towers, gated communities, etc.). By default, only projects with available units are returned, sorted by verified first.
Companies
Real estate agencies and developers.
Agents
Real estate agents and professionals.
Locations
Countries, cities, and neighborhoods with listing counts.
Market Data
Aggregated market statistics and short-term rental data.
Calculators
Real-estate finance calculators — currency-agnostic and Paraguay-aware. Built for AI tool use; no auth required.
Agent API (write)
Authenticated endpoints for agents to create and manage their own listings. All write endpoints require an OAuth 2.1 bearer token with the scope shown on each row (see Authentication). Listing writes go through automated moderation before going public.
OpenAPI Specification
Two OpenAPI 3.1 documents are published. Use them with Swagger UI, Redoc, Postman, or to configure ChatGPT Actions.
/api/v1/openapi.json — the public read API (listings, projects, companies, agents, locations, market data, calculators).
/api/v1/openapi.yaml — the full spec including the Agent (write) endpoints and OAuth 2.1 security schemes (request/response schemas for create/update/publish, image upload, and leads).
Use Tu Lugar in your AI assistant (MCP)
Tu Lugar runs a Model Context Protocol (MCP) server so AI assistants can search listings and take action — list a property, manage your listings, or contact an agent — right inside the chat. Works with Claude, ChatGPT, Cursor, Windsurf, VS Code, and any MCP-compatible client. For a step-by-step, per-client guide, see the dedicated connect page.
Claude.ai (web) and Claude Desktop — full read + write via one-tap OAuth.
Copy the connector URL
https://tulugar.com/api/mcp
Add a custom connector
In Claude: Settings → Connectors → Add custom connector. Name it “Tu Lugar” and paste the URL.
Connect and go
Reads work right away. The first time you create or manage a listing, Claude shows a one-tap consent to connect your Tu Lugar account.
Available MCP Tools
| Tool | Access | Description |
|---|---|---|
| search_listings | Public | Search listings by city, price, bedrooms, property type |
| get_listing | Public | Full listing detail by ID or slug |
| search_projects | Public | Development projects (verified first, available units) |
| get_project | Public | Project detail with units, prices, developer |
| search_companies | Public | Agencies and developers |
| get_company | Public | One agency/developer: profile, rating, specialties, contact |
| get_agent | Public | One agent: profile, rating, reviews, specialties, contact |
| list_locations | Public | Countries, cities, neighborhoods with counts |
| get_market_summary | Public | Avg price, median, price/m² (USD-normalized) |
| get_str_data | Public | Airbnb nightly rates, occupancy, superhosts |
| mortgage_calculator | Public | Monthly payment, total interest, debt-to-income |
| create_lead | Public | Contact a listing’s agent (no account needed) |
| account_status | Public | Check whether your account is connected and can publish |
| connect_account | Public | Get a one-tap link to connect your Tu Lugar account |
| create_listing | Agent (OAuth) | Create a draft listing |
| upload_listing_image | Agent (OAuth) | Add a listing photo by URL |
| edit_listing | Agent (OAuth) | Update one of your listings |
| publish_listing | Agent (OAuth) | Submit a draft for review |
| close_listing | Agent (OAuth) | Close a sold/rented listing (removes it from results) |
| promote_listing | Agent (OAuth) | Feature a listing for ~14 days by spending one promotional credit |
| buy_promotional_credits | Agent (OAuth) | Get a Stripe checkout link to buy a promotional-credit pack |
| my_listings | Agent (OAuth) | List your listings and their status |
| my_inquiries | Agent (OAuth) | Buyer inquiries on your listings |
| reply_to_inquiry | Agent (OAuth) | Draft a reply to a lead + one-tap WhatsApp link to send it |
| share_listing_whatsapp | Agent (OAuth) | Ready-to-send WhatsApp message + branded image for your listing |
| send_whatsapp_verification | Agent (OAuth) | Send a WhatsApp code to verify your number (required to publish) |
| verify_whatsapp_code | Agent (OAuth) | Submit the 6-digit code to finish WhatsApp verification |
| save_search | Account (OAuth) | Save a search and get alerts when new matches appear |
| my_saved_searches | Account (OAuth) | List your saved searches and alert settings |
| delete_saved_search | Account (OAuth) | Delete a saved search (stops its alerts) |
OpenAPI Spec
The full API spec is also available at /api/v1/openapi.json for ChatGPT Actions and other OpenAPI-based integrations.
CRM & listing feeds
Agencies don't need to re-enter listings: Tu Lugar syncs inventory directly from real estate CRMs — Tokko Broker (API key), Wasi (API credentials), Adinco, and any CRM that emits the VRSync XML standard (Jetimob, Vista, Kenlo). New listings, removals, and price changes flow through automatically. Publishing is free, with no exclusivity, and leads go directly to the agency.
Per-CRM instructions for agencies, and integration details for CRM vendors who want to offer Tu Lugar as a publishing destination: connect your CRM.
Limits & fair use
Request rate: read endpoints allow 60 requests per minute; over that you get a 429 Too Many Requests.
Listing limits grow with your track record. There is no approval form to publish — new accounts start small and rise automatically as listings are approved. The same limits apply whether you publish from the website, the API, or an AI assistant.
| Level | How you reach it | Active | In review | New / day | Edits / day |
|---|---|---|---|---|---|
| New | Verified WhatsApp | 5 | 3 | 10 | 50 |
| Established | 1+ approved, 7+ days | 25 | 10 | 30 | 300 |
| Proven | 5+ approved, 30+ days | 100 | 30 | 100 | 1,000 |
| Verified company | Member of a verified company | 2,000 pooled | 50 | 200 | 5,000 |
“In review” is how many listings can await moderation at once — a slot frees the moment one is approved (usually within minutes), so a clean account can publish a large portfolio in one sitting. Editing a listing's title, description, or images re-triggers review and counts as an edit; price and availability changes are unlimited.
Need more?If you hit a limit you'll see a “Request a higher limit” option in the app — tell us how many you need and we'll review it. Verified companies above 2,000 and high-volume partners are handled this way.