Zuplo Audit Logs API

The Audit Logs API from Zuplo — 1 operation(s) for audit logs.

OpenAPI Specification

zuplo-audit-logs-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Zuplo Developer API Keys - Buckets Audit Logs API
  termsOfService: https://zuplo.com/legal/terms
  contact:
    name: Zuplo
    url: https://zuplo.com/
    email: support@zuplo.com
  description: The Zuplo Developer API (ZAPI) enables developers to programmatically manage API keys, consumers, buckets, tunnels, deployments, metering, audit logs, and more.
  version: 1.0.0
servers:
- url: https://dev.zuplo.com
  description: Zuplo Developer API
security:
- ApiKeyAuth: []
tags:
- name: Audit Logs
paths:
  /v1/accounts/{accountName}/audit-logs:
    get:
      operationId: AuditLogsService_list
      summary: Query Audit Logs
      description: Retrieves audit logs with optional filtering and pagination.
      parameters:
      - $ref: '#/components/parameters/Zuplo.Common.AccountParams'
      - $ref: '#/components/parameters/Zuplo.AuditLogs.AuditLogsQuery.limit'
      - $ref: '#/components/parameters/Zuplo.AuditLogs.AuditLogsQuery.offset'
      - $ref: '#/components/parameters/Zuplo.AuditLogs.AuditLogsQuery.action'
      - $ref: '#/components/parameters/Zuplo.AuditLogs.AuditLogsQuery.startDate'
      - $ref: '#/components/parameters/Zuplo.AuditLogs.AuditLogsQuery.endDate'
      - $ref: '#/components/parameters/Zuplo.AuditLogs.AuditLogsQuery.actor'
      - $ref: '#/components/parameters/Zuplo.AuditLogs.AuditLogsQuery.success'
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Zuplo.AuditLogs.AuditLogsResponse'
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Zuplo.HttpProblemDetails.BadRequestProblemResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Zuplo.HttpProblemDetails.UnauthorizedProblemResponse'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse'
      tags:
      - Audit Logs
components:
  schemas:
    Zuplo.HttpProblemDetails.InternalServerErrorProblemResponse:
      type: object
      required:
      - type
      - title
      properties:
        type:
          type: string
          enum:
          - https://httpproblems.com/http-status/500
        title:
          type: string
          enum:
          - Internal Server Error
      allOf:
      - type: object
        required:
        - type
        - title
        properties:
          type:
            type: string
          title:
            type: string
          detail:
            type: string
          instance:
            type: string
      example:
        type: https://httpproblems.com/http-status/500
        title: Internal Server Error
        status: 500
    Zuplo.HttpProblemDetails.UnauthorizedProblemResponse:
      type: object
      required:
      - type
      - title
      properties:
        type:
          type: string
          enum:
          - https://httpproblems.com/http-status/401
        title:
          type: string
          enum:
          - Unauthorized
      allOf:
      - type: object
        required:
        - type
        - title
        properties:
          type:
            type: string
          title:
            type: string
          detail:
            type: string
          instance:
            type: string
      example:
        type: https://httpproblems.com/http-status/401
        title: Unauthorized
        status: 401
    Zuplo.AuditLogs.Actor:
      type: object
      required:
      - sub
      - email
      - type
      - connection
      - actingAs
      - metadata
      properties:
        sub:
          type: string
          description: The subject identifier of the actor (user ID, API key, etc.)
        email:
          type: string
          nullable: true
          description: The email address of the actor (only for user actors)
        type:
          type: string
          description: The type of actor (e.g., 'user', 'consumer', 'service', 'anonymous')
        connection:
          type: string
          nullable: true
          description: The authentication connection used (e.g., 'auth0', 'google')
        actingAs:
          type: object
          allOf:
          - $ref: '#/components/schemas/Zuplo.AuditLogs.ActingAs'
          nullable: true
          description: Information about the user being impersonated, if any
        metadata:
          type: object
          additionalProperties: {}
          nullable: true
          description: Additional metadata about the actor
      description: Details about the actor who performed the action
    Zuplo.AuditLogs.AuditLogsPagination:
      type: object
      required:
      - limit
      - offset
      - total
      - hasMore
      properties:
        limit:
          type: integer
          format: int32
          description: Maximum number of results returned
        offset:
          type: integer
          format: int32
          description: Number of results skipped
        total:
          type: integer
          format: int32
          description: Total number of results available
        hasMore:
          type: boolean
          description: Whether there are more results available
      description: Pagination information for audit logs
    Zuplo.AuditLogs.Resource:
      type: object
      required:
      - type
      - id
      - metadata
      properties:
        type:
          type: string
          description: The type of resource (e.g., 'account', 'project', 'deployment')
        id:
          type: string
          description: The unique identifier of the resource
        metadata:
          type: object
          additionalProperties: {}
          nullable: true
          description: Additional metadata about the resource
      description: A resource affected by the action
    Zuplo.AuditLogs.AuditLog:
      type: object
      required:
      - action
      - metadata
      - actor
      - resources
      - context
      - route
      - timestamp
      - requestId
      - success
      - error
      properties:
        action:
          type: string
          description: The action that was performed (e.g., 'account.create', 'project.delete')
        metadata:
          type: object
          additionalProperties: {}
          nullable: true
          description: Additional metadata about the action
        actor:
          allOf:
          - $ref: '#/components/schemas/Zuplo.AuditLogs.Actor'
          description: Details about the actor who performed the action
        resources:
          type: array
          items:
            $ref: '#/components/schemas/Zuplo.AuditLogs.Resource'
          nullable: true
          description: List of resources affected by this action
        context:
          allOf:
          - $ref: '#/components/schemas/Zuplo.AuditLogs.Context'
          description: Contextual information about where and how the action was performed
        route:
          allOf:
          - $ref: '#/components/schemas/Zuplo.AuditLogs.Route'
          description: Information about the API route that triggered this audit event
        timestamp:
          type: string
          format: date-time
          description: The timestamp when the action occurred
        requestId:
          type: string
          description: The unique request ID for correlation
        success:
          type: boolean
          nullable: true
          description: Whether the action was successful
        error:
          type: string
          nullable: true
          description: Error message if the action failed
      description: An audit log entry representing an action performed in the system
    Zuplo.AuditLogs.ActingAs:
      type: object
      required:
      - sub
      - email
      properties:
        sub:
          type: string
          description: The subject identifier of the user being impersonated
        email:
          type: string
          nullable: true
          description: The email address of the impersonated user (if available)
      description: Details about the user being impersonated, if applicable
    Zuplo.AuditLogs.AuditLogsResponse:
      type: object
      required:
      - data
      - pagination
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Zuplo.AuditLogs.AuditLog'
          description: Array of audit log entries
        pagination:
          allOf:
          - $ref: '#/components/schemas/Zuplo.AuditLogs.AuditLogsPagination'
          description: Pagination information
      description: Response containing a list of audit logs with pagination
    Zuplo.AuditLogs.Route:
      type: object
      required:
      - source
      - url
      - method
      properties:
        source:
          type: string
          nullable: true
          description: The source system or API that handled the request (e.g., 'api', 'gateway')
        url:
          type: string
          nullable: true
          description: The full URL path of the request
        method:
          type: string
          nullable: true
          description: The HTTP method used for the request
      description: Information about the API route that triggered this audit event
    Zuplo.HttpProblemDetails.BadRequestProblemResponse:
      type: object
      required:
      - type
      - title
      properties:
        type:
          type: string
          enum:
          - https://httpproblems.com/http-status/400
        title:
          type: string
          enum:
          - Bad Request
      allOf:
      - type: object
        required:
        - type
        - title
        properties:
          type:
            type: string
          title:
            type: string
          detail:
            type: string
          instance:
            type: string
      example:
        type: https://httpproblems.com/http-status/400
        title: Bad Request
        status: 400
    Zuplo.AuditLogs.Context:
      type: object
      required:
      - ipAddress
      - userAgent
      - country
      - region
      - city
      - postalCode
      - metroCode
      - asOrg
      properties:
        ipAddress:
          type: string
          nullable: true
          description: The IP address of the request
        userAgent:
          type: string
          nullable: true
          description: The user agent string of the request
        country:
          type: string
          nullable: true
          description: The ISO 3166-1 alpha-2 country code (e.g., 'US', 'GB')
        region:
          type: string
          nullable: true
          description: The region/state code (e.g., 'CA' for California)
        city:
          type: string
          nullable: true
          description: The city name from which the request originated
        postalCode:
          type: string
          nullable: true
          description: The postal/ZIP code
        metroCode:
          type: string
          nullable: true
          description: The metro code (DMA code in the US)
        asOrg:
          type: string
          nullable: true
          description: The Autonomous System organization (ISP name)
      description: Contextual information about where and how the action was performed
  parameters:
    Zuplo.AuditLogs.AuditLogsQuery.success:
      name: success
      in: query
      required: false
      description: Filter by success status (true for successful, false for failed)
      schema:
        type: boolean
      explode: false
    Zuplo.AuditLogs.AuditLogsQuery.limit:
      name: limit
      in: query
      required: false
      description: Maximum number of results to return (1-100)
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 100
        default: 20
      explode: false
    Zuplo.AuditLogs.AuditLogsQuery.offset:
      name: offset
      in: query
      required: false
      description: Number of results to skip for pagination
      schema:
        type: integer
        format: int32
        minimum: 0
        default: 0
      explode: false
    Zuplo.AuditLogs.AuditLogsQuery.startDate:
      name: startDate
      in: query
      required: false
      description: Filter events after this date (ISO 8601 format)
      schema:
        type: string
        format: date-time
      explode: false
    Zuplo.Common.AccountParams:
      name: accountName
      in: path
      required: true
      description: The name of the account. You can find this in your Zuplo Portal under Settings > Project Information.
      schema:
        type: string
    Zuplo.AuditLogs.AuditLogsQuery.endDate:
      name: endDate
      in: query
      required: false
      description: Filter events before this date (ISO 8601 format)
      schema:
        type: string
        format: date-time
      explode: false
    Zuplo.AuditLogs.AuditLogsQuery.action:
      name: action
      in: query
      required: false
      description: Filter by specific action (e.g., 'account.create')
      schema:
        type: string
      explode: false
    Zuplo.AuditLogs.AuditLogsQuery.actor:
      name: actor
      in: query
      required: false
      description: Filter by actor email address or subject identifier
      schema:
        type: string
      explode: false
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'API key authentication. Format: Bearer {api-key}'