Create a pack

Base URL
https://{kibana_url}
  • POST /api/osquery/packs
Auth

Create a query pack.

Request body

description string

The pack description.

enabled boolean

Enables the pack.

interval integer · min: 1

Pack-level interval, in seconds. Used when schedule_type is interval. Mutually exclusive with rrule_schedule.

min_osquery_version string · min length: 1 · max length: 64

Minimum osquery version required to run this pack or query. Formatted as a semver string, e.g. "5.10.0".

name string

The pack name.

platform string · min length: 1 · max length: 256

Pack-level platform restriction. To specify multiple platforms, use commas. For example, linux,darwin.

policy_ids string[]

A list of agents policy IDs.

queries map string to object

An object of queries.

result_type enum

Controls the result document type emitted by osquerybeat for this pack or query.

  • snapshot: Full table snapshot on every scheduled run (default).
  • differential: Rows added or removed since the previous run.
  • differential_added_only: Only rows added since the previous run (no removals).
Values: snapshot differential differential_added_only
schedule_type enum

Discriminator for the pack's schedule mode. interval uses native osqueryd interval scheduling (seconds). rrule uses osquerybeat's RRULE-based recurrence scheduling. Per-query overrides MUST use the same mode as the pack — cross-mode overrides are rejected with 400.

Values: interval rrule
shards map string to number

An object with shard configuration for policies included in the pack. For each policy, set the shard configuration to a percentage (1–100) of target hosts.

Response

Indicates a successful call.

application/json
data object required
created_at string · format: date-time

The date and time the pack was created.

created_by string nullable

The user who created the pack.

created_by_profile_uid string

The profile UID of the user who created the pack.

description string

The pack description.

enabled boolean

Enables the pack.

interval integer · min: 1

Pack-level interval, in seconds. Used when schedule_type is interval. Mutually exclusive with rrule_schedule.

min_osquery_version string · min length: 1 · max length: 64

Minimum osquery version required to run this pack or query. Formatted as a semver string, e.g. "5.10.0".

name string required

The pack name.

platform string · min length: 1 · max length: 256

Pack-level platform restriction. To specify multiple platforms, use commas. For example, linux,darwin.

policy_ids string[]

A list of agents policy IDs.

queries map string to object

An object of queries.

result_type enum

Controls the result document type emitted by osquerybeat for this pack or query.

  • snapshot: Full table snapshot on every scheduled run (default).
  • differential: Rows added or removed since the previous run.
  • differential_added_only: Only rows added since the previous run (no removals).
Values: snapshot differential differential_added_only
saved_object_id string required

The saved object ID of the pack.

schedule_type enum

Discriminator for the pack's schedule mode. interval uses native osqueryd interval scheduling (seconds). rrule uses osquerybeat's RRULE-based recurrence scheduling. Per-query overrides MUST use the same mode as the pack — cross-mode overrides are rejected with 400.

Values: interval rrule
updated_at string · format: date-time

The date and time the pack was last updated.

updated_by string nullable

The user who last updated the pack.

updated_by_profile_uid string

The profile UID of the user who last updated the pack.

version integer

The pack version number.

Base URL
https://{kibana_url}