/systems/export - Export systems to CSV or PDF

GET /systems/export

Export systems with applied filters to CSV or PDF format.

Features:

  • Supports all filter parameters from GET /systems
  • Maximum 10,000 systems per export (DoS protection)
  • CSV format: Simple spreadsheet with all fields
  • PDF format: Formatted report with metadata and filters applied
  • File naming: systems_export_YYYY-MM-DD_HHmmss.[csv|pdf]

Permissions: Requires read:systems permission and respects RBAC hierarchy

Export Fields:

  • Name, Type, Version, Status
  • FQDN, IPv4 Address, IPv6 Address
  • System Key, Notes
  • Created At
  • Organization Name, Organization Type
  • Created By Name, Created By Email, Created By Organization

Query parameters

  • format string Required

    Export format (csv or pdf)

    Values are csv or pdf.

  • sort_by string

    Field to sort systems by

    Values are name, type, status, fqdn, version, system_key, created_at, updated_at, creator_name, or organization_name.

  • sort_direction string

    Sort direction

    Values are asc or desc. Default value is asc.

  • name string

    Filter systems by name (case-insensitive, partial match)

  • system_key string

    Filter systems by system key (exact match). Useful for exporting a single system.

  • type array[string]

    Filter systems by type/product (exact match). Supports multiple values for checkbox filtering.

  • created_by array[string]

    Filter systems by creator user ID or creator organization ID (exact match). Each provided ID is checked against both the user_id and organization_id fields of the system creator. Supports multiple values for checkbox filtering.

    Examples:

    • ?created_by=53h5zxpwu4vc - matches systems created by user with ID 53h5zxpwu4vc
    • ?created_by=lbswt1rxdhbz - matches systems created by users in organization lbswt1rxdhbz
    • ?created_by=53h5zxpwu4vc&created_by=lbswt1rxdhbz - matches systems created by the user OR by users in the organization
  • version array[string]

    Filter systems by version using prefixed format product:version (e.g., nsec:8.0, ns8:1.2.3). The prefix prevents ambiguity when the same version number exists for multiple products. Supports multiple values for checkbox filtering.

    Example: ?version=nsec:8.0&version=ns8:1.2.3 matches systems with (nsec version 8.0) OR (ns8 version 1.2.3)

    Backward compatibility: Non-prefixed versions (e.g., 8.0) are still supported but may match multiple products.

  • organization_id array[string]

    Filter systems by organization ID (exact match). Supports multiple values for checkbox filtering.

  • status array[string]

    Filter systems by status (exact match). Supports multiple values for checkbox filtering.

    Special value "deleted" shows soft-deleted systems (where deleted_at IS NOT NULL). When "deleted" is combined with other statuses, both deleted and non-deleted systems matching the other statuses are returned.

    Values are unknown, online, offline, or deleted.

Responses

  • Export file generated successfully

    Hide headers attributes Show headers attributes
    • Content-Disposition string

      Attachment filename

    • Content-Length integer

      File size in bytes

    CSV file with systems data

    PDF report with systems data

  • 400 application/json

    Bad request (invalid format or too many systems)

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object
      Hide data attributes Show data attributes object
      • total_count integer
      • max_limit integer
  • 401 application/json

    Unauthorized - invalid or missing token

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object | null
  • 403 application/json

    Forbidden - insufficient permissions

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object | null
GET /systems/export
curl \
 --request GET 'https://collect.your-domain.com/api/systems/export?format=csv' \
 --header "Authorization: Bearer $ACCESS_TOKEN"
Response examples (400)
{
  "code": 400,
  "message": "too many systems to export (15000). maximum allowed: 10000. please apply more filters",
  "data": {
    "total_count": 15000,
    "max_limit": 10000
  }
}
Response examples (401)
{
  "code": 401,
  "message": "invalid token",
  "data": {}
}
Response examples (403)
{
  "code": 403,
  "message": "insufficient permissions",
  "data": {}
}