> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nt3.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Activity

> Retrieve activity logs and audit trails.

Entri records a detailed **activity log** for every significant action taken in the platform — whether by a user in the web app, an API client, or the CLI. The activity endpoints give you programmatic access to this audit trail for compliance, debugging, and transparency.

Every activity entry captures:

* The action type (for example `key.created`, `translation.approved`, `project.updated`)
* The user who performed the action and their display name
* The project and organization context
* The target resource and any relevant metadata
* A precise timestamp

Activity logs are append-only and cannot be modified or deleted through the API.

## Endpoints

```
GET    /api/projects/:projectId/activity             List activity for a project
GET    /api/organizations/:orgId/activity            List activity for the organization
```

## Get Project Activity

Returns the activity feed for a specific project, ordered newest first:

```bash theme={null}
curl "https://app.nt3.io/api/projects/proj_6abc123def456/activity?page=1&limit=25" \
  -H "Cookie: session=..."
```

**Query parameters:**

| Parameter | Type   | Description                       |
| --------- | ------ | --------------------------------- |
| `page`    | number | Page number (default: 1).         |
| `limit`   | number | Records per page (default: 50).   |
| `action`  | string | Filter to a specific action type. |
| `userId`  | string | Filter to a specific user.        |

**Response:**

```json theme={null}
{
  "data": [
    {
      "_id": "act_abc123",
      "action": "translation.approved",
      "userId": "user_xyz",
      "userName": "Alice Martin",
      "projectId": "proj_6abc123def456",
      "organizationId": "org_789xyz",
      "targetId": "key_abc123",
      "targetType": "translation",
      "metadata": {
        "keyId": "key_abc123",
        "language": "fr"
      },
      "created": "2025-03-02T14:30:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 25,
    "total": 847,
    "totalPages": 34
  }
}
```

<Note>
  The timestamp field is `created`, not `createdAt`.
</Note>

## Get Organization Activity

Returns the combined activity feed across all projects in the organization:

```bash theme={null}
curl "https://app.nt3.io/api/organizations/org_789xyz/activity?page=1&limit=50" \
  -H "Cookie: session=..."
```

You can filter to a specific user with `userId`, or filter to a specific action type with `action`.

## Filter by Action Type

Use the `action` query parameter to filter the log to a specific event type:

```bash theme={null}
curl "https://app.nt3.io/api/projects/proj_6abc123def456/activity?action=import.completed&limit=10" \
  -H "Cookie: session=..."
```

**Valid action filter values:**

| Action                        | Description                          |
| ----------------------------- | ------------------------------------ |
| `key.created`                 | A translation key was created        |
| `key.updated`                 | A key was updated                    |
| `key.deleted`                 | A key was deleted                    |
| `key.imported`                | Keys were imported from a file       |
| `key.archived`                | A key was archived                   |
| `key.unarchived`              | A key was unarchived                 |
| `translation.created`         | A new translation was created        |
| `translation.updated`         | A translation value was updated      |
| `translation.reviewed`        | A translation was marked as reviewed |
| `translation.approved`        | A translation was approved           |
| `translation.reverted`        | A translation was reverted           |
| `translation.ai_generated`    | AI generated a translation           |
| `translation.batch_completed` | A batch AI translation job finished  |
| `project.created`             | A project was created                |
| `project.updated`             | A project was updated                |
| `project.archived`            | A project was archived               |
| `member.invited`              | A team member was invited            |
| `member.removed`              | A team member was removed            |
| `comment.created`             | A comment was added to a key         |
| `glossary.term_added`         | A glossary term was added            |
| `glossary.term_updated`       | A glossary term was updated          |
| `glossary.term_deleted`       | A glossary term was deleted          |
| `api_token.created`           | An API token was created             |
| `api_token.revoked`           | An API token was revoked             |
| `import.completed`            | A file import completed              |
| `export.completed`            | A file export completed              |

## Key Notes

* Activity log entries are paginated. See [Pagination](/api-reference/pagination) for details.
* Entries are immutable. The activity log is an append-only audit trail.
* The `metadata` field contains action-specific detail. Its schema varies by action type.
* Activity data is typically available within a few seconds of the action occurring.
