> ## Documentation Index
> Fetch the complete documentation index at: https://sourcebot-msukkarieh-ado.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Audit Logs

<Note>
  This feature is only available with an active Enterprise license. Please add your [license key](/docs/license-key) to activate it.
</Note>

Audit logs are a collection of notable events performed by users within a Sourcebot deployment. Each audit log records information on the action taken, the user who performed the
action, and when the action took place.

This feature gives security and compliance teams the necessary information to ensure proper governance and administration of your Sourcebot deployment.

## Enabling/Disabling Audit Logs

Audit logs are enabled by default and can be controlled with the `SOURCEBOT_EE_AUDIT_LOGGING_ENABLED` [environment variable](/docs/configuration/environment-variables).

## Fetching Audit Logs

Audit logs are stored in the [postgres database](/docs/overview#architecture) connected to Sourcebot. To fetch all of the audit logs, you can use the following API:

```bash icon="terminal" Fetch audit logs
curl --request GET '$SOURCEBOT_URL/api/ee/audit' \
  --header 'X-Org-Domain: ~' \
  --header 'X-Sourcebot-Api-Key: $SOURCEBOT_OWNER_API_KEY'
```

```json icon="brackets-curly" wrap expandable Fetch audit logs example response
[
  {
    "id": "cmc146k7m0003xgo2tri5t4br",
    "timestamp": "2025-06-17T22:48:08.914Z",
    "action": "api_key.created",
    "actorId": "cmc12tnje0000xgn58jj8655h",
    "actorType": "user",
    "targetId": "205d1da1c6c3772b81d4ad697f5851fa11195176c211055ff0c1509772645d6d",
    "targetType": "api_key",
    "sourcebotVersion": "unknown",
    "orgId": 1
  },
  {
    "id": "cmc146c8r0001xgo2xyu0p463",
    "timestamp": "2025-06-17T22:47:58.587Z",
    "action": "user.performed_code_search",
    "actorId": "cmc12tnje0000xgn58jj8655h",
    "actorType": "user",
    "targetId": "1",
    "targetType": "org",
    "sourcebotVersion": "unknown",
    "metadata": {
      "message": "render branch:HEAD"
    },
    "orgId": 1
  },
  {
    "id": "cmc12vqgb0008xgn5nv5hl9y5",
    "timestamp": "2025-06-17T22:11:44.171Z",
    "action": "user.performed_code_search",
    "actorId": "cmc12tnje0000xgn58jj8655h",
    "actorType": "user",
    "targetId": "1",
    "targetType": "org",
    "sourcebotVersion": "unknown",
    "metadata": {
      "message": "render branch:HEAD"
    },
    "orgId": 1
  },
  {
    "id": "cmc12txwn0006xgn51ow1odid",
    "timestamp": "2025-06-17T22:10:20.519Z",
    "action": "user.performed_code_search",
    "actorId": "cmc12tnje0000xgn58jj8655h",
    "actorType": "user",
    "targetId": "1",
    "targetType": "org",
    "sourcebotVersion": "unknown",
    "metadata": {
      "message": "render branch:HEAD"
    },
    "orgId": 1
  },
  {
    "id": "cmc12tnjx0004xgn5qqeiv1ao",
    "timestamp": "2025-06-17T22:10:07.101Z",
    "action": "user.owner_created",
    "actorId": "cmc12tnje0000xgn58jj8655h",
    "actorType": "user",
    "targetId": "1",
    "targetType": "org",
    "sourcebotVersion": "unknown",
    "metadata": null,
    "orgId": 1
  },
  {
    "id": "cmc12tnjh0002xgn5h6vzu3rl",
    "timestamp": "2025-06-17T22:10:07.086Z",
    "action": "user.signed_in",
    "actorId": "cmc12tnje0000xgn58jj8655h",
    "actorType": "user",
    "targetId": "cmc12tnje0000xgn58jj8655h",
    "targetType": "user",
    "sourcebotVersion": "unknown",
    "metadata": null,
    "orgId": 1
  }
]
```

## Audit action types

| Action                              | Actor Type | Target Type            |
| :---------------------------------- | :--------- | :--------------------- |
| `api_key.creation_failed`           | `user`     | `org`                  |
| `api_key.created`                   | `user`     | `api_key`              |
| `api_key.deletion_failed`           | `user`     | `org`                  |
| `api_key.deleted`                   | `user`     | `api_key`              |
| `user.creation_failed`              | `user`     | `user`                 |
| `user.owner_created`                | `user`     | `org`                  |
| `user.performed_code_search`        | `user`     | `org`                  |
| `user.performed_find_references`    | `user`     | `org`                  |
| `user.performed_goto_definition`    | `user`     | `org`                  |
| `user.jit_provisioning_failed`      | `user`     | `org`                  |
| `user.jit_provisioned`              | `user`     | `org`                  |
| `user.join_request_creation_failed` | `user`     | `org`                  |
| `user.join_requested`               | `user`     | `org`                  |
| `user.join_request_approve_failed`  | `user`     | `account_join_request` |
| `user.join_request_approved`        | `user`     | `account_join_request` |
| `user.invite_failed`                | `user`     | `org`                  |
| `user.invites_created`              | `user`     | `org`                  |
| `user.invite_accept_failed`         | `user`     | `invite`               |
| `user.invite_accepted`              | `user`     | `invite`               |
| `user.signed_in`                    | `user`     | `user`                 |
| `user.signed_out`                   | `user`     | `user`                 |
| `org.ownership_transfer_failed`     | `user`     | `org`                  |
| `org.ownership_transferred`         | `user`     | `org`                  |

## Response schema

```json icon="brackets-curly" expandable wrap Audit log fetch response schema
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "FetchAuditLogsResponse",
  "type": "array",
  "items": {
    "type": "object",
    "required": [
      "id",
      "timestamp",
      "action",
      "actorId",
      "actorType",
      "targetId",
      "targetType",
      "sourcebotVersion",
      "metadata",
      "orgId"
    ],
    "properties": {
      "id": {
        "type": "string"
      },
      "timestamp": {
        "type": "string",
        "format": "date-time"
      },
      "action": {
        "type": "string"
      },
      "actorId": {
        "type": "string"
      },
      "actorType": {
        "type": "string",
        "enum": ["user", "api_key"]
      },
      "targetId": {
        "type": "string"
      },
      "targetType": {
        "type": "string",
        "enum": ["user", "org", "file", "api_key", "account_join_request", "invite"]
      },
      "sourcebotVersion": {
        "type": "string"
      },
      "metadata": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "message": { "type": "string" },
              "api_key": { "type": "string" },
              "emails": { "type": "string" }
            },
            "additionalProperties": false
          },
          {
            "type": "null"
          }
        ]
      },
      "orgId": {
        "type": "integer"
      }
    },
    "additionalProperties": false
  }
}

```
