---
title: "List Activity Logs"
method: GET
path: "/activity-logs/"
tags: ["activity-logs"]
---

# List Activity Logs

`GET /activity-logs/`

List activity logs for the current user's organization.
Only users with Admin role can access activity logs for auditing purposes.

- **user_id**: Optional filter by user ID
- **activity_type**: Optional filter by activity type
- **project_id**: Optional filter by project ID. Activities with no project
  (organization-scoped ones) are excluded when this filter is set.
- **limit**: Maximum number of logs to return (1-1000, default 100)
- **offset**: Number of logs to skip for pagination

## Query parameters

- `user_id` string, nullable
- `activity_type` 'simulation_created' | 'simulation_completed' | 'optimization_run' | 'file_uploaded' | 'file_deleted' | 'project_created' | 'project_updated' | 'project_deleted' | 'optimization_created' | 'optimization_deleted' | 'datafit_completed' | 'optimization_completed' | 'validation_completed' | 'simple_pipeline_completed' | 'cycler_protocol_run' | 'cycler_protocol_completed' | 'pipeline_created' | 'pipeline_deleted' | 'member_added' | 'member_role_updated' | 'member_deactivated' | 'member_reactivated' | 'member_removed' | 'cell_specification_created' | 'cell_specification_deleted' | 'cell_instance_created' | 'cell_instance_deleted' | 'cell_measurement_created' | 'cell_measurement_deleted' | 'protocol_template_created' | 'protocol_template_deleted' | 'study_created' | 'study_deleted' | 'model_created' | 'model_deleted' — Activity types for auditing purposes. Every member here must also exist in the ``public.activity_type`` Postgres enum, and vice versa — a value present on only one side is unusable (an insert fails, or a stored row cannot be parsed). ``test_activity_type_enum_ parity`` in ``tests/integration_db/schema/`` asserts the two lists match.
- `project_id` string, nullable
- `limit` integer
- `offset` integer, nullable

## Response `200`

Successful Response

- ActivityLog[]
  - `id` string, required
  - `user_id` string, required
  - `organization_id` string, required
  - `project_id` string, nullable
  - `type` 'simulation_created' | 'simulation_completed' | 'optimization_run' | 'file_uploaded' | 'file_deleted' | 'project_created' | 'project_updated' | 'project_deleted' | 'optimization_created' | 'optimization_deleted' | 'datafit_completed' | 'optimization_completed' | 'validation_completed' | 'simple_pipeline_completed' | 'cycler_protocol_run' | 'cycler_protocol_completed' | 'pipeline_created' | 'pipeline_deleted' | 'member_added' | 'member_role_updated' | 'member_deactivated' | 'member_reactivated' | 'member_removed' | 'cell_specification_created' | 'cell_specification_deleted' | 'cell_instance_created' | 'cell_instance_deleted' | 'cell_measurement_created' | 'cell_measurement_deleted' | 'protocol_template_created' | 'protocol_template_deleted' | 'study_created' | 'study_deleted' | 'model_created' | 'model_deleted', required — Activity types for auditing purposes. Every member here must also exist in the ``public.activity_type`` Postgres enum, and vice versa — a value present on only one side is unusable (an insert fails, or a stored row cannot be parsed). ``test_activity_type_enum_ parity`` in ``tests/integration_db/schema/`` asserts the two lists match.
  - `metadata` object, nullable
  - `usage_quantity` integer, nullable
  - `compute_time` number, nullable
  - `core_seconds` number, nullable
  - `created_at` string, date-time, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/ionworks/apis/fastapi.md) · [All operations](https://skmtc.dev/ionworks/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/ionworks/fastapi/revisions/7337a3cbdaf2/schema)
