List All Projects
Returns all projects with their relationships including estado, ubicacion, torres, and zonas sociales.
Response Fields
Indicates if the request was successful
{
"success": true,
"data": [
{
"id_proyecto": 1,
"nombre": "Torre del Sol",
"descripcion": "Proyecto residencial de lujo",
"fecha_inicio": "2024-01-15",
"fecha_finalizacion": "2025-12-31",
"presupuesto_inicial": "5000000000.00",
"presupuesto_final": "5500000000.00",
"metros_construidos": "15000.00",
"cantidad_locales": 10,
"cantidad_apartamentos": 120,
"cantidad_parqueaderos_vehiculo": 150,
"cantidad_parqueaderos_moto": 80,
"estrato": 5,
"numero_pisos": 20,
"numero_torres": 2,
"porcentaje_cuota_inicial_min": "30.00",
"valor_min_separacion": "5000000.00",
"plazo_cuota_inicial_meses": 12,
"id_estado": 1,
"id_ubicacion": 1,
"estado_proyecto": {
"id_estado": 1,
"nombre": "En Construcción"
},
"ubicacion": {
"id_ubicacion": 1,
"direccion": "Calle 123 #45-67",
"ciudad": {
"nombre": "Bogotá"
}
},
"torres": [],
"zonasSociales": []
}
]
}
Get Single Project
Retrieve detailed information about a specific project including all relationships.
Path Parameters
The unique identifier of the project
Response
Returns project with expanded relationships: estado_proyecto, ubicacion (with nested city/department/country), torres (with pisos), zonasSociales, politicasPrecios, and politicasComisiones.
{
"success": true,
"data": {
"id_proyecto": 1,
"nombre": "Torre del Sol",
"estado_proyecto": { "nombre": "En Construcción" },
"ubicacion": {
"direccion": "Calle 123 #45-67",
"ciudad": {
"nombre": "Bogotá",
"departamento": {
"nombre": "Cundinamarca",
"pais": { "nombre": "Colombia" }
}
}
},
"torres": [
{
"id_torre": 1,
"nombre_torre": "Torre A",
"pisos": []
}
],
"zonasSociales": [],
"politicasPrecios": [],
"politicasComisiones": []
}
}
Create Project
Create a new construction project.
Request Body
Project name (max 150 characters)
Project description (max 500 characters)
Project end date (must be >= fecha_inicio)
Total square meters to be built (min: 0)
Total number of commercial spaces (min: 0)
Total number of apartments (min: 0)
cantidad_parqueaderos_vehiculo
Total vehicle parking spaces (min: 0)
cantidad_parqueaderos_moto
Total motorcycle parking spaces (min: 0)
Socioeconomic stratum (1-6)
Number of floors (min: 1, max: 32767)
Number of towers (min: 1, max: 32767)
porcentaje_cuota_inicial_min
Minimum down payment percentage (0-100)
Minimum reservation amount (min: 0)
plazo_cuota_inicial_meses
Down payment term in months (min: 1, max: 32767)
Project status ID (must exist in estados table)
Location ID (must exist in ubicaciones table)
{
"nombre": "Torre del Sol",
"descripcion": "Proyecto residencial de lujo",
"fecha_inicio": "2024-01-15",
"fecha_finalizacion": "2025-12-31",
"presupuesto_inicial": 5000000000.00,
"cantidad_apartamentos": 120,
"estrato": 5,
"numero_pisos": 20,
"numero_torres": 2,
"porcentaje_cuota_inicial_min": 30.00,
"valor_min_separacion": 5000000.00,
"plazo_cuota_inicial_meses": 12,
"id_estado": 1,
"id_ubicacion": 1
}
{
"success": true,
"message": "Proyecto creado exitosamente",
"data": {
"id_proyecto": 1,
"nombre": "Torre del Sol",
"estado_proyecto": { "nombre": "En Construcción" },
"ubicacion": { "direccion": "Calle 123 #45-67" }
}
}
Update Project
Update an existing project. Validation rules are the same as creation.
Path Parameters
The unique identifier of the project to update
Request Body
Same as Create Project endpoint.
{
"success": true,
"message": "Proyecto actualizado exitosamente",
"data": {
"id_proyecto": 1,
"nombre": "Torre del Sol - Actualizado"
}
}
Delete Project
Delete a project. Cannot delete if the project has associated towers.
Path Parameters
The unique identifier of the project to delete
{
"success": true,
"message": "Proyecto eliminado exitosamente"
}
{
"success": false,
"message": "No se puede eliminar el proyecto porque tiene torres asociadas"
}
Get Projects by Status
Retrieve all projects filtered by status.
Path Parameters
The status ID to filter by
Get Projects by City
Retrieve all projects in a specific city.
Path Parameters
Search Projects
Search projects by name (case-insensitive).
Query Parameters
Search term (min 2 characters)
{
"success": true,
"data": [
{
"id_proyecto": 1,
"nombre": "Torre del Sol",
"estado_proyecto": { "nombre": "En Construcción" }
}
]
}
Get Project Summary
Get a comprehensive summary of a project with aggregated statistics.
Path Parameters
{
"success": true,
"data": {
"id_proyecto": 1,
"nombre": "Torre del Sol",
"descripcion": "Proyecto residencial de lujo",
"estado": "En Construcción",
"ubicacion": "Calle 123 #45-67, Bogotá",
"fecha_inicio": "2024-01-15",
"fecha_finalizacion": "2025-12-31",
"presupuesto_inicial": "5000000000.00",
"presupuesto_final": "5500000000.00",
"metros_construidos": "15000.00",
"estrato": 5,
"inventario": {
"locales": 10,
"apartamentos": 120,
"parqueaderos_vehiculo": 150,
"parqueaderos_moto": 80
},
"estructura": {
"numero_torres": 2,
"torres_registradas": 2,
"numero_pisos": 20,
"zonas_sociales": 5
},
"financiacion": {
"porcentaje_cuota_inicial_min": "30.00",
"valor_min_separacion": "5000000.00",
"plazo_cuota_inicial_meses": 12
}
}
}
Get Project Statistics
Get global statistics across all projects.
{
"success": true,
"data": {
"total_proyectos": 25,
"proyectos_por_estado": [
{
"estado": "En Construcción",
"total": 10
},
{
"estado": "Planificación",
"total": 8
},
{
"estado": "Completado",
"total": 7
}
],
"presupuesto_total": "125000000000.00",
"metros_totales_construidos": "375000.00",
"total_apartamentos": 3000,
"total_locales": 250
}
}
Nested Resources
Projects serve as the parent resource for many nested endpoints:
- GET
/api/proyectos/{id_proyecto}/torres - Get all towers in a project
- GET
/api/proyectos/{id_proyecto}/apartamentos - Get all apartments in a project
- GET
/api/proyectos/{id_proyecto}/locales - Get all commercial spaces in a project
- GET
/api/proyectos/{id_proyecto}/zonas-sociales - Get all social areas in a project
- GET
/api/proyectos/{id_proyecto}/politicas-comision - Get commission policies for a project
- GET
/api/proyectos/{id_proyecto}/politicas-precio - Get pricing policies for a project
- GET
/api/proyectos/{id_proyecto}/apartamentos/estadisticas - Get apartment statistics
- GET
/api/proyectos/{id_proyecto}/apartamentos/disponibles - Get available apartments
- GET
/api/proyectos/{id_proyecto}/locales/estadisticas - Get commercial space statistics
- GET
/api/proyectos/{id_proyecto}/locales/disponibles - Get available commercial spaces