Time Data · Timeglass API

Tracked activities, their fine-grained items, member-day timesheets built from them, and the raw minute log with its screenshots.

List Activities

GET /v1/activities

Activity records: one row per member, day, and project grouping, with AI-written objectives. Durations are minutes of tracked work.

Query parameters

  • limit · integer
  • cursor · string
  • start · string · date (YYYY-MM-DD)
  • end · string · date (YYYY-MM-DD)
  • member_id · string
  • team_id · string · uuid
  • project_id · string · uuid
  • client_id · string · uuid
  • category_id · string · uuid

Response 200

  • data · array of object · required
    • activity_id · string · uuid · required
    • member_id · string · required
    • date · string · required
    • team_id · string · uuid · nullable · required
    • project_id · string · uuid · nullable · required
    • client_id · string · uuid · nullable · required
    • category_id · string · uuid · nullable · required
    • objective · string · nullable · required
    • duration_minutes · number · required
    • activity_item_count · number · nullable · required
    • latest_activity_at · string · nullable · required
    • review_status · string · nullable · required
  • next_cursor · string · nullable · required
curl "https://api.timeglass.ai/v1/activities" \
  -H "Authorization: Bearer $TIMEGLASS_API_KEY"

Get an Activity

GET /v1/activities/{activityId}

Path parameters

  • activityId · string · uuid · required

Response 200

  • activity_id · string · uuid · required
  • member_id · string · required
  • date · string · required
  • team_id · string · uuid · nullable · required
  • project_id · string · uuid · nullable · required
  • client_id · string · uuid · nullable · required
  • category_id · string · uuid · nullable · required
  • objective · string · nullable · required
  • duration_minutes · number · required
  • activity_item_count · number · nullable · required
  • latest_activity_at · string · nullable · required
  • review_status · string · nullable · required
  • actions · string · nullable · required
  • key_details · string · nullable · required
curl "https://api.timeglass.ai/v1/activities/4bfe4a4b-c86b-4b8e-b3f5-3d1c4a2e9f10" \
  -H "Authorization: Bearer $TIMEGLASS_API_KEY"

List Activity Items

GET /v1/activities/{activityId}/items

The fine-grained work segments inside one activity, in chronological order: what was worked on, in which apps, for how long.

Path parameters

  • activityId · string · uuid · required

Query parameters

  • limit · integer
  • cursor · string

Response 200

  • data · array of object · required
    • activity_item_id · string · uuid · required
    • start_time · string · required
    • end_time · string · nullable · required
    • duration_minutes · number · required
    • objective · string · nullable · required
    • actions · string · nullable · required
    • key_details · string · nullable · required
    • apps · array of string · nullable · required
  • next_cursor · string · nullable · required
curl "https://api.timeglass.ai/v1/activities/4bfe4a4b-c86b-4b8e-b3f5-3d1c4a2e9f10/items" \
  -H "Authorization: Bearer $TIMEGLASS_API_KEY"

List Timesheets

GET /v1/timesheets

One timesheet per member per day: the day’s activities plus roll-up metadata (total time, review status). A timesheet is approved once every activity in it is approved. For finer slicing (by project, client, or category), query /v1/activities.

Query parameters

  • limit · integer
  • cursor · string
  • start · string · date (YYYY-MM-DD)
  • end · string · date (YYYY-MM-DD)
  • member_id · string
  • status · string · One of: pending, approved

Response 200

  • data · array of object · required
    • member_id · string · required
    • date · string · required
    • status · string · required · One of: pending, approved
    • approved_at · string · nullable · required
    • total_duration_minutes · number · required
    • activity_count · number · required
    • activities · array of object · required
      • activity_id · string · uuid · required
      • team_id · string · uuid · nullable · required
      • project_id · string · uuid · nullable · required
      • client_id · string · uuid · nullable · required
      • category_id · string · uuid · nullable · required
      • objective · string · nullable · required
      • duration_minutes · number · required
      • status · string · required · One of: pending, approved
  • next_cursor · string · nullable · required
curl "https://api.timeglass.ai/v1/timesheets" \
  -H "Authorization: Bearer $TIMEGLASS_API_KEY"

List Minutes

GET /v1/minutes

The raw minute-by-minute log, oldest first: one row per tracked minute per member, with a summary of what they were doing and how many screenshots were kept. Filter by a time range (`start` inclusive, `end` exclusive, ISO 8601), member and team. Minutes in activity items a member hid are left out, so a page can hold fewer than `limit` rows; keep paging until `next_cursor` is null. Fetch a minute's screenshots with `GET /v1/minutes/{minuteId}/screenshots`.

Query parameters

  • limit · integer
  • cursor · string
  • start · string · timestamp
  • end · string · timestamp
  • member_id · string
  • team_id · string · uuid

Response 200

  • data · array of object · required
    • minute_id · string · uuid · required
    • member_id · string · required
    • team_id · string · uuid · nullable · required
    • work_timestamp · string · required
    • work_timestamp_local · string · nullable · required
    • timezone · string · nullable · required
    • summary · string · nullable · required
    • primary_activity · string · nullable · required
    • primary_app · string · nullable · required
    • actions · string · nullable · required
    • key_details · string · nullable · required
    • screen_locked · boolean · nullable · required
    • screenshot_count · number · required
  • next_cursor · string · nullable · required
curl "https://api.timeglass.ai/v1/minutes" \
  -H "Authorization: Bearer $TIMEGLASS_API_KEY"

Get a Minute's Screenshots

GET /v1/minutes/{minuteId}/screenshots

Signed download URLs for one minute's screenshots, valid for one hour. Screenshots withheld at capture as sensitive come back with `redacted: true` and no URL. Returns 403 `screenshots_unavailable` when the workspace has screenshot review off, limits screenshots to their owner, or keeps no data. To export a range, list minutes with `GET /v1/minutes` and call this for each minute with `screenshot_count` above 0.

Path parameters

  • minuteId · string · uuid · required

Response 200

  • minute_id · string · uuid · required
  • expires_at · string · nullable · required
  • screenshots · array of object · required
    • url · string · nullable · required
    • redacted · boolean · required
    • captured_at · string · nullable · required
    • screen_index · number · required
    • total_screens · number · required
    • is_active_screen · boolean · required
curl "https://api.timeglass.ai/v1/minutes/4bfe4a4b-c86b-4b8e-b3f5-3d1c4a2e9f10/screenshots" \
  -H "Authorization: Bearer $TIMEGLASS_API_KEY"