[[osquery-manager-live-queries-api-create]] === Create live query API ++++ Create live query ++++ experimental[] Create live queries. [[osquery-manager-live-queries-api-create-request]] ==== Request `POST :/api/osquery/live_queries` `POST :/s//api/osquery/live_queries` [[osquery-manager-live-queries-api-create-path-params]] ==== Path parameters `space_id`:: (Optional, string) An identifier for the space. When `space_id` is not provided in the URL, the default space is used. [[osquery-manager-live-queries-api-create-body-params]] ==== Request body `agent_ids`:: (Optional, array) A list of agent IDs to run the query on. `agent_all`:: (Optional, boolean) When `true`, the query runs on all agents. `agent_platforms`:: (Optional, array) A list of agent platforms to run the query on. `agent_policy_ids`:: (Optional, array) A list of agent policy IDs to run the query on. `query`:: (Optional, string) The SQL query you want to run. `saved_query_id`:: (Optional, string) The ID of a saved query. `ecs_mapping`:: (Optional, object) Map osquery results columns or static values to Elastic Common Schema (ECS) fields. `pack_id`:: (Optional, string) The ID of the pack you want to run. `alert_ids`:: (Optional, array) A list of alert IDs associated to the live query. `case_ids`:: (Optional, array) A list of case IDs associated to the live query. `event_ids`:: (Optional, array) A list of event IDs associated to the live query. `metadata`:: (Optional, object) Custom metadata object associated to the live query. [[osquery-manager-live-queries-api-create-request-codes]] ==== Response code `200`:: Indicates a successful call. [[osquery-manager-live-queries-api-create-example]] ==== Examples Run a live query on all supported agents: TIP: `osquery_manager` integration has to be added to the agent policy. [source,sh] -------------------------------------------------- $ curl -X POST api/osquery/live_queries \ { "query": "select * from uptime;", "ecs_mapping": { "host.uptime": { "field": "total_seconds" } }, "agent_all": true, } -------------------------------------------------- // KIBANA The API returns the live query object: [source,sh] -------------------------------------------------- { "data": { "action_id": "3c42c847-eb30-4452-80e0-728584042334", "@timestamp": "2022-07-26T09:59:32.220Z", "expiration": "2022-07-26T10:04:32.220Z", # after this time no more agents will run the query "type": "INPUT_ACTION", "input_type": "osquery", "agent_ids": [], "agent_all": true, "agent_platforms": [], "agent_policy_ids": [], "agents": ["16d7caf5-efd2-4212-9b62-73dafc91fa13"], # stores the actual queried agent IDs "user_id": "elastic", "metadata": { "execution_context": { "name": "osquery", "url": "/app/osquery/live_queries/new" } }, "queries": [ { "action_id": "609c4c66-ba3d-43fa-afdd-53e244577aa0", # unique ID of the query, use it when querying the live query API to get the single query results "id": "6724a474-cbba-41ef-a1aa-66aebf0879e2", # ID of the query, doesn't have to be unique "query": "select * from uptime;", "ecs_mapping": { "host.uptime": { "field": "total_seconds" } }, "agents": [ "16d7caf5-efd2-4212-9b62-73dafc91fa13" # stores the actual queried agent IDs ] } ] } } -------------------------------------------------- Run a pack on Darwin-supported agents: [source,sh] -------------------------------------------------- $ curl -X POST api/osquery/live_queries \ { "pack_id": "bbe5b070-0c51-11ed-b0f8-ad31b008e832" "agent_platforms": ["darwin"] } -------------------------------------------------- // KIBANA The API returns the live query object: [source,sh] -------------------------------------------------- { "data": { "action_id": "3c42c847-eb30-4452-80e0-728584042334", "@timestamp": "2022-07-26T09:59:32.220Z", "expiration": "2022-07-26T10:04:32.220Z", # after this time no more agents will run the query "type": "INPUT_ACTION", "input_type": "osquery", "agent_ids": [], "agent_all": false, "agent_platforms": ["darwin"], "agent_policy_ids": [], "agents": ["16d7caf5-efd2-4212-9b62-73dafc91fa13"], # stores the actual queried agent IDs "user_id": "elastic", "pack_id": "bbe5b070-0c51-11ed-b0f8-ad31b008e832", "pack_name": "test_pack", "pack_prebuilt": false, "metadata": { "execution_context": { "name": "osquery", "url": "/app/osquery/live_queries/new" } }, "queries": [ { "action_id": "609c4c66-ba3d-43fa-afdd-53e244577aa0", # unique ID of the query, use it when querying the live query API to get the single query results "id": "uptime", # ID of the query, doesn't have to be unique "query": "select * from uptime;", "ecs_mapping": { "host.uptime": { "field": "total_seconds" } }, "agents": [ "16d7caf5-efd2-4212-9b62-73dafc91fa13" # stores the actual queried agent IDs ] } ] } } --------------------------------------------------