Render Audit Logs API

[Audit Logs](https://render.com/docs/audit-logs) allow you to retrieve audit logs for workspaces and organizations. These logs provide a trail of actions and changes made to your resources.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

render-audit-logs-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  title: Render Public Audit Logs API
  description: Manage everything about your Render services
  version: 1.0.0
  contact:
    name: Render API
    url: https://community.render.com
    email: support@render.com
servers:
- url: https://api.render.com/v1
security:
- BearerAuth: []
tags:
- name: Audit Logs
  description: '[Audit Logs](https://render.com/docs/audit-logs) allow you to retrieve audit logs for workspaces and organizations.

    These logs provide a trail of actions and changes made to your resources.

    '
paths:
  /owners/{ownerId}/audit-logs:
    parameters:
    - $ref: '#/components/parameters/ownerIdPathParam'
    get:
      summary: List workspace audit logs
      description: 'Retrieve audit logs for a specific workspace with optional filtering and pagination.

        '
      operationId: list-owner-audit-logs
      tags:
      - Audit Logs
      parameters:
      - name: startTime
        in: query
        required: false
        description: Start time for filtering audit logs (ISO 8601 format)
        schema:
          type: string
          format: date-time
          example: '2023-01-01T00:00:00Z'
      - name: endTime
        in: query
        required: false
        description: End time for filtering audit logs (ISO 8601 format)
        schema:
          type: string
          format: date-time
          example: '2023-12-31T23:59:59Z'
      - $ref: '#/paths/~1logs/get/parameters/3'
      - $ref: '#/components/parameters/cursorParam'
      - $ref: '#/components/parameters/auditLogLimitParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/auditLogWithCursor'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '410':
          $ref: '#/components/responses/410Gone'
        '429':
          $ref: '#/components/responses/429RateLimit'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /organizations/{orgId}/audit-logs:
    parameters:
    - name: orgId
      in: path
      required: true
      description: The unique identifier of the organization
      schema:
        type: string
    get:
      summary: List organization audit logs
      description: 'Retrieve audit logs for a specific organization with optional filtering and pagination.

        '
      operationId: list-organization-audit-logs
      tags:
      - Audit Logs
      parameters:
      - name: startTime
        in: query
        required: false
        description: Start time for filtering audit logs (ISO 8601 format)
        schema:
          type: string
          format: date-time
          example: '2023-01-01T00:00:00Z'
      - name: endTime
        in: query
        required: false
        description: End time for filtering audit logs (ISO 8601 format)
        schema:
          type: string
          format: date-time
          example: '2023-12-31T23:59:59Z'
      - $ref: '#/paths/~1logs/get/parameters/3'
      - $ref: '#/components/parameters/cursorParam'
      - $ref: '#/components/parameters/auditLogLimitParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/auditLogWithCursor'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '406':
          $ref: '#/components/responses/406NotAcceptable'
        '410':
          $ref: '#/components/responses/410Gone'
        '429':
          $ref: '#/components/responses/429RateLimit'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
components:
  responses:
    403Forbidden:
      description: You do not have permissions for the requested resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    429RateLimit:
      description: Rate limit has been surpassed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    500InternalServerError:
      description: An unexpected server error has occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    404NotFound:
      description: Unable to find the requested resource.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    401Unauthorized:
      description: Authorization information is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    406NotAcceptable:
      description: Unable to generate preferred media types as specified by Accept request header.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    503ServiceUnavailable:
      description: Server currently unavailable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    400BadRequest:
      description: The request could not be understood by the server.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
    410Gone:
      description: The requested resource is no longer available.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
  schemas:
    auditLogActor:
      type: object
      required:
      - type
      properties:
        type:
          type: string
          description: The type of actor that performed the action
          example: user
          enum:
          - user
          - rest_api
          - system
        email:
          type: string
          description: Email address of the actor (if applicable)
          example: user@example.com
        id:
          type: string
          description: Unique identifier of the actor (if applicable)
          example: usr-123456789
    auditLogWithCursor:
      type: object
      required:
      - cursor
      - auditLog
      properties:
        cursor:
          $ref: '#/components/schemas/cursor'
        auditLog:
          $ref: '#/components/schemas/auditLog'
    error:
      type: object
      properties:
        id:
          type: string
        message:
          type: string
    auditLog:
      type: object
      required:
      - id
      - timestamp
      - event
      - status
      - actor
      - metadata
      properties:
        id:
          type: string
          description: Unique identifier for the audit log entry
          example: aud-123456789
        timestamp:
          type: string
          format: date-time
          description: When the event occurred (ISO 8601 format)
          example: '2023-10-01T12:00:00Z'
        event:
          type: string
          description: The type of event that occurred
          example: CreateServerEvent
          enum:
          - AcceptOrgInviteEvent
          - AcceptTeamInviteEvent
          - AddOrgMemberEvent
          - ApplyBlueprintEvent
          - ChangeEnvironmentProtectionEvent
          - ChangeOrg2FAEnforcementEvent
          - ChangeOrgAllowedLoginMethodsEvent
          - ChangeOrgRoleEvent
          - ChangeTeam2FAEnforcementEvent
          - ChangeTeamAllowedLoginMethodsEvent
          - ChangeTeamMemberRoleEvent
          - ChangeWorkspaceDeployHandlingEvent
          - ChangeWorkspacePrivacyEvent
          - CreateCronJobEvent
          - CreateEnvVarsEvent
          - CreateEnvironmentEvent
          - CreateOrgDomainEvent
          - CreateOtelIntegrationEvent
          - CreatePostgresEvent
          - CreatePrivateLinkEvent
          - CreateProjectEvent
          - CreateRedisEvent
          - CreateSSOConnectionEvent
          - CreateServerDiskEvent
          - CreateServerEvent
          - CreateWebhookEvent
          - CreateWorkspaceEvent
          - DeleteCronJobEvent
          - DeleteEnvGroupEvent
          - DeleteEnvVarsEvent
          - DeleteEnvironmentEvent
          - DeleteOrgDomainEvent
          - DeleteOtelIntegrationEvent
          - DeletePostgresEvent
          - DeletePrivateLinkEvent
          - DeleteProjectEvent
          - DeleteRedisEvent
          - DeleteSSOConnectionEvent
          - DeleteServerDiskEvent
          - DeleteServerEvent
          - DeleteWebhookEvent
          - DeleteWorkspaceEvent
          - DocumentDownloadEvent
          - DownloadDatabaseBackupEvent
          - EnableRedisInternalAuthEvent
          - InviteToOrgEvent
          - InviteToTeamEvent
          - JoinTeamEvent
          - LoginEvent
          - LogoutEvent
          - MaintenanceModeEnabledEvent
          - MaintenanceModeURIUpdatedEvent
          - MoveEnvironmentResourceEvent
          - ProvisionOrganizationSCIMToken
          - RemoveOrgMemberEvent
          - RemoveUserFromTeamEvent
          - RestoreDiskSnapshotEvent
          - ResumePostgresEvent
          - ResumeServiceEvent
          - RevokeOrganizationSCIMToken
          - SignNDAEvent
          - EndShellEvent
          - StartShellEvent
          - SuspendPostgresEvent
          - SuspendServiceEvent
          - UpdateEnvVarsEvent
          - UpdateIPAllowListEvent
          - UpdateOtelIntegrationEvent
          - UpdateSSOConnectionEvent
          - UpdateServiceNameEvent
          - UpdateWebhookEvent
          - VerifyOrgDomainEvent
          - ViewConnectionInfoEvent
          - ViewEnvVarValuesEvent
        status:
          type: string
          description: The status of the event
          example: success
          enum:
          - success
          - error
        actor:
          $ref: '#/components/schemas/auditLogActor'
        metadata:
          type: object
          additionalProperties:
            type: string
          description: Additional context information about the event
          example:
            service: srv-123456789
            field: env_vars
    cursor:
      type: string
  parameters:
    auditLogLimitParam:
      name: limit
      in: query
      required: false
      description: The maximum number of audit log items to return. For details, see [Pagination](https://api-docs.render.com/reference/pagination).
      schema:
        type: integer
        default: 20
        minimum: 1
        maximum: 1000
        description: Defaults to 20
    cursorParam:
      name: cursor
      in: query
      required: false
      description: The position in the result list to start from when fetching paginated results. For details, see [Pagination](https://api-docs.render.com/reference/pagination).
      schema:
        type: string
    ownerIdPathParam:
      name: ownerId
      in: path
      description: The ID of the workspace to return resources for
      schema:
        type: string
      required: true
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
x-readme:
  metrics-enabled: false