API para Desarrolladores
Integra PUBLIX con tu CRM, portal inmobiliario o app. Crea y gestiona propiedades, genera contenido con IA y publica a redes sociales via REST API.
Como funciona
La API publica de PUBLIX te permite automatizar todo el flujo de contenido inmobiliario: crear propiedades, generar descripciones con IA, imagenes, PDFs, videos y publicar a redes sociales. Todo con una simple API REST autenticada con API keys.
Configuracion en 3 pasos
Genera tu API Key
Anda a la pestana API Keys y crea una nueva key. Guardala en un lugar seguro, no se puede recuperar despues.
Hace tu primer request
Usa tu key en el header X-API-Key o Authorization: Bearer pk_...
curl -X GET https://publix.ar/api/v1/account \
-H "X-API-Key: pk_live_TU_API_KEY"Crea tu primer listing
Envia los datos de la propiedad como JSON y PUBLIX genera todo el contenido.
curl -X POST https://publix.ar/api/v1/listings \ -H "X-API-Key: pk_live_TU_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "tipo_propiedad": "Departamento", "tipo_operacion": "Venta", "direccion": "Av. Corrientes 1234, Piso 5", "ciudad": "CABA", "provincia": "Buenos Aires", "precio": 150000, "moneda": "USD", "dormitorios": 2, "banos": 1, "metros_cubiertos": 75, "agente_nombre": "Tu Nombre", "agente_telefono": "+54 11 1234-5678", "agente_email": "tu@email.com" }'
Formato de respuesta
Todas las respuestas siguen el mismo formato:
// Exito { "ok": true, "data": { ... } } // Error { "ok": false, "error": "Mensaje de error" } // Lista paginada { "ok": true, "data": [ ... ], "pagination": { "total": 42, "page": 1, "limit": 20, "pages": 3 } }
Autenticacion
Todas las requests a /api/v1/* requieren una API key. Dos formas de enviarla:
# Opcion 1: Header dedicado X-API-Key: pk_live_abc123... # Opcion 2: Bearer token Authorization: Bearer pk_live_abc123...
Las keys empiezan con pk_live_ (produccion) o pk_test_ (desarrollo). Cada usuario puede tener hasta 5 keys activas.
Crear nueva API Key
Dale un nombre descriptivo para identificarla (ej: "CRM Produccion", "Portal Web").
Mis API Keys
Cargando...
Base URL: https://publix.ar/api/v1
Todos los endpoints requieren autenticacion via API key.
Cuenta
API Keys (requieren JWT, no API key)
Listings
Generar contenido
Publicar
Descargar archivos
Schema de un listing (campos del POST)
{
"tipo_propiedad": "Departamento", // Casa, Departamento, PH, Local, Oficina, Terreno, Cochera, Galpon
"tipo_operacion": "Venta", // Venta, Alquiler, Alquiler temporal
"direccion": "Av. Corrientes 1234", // requerido
"ciudad": "CABA", // requerido
"provincia": "Buenos Aires", // requerido, ver lista completa abajo
"barrio": "Palermo", // opcional
"precio": 150000, // requerido, > 0
"moneda": "USD", // USD o ARS
"expensas": 45000, // opcional, en ARS
"ambientes": 3, // opcional
"dormitorios": 2, // opcional
"banos": 1, // opcional
"toilettes": 0, // opcional
"metros_cubiertos": 75, // opcional
"metros_semicubiertos": null, // opcional
"metros_terreno": null, // opcional
"cocheras": 1, // opcional
"antiguedad": "10 anos", // opcional, texto libre
"disposicion": "Frente", // opcional
"orientacion": "Norte", // opcional
"estado": "Excelente", // opcional
"amenidades": ["Pileta", "Gimnasio"], // opcional, ver lista completa
"descripcion_agente": "Luminoso...", // opcional, notas para la IA
"agente_nombre": "Juan Perez", // requerido
"agente_telefono": "+54 11 1234-5678", // requerido
"agente_email": "juan@imb.com", // requerido, email valido
"agente_inmobiliaria": "Mi Inmob.", // opcional
"agente_matricula": "CUCICBA 1234" // opcional
}Amenidades validas: Pileta, Gimnasio, Seguridad 24h, Laundry, SUM, Parrilla, Solarium, Balcon, Terraza, Jardin, Quincho, Cochera cubierta, Baulera, Ascensor, Aire acondicionado, Calefaccion, Agua corriente, Gas natural, Cloacas, Mascotas permitidas
Provincias: Buenos Aires, CABA, Catamarca, Chaco, Chubut, Cordoba, Corrientes, Entre Rios, Formosa, Jujuy, La Pampa, La Rioja, Mendoza, Misiones, Neuquen, Rio Negro, Salta, San Juan, San Luis, Santa Cruz, Santa Fe, Santiago del Estero, Tierra del Fuego, Tucuman
Python
import requests API_KEY = "pk_live_TU_API_KEY" BASE = "https://publix.ar/api/v1" headers = {"X-API-Key": API_KEY} # 1. Crear listing listing = requests.post(f"{BASE}/listings", json={ "tipo_propiedad": "Departamento", "tipo_operacion": "Venta", "direccion": "Av. Corrientes 1234", "ciudad": "CABA", "provincia": "Buenos Aires", "precio": 150000, "moneda": "USD", "dormitorios": 2, "banos": 1, "metros_cubiertos": 75, "agente_nombre": "Tu Nombre", "agente_telefono": "+54 11 1234-5678", "agente_email": "tu@email.com", }, headers=headers) listing_id = listing.json()["data"]["id"] print(f"Listing creado: {listing_id}") # 2. Generar todo el contenido (texto + PDF + imagen) result = requests.post( f"{BASE}/listings/{listing_id}/generate/all", headers=headers ) print(result.json()["data"]["descripcion_profesional"]) # 3. Publicar en Instagram pub = requests.post( f"{BASE}/listings/{listing_id}/publish/instagram", headers=headers ) print(pub.json())
JavaScript / Node.js
const API_KEY = "pk_live_TU_API_KEY"; const BASE = "https://publix.ar/api/v1"; const headers = { "X-API-Key": API_KEY, "Content-Type": "application/json", }; // 1. Crear listing const res = await fetch(`${BASE}/listings`, { method: "POST", headers, body: JSON.stringify({ tipo_propiedad: "Departamento", tipo_operacion: "Venta", direccion: "Av. Corrientes 1234", ciudad: "CABA", provincia: "Buenos Aires", precio: 150000, moneda: "USD", dormitorios: 2, banos: 1, metros_cubiertos: 75, agente_nombre: "Tu Nombre", agente_telefono: "+54 11 1234-5678", agente_email: "tu@email.com", }), }); const { data } = await res.json(); console.log("Listing creado:", data.id); // 2. Generar contenido const gen = await fetch( `${BASE}/listings/${data.id}/generate/all`, { method: "POST", headers } ); const content = await gen.json(); console.log(content.data.descripcion_profesional);
PHP
$apiKey = "pk_live_TU_API_KEY"; $base = "https://publix.ar/api/v1"; // Crear listing $ch = curl_init("$base/listings"); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ "X-API-Key: $apiKey", "Content-Type: application/json", ], CURLOPT_POSTFIELDS => json_encode([ "tipo_propiedad" => "Departamento", "tipo_operacion" => "Venta", "direccion" => "Av. Corrientes 1234", "ciudad" => "CABA", "provincia" => "Buenos Aires", "precio" => 150000, "moneda" => "USD", "agente_nombre" => "Tu Nombre", "agente_telefono" => "+54 11 1234-5678", "agente_email" => "tu@email.com", ]), ]); $response = json_decode(curl_exec($ch), true); echo "Listing: " . $response["data"]["id"];
Flujo completo recomendado
## Flujo tipico de integracion 1. POST /listings → Crear propiedad con datos JSON 2. POST /listings/{id}/photos → Subir fotos (multipart/form-data) 3. POST /listings/{id}/generate/all → Genera texto IA + PDF + imagen 4. POST /listings/{id}/generate/video → (Opcional) Genera video reel 5. POST /listings/{id}/publish/instagram → Publica a Instagram 6. GET /listings/{id}/download/pdf → Descarga el PDF para tu portal