Proyectos · API PÚBLICA V1

Consultar un proyecto

Obtiene la ficha pública completa, incluidas las coordenadas GPS.

Conectar con un entornoSin token

La petición sale de tu navegador hacia el entorno indicado. La API key y el token permanecen en la memoria de esta página.

Introduce las credenciales del entorno que quieras probar.
GET/api/public/v1/projects/{id}
projects:read

Parámetros

id

Identificador del proyecto.

Respuesta

200Proyecto encontrado.

PublicProject

Proyecto

Ficha pública completa del proyecto, con nombres de catálogos y estado del clonado.

PropiedadTipoDescripción
idobligatoriouuidIdentificador estable del proyecto.
codestring | nullCódigo manual. Es obligatorio si no se indica una serie y no existe una serie predeterminada.
nameobligatoriostringNombre del proyecto.
numberingLineIduuid | nullSerie de proyectos usada para generar el código.
descriptionstring | nullDescripción general.
integrationCodestring | nullCódigo de referencia del sistema externo.
colorstring | nullColor identificativo.
clientIduuid | nullCliente asociado.
projectStateIduuid | nullEstado del proyecto.
projectTypeIduuid | nullTipo de proyecto.
addressstring | nullDirección de la obra.
zipCodestring | nullCódigo postal.
countryIdinteger | nullPaís.
regionIdinteger | nullRegión o provincia.
townstring | nullLocalidad.
latitudenumber | nullLatitud GPS.
longitudenumber | nullLongitud GPS.
gpsPrecisioninteger | nullPrecisión GPS en metros.
expectedStartDatedate-time | nullInicio previsto.
expectedEndDatedate-time | nullFin previsto.
startWorkDatedate-time | nullInicio real de los trabajos.
endWorkDatedate-time | nullFin de los trabajos.
estimatedEndWorkDatedate-time | nullFin estimado actualizado.
contractualEndDatedate-time | nullFin contractual.
realEndWorkDatedate-time | nullFin real.
executionTimestring | nullPlazo de ejecución.
salesBudgetnumberPresupuesto de venta.
changeOrdersBudgetnumberPresupuesto de contradictorios.
penaltiesstring | nullCondiciones de penalización.
clientPaymentFormstring | nullCondiciones de pago del cliente.
retentionsstring | nullCondiciones de retenciones.
bankGuarantystring | nullCondiciones de aval bancario.
paymentFormIduuid | nullForma de pago.
vatTypeIduuid | nullTipo de IVA.
pitRetentionTypeIduuid | nullTipo de retención IRPF.
taxRemarksstring | nullObservaciones fiscales.
overheadPercentagenumber | nullPorcentaje de gastos generales.
industrialProfitPercentagenumber | nullPorcentaje de beneficio industrial.
exportOverheadPercentagenumber | nullPorcentaje de gastos generales usado en exportaciones.
exportIndustrialProfitPercentagenumber | nullPorcentaje de beneficio industrial usado en exportaciones.
currencystring | nullCódigo de moneda.
activebooleanEstado activo.
closedbooleanIndica si el proyecto está cerrado.
clientNamestring | nullNombre del cliente.
projectStateNamestring | nullNombre del estado.
projectTypeNamestring | nullNombre del tipo de proyecto.
countryNamestring | nullNombre del país.
regionNamestring | nullNombre de la región.
paymentFormNamestring | nullNombre de la forma de pago.
vatTypeNamestring | nullNombre del tipo de IVA.
pitRetentionTypeNamestring | nullNombre del tipo de retención.
cloneStateIdobligatoriointegerEstado del proceso de clonado: 0 normal, -1 clonando y -2 fallido.
createdAtobligatoriodate-timeFecha de creación.
modifiedAtobligatoriodate-timeÚltima modificación.
Ejemplo JSON
{
  "id": "0d3fa80a-d8aa-4a95-84b7-8f6a157005ea",
  "code": "OBR-2026-0042",
  "name": "Reforma Gran Vía",
  "numberingLineId": "89f378ce-b1fc-49ef-97f9-0806f32b8438",
  "description": "Reforma integral de oficinas",
  "clientId": "a4c7603a-8c87-46c8-a3f5-09fbbe79f82e",
  "address": "Gran Vía 42",
  "zipCode": "28013",
  "town": "Madrid",
  "latitude": 40.4201,
  "longitude": -3.7058,
  "gpsPrecision": 5,
  "expectedStartDate": "2026-11-02T08:00:00",
  "expectedEndDate": "2027-04-30T18:00:00",
  "salesBudget": 350000,
  "overheadPercentage": 7.5,
  "industrialProfitPercentage": 6,
  "currency": "EUR",
  "active": true,
  "closed": false,
  "clientName": "Cliente SL",
  "projectStateName": "En curso",
  "projectTypeName": "Reforma",
  "cloneStateId": 0,
  "createdAt": "2026-10-10T12:00:00",
  "modifiedAt": "2026-10-10T12:00:00"
}
Ejemplo de respuesta
{
  "id": "0d3fa80a-d8aa-4a95-84b7-8f6a157005ea",
  "code": "OBR-2026-0042",
  "name": "Reforma Gran Vía",
  "numberingLineId": "89f378ce-b1fc-49ef-97f9-0806f32b8438",
  "description": "Reforma integral de oficinas",
  "clientId": "a4c7603a-8c87-46c8-a3f5-09fbbe79f82e",
  "address": "Gran Vía 42",
  "zipCode": "28013",
  "town": "Madrid",
  "latitude": 40.4201,
  "longitude": -3.7058,
  "gpsPrecision": 5,
  "expectedStartDate": "2026-11-02T08:00:00",
  "expectedEndDate": "2027-04-30T18:00:00",
  "salesBudget": 350000,
  "overheadPercentage": 7.5,
  "industrialProfitPercentage": 6,
  "currency": "EUR",
  "active": true,
  "closed": false,
  "clientName": "Cliente SL",
  "projectStateName": "En curso",
  "projectTypeName": "Reforma",
  "cloneStateId": 0,
  "createdAt": "2026-10-10T12:00:00",
  "modifiedAt": "2026-10-10T12:00:00"
}

Errores

400Solicitud incorrectaapplication/json
401Autenticación inválida o no proporcionadaapplication/json
403Permisos insuficientesapplication/json
404Recurso no encontradoapplication/json
409Conflicto con el estado actualapplication/json
410Recurso ya no disponibleapplication/json
422Error de validaciónapplication/json
429Límite de solicitudes excedidoapplication/json
Ver modelo de error

PublicApiError

Error de API

Formato estable de los errores públicos.

PropiedadTipoDescripción
statusobligatoriointegerCódigo HTTP.
codeobligatoriostringCódigo estable para tratamiento automático.
messageobligatoriostringMensaje legible.
correlationIdobligatoriostringIdentificador para soporte y trazabilidad.
currentConcurrencyTokenstring | nullToken actual cuando existe un conflicto.
validationErrorsobject<string,string[]>Errores agrupados por campo.
Ejemplo JSON
{
  "status": 422,
  "code": "validation_error",
  "message": "The request is invalid.",
  "correlationId": "01J9EXAMPLE",
  "validationErrors": {
    "unitCode": [
      "The unit does not exist."
    ]
  }
}
Probar endpointPetición directa desde el navegador

Petición

RespuestaSin ejecutar
Configura la conexión y ejecuta la petición.