Coinbax Core API

Audit Logs

Audit log access

View as Markdown

List workspace audit logs

GET/workspaces/{id}/audit-logsBearer token

Get audit logs for a workspace. **Permissions:** ADMIN or SUPER_ADMIN only

Path parameters

  • idstring (uuid)required

    Workspace ID

Query parameters

  • pageinteger
  • limitinteger

Responses

200Audit logs retrieved successfully
  • SuccessResponse
    • successenumrequiredtrue

      Always true for successful responses

    • dataobjectrequired

      Response data (structure varies by endpoint)

    • metaMetarequired
      • timestampstring (date-time)required

        Response timestamp

      • requestIdstringrequired

        Unique request identifier for debugging

      • paginationPagination
        • pageintegerrequired

          Current page number (1-indexed)

        • limitintegerrequired

          Items per page

        • totalintegerrequired

          Total number of items

        • totalPagesintegerrequired

          Total number of pages

  • object
    • dataarray of AuditLog
      array of AuditLog
      • idstring (uuid)
      • userIdstring (uuid)
      • workspaceIdstring (uuid)
      • actionstring
      • resourceTypestring
      • resourceIdstring (uuid)
      • detailsstring
      • changesobject
        object
      • successboolean
      • errorMessagestring
      • ipAddressstring
      • userAgentstring
      • metadataobject
        object
      • createdAtstring (date-time)
    • metaobject
      • paginationPagination
        • pageintegerrequired

          Current page number (1-indexed)

        • limitintegerrequired

          Items per page

        • totalintegerrequired

          Total number of items

        • totalPagesintegerrequired

          Total number of pages

{
  "success": true,
  "meta": {
    "pagination": {
      "page": 1,
      "limit": 20,
      "total": 150,
      "totalPages": 8
    }
  },
  "data": [
    {
      "id": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
      "userId": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
      "workspaceId": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
      "action": "user.login",
      "resourceType": "user",
      "resourceId": "9f8b7c6d-5e4f-4a3b-2c1d-0e9f8a7b6c5d",
      "details": "string",
      "changes": {},
      "success": true,
      "errorMessage": "string",
      "ipAddress": "string",
      "userAgent": "string",
      "metadata": {},
      "createdAt": "2026-01-15T12:00:00.000Z"
    }
  ]
}
401Unauthorized - missing or invalid authentication
  • successenumrequiredfalse

    Always false for error responses

  • dataobject

    Always null for error responses

    object

    Always null for error responses

  • errorErrorrequired
    • codestringrequired

      Machine-readable error code

    • messagestringrequired

      Human-readable error message

    • statusCodeintegerrequired

      HTTP status code

    • detailsobject

      Additional error details (optional)

      object

      Additional error details (optional)

  • metaMetarequired
    • timestampstring (date-time)required

      Response timestamp

    • requestIdstringrequired

      Unique request identifier for debugging

    • paginationPagination
      • pageintegerrequired

        Current page number (1-indexed)

      • limitintegerrequired

        Items per page

      • totalintegerrequired

        Total number of items

      • totalPagesintegerrequired

        Total number of pages

{
  "success": false,
  "data": null,
  "error": {
    "code": "UNAUTHORIZED",
    "message": "Authentication required",
    "statusCode": 401
  },
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000"
  }
}
403Forbidden - insufficient permissions
  • successenumrequiredfalse

    Always false for error responses

  • dataobject

    Always null for error responses

    object

    Always null for error responses

  • errorErrorrequired
    • codestringrequired

      Machine-readable error code

    • messagestringrequired

      Human-readable error message

    • statusCodeintegerrequired

      HTTP status code

    • detailsobject

      Additional error details (optional)

      object

      Additional error details (optional)

  • metaMetarequired
    • timestampstring (date-time)required

      Response timestamp

    • requestIdstringrequired

      Unique request identifier for debugging

    • paginationPagination
      • pageintegerrequired

        Current page number (1-indexed)

      • limitintegerrequired

        Items per page

      • totalintegerrequired

        Total number of items

      • totalPagesintegerrequired

        Total number of pages

{
  "success": false,
  "data": null,
  "error": {
    "code": "FORBIDDEN",
    "message": "You do not have permission to access this resource",
    "statusCode": 403
  },
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000"
  }
}
404Resource not found
  • successenumrequiredfalse

    Always false for error responses

  • dataobject

    Always null for error responses

    object

    Always null for error responses

  • errorErrorrequired
    • codestringrequired

      Machine-readable error code

    • messagestringrequired

      Human-readable error message

    • statusCodeintegerrequired

      HTTP status code

    • detailsobject

      Additional error details (optional)

      object

      Additional error details (optional)

  • metaMetarequired
    • timestampstring (date-time)required

      Response timestamp

    • requestIdstringrequired

      Unique request identifier for debugging

    • paginationPagination
      • pageintegerrequired

        Current page number (1-indexed)

      • limitintegerrequired

        Items per page

      • totalintegerrequired

        Total number of items

      • totalPagesintegerrequired

        Total number of pages

{
  "success": false,
  "data": null,
  "error": {
    "code": "NOT_FOUND",
    "message": "Resource not found",
    "statusCode": 404
  },
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000"
  }
}
500Internal server error
  • successenumrequiredfalse

    Always false for error responses

  • dataobject

    Always null for error responses

    object

    Always null for error responses

  • errorErrorrequired
    • codestringrequired

      Machine-readable error code

    • messagestringrequired

      Human-readable error message

    • statusCodeintegerrequired

      HTTP status code

    • detailsobject

      Additional error details (optional)

      object

      Additional error details (optional)

  • metaMetarequired
    • timestampstring (date-time)required

      Response timestamp

    • requestIdstringrequired

      Unique request identifier for debugging

    • paginationPagination
      • pageintegerrequired

        Current page number (1-indexed)

      • limitintegerrequired

        Items per page

      • totalintegerrequired

        Total number of items

      • totalPagesintegerrequired

        Total number of pages

{
  "success": false,
  "data": null,
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "An unexpected error occurred",
    "statusCode": 500
  },
  "meta": {
    "timestamp": "2026-02-24T12:00:00.000Z",
    "requestId": "550e8400-e29b-41d4-a716-446655440000"
  }
}
curl https://core-staging.coinbax.com/api/v1/workspaces/<id>/audit-logs \
  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch('https://core-staging.coinbax.com/api/v1/workspaces/<id>/audit-logs', {
  headers: {
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
  },
});
const result = await response.json();

List all audit logs

GET/audit-logsBearer token

Responses

200Audit logs retrieved

Response follows the unified success / data / meta / error envelope.

curl https://core-staging.coinbax.com/api/v1/audit-logs \
  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch('https://core-staging.coinbax.com/api/v1/audit-logs', {
  headers: {
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
  },
});
const result = await response.json();

Get audit log entry

GET/audit-logs/{id}Bearer token

Path parameters

  • idstring (uuid)required

Responses

200Log retrieved

Response follows the unified success / data / meta / error envelope.

curl https://core-staging.coinbax.com/api/v1/audit-logs/<id> \
  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch('https://core-staging.coinbax.com/api/v1/audit-logs/<id>', {
  headers: {
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
  },
});
const result = await response.json();

Export audit logs

GET/audit-logs/exportBearer token

Responses

200Export file

Response follows the unified success / data / meta / error envelope.

curl https://core-staging.coinbax.com/api/v1/audit-logs/export \
  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch('https://core-staging.coinbax.com/api/v1/audit-logs/export', {
  headers: {
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
  },
});
const result = await response.json();

Get audit log statistics

GET/audit-logs/statsBearer token

Responses

200Statistics retrieved

Response follows the unified success / data / meta / error envelope.

curl https://core-staging.coinbax.com/api/v1/audit-logs/stats \
  -H "Authorization: Bearer $ACCESS_TOKEN"
const response = await fetch('https://core-staging.coinbax.com/api/v1/audit-logs/stats', {
  headers: {
    'Authorization': `Bearer ${process.env.ACCESS_TOKEN}`,
  },
});
const result = await response.json();