Proyectos · API PÚBLICA V1

Listar proyectos

Devuelve la vista simple del mantenimiento mediante cursor, filtros y ordenación.

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
projects:read

Parámetros

limit

Número máximo de elementos por página. Por defecto 50, máximo 200.

cursor

Cursor opaco para continuar desde la respuesta anterior.

modifiedSince

Incluye registros creados o modificados después de esta fecha, interpretada en el timezone del tenant.

sort

Orden de los resultados. Antepón - para orden descendente.

code-codename-nameclientName-clientNameprojectStateName-projectStateNamecreatedAt-createdAtmodifiedAt-modifiedAt
code

Código exacto.

name

Nombre.

clientId

Cliente.

projectStateId

Estado.

active

Estado activo.

search

Búsqueda por código, nombre o cliente.

Respuesta

200Página de proyectos.

PublicProjectListItem

Proyecto en listado

Vista simple usada por el listado de mantenimiento.

PropiedadTipoDescripción
idobligatoriouuidIdentificador del proyecto.
codeobligatoriostringCódigo.
nameobligatoriostringNombre.
clientIduuid | nullCliente.
clientNamestring | nullNombre del cliente.
projectStateIduuid | nullEstado.
projectStateNamestring | nullNombre del estado.
projectStateColorstring | nullColor del estado.
activeobligatoriobooleanEstado activo.
closedobligatoriobooleanEstado cerrado.
cloneStateIdobligatoriointegerEstado del clonado.
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",
  "clientId": "a4c7603a-8c87-46c8-a3f5-09fbbe79f82e",
  "clientName": "Cliente SL",
  "projectStateName": "En curso",
  "projectStateColor": "#3498db",
  "active": true,
  "closed": false,
  "cloneStateId": 0,
  "createdAt": "2026-10-10T12:00:00",
  "modifiedAt": "2026-10-10T12:00:00"
}
Ejemplo de respuesta
{
  "items": [
    {
      "id": "0d3fa80a-d8aa-4a95-84b7-8f6a157005ea",
      "code": "OBR-2026-0042",
      "name": "Reforma Gran Vía",
      "clientId": "a4c7603a-8c87-46c8-a3f5-09fbbe79f82e",
      "clientName": "Cliente SL",
      "projectStateName": "En curso",
      "projectStateColor": "#3498db",
      "active": true,
      "closed": false,
      "cloneStateId": 0,
      "createdAt": "2026-10-10T12:00:00",
      "modifiedAt": "2026-10-10T12:00:00"
    }
  ],
  "nextCursor": "eyJ2ZXJzaW9uIjoxLCJvZmZzZXQiOjUwfQ",
  "hasMore": true
}

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.