Datos del proyecto
Estos endpoints permiten a los propietarios de claves API y a los miembros del proyecto leer estadísticas agregadas y listas de sesiones y subidas en todos los proyectos a los que tienen acceso. Están diseñados para el panel de control y herramientas internas, no para clientes finales.
Autenticación
Todos los endpoints de datos del proyecto admiten dos modos de autenticación. Pasa un JWT del panel como Bearer token para consultar todos los proyectos que posees o a los que perteneces, o pasa una clave de API (Bearer aptr_…) para restringir los resultados al proyecto de esa clave.
Sesiones recientes
Devuelve las sesiones de subida creadas más recientemente en todos los proyectos a los que el llamador tiene acceso. Útil para feeds de actividad del panel de control.
/api/v1/sessions/recentParámetros de consulta
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| limit | integer | No | Cantidad de registros a devolver. Predeterminado 10, máximo 50. |
Respuesta
Devuelve un arreglo de objetos de fila de sesión (sin envoltorio de paginación).
| Campo | Tipo | Descripción |
|---|---|---|
| id | string | UUID de la sesión. |
| createdAt | string | Fecha-hora ISO 8601 de creación de la sesión. |
| expiresAt | string | Fecha-hora ISO 8601 de expiración de la sesión. |
| status | string | Uno de pending, active, expired, completed, failed. |
| projectId | string | UUID del proyecto al que pertenece esta sesión. |
| projectName | string | Nombre visible del proyecto. |
| imagesCount | integer | Cantidad total de registros de subida en esta sesión. |
| imagesDelivered | integer | Cantidad de subidas con al menos una entrega exitosa. |
| imagesFailed | integer | Cantidad de subidas en las que algún destino falló. |
| destinationsCount | integer | Cantidad de destinos a los que la sesión está distribuyendo. |
| tags | string[] | null | Etiquetas de la sesión, o null si no se establecieron. |
| longPollingEnabled | boolean | Indica si el long polling está habilitado para esta sesión. |
curl https://api.apertur.ca/api/v1/sessions/recent?limit=10 \ -H "Authorization: Bearer <jwt-token>"
Listar sesiones
Lista paginada de sesiones de subida en todos los proyectos a los que el llamador tiene acceso.
/api/v1/sessionsParámetros de consulta
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| page | integer | No | Número de página a devolver. Predeterminado 1. |
| pageSize | integer | No | Cantidad de registros por página. Predeterminado 20, máximo 100. |
Respuesta
Devuelve un envoltorio paginado. El arreglo data contiene objetos de fila de sesión con la misma forma que /sessions/recent.
{
"data": [/* array of session row objects */],
"total": 134,
"page": 1,
"pageSize": 20,
"totalPages": 7
}| Campo | Tipo | Descripción |
|---|---|---|
| id | string | UUID de la sesión. |
| createdAt | string | Fecha-hora ISO 8601 de creación de la sesión. |
| expiresAt | string | Fecha-hora ISO 8601 de expiración de la sesión. |
| status | string | Uno de pending, active, expired, completed, failed. |
| projectId | string | UUID del proyecto al que pertenece esta sesión. |
| projectName | string | Nombre visible del proyecto. |
| imagesCount | integer | Cantidad total de registros de subida en esta sesión. |
| imagesDelivered | integer | Cantidad de subidas con al menos una entrega exitosa. |
| imagesFailed | integer | Cantidad de subidas en las que algún destino falló. |
| destinationsCount | integer | Cantidad de destinos a los que la sesión está distribuyendo. |
| tags | string[] | null | Etiquetas de la sesión, o null si no se establecieron. |
| longPollingEnabled | boolean | Indica si el long polling está habilitado para esta sesión. |
curl "https://api.apertur.ca/api/v1/sessions?page=1&pageSize=20" \ -H "Authorization: Bearer <jwt-token>"
Subidas recientes
Devuelve los registros de subida recibidos más recientemente en todos los proyectos a los que el llamador tiene acceso, con conteos de entrega por destino.
/api/v1/uploads/recentParámetros de consulta
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| limit | integer | No | Cantidad de registros a devolver. Predeterminado 10, máximo 50. |
Respuesta
Devuelve un arreglo de objetos de fila de subida (sin envoltorio de paginación).
| Campo | Tipo | Descripción |
|---|---|---|
| id | string | UUID del registro de subida. |
| filename | string | Nombre de archivo original del archivo subido. |
| sizeBytes | integer | Tamaño del archivo en bytes. |
| mimeType | string | Tipo MIME detectado de la subida. |
| source | string | Uno de camera, gallery, url, google_drive, google_photos, dropbox, onedrive, box, instagram. |
| isEncrypted | boolean | Indica si el archivo está almacenado cifrado en el cliente. |
| createdAt | string | Fecha-hora ISO 8601 cuando se recibió la subida. |
| sessionId | string | UUID de la sesión de subida principal. |
| projectId | string | UUID del proyecto al que pertenece esta subida. |
| projectName | string | Nombre visible del proyecto. |
| destinationsTotal | integer | Cantidad total de destinos a los que se está entregando esta subida. |
| destinationsDelivered | integer | Cantidad de destinos que han recibido la subida con éxito. |
| destinationsFailed | integer | Cantidad de destinos que han fallado de forma permanente. |
| destinationsBreakdown | object[] | Arreglo de objetos { type, count } agrupando los resultados de entrega por tipo de destino. |
| status | string | Estado derivado: delivered, failed, partial, pending o stored_only. Ver la nota debajo. |
Derivación del estado de subida
delivered = todos los destinos enviaron con éxito. failed = al menos un destino terminó y todos fallaron. partial = mezcla de entregados y fallidos. pending = algunos destinos aún no han reportado. stored_only = no se despacharon destinos (la imagen solo está almacenada en el servidor).
curl https://api.apertur.ca/api/v1/uploads/recent?limit=10 \ -H "Authorization: Bearer <jwt-token>"
Listar subidas
Lista paginada de registros de subida en todos los proyectos a los que el llamador tiene acceso.
/api/v1/uploadsParámetros de consulta
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| page | integer | No | Número de página a devolver. Predeterminado 1. |
| pageSize | integer | No | Cantidad de registros por página. Predeterminado 20, máximo 100. |
Respuesta
Devuelve un envoltorio paginado. El arreglo data contiene objetos de fila de subida con la misma forma que /uploads/recent.
{
"data": [/* array of upload row objects */],
"total": 482,
"page": 1,
"pageSize": 20,
"totalPages": 25
}| Campo | Tipo | Descripción |
|---|---|---|
| id | string | UUID del registro de subida. |
| filename | string | Nombre de archivo original del archivo subido. |
| sizeBytes | integer | Tamaño del archivo en bytes. |
| mimeType | string | Tipo MIME detectado de la subida. |
| source | string | Uno de camera, gallery, url, google_drive, google_photos, dropbox, onedrive, box, instagram. |
| isEncrypted | boolean | Indica si el archivo está almacenado cifrado en el cliente. |
| createdAt | string | Fecha-hora ISO 8601 cuando se recibió la subida. |
| sessionId | string | UUID de la sesión de subida principal. |
| projectId | string | UUID del proyecto al que pertenece esta subida. |
| projectName | string | Nombre visible del proyecto. |
| destinationsTotal | integer | Cantidad total de destinos a los que se está entregando esta subida. |
| destinationsDelivered | integer | Cantidad de destinos que han recibido la subida con éxito. |
| destinationsFailed | integer | Cantidad de destinos que han fallado de forma permanente. |
| destinationsBreakdown | object[] | Arreglo de objetos { type, count } agrupando los resultados de entrega por tipo de destino. |
| status | string | Estado derivado: delivered, failed, partial, pending o stored_only. Ver la nota debajo. |
curl "https://api.apertur.ca/api/v1/uploads?page=1&pageSize=20" \ -H "Authorization: Bearer <jwt-token>"
Estadísticas agregadas
Devuelve métricas agregadas en todos los proyectos a los que el llamador tiene acceso, incluyendo conteos del mes actual y los proyectos principales por actividad.
/api/v1/statsRespuesta
| Campo | Tipo | Descripción |
|---|---|---|
| sessionsThisMonth | integer | Cantidad de sesiones creadas en el mes calendario actual. |
| sessionsTotal | integer | Cantidad total histórica de sesiones. |
| imagesUploaded | integer | Cantidad total histórica de registros subidos. |
| imagesDelivered | integer | Cantidad de registros de subida con al menos una entrega exitosa. |
| deliverySuccessRate | integer | Porcentaje 0–100, calculado a partir de enviados / (enviados + fallidos) por destino. |
| totalProjects | integer | Cantidad total de proyectos a los que el llamador tiene acceso. |
| activeKeys | integer | Cantidad de claves API actualmente activas en esos proyectos. |
| topProjects | object[] | Arreglo de hasta 10 objetos { id, name, sessions } clasificados por cantidad de sesiones este mes. |
curl https://api.apertur.ca/api/v1/stats \ -H "Authorization: Bearer <jwt-token>"