GitScrum / Docs

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. Incluye Authorization: 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ámetroTipoDescripción
company_slugstringIdentificador del workspace
project_slugstringIdentificador 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-trackings

Inicia un temporizador en la tarea especificada. Solo puede haber un temporizador activo a la vez.

Cuerpo de la solicitud

CampoTipoRequeridoDescripción
company_slugstringIdentificador del workspace
project_slugstringIdentificador del proyecto
task_uuidstringTarea 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ámetroTipoDescripción
idintegerID de la entrada de control de tiempo

Cuerpo de la solicitud

CampoTipoRequeridoDescripción
company_slugstringIdentificador del workspace
project_slugstringIdentificador 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-trackings

Crea una entrada de tiempo manual con tiempos de inicio y fin explícitos.

Cuerpo de la solicitud

CampoTipoRequeridoDescripción
company_slugstringIdentificador del workspace
project_slugstringIdentificador del proyecto
task_uuidstringUUID de la tarea
started_atdatetimeHora de inicio (ISO 8601)
ended_atdatetimeHora de fin (ISO 8601)
descriptionstringNoEn 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ámetroTipoDescripción
idintegerID 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

CampoTipoDescripción
idintegerID de la entrada de tiempo
task_uuidstringUUID de la tarea asociada
userobjectUsuario que registró tiempo
started_atdatetimeHora de inicio del temporizador
ended_atdatetimeHora de fin del temporizador (null si está en ejecución)
duration_minutesintegerDuración total en minutos
descriptionstringDescripción del trabajo
is_manualbooleanSi la entrada fue creada manualmente
created_atdatetimeTimestamp de creación del registro