Control de Tiempo
Inicia, detén y gestiona el control de tiempo en tareas. Accede a análisis, informes de equipo e insights de productividad.
REST API — Todos los endpoints requieren autenticación mediante Bearer token. IncluyeAuthorization: Bearer {token}en cada solicitud. Los tokens se gestionan en Configuración de GitScrum → API. Base URL:https://services.gitscrum.com— Todas las rutas de solicitud en esta documentación son relativas a esta URL base.
Registra el tiempo invertido en tareas con temporizadores de inicio/parada o entradas manuales. Accede a análisis, informes de equipo e insights de productividad.
Listar entradas de tiempo
GET /time-trackings?company_slug={slug}&project_slug={slug}Devuelve entradas de tiempo de un proyecto. Soporta filtrado por fecha, usuario y estado de facturación.
Parámetros de query
| Parámetro | Tipo | Descripción |
|---|---|---|
company_slug | string | Identificador del workspace |
project_slug | string | Identificador del proyecto |
Obtener temporizador activo
GET /time-trackings/active?company_slug={slug}&project_slug={slug}Devuelve el temporizador en ejecución, si existe. Devuelve null cuando no hay temporizador activo.
Respuesta
{
"data": {
"id": 1234,
"task_uuid": "abc-def-123",
"user": {
"username": "johndoe",
"name": "John Doe"
},
"started_at": "2026-02-07T09:00:00Z",
"ended_at": null,
"duration_minutes": null,
"description": "Working on auth module",
"is_manual": false,
"created_at": "2026-02-07T09:00:00Z"
}
}Iniciar temporizador
POST /time-trackingsInicia un temporizador en la tarea especificada. Solo puede haber un temporizador activo a la vez.
Cuerpo de la solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
company_slug | string | Sí | Identificador del workspace |
project_slug | string | Sí | Identificador del proyecto |
task_uuid | string | Sí | Tarea en la que registrar tiempo |
Ejemplo
curl -X POST https://services.gitscrum.com/time-trackings \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"company_slug": "acme",
"project_slug": "web-app",
"task_uuid": "abc-def-123"
}'Respuesta
{
"data": {
"id": 1234,
"task_uuid": "abc-def-123",
"started_at": "2026-02-07T09:00:00Z",
"ended_at": null,
"duration_minutes": null,
"is_manual": false,
"created_at": "2026-02-07T09:00:00Z"
}
}Detener temporizador
PUT /time-trackings/{id}Detiene el temporizador en ejecución y registra la entrada de tiempo.
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
id | integer | ID de la entrada de control de tiempo |
Cuerpo de la solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
company_slug | string | Sí | Identificador del workspace |
project_slug | string | Sí | Identificador del proyecto |
Ejemplo
curl -X PUT https://services.gitscrum.com/time-trackings/1234 \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"company_slug": "acme",
"project_slug": "web-app"
}'Respuesta
{
"data": {
"id": 1234,
"task_uuid": "abc-def-123",
"started_at": "2026-02-07T09:00:00Z",
"ended_at": "2026-02-07T10:30:00Z",
"duration_minutes": 90,
"is_manual": false,
"created_at": "2026-02-07T09:00:00Z"
}
}Crear entrada manual
POST /time-trackingsCrea una entrada de tiempo manual con tiempos de inicio y fin explícitos.
Cuerpo de la solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
company_slug | string | Sí | Identificador del workspace |
project_slug | string | Sí | Identificador del proyecto |
task_uuid | string | Sí | UUID de la tarea |
started_at | datetime | Sí | Hora de inicio (ISO 8601) |
ended_at | datetime | Sí | Hora de fin (ISO 8601) |
description | string | No | En qué se trabajó |
Respuesta
{
"data": {
"id": 1235,
"task_uuid": "abc-def-123",
"started_at": "2026-02-06T14:00:00Z",
"ended_at": "2026-02-06T16:30:00Z",
"duration_minutes": 150,
"description": "Code review for PR #42",
"is_manual": true,
"created_at": "2026-02-07T09:15:00Z"
}
}Eliminar entrada de tiempo
DELETE /time-trackings/{id}?company_slug={slug}&project_slug={slug}Elimina permanentemente una entrada de control de tiempo.
Parámetros de ruta
| Parámetro | Tipo | Descripción |
|---|---|---|
id | integer | ID de la entrada de tiempo |
Análisis de control de tiempo
GET /time-trackings/analytics?company_slug={slug}&project_slug={slug}Devuelve datos de análisis de control de tiempo incluyendo horas totales, promedios y tendencias.
Ejemplo
curl https://services.gitscrum.com/time-trackings/analytics?company_slug=acme&project_slug=web-app \
-H "Authorization: Bearer {token}"Respuesta
{
"data": {
"total_hours": 245.5,
"average_daily_hours": 6.2,
"top_contributors": [],
"by_task_type": [],
"trend": []
}
}Informe de tiempo del equipo
GET /time-trackings/team?company_slug={slug}&project_slug={slug}Devuelve datos de control de tiempo a nivel de equipo con desglose por miembro.
Respuesta
{
"data": {
"team_members": [
{
"username": "johndoe",
"total_hours": 38.5,
"tasks_tracked": 12
}
]
}
}Informes de tiempo
GET /time-trackings/reports?company_slug={slug}&project_slug={slug}Devuelve informes de tiempo completos con opciones de filtrado y agrupación.
Informe de productividad
GET /time-trackings/productivity?company_slug={slug}&project_slug={slug}Devuelve métricas de productividad incluyendo tiempo de enfoque, cambios de contexto y puntuaciones de eficiencia.
Línea de tiempo
GET /time-trackings/timeline?company_slug={slug}&project_slug={slug}Devuelve entradas de tiempo en una vista de línea de tiempo, ordenadas cronológicamente.
Referencia de campos
| Campo | Tipo | Descripción |
|---|---|---|
id | integer | ID de la entrada de tiempo |
task_uuid | string | UUID de la tarea asociada |
user | object | Usuario que registró tiempo |
started_at | datetime | Hora de inicio del temporizador |
ended_at | datetime | Hora de fin del temporizador (null si está en ejecución) |
duration_minutes | integer | Duración total en minutos |
description | string | Descripción del trabajo |
is_manual | boolean | Si la entrada fue creada manualmente |
created_at | datetime | Timestamp de creación del registro |