Download OpenAPI specification:
Perform SOC operations via server-to-server integration using a client API account via OAuth2.0.
Get chat session metadata from a specific user.
| userId required | string ID of the user to retrieve sessions from |
[- {
- "createTime": "2024-11-14T15:03:22Z",
- "deleteTime": "2025-09-05T15:33:00.000Z",
- "entityId": "WKhCuTw4GPvrQA-9ksmn",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "sessionId": "chat_1757086398900_ykhmndscn",
- "tags": [
- "investigation"
], - "title": "Can you write a suricata rule for me?",
- "type": "alert_investigation",
- "updateTime": "2024-11-14T15:33:02Z",
- "usage": {
- "modelUsage": {
- "property1": {
- "modelCredits": 2,
- "modelInputTokens": 500,
- "modelMessages": 10,
- "modelOutputTokens": 1000
}, - "property2": {
- "modelCredits": 2,
- "modelInputTokens": 500,
- "modelMessages": 10,
- "modelOutputTokens": 1000
}
}, - "totalCredits": 5,
- "totalInputTokens": 1500,
- "totalMessages": 25,
- "totalOutputTokens": 3000
}, - "userId": "socl_my_new_client"
}
]Retrieve a chat session's messages for a given user and session.
| userId required | string ID of the user to retrieve the session from |
| sessionId required | string ID of the session to retrieve, it must belong to the indicated user |
[- {
- "createTime": "2024-11-14T15:03:22Z",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "message": {
- "id": "c3d44fb8-3bc2-46e2-a7d2-8a8983556d1a",
- "role": "user",
- "stop_reason": "user_request",
- "stop_sequence": "end_turn",
- "thoughts": "string",
- "usage": {
- "credits": 1,
- "input_tokens": 5,
- "output_tokens": 10
}
}, - "model": "sonnet-4.5@SOAI",
- "operation": "create",
- "session_id": "chat_1757086398900_ykhmndscn",
- "tags": [
- "investigation"
], - "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}
]Get a list of all previous chat session metadata across all users.
[- {
- "createTime": "2024-11-14T15:03:22Z",
- "deleteTime": "2025-09-05T15:33:00.000Z",
- "entityId": "WKhCuTw4GPvrQA-9ksmn",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "sessionId": "chat_1757086398900_ykhmndscn",
- "tags": [
- "investigation"
], - "title": "Can you write a suricata rule for me?",
- "type": "alert_investigation",
- "updateTime": "2024-11-14T15:33:02Z",
- "usage": {
- "modelUsage": {
- "property1": {
- "modelCredits": 2,
- "modelInputTokens": 500,
- "modelMessages": 10,
- "modelOutputTokens": 1000
}, - "property2": {
- "modelCredits": 2,
- "modelInputTokens": 500,
- "modelMessages": 10,
- "modelOutputTokens": 1000
}
}, - "totalCredits": 5,
- "totalInputTokens": 1500,
- "totalMessages": 25,
- "totalOutputTokens": 3000
}, - "userId": "socl_my_new_client"
}
]Retrieve usage statistics of the AI assistant over a specified date range for every user.
| range required | string Example: range=2024/12/03 03:09:31 PM - 2024/12/04 03:09:31 PM Date range, in the specified timezone |
| zone required | string Example: zone=America/New_York Timezone of the date range |
| format required | string Example: format=2006/01/02 3:04:05 PM Date range date format. Use the example, exactly as shown, if not familiar with date formats |
[- {
- "modelUsage": {
- "property1": {
- "modelCredits": 2,
- "modelInputTokens": 500,
- "modelMessages": 10,
- "modelOutputTokens": 1000
}, - "property2": {
- "modelCredits": 2,
- "modelInputTokens": 500,
- "modelMessages": 10,
- "modelOutputTokens": 1000
}
}, - "totalCredits": 5,
- "totalInputTokens": 1500,
- "totalMessages": 25,
- "totalOutputTokens": 3000,
- "totalSessions": 3,
- "userId": "8beae4b5-275b-4669-b678-8cff894911b5"
}
]Retrieve the current balance/usage information for the AI assistant.
| modelAndAdapter required | string Example: qwen/qwen2.5-small@MyOpenAIChatAdapter Model Id (including slashes) and Adapter Name to get balance for |
{- "credits": 1,
- "input_tokens": 5,
- "output_tokens": 10
}Send a message to the AI assistant and receive a response. Supports both streaming (SSE) and non-streaming responses.
| entityType | string Type of entity associated with this session (e.g., 'alert_investigation') |
| entityId | string ID of the entity associated with this session (e.g., alert's soc_id) |
Chat message object with message text and optional session ID
| msg | string |
| sessionId | string |
{- "msg": "string",
- "sessionId": "string"
}[- {
- "id": "c3d44fb8-3bc2-46e2-a7d2-8a8983556d1a",
- "role": "user",
- "stop_reason": "user_request",
- "stop_sequence": "end_turn",
- "thoughts": "string",
- "usage": {
- "credits": 1,
- "input_tokens": 5,
- "output_tokens": 10
}
}
]Retrieve a list of all previous chat session metadata for the authenticated user.
[- {
- "createTime": "2024-11-14T15:03:22Z",
- "deleteTime": "2025-09-05T15:33:00.000Z",
- "entityId": "WKhCuTw4GPvrQA-9ksmn",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "sessionId": "chat_1757086398900_ykhmndscn",
- "tags": [
- "investigation"
], - "title": "Can you write a suricata rule for me?",
- "type": "alert_investigation",
- "updateTime": "2024-11-14T15:33:02Z",
- "usage": {
- "modelUsage": {
- "property1": {
- "modelCredits": 2,
- "modelInputTokens": 500,
- "modelMessages": 10,
- "modelOutputTokens": 1000
}, - "property2": {
- "modelCredits": 2,
- "modelInputTokens": 500,
- "modelMessages": 10,
- "modelOutputTokens": 1000
}
}, - "totalCredits": 5,
- "totalInputTokens": 1500,
- "totalMessages": 25,
- "totalOutputTokens": 3000
}, - "userId": "socl_my_new_client"
}
]Retrieve the complete chat history and usage for a specific session. Can lookup deleted sessions.
| sessionId required | string Session ID to retrieve history for |
{- "history": [
- {
- "createTime": "2024-11-14T15:03:22Z",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "message": {
- "id": "c3d44fb8-3bc2-46e2-a7d2-8a8983556d1a",
- "role": "user",
- "stop_reason": "user_request",
- "stop_sequence": "end_turn",
- "thoughts": "string",
- "usage": {
- "credits": 1,
- "input_tokens": 5,
- "output_tokens": 10
}
}, - "model": "sonnet-4.5@SOAI",
- "operation": "create",
- "session_id": "chat_1757086398900_ykhmndscn",
- "tags": [
- "investigation"
], - "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}
], - "session": {
- "createTime": "2024-11-14T15:03:22Z",
- "deleteTime": "2025-09-05T15:33:00.000Z",
- "entityId": "WKhCuTw4GPvrQA-9ksmn",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "sessionId": "chat_1757086398900_ykhmndscn",
- "tags": [
- "investigation"
], - "title": "Can you write a suricata rule for me?",
- "type": "alert_investigation",
- "updateTime": "2024-11-14T15:33:02Z",
- "usage": {
- "modelUsage": {
- "property1": {
- "modelCredits": 2,
- "modelInputTokens": 500,
- "modelMessages": 10,
- "modelOutputTokens": 1000
}, - "property2": {
- "modelCredits": 2,
- "modelInputTokens": 500,
- "modelMessages": 10,
- "modelOutputTokens": 1000
}
}, - "totalCredits": 5,
- "totalInputTokens": 1500,
- "totalMessages": 25,
- "totalOutputTokens": 3000
}, - "userId": "socl_my_new_client"
}
}Allow a user to modify their own session tags.
| sessionId required | string Session ID to modify |
Indicate what field we're doing what operation with.
| action | string |
| tag | string |
{- "action": "add",
- "tag": "shared"
}{ }Execute a tool on behalf of the assistant and continue the conversation with the result. Note that more permissions may be checked depending on the tool being executed.
| name required | string Name of the tool to execute |
Tool execution request containing session ID, tool use ID, and parameters
{ }[- {
- "id": "c3d44fb8-3bc2-46e2-a7d2-8a8983556d1a",
- "role": "user",
- "stop_reason": "user_request",
- "stop_sequence": "end_turn",
- "thoughts": "string",
- "usage": {
- "credits": 1,
- "input_tokens": 5,
- "output_tokens": 10
}
}
]Create a new case given a populated case object as input.
New case object. ID will be generated by the server.
| assigneeId | string The user ID that is assigned to work on this case. |
| category | string A category is a way to group similar cases together and can be arbitrary values, or static values, depending on how the system if configured. |
| completeTime | string The date and time that the case was completed. A case is completed when the status is changed to 'closed'. This is a read-only field. |
| createTime | string The date and time that this object was created. This is a read-only field. |
| description | string The full description of the case. |
| id | string The ID assigned to this object by the server. This is a read-only field. |
| kind | string The kind of object. This is a read-only field. |
| operation | string The operation that was applied to the object. This is a read-only field. |
| pap | string The Permissiable Actions Protocol value. |
| priority | integer The priority of the case. Lower values typically represent increasing importance. |
| severity | string The serverity of the case. Typical values are: critical, high, medium, low |
| startTime | string The date and time that the case status was changed to 'in progress'. This is a read-only field. |
| status | string The state of the case. Typical values are: new, in progress, closed |
| tags | Array of strings A tag is another way to group similar cases together and can be arbitrary values, or static values, depending on how the system if configured. |
| template | string A case ID representing the case to use as a template when creating this case. The template case fields will be copied into the new case. |
| title | string The brief case title or summary |
| tlp | string The Traffic Light Protocol value. |
| updateTime | string The date and time that this object was last modified. This is a read-only field. |
| userId | string The user ID (or API client ID) that initiated this event. This is a read-only field. |
{- "assigneeId": "022d1936-6ca3-49c1-b3ee-6a5b27d1b8b1",
- "category": "general",
- "completeTime": "2024-11-14T15:33:02Z",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Discovered anomalous events during the overnight hours of November 14-15. Atypical large network volumes passed through SMTP server.",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "pap": "white",
- "priority": 1,
- "severity": "high",
- "startTime": "2024-11-14T15:03:22Z",
- "status": "new",
- "tags": [
- "pending",
- "confirmed"
], - "template": "some_case_id_to_be_used_as_template",
- "title": "Possible intrusion via SMTP server",
- "tlp": "red",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}{- "assigneeId": "022d1936-6ca3-49c1-b3ee-6a5b27d1b8b1",
- "category": "general",
- "completeTime": "2024-11-14T15:33:02Z",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Discovered anomalous events during the overnight hours of November 14-15. Atypical large network volumes passed through SMTP server.",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "pap": "white",
- "priority": 1,
- "severity": "high",
- "startTime": "2024-11-14T15:03:22Z",
- "status": "new",
- "tags": [
- "pending",
- "confirmed"
], - "template": "some_case_id_to_be_used_as_template",
- "title": "Possible intrusion via SMTP server",
- "tlp": "red",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}Updates an existing case with a provided case object as input.
Replacement case object. The provided ID will be used to match the existing case.
| assigneeId | string The user ID that is assigned to work on this case. |
| category | string A category is a way to group similar cases together and can be arbitrary values, or static values, depending on how the system if configured. |
| completeTime | string The date and time that the case was completed. A case is completed when the status is changed to 'closed'. This is a read-only field. |
| createTime | string The date and time that this object was created. This is a read-only field. |
| description | string The full description of the case. |
| id | string The ID assigned to this object by the server. This is a read-only field. |
| kind | string The kind of object. This is a read-only field. |
| operation | string The operation that was applied to the object. This is a read-only field. |
| pap | string The Permissiable Actions Protocol value. |
| priority | integer The priority of the case. Lower values typically represent increasing importance. |
| severity | string The serverity of the case. Typical values are: critical, high, medium, low |
| startTime | string The date and time that the case status was changed to 'in progress'. This is a read-only field. |
| status | string The state of the case. Typical values are: new, in progress, closed |
| tags | Array of strings A tag is another way to group similar cases together and can be arbitrary values, or static values, depending on how the system if configured. |
| template | string A case ID representing the case to use as a template when creating this case. The template case fields will be copied into the new case. |
| title | string The brief case title or summary |
| tlp | string The Traffic Light Protocol value. |
| updateTime | string The date and time that this object was last modified. This is a read-only field. |
| userId | string The user ID (or API client ID) that initiated this event. This is a read-only field. |
{- "assigneeId": "022d1936-6ca3-49c1-b3ee-6a5b27d1b8b1",
- "category": "general",
- "completeTime": "2024-11-14T15:33:02Z",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Discovered anomalous events during the overnight hours of November 14-15. Atypical large network volumes passed through SMTP server.",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "pap": "white",
- "priority": 1,
- "severity": "high",
- "startTime": "2024-11-14T15:03:22Z",
- "status": "new",
- "tags": [
- "pending",
- "confirmed"
], - "template": "some_case_id_to_be_used_as_template",
- "title": "Possible intrusion via SMTP server",
- "tlp": "red",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}{- "assigneeId": "022d1936-6ca3-49c1-b3ee-6a5b27d1b8b1",
- "category": "general",
- "completeTime": "2024-11-14T15:33:02Z",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Discovered anomalous events during the overnight hours of November 14-15. Atypical large network volumes passed through SMTP server.",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "pap": "white",
- "priority": 1,
- "severity": "high",
- "startTime": "2024-11-14T15:03:22Z",
- "status": "new",
- "tags": [
- "pending",
- "confirmed"
], - "template": "some_case_id_to_be_used_as_template",
- "title": "Possible intrusion via SMTP server",
- "tlp": "red",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}Retrieves a case given the provided case ID and returns the case details. Use the "Query Data" API to search for cases using other criteria, specifying a query parameter that includes the following, at a minimum: _index:"*:so-case"
| id required | string The case ID to retrieve |
{- "assigneeId": "022d1936-6ca3-49c1-b3ee-6a5b27d1b8b1",
- "category": "general",
- "completeTime": "2024-11-14T15:33:02Z",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Discovered anomalous events during the overnight hours of November 14-15. Atypical large network volumes passed through SMTP server.",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "pap": "white",
- "priority": 1,
- "severity": "high",
- "startTime": "2024-11-14T15:03:22Z",
- "status": "new",
- "tags": [
- "pending",
- "confirmed"
], - "template": "some_case_id_to_be_used_as_template",
- "title": "Possible intrusion via SMTP server",
- "tlp": "red",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}Updates an existing case artifact with a provided artifact object as input. Important: The artifact value and type cannot be modified.
Replacement artifact object. The provided ID will be used to match the existing artifact.
| artifactType required | string The artifact type as set by the server. This is an internal, read-only field. |
| caseId required | string The case ID for which this artifact is to be attached, or is already attached. |
| createTime | string The date and time that this object was created. This is a read-only field. |
| description | string A description that explains how this artifact relates to the case. |
| groupId | string The group ID as set by the server. This is an internal, read-only field. |
| groupType | string The group type as set by the server. This is an internal, read-only field. |
| id | string The ID assigned to this object by the server. This is a read-only field. |
| ioc | boolean A flag representing whether this artifact is an indicator of compromise (IoC). |
| kind | string The kind of object. This is a read-only field. |
| md5 | string An MD5 hash of the artifact stream. This field is determined by the server upon file upload and is ready-only. |
| mimeType | string The mime type of the artifact stream. This field is determined by the server upon file upload and is read-only. |
| operation | string The operation that was applied to the object. This is a read-only field. |
| protected | boolean A flag representing whether this file artifact is protected. A protected file will be automatically zipped by the server before being retrieved, to avoid accidentally executing a potentially harmful attachment. |
| sha1 | string A SHA-1 hash of the artifact stream. This field is determined by the server upon file upload and is ready-only. |
| sha256 | string A SHA-256 hash of the artifact stream. This field is determined by the server upon file upload and is ready-only. |
| streamId | string The stream ID of the artifact stream. This field is determined by the server upon file upload and is ready-only. |
| streamLength | integer The length of the artifact stream. This field is determined by the server upon file upload and is ready-only. |
| tags | Array of strings Tags to assign to this artifact. |
| tlp | string The traffic light protocol value for this artifact. |
| updateTime | string The date and time that this object was last modified. This is a read-only field. |
| userId | string The user ID (or API client ID) that initiated this event. This is a read-only field. |
| value required | string The value of this artifact. Essentially this is the content of the artifact itself, such as an IP address, a hostname, a filename, etc. |
{- "artifactType": "ip",
- "caseId": "PdFc-JIBLkNJ8-bDfz47",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Additional supporting evidence",
- "groupId": "",
- "groupType": "evidence",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "ioc": false,
- "kind": "case",
- "md5": "d9cca721a735dac4efe709e0f3518373",
- "mimeType": "application/json",
- "operation": "create",
- "protected": false,
- "sha1": "a0571c5b9493187adb5bd07ad0faf279a86251df",
- "sha256": "9c1f8398f5a92eee44aee58d000a4dc1705f9c25e29683f7730215bc1274cff1",
- "streamId": "f2fS-DajPqlMo-221Nmn",
- "streamLength": 4096,
- "tags": [
- "pending",
- "unconfirmed"
], - "tlp": "red",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client",
- "value": "1.2.3.4"
}{- "artifactType": "ip",
- "caseId": "PdFc-JIBLkNJ8-bDfz47",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Additional supporting evidence",
- "groupId": "",
- "groupType": "evidence",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "ioc": false,
- "kind": "case",
- "md5": "d9cca721a735dac4efe709e0f3518373",
- "mimeType": "application/json",
- "operation": "create",
- "protected": false,
- "sha1": "a0571c5b9493187adb5bd07ad0faf279a86251df",
- "sha256": "9c1f8398f5a92eee44aee58d000a4dc1705f9c25e29683f7730215bc1274cff1",
- "streamId": "f2fS-DajPqlMo-221Nmn",
- "streamLength": 4096,
- "tags": [
- "pending",
- "unconfirmed"
], - "tlp": "red",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client",
- "value": "1.2.3.4"
}Attach an observable to an existing case. Observables are considered "artifacts" in SOC internal terminology. If not creating a file artifact then only the artifact itself should be sent as the body, in JSON format. If creating a file artifact then two multipart-form values should be supplied: "json" (the artifact object), and "attachment" (the file bytes). The file size, hashes, mime type will be automatically generated and populated into the artifact object on the server.
New case artifact object. ID will be generated by the server.
| artifactType required | string The artifact type as set by the server. This is an internal, read-only field. |
| caseId required | string The case ID for which this artifact is to be attached, or is already attached. |
| createTime | string The date and time that this object was created. This is a read-only field. |
| description | string A description that explains how this artifact relates to the case. |
| groupId | string The group ID as set by the server. This is an internal, read-only field. |
| groupType | string The group type as set by the server. This is an internal, read-only field. |
| id | string The ID assigned to this object by the server. This is a read-only field. |
| ioc | boolean A flag representing whether this artifact is an indicator of compromise (IoC). |
| kind | string The kind of object. This is a read-only field. |
| md5 | string An MD5 hash of the artifact stream. This field is determined by the server upon file upload and is ready-only. |
| mimeType | string The mime type of the artifact stream. This field is determined by the server upon file upload and is read-only. |
| operation | string The operation that was applied to the object. This is a read-only field. |
| protected | boolean A flag representing whether this file artifact is protected. A protected file will be automatically zipped by the server before being retrieved, to avoid accidentally executing a potentially harmful attachment. |
| sha1 | string A SHA-1 hash of the artifact stream. This field is determined by the server upon file upload and is ready-only. |
| sha256 | string A SHA-256 hash of the artifact stream. This field is determined by the server upon file upload and is ready-only. |
| streamId | string The stream ID of the artifact stream. This field is determined by the server upon file upload and is ready-only. |
| streamLength | integer The length of the artifact stream. This field is determined by the server upon file upload and is ready-only. |
| tags | Array of strings Tags to assign to this artifact. |
| tlp | string The traffic light protocol value for this artifact. |
| updateTime | string The date and time that this object was last modified. This is a read-only field. |
| userId | string The user ID (or API client ID) that initiated this event. This is a read-only field. |
| value required | string The value of this artifact. Essentially this is the content of the artifact itself, such as an IP address, a hostname, a filename, etc. |
{- "artifactType": "ip",
- "caseId": "PdFc-JIBLkNJ8-bDfz47",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Additional supporting evidence",
- "groupId": "",
- "groupType": "evidence",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "ioc": false,
- "kind": "case",
- "md5": "d9cca721a735dac4efe709e0f3518373",
- "mimeType": "application/json",
- "operation": "create",
- "protected": false,
- "sha1": "a0571c5b9493187adb5bd07ad0faf279a86251df",
- "sha256": "9c1f8398f5a92eee44aee58d000a4dc1705f9c25e29683f7730215bc1274cff1",
- "streamId": "f2fS-DajPqlMo-221Nmn",
- "streamLength": 4096,
- "tags": [
- "pending",
- "unconfirmed"
], - "tlp": "red",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client",
- "value": "1.2.3.4"
}{- "artifactType": "ip",
- "caseId": "PdFc-JIBLkNJ8-bDfz47",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Additional supporting evidence",
- "groupId": "",
- "groupType": "evidence",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "ioc": false,
- "kind": "case",
- "md5": "d9cca721a735dac4efe709e0f3518373",
- "mimeType": "application/json",
- "operation": "create",
- "protected": false,
- "sha1": "a0571c5b9493187adb5bd07ad0faf279a86251df",
- "sha256": "9c1f8398f5a92eee44aee58d000a4dc1705f9c25e29683f7730215bc1274cff1",
- "streamId": "f2fS-DajPqlMo-221Nmn",
- "streamLength": 4096,
- "tags": [
- "pending",
- "unconfirmed"
], - "tlp": "red",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client",
- "value": "1.2.3.4"
}Searches for all artifacts attached to the given case ID and returns the matching artifacts, if any. Observables are considered "artifacts" in SOC internal terminology. If the case does not exist, this method will respond with a 200 status and an empty list.
| groupType required | string Example: attachments The type of artifacts to retrieve [attachments, evidence] |
| id required | string The case ID to use for searching all artifacts |
[- {
- "artifactType": "ip",
- "caseId": "PdFc-JIBLkNJ8-bDfz47",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Additional supporting evidence",
- "groupId": "",
- "groupType": "evidence",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "ioc": false,
- "kind": "case",
- "md5": "d9cca721a735dac4efe709e0f3518373",
- "mimeType": "application/json",
- "operation": "create",
- "protected": false,
- "sha1": "a0571c5b9493187adb5bd07ad0faf279a86251df",
- "sha256": "9c1f8398f5a92eee44aee58d000a4dc1705f9c25e29683f7730215bc1274cff1",
- "streamId": "f2fS-DajPqlMo-221Nmn",
- "streamLength": 4096,
- "tags": [
- "pending",
- "unconfirmed"
], - "tlp": "red",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client",
- "value": "1.2.3.4"
}
]Updates an existing case comment with a provided comment object as input.
Replacement comment object. The provided ID will be used to match the existing comment.
| caseId required | string The case ID for which this comment is to be attached, or is already attached. |
| createTime | string The date and time that this object was created. This is a read-only field. |
| description required | string The comment content itself. Can contain limited markdown syntax. |
| hours | number The number of hours spent on the work referenced in this comment. Can be a decimal value. |
| id | string The ID assigned to this object by the server. This is a read-only field. |
| kind | string The kind of object. This is a read-only field. |
| operation | string The operation that was applied to the object. This is a read-only field. |
| updateTime | string The date and time that this object was last modified. This is a read-only field. |
| userId | string The user ID (or API client ID) that initiated this event. This is a read-only field. |
{- "caseId": "PdFc-JIBLkNJ8-bDfz47",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Discovered another anomaly around the same time involving missing logs on server xyz.",
- "hours": 2.5,
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}{- "caseId": "PdFc-JIBLkNJ8-bDfz47",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Discovered another anomaly around the same time involving missing logs on server xyz.",
- "hours": 2.5,
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}Add a new comment to an existing case.
New comment object. ID will be generated by the server.
| caseId required | string The case ID for which this comment is to be attached, or is already attached. |
| createTime | string The date and time that this object was created. This is a read-only field. |
| description required | string The comment content itself. Can contain limited markdown syntax. |
| hours | number The number of hours spent on the work referenced in this comment. Can be a decimal value. |
| id | string The ID assigned to this object by the server. This is a read-only field. |
| kind | string The kind of object. This is a read-only field. |
| operation | string The operation that was applied to the object. This is a read-only field. |
| updateTime | string The date and time that this object was last modified. This is a read-only field. |
| userId | string The user ID (or API client ID) that initiated this event. This is a read-only field. |
{- "caseId": "PdFc-JIBLkNJ8-bDfz47",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Discovered another anomaly around the same time involving missing logs on server xyz.",
- "hours": 2.5,
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}{- "caseId": "PdFc-JIBLkNJ8-bDfz47",
- "createTime": "2024-11-14T15:03:22Z",
- "fields": {
- "client.ip": "1.2.3.4",
- "client.port": "1099"
}, - "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}Searches for all comments assigned to the given case ID and returns the matching comments, if any. If the case does not exist, this method will respond with a 200 status and an empty list.
| id required | string The case ID to use for searching all related comments |
[- {
- "caseId": "PdFc-JIBLkNJ8-bDfz47",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Discovered another anomaly around the same time involving missing logs on server xyz.",
- "hours": 2.5,
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}
]Attach a related event to an existing case.
Query object used to find original events to attach to a given case. RelatedEvent IDs will be generated by the server.
| acknowledged | boolean Whether to attach events that are already acknowledged: true = act on acknowledged events, false = act on unacknowledged events |
| caseId required | string The case ID for which this related event is to be attached, or is already attached. |
| dateRange | string The date range to use for searching for matching events |
| dateRangeFormat | string The date range format. If unsure how to use this then use the example value exactly as shown. |
| escalated | boolean Whether to attach events that are already escalated to a case: true = act on escalated events, false = act on unescalated events |
required | object A mapping of related event field names and their values. |
| timezone | string The timezone to use with the date range |
{- "acknowledged": true,
- "caseId": "PdFc-JIBLkNJ8-bDfz47",
- "dateRange": "2024/12/03 02:31:35 PM - 2024/12/04 02:31:35 PM",
- "dateRangeFormat": "2006/01/02 3:04:05 PM",
- "escalated": false,
- "fields": {
- "client.ip": "1.2.3.4",
- "client.port": "1099"
}, - "timezone": "America/New_York"
}{- "count": 120
}Searches for all related events associated with the given case ID and returns the matching events, if any. If the case does not exist, this method will respond with a 200 status and an empty list.
| id required | string The case ID to use for searching all related events |
[- {
- "caseId": "PdFc-JIBLkNJ8-bDfz47",
- "createTime": "2024-11-14T15:03:22Z",
- "fields": {
- "client.ip": "1.2.3.4",
- "client.port": "1099"
}, - "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}
]Returns all audit history associated with the given case ID.
| id required | string The case ID |
[- {
- "createTime": "2024-11-14T15:03:22Z",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}
][- {
- "createTime": "2024-12-03T21:04:59.970640998Z",
- "id": "socl_my_new_api_client",
- "name": "My New API Client",
- "note": "This client is used for automating case observable attachments",
- "permissions": [
- "events/read",
- "cases/read",
- "cases/write"
], - "searchUsername": "",
- "secret": "ERa5jp9Z6WbLm1YC5FCM",
- "updateTime": "0001-01-01T00:00:00Z"
}
]Creates a new API client with the given Client object
The Client object to create. Only the 'name' and 'note' properties are used.
| createTime | string The date and time when this API client was created |
| id | string The ID assigned to this API client |
| name | string The client name |
| note | string An optional note to associate with this API client |
| permissions | Array of strings The list of permissions assigned to this client |
| searchUsername | string An optional Elasticsearch user that this client will run as when accessing event data |
| secret | string The generated client secret (only returned on new client creation and regeneration of the secret) |
| updateTime | string The date and time when this API client was last modified |
{- "createTime": "2024-12-03T21:04:59.970640998Z",
- "id": "socl_my_new_api_client",
- "name": "My New API Client",
- "note": "This client is used for automating case observable attachments",
- "permissions": [
- "events/read",
- "cases/read",
- "cases/write"
], - "searchUsername": "",
- "secret": "ERa5jp9Z6WbLm1YC5FCM",
- "updateTime": "0001-01-01T00:00:00Z"
}{- "createTime": "2024-12-03T21:04:59.970640998Z",
- "id": "socl_my_new_api_client",
- "name": "My New API Client",
- "note": "This client is used for automating case observable attachments",
- "permissions": [
- "events/read",
- "cases/read",
- "cases/write"
], - "searchUsername": "",
- "secret": "ERa5jp9Z6WbLm1YC5FCM",
- "updateTime": "0001-01-01T00:00:00Z"
}Updates an existing API client with the given Client object
The Client object to update. Only the 'name', and 'note' properties are used.
| createTime | string The date and time when this API client was created |
| id | string The ID assigned to this API client |
| name | string The client name |
| note | string An optional note to associate with this API client |
| permissions | Array of strings The list of permissions assigned to this client |
| searchUsername | string An optional Elasticsearch user that this client will run as when accessing event data |
| secret | string The generated client secret (only returned on new client creation and regeneration of the secret) |
| updateTime | string The date and time when this API client was last modified |
{- "createTime": "2024-12-03T21:04:59.970640998Z",
- "id": "socl_my_new_api_client",
- "name": "My New API Client",
- "note": "This client is used for automating case observable attachments",
- "permissions": [
- "events/read",
- "cases/read",
- "cases/write"
], - "searchUsername": "",
- "secret": "ERa5jp9Z6WbLm1YC5FCM",
- "updateTime": "0001-01-01T00:00:00Z"
}{- "createTime": "2024-12-03T21:04:59.970640998Z",
- "id": "socl_my_new_api_client",
- "name": "My New API Client",
- "note": "This client is used for automating case observable attachments",
- "permissions": [
- "events/read",
- "cases/read",
- "cases/write"
], - "searchUsername": "",
- "secret": "ERa5jp9Z6WbLm1YC5FCM",
- "updateTime": "0001-01-01T00:00:00Z"
}Removes a permission from an existing API client. A new access token is not required. Future API calls will immediately be affected.
| id required | string Example: socl_my_new_api_client The API client ID from which the permission will be removed |
| perm required | string Example: events/read The permission to remove |
Assigns a permission to an existing API client. A new access token is not required. Future API calls will immediately be affected.
| id required | string Example: socl_my_new_api_client The API client ID to which the permission will be assigned |
| perm required | string Example: events/read The permission to assign |
Regenerates a new client secret for the given API client ID. Pre-existing access tokens that have not yet expired will remain valid through their expiration.
| id required | string Example: socl_my_new_api_client The API client ID |
{- "createTime": "2024-12-03T21:04:59.970640998Z",
- "id": "socl_my_new_api_client",
- "name": "My New API Client",
- "note": "This client is used for automating case observable attachments",
- "permissions": [
- "events/read",
- "cases/read",
- "cases/write"
], - "searchUsername": "",
- "secret": "ERa5jp9Z6WbLm1YC5FCM",
- "updateTime": "0001-01-01T00:00:00Z"
}Retrieves the set of available client permissions. Note: User roles are made up of assigned permissions. API clients do not use roles and instead are directly assigned individual permissions since each API client is expected to be configured for a specific task.
[- "string"
]Retrieves the full set of configuration settings and associated metadata. This response can be very large, particularly when the advanced parameter is set to 'true'.
| advanced | boolean Example: advanced=true If true, all configuration settings will be retrieved, otherwise only the commonly adjusted settings are retrieved |
[- {
- "advanced": false,
- "default": "some default value",
- "defaultAvailable": true,
- "description": "Optional configuration parameters made available as defaults for all rules and alerters",
- "duplicates": false,
- "file": false,
- "forcedType": "[]string",
- "global": true,
- "helpLink": "elastalert",
- "id": "elastalert.alerter_parameters",
- "jinjaEscaped": false,
- "multiline": true,
- "node": false,
- "nodeId": "chi-so-001_standalone",
- "optionSeparator": "string",
- "options": [
- "string"
], - "readonly": false,
- "readonlyUi": false,
- "regex": "^(true|false)$",
- "regexFailureMessage": "Only true or false values are accepted",
- "required": true,
- "sensitive": true,
- "syntax": "yaml",
- "title": "Custom Configuration Parameters",
- "uiElements": [
- {
- "default": null,
- "field": "some_key",
- "forcedType": "[]string",
- "label": "An Important Key",
- "multiline": true,
- "optionSeparator": "string",
- "options": [
- "string"
], - "readonly": true,
- "regex": "^(true|false)$",
- "regexFailureMessage": "Only true or false values are accepted",
- "required": true
}
], - "uiElementsDeleteMessage": "string",
- "value": "some custom value"
}
]Sets a configuration setting to a new value.
The setting to update. Only non-metadata fields are required, specifically 'id' and 'value', and optionally the 'nodeId' field if this is being applied to a specific node
| advanced | boolean (metadata) Indicates whether this setting should only be shown when the 'Show advanced settings' option is enabled in the user interface. |
| default | string (metadata) The default value for this configuration setting, if available |
| defaultAvailable | boolean (metadata) Indicates whether there is a default value available for this configuration setting |
| description | string (metadata) A description explaining the purpose of the configuration setting, if one is available. |
| duplicates | boolean (metadata) Indicates whether this setting can be duplicated. Duplicating settings is a complex area that can lead to system or upgrade failures so this is used sparingly. |
| file | boolean (metadata) Indicates whether the ID of this setting refers to a file on disk, in which case the changing the setting's value will replace the contents of the file on disk. |
| forcedType | string (metadata) The type that the value will be converted to internally before applied to the component that uses it. |
| global | boolean (metadata) Indicates whether this setting only applies to the grid as a whole |
| helpLink | string (metadata) An HTML page, relative to the doc URL, that may assist the user in understanding the purpose of this setting. |
| id | string The ID of the configuration setting. Each period represents a nested level. |
| jinjaEscaped | boolean (metadata) Indicates whether the setting value allows Jinja2 escape characters. By default these are prohibited as a security precaution. |
| multiline | boolean (metadata) Indicates whether this setting's user interface display should allow the user to enter values onto multiple lines |
| node | boolean (metadata) Indicates whether this setting can be applied differently per each node in the grid |
| nodeId | string The node ID to which this setting's value applies |
| optionSeparator | string (metadata) For multi-select options, the separator string used to store them into a single string |
| options | Array of strings (metadata) List of static values for a setting |
| readonly | boolean (metadata) Indicates whether this setting is read-only. Read-only settings should not be modified. |
| readonlyUi | boolean (metadata) Indicates whether this setting is read-only in the user interface only, but may be adjusted by the system itself. |
| regex | string (metadata) An optional regular expression pattern that the value of this setting must match |
| regexFailureMessage | string (metadata) The failure message to show on the user interface when the user enters a value that fails to match the regex. |
| required | boolean (metadata) If true this UI element must be specified by the user before it can be saved |
| sensitive | boolean (metadata) Indicates whether this setting's value should be masked in the user interface to prevent obtaining the existing value, while still permitting new values to be applied. |
| syntax | string (metadata) An optional syntax designator for validating the given setting value. |
| title | string (metadata) The configuration setting more human-friendly title, if one is available. |
Array of objects (model.UiElement) (metadata) List of UiElement objects describing how the UI should present the field for input | |
| uiElementsDeleteMessage | string (metadata) Confirmation message to show when user clicks the delete button on a ui element. If omitted, no message will be shown. |
| value | string The value of this specific configuration setting. Note that a setting exist multiple times if different values are applied to specific nodes |
{- "advanced": false,
- "default": "some default value",
- "defaultAvailable": true,
- "description": "Optional configuration parameters made available as defaults for all rules and alerters",
- "duplicates": false,
- "file": false,
- "forcedType": "[]string",
- "global": true,
- "helpLink": "elastalert",
- "id": "elastalert.alerter_parameters",
- "jinjaEscaped": false,
- "multiline": true,
- "node": false,
- "nodeId": "chi-so-001_standalone",
- "optionSeparator": "string",
- "options": [
- "string"
], - "readonly": false,
- "readonlyUi": false,
- "regex": "^(true|false)$",
- "regexFailureMessage": "Only true or false values are accepted",
- "required": true,
- "sensitive": true,
- "syntax": "yaml",
- "title": "Custom Configuration Parameters",
- "uiElements": [
- {
- "default": null,
- "field": "some_key",
- "forcedType": "[]string",
- "label": "An Important Key",
- "multiline": true,
- "optionSeparator": "string",
- "options": [
- "string"
], - "readonly": true,
- "regex": "^(true|false)$",
- "regexFailureMessage": "Only true or false values are accepted",
- "required": true
}
], - "uiElementsDeleteMessage": "string",
- "value": "some custom value"
}Removes a custom setting value. This effectively reverts to the default setting value.
| id required | string Example: elastalert.alerter_parameters The setting ID to remove |
| minion | string Example: chi-so-001_standalone The optional node ID from which to remove this setting. If omitted, the setting will be removed from the global grid and any node-specific setting values will remain in place. |
Synchronizes a specific module's state to apply recent configuration changes to the grid. If async is true, this will queue up a Salt state.apply, which can take several minutes to complete, or longer if another highstate is already in progress. If async is false and another state is already in progress, this will return an error.
| module required | string Example: soc The module name to sync |
| async | string Example: async=true If true, runs the synchronization in the background |
Creates a new detection by providing the detection object as the request body, in JSON format. Detections marked as community detections cannot be created with this API. While the public ID is required for some engines, the internal ID will always be populated by the server.
The detection object to create
| aiSummary | string The detection summary generated by artificial intelligence |
| aiSummaryReviewed | boolean Reserved for future use |
| author | string The original author of this detection. This can be a mixture of email address, organization name, first name, or any freeform value |
| category | string Used for categorizing this detection into a broader grouping such as firewalls or web servers |
| content | string The underlying detection rule source content |
| createTime | string The date and time that this object was created. This is a read-only field. |
| description | string Brief explanation of this detection |
| engine | string (model.EngineName) The engine that processes this detection |
| id | string The ID assigned to this object by the server. This is a read-only field. |
| isCommunity | boolean Indicates whether this detection originated from a community ruleset. Duplicated detections will show 'false'. |
| isEnabled | boolean Indicates whether this detection is currently enabled in the Security Onion grid |
| isReporting | boolean Indicates whether this detection is currently triggering alerts. Not yet fully implemented. |
| isSummaryStale | boolean Indicates whether this detection's AI summary is current (true) or if the detection source has changed but the generated summary has not yet been updated to reflect the change" |
| kind | string The kind of object. This is a read-only field. |
| language | string (model.SigLanguage) Enum: "sigma" "suricata" "yara" The language that this detection uses. |
| license | string The license that applies to this detection |
| operation | string The operation that was applied to the object. This is a read-only field. |
Array of objects (model.Override) A list of tuning overrides that apply to this detection. | |
| product | string Used by Sigma rules for filtering log outputs to a specific product, such as the Windows eventlog types |
| publicId | string The public ID shared across all Security Onion grids |
| ruleset | string The name of the ruleset from which this detection originated, or custom if the ruleset was created outside of a ruleset |
| service | string Used by Sigma rules for filtering a subset of log ouputs to a specific server. |
| severity | string (model.Severity) Enum: "unknown" "informational" "low" "medium" "high" "critical" The severity classification of this detection |
| sourceCreated | string The date and time when the underlying detection rule source was created. This is not when the detection was added to this grid. |
| sourceUpdated | string The date and time when the underlying detection rule source was last updated. This is not when the detection was updated in this grid. |
| tags | Array of strings An optional list of user-defined tags, useful for grouping similar detections together |
| title | string Summarized title of the detection |
| updateTime | string The date and time that this object was last modified. This is a read-only field. |
| userId | string The user ID (or API client ID) that initiated this event. This is a read-only field. |
{- "aiSummary": "This rule detects antivirus alerts reporting the presence of ransomware,...",
- "aiSummaryReviewed": false,
- "author": "Security Onion Solutions",
- "category": "ps_script",
- "content": "title: CobaltStrike Named Pipe\nid: ...\n logsource:\n ...\ncondition: selection\nfalsepositives:\n...",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Detects when a user fails to login to a grid node via SSH. Review associated logs for username and source IP.",
- "engine": "string",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "isCommunity": true,
- "isEnabled": true,
- "isReporting": false,
- "isSummaryStale": false,
- "kind": "case",
- "language": "sigma",
- "license": "DRL",
- "operation": "create",
- "overrides": [
- {
- "count": 10,
- "createdAt": "2024-12-06T14:36:45.579994541Z",
- "customFilter": "sofilter:\n user.name: dresden",
- "ip": "1.2.3.4/32",
- "isEnabled": true,
- "note": "Exclude the SMTP server due to FPs",
- "regex": "content:xyz",
- "seconds": 120,
- "thresholdType": "threshold",
- "track": "by_src",
- "type": "customFilter",
- "updatedAt": "2024-12-06T14:36:45.579994541Z",
- "value": "content:xyz content:!1.2.3.4/32"
}
], - "product": "windows",
- "publicId": "923421c7-9b1e-45d4-80cc-e21d060c8723",
- "ruleset": "__custom__",
- "service": "sshd",
- "severity": "unknown",
- "sourceCreated": "string",
- "sourceUpdated": "string",
- "tags": [
- "string"
], - "title": "Security Onion - Grid Node Login Failure (SSH)",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}{- "aiSummary": "This rule detects antivirus alerts reporting the presence of ransomware,...",
- "aiSummaryReviewed": false,
- "author": "Security Onion Solutions",
- "category": "ps_script",
- "content": "title: CobaltStrike Named Pipe\nid: ...\n logsource:\n ...\ncondition: selection\nfalsepositives:\n...",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Detects when a user fails to login to a grid node via SSH. Review associated logs for username and source IP.",
- "engine": "string",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "isCommunity": true,
- "isEnabled": true,
- "isReporting": false,
- "isSummaryStale": false,
- "kind": "case",
- "language": "sigma",
- "license": "DRL",
- "operation": "create",
- "overrides": [
- {
- "count": 10,
- "createdAt": "2024-12-06T14:36:45.579994541Z",
- "customFilter": "sofilter:\n user.name: dresden",
- "ip": "1.2.3.4/32",
- "isEnabled": true,
- "note": "Exclude the SMTP server due to FPs",
- "regex": "content:xyz",
- "seconds": 120,
- "thresholdType": "threshold",
- "track": "by_src",
- "type": "customFilter",
- "updatedAt": "2024-12-06T14:36:45.579994541Z",
- "value": "content:xyz content:!1.2.3.4/32"
}
], - "product": "windows",
- "publicId": "923421c7-9b1e-45d4-80cc-e21d060c8723",
- "ruleset": "__custom__",
- "service": "sshd",
- "severity": "unknown",
- "sourceCreated": "string",
- "sourceUpdated": "string",
- "tags": [
- "string"
], - "title": "Security Onion - Grid Node Login Failure (SSH)",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}Updates an existing detection by providing the new detection object as the request body, in JSON format.
The detection object to create
| aiSummary | string The detection summary generated by artificial intelligence |
| aiSummaryReviewed | boolean Reserved for future use |
| author | string The original author of this detection. This can be a mixture of email address, organization name, first name, or any freeform value |
| category | string Used for categorizing this detection into a broader grouping such as firewalls or web servers |
| content | string The underlying detection rule source content |
| createTime | string The date and time that this object was created. This is a read-only field. |
| description | string Brief explanation of this detection |
| engine | string (model.EngineName) The engine that processes this detection |
| id | string The ID assigned to this object by the server. This is a read-only field. |
| isCommunity | boolean Indicates whether this detection originated from a community ruleset. Duplicated detections will show 'false'. |
| isEnabled | boolean Indicates whether this detection is currently enabled in the Security Onion grid |
| isReporting | boolean Indicates whether this detection is currently triggering alerts. Not yet fully implemented. |
| isSummaryStale | boolean Indicates whether this detection's AI summary is current (true) or if the detection source has changed but the generated summary has not yet been updated to reflect the change" |
| kind | string The kind of object. This is a read-only field. |
| language | string (model.SigLanguage) Enum: "sigma" "suricata" "yara" The language that this detection uses. |
| license | string The license that applies to this detection |
| operation | string The operation that was applied to the object. This is a read-only field. |
Array of objects (model.Override) A list of tuning overrides that apply to this detection. | |
| product | string Used by Sigma rules for filtering log outputs to a specific product, such as the Windows eventlog types |
| publicId | string The public ID shared across all Security Onion grids |
| ruleset | string The name of the ruleset from which this detection originated, or custom if the ruleset was created outside of a ruleset |
| service | string Used by Sigma rules for filtering a subset of log ouputs to a specific server. |
| severity | string (model.Severity) Enum: "unknown" "informational" "low" "medium" "high" "critical" The severity classification of this detection |
| sourceCreated | string The date and time when the underlying detection rule source was created. This is not when the detection was added to this grid. |
| sourceUpdated | string The date and time when the underlying detection rule source was last updated. This is not when the detection was updated in this grid. |
| tags | Array of strings An optional list of user-defined tags, useful for grouping similar detections together |
| title | string Summarized title of the detection |
| updateTime | string The date and time that this object was last modified. This is a read-only field. |
| userId | string The user ID (or API client ID) that initiated this event. This is a read-only field. |
{- "aiSummary": "This rule detects antivirus alerts reporting the presence of ransomware,...",
- "aiSummaryReviewed": false,
- "author": "Security Onion Solutions",
- "category": "ps_script",
- "content": "title: CobaltStrike Named Pipe\nid: ...\n logsource:\n ...\ncondition: selection\nfalsepositives:\n...",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Detects when a user fails to login to a grid node via SSH. Review associated logs for username and source IP.",
- "engine": "string",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "isCommunity": true,
- "isEnabled": true,
- "isReporting": false,
- "isSummaryStale": false,
- "kind": "case",
- "language": "sigma",
- "license": "DRL",
- "operation": "create",
- "overrides": [
- {
- "count": 10,
- "createdAt": "2024-12-06T14:36:45.579994541Z",
- "customFilter": "sofilter:\n user.name: dresden",
- "ip": "1.2.3.4/32",
- "isEnabled": true,
- "note": "Exclude the SMTP server due to FPs",
- "regex": "content:xyz",
- "seconds": 120,
- "thresholdType": "threshold",
- "track": "by_src",
- "type": "customFilter",
- "updatedAt": "2024-12-06T14:36:45.579994541Z",
- "value": "content:xyz content:!1.2.3.4/32"
}
], - "product": "windows",
- "publicId": "923421c7-9b1e-45d4-80cc-e21d060c8723",
- "ruleset": "__custom__",
- "service": "sshd",
- "severity": "unknown",
- "sourceCreated": "string",
- "sourceUpdated": "string",
- "tags": [
- "string"
], - "title": "Security Onion - Grid Node Login Failure (SSH)",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}{- "aiSummary": "This rule detects antivirus alerts reporting the presence of ransomware,...",
- "aiSummaryReviewed": false,
- "author": "Security Onion Solutions",
- "category": "ps_script",
- "content": "title: CobaltStrike Named Pipe\nid: ...\n logsource:\n ...\ncondition: selection\nfalsepositives:\n...",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Detects when a user fails to login to a grid node via SSH. Review associated logs for username and source IP.",
- "engine": "string",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "isCommunity": true,
- "isEnabled": true,
- "isReporting": false,
- "isSummaryStale": false,
- "kind": "case",
- "language": "sigma",
- "license": "DRL",
- "operation": "create",
- "overrides": [
- {
- "count": 10,
- "createdAt": "2024-12-06T14:36:45.579994541Z",
- "customFilter": "sofilter:\n user.name: dresden",
- "ip": "1.2.3.4/32",
- "isEnabled": true,
- "note": "Exclude the SMTP server due to FPs",
- "regex": "content:xyz",
- "seconds": 120,
- "thresholdType": "threshold",
- "track": "by_src",
- "type": "customFilter",
- "updatedAt": "2024-12-06T14:36:45.579994541Z",
- "value": "content:xyz content:!1.2.3.4/32"
}
], - "product": "windows",
- "publicId": "923421c7-9b1e-45d4-80cc-e21d060c8723",
- "ruleset": "__custom__",
- "service": "sshd",
- "severity": "unknown",
- "sourceCreated": "string",
- "sourceUpdated": "string",
- "tags": [
- "string"
], - "title": "Security Onion - Grid Node Login Failure (SSH)",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}Retrieves a specific detection given an internal detection ID. This ID is unique only to this particular grid. Use the "Query Data" API to search for detections using other criteria, specifying a query parameter that includes the following, at a minimum: _index:"*:so-detection"
| id required | string Example: zC73PJABrNRFAsnEYkqy The detection ID to retrieve |
{- "aiSummary": "This rule detects antivirus alerts reporting the presence of ransomware,...",
- "aiSummaryReviewed": false,
- "author": "Security Onion Solutions",
- "category": "ps_script",
- "content": "title: CobaltStrike Named Pipe\nid: ...\n logsource:\n ...\ncondition: selection\nfalsepositives:\n...",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Detects when a user fails to login to a grid node via SSH. Review associated logs for username and source IP.",
- "engine": "string",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "isCommunity": true,
- "isEnabled": true,
- "isReporting": false,
- "isSummaryStale": false,
- "kind": "case",
- "language": "sigma",
- "license": "DRL",
- "operation": "create",
- "overrides": [
- {
- "count": 10,
- "createdAt": "2024-12-06T14:36:45.579994541Z",
- "customFilter": "sofilter:\n user.name: dresden",
- "ip": "1.2.3.4/32",
- "isEnabled": true,
- "note": "Exclude the SMTP server due to FPs",
- "regex": "content:xyz",
- "seconds": 120,
- "thresholdType": "threshold",
- "track": "by_src",
- "type": "customFilter",
- "updatedAt": "2024-12-06T14:36:45.579994541Z",
- "value": "content:xyz content:!1.2.3.4/32"
}
], - "product": "windows",
- "publicId": "923421c7-9b1e-45d4-80cc-e21d060c8723",
- "ruleset": "__custom__",
- "service": "sshd",
- "severity": "unknown",
- "sourceCreated": "string",
- "sourceUpdated": "string",
- "tags": [
- "string"
], - "title": "Security Onion - Grid Node Login Failure (SSH)",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}Retrieves the comments associated with the given detection ID.
| id required | string Example: zC73PJABrNRFAsnEYkqy The internal detection ID |
[- {
- "createTime": "2024-11-14T15:03:22Z",
- "detectionId": "CwR86o8B-vS4HfrbMV5Y",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client",
- "value": "This detection is known to trigger FPs on the first of the month"
}
]Copies the detection associated with the given ID into a new detection. A new ID will be assigned to the duplicated detection.
| id required | string Example: zC73PJABrNRFAsnEYkqy The detection ID to duplicate |
{- "aiSummary": "This rule detects antivirus alerts reporting the presence of ransomware,...",
- "aiSummaryReviewed": false,
- "author": "Security Onion Solutions",
- "category": "ps_script",
- "content": "title: CobaltStrike Named Pipe\nid: ...\n logsource:\n ...\ncondition: selection\nfalsepositives:\n...",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Detects when a user fails to login to a grid node via SSH. Review associated logs for username and source IP.",
- "engine": "string",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "isCommunity": true,
- "isEnabled": true,
- "isReporting": false,
- "isSummaryStale": false,
- "kind": "case",
- "language": "sigma",
- "license": "DRL",
- "operation": "create",
- "overrides": [
- {
- "count": 10,
- "createdAt": "2024-12-06T14:36:45.579994541Z",
- "customFilter": "sofilter:\n user.name: dresden",
- "ip": "1.2.3.4/32",
- "isEnabled": true,
- "note": "Exclude the SMTP server due to FPs",
- "regex": "content:xyz",
- "seconds": 120,
- "thresholdType": "threshold",
- "track": "by_src",
- "type": "customFilter",
- "updatedAt": "2024-12-06T14:36:45.579994541Z",
- "value": "content:xyz content:!1.2.3.4/32"
}
], - "product": "windows",
- "publicId": "923421c7-9b1e-45d4-80cc-e21d060c8723",
- "ruleset": "__custom__",
- "service": "sshd",
- "severity": "unknown",
- "sourceCreated": "string",
- "sourceUpdated": "string",
- "tags": [
- "string"
], - "title": "Security Onion - Grid Node Login Failure (SSH)",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}Retrieves a specific detection's audit history given an internal detection ID.
| id required | string Example: zC73PJABrNRFAsnEYkqy The detection ID to retrieve |
[- {
- "createTime": "2024-11-14T15:03:22Z",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}
]Updates an existing override note.
| id required | string Example: zC73PJABrNRFAsnEYkqy The internal detection ID |
| overrideIndex required | number The 0-based index of the override within the detection |
The note object that will replace the existing override note
| note | string The note content to replace on an existing override. |
{- "note": "corrected note"
}Enables, disables, or deletes multiple detections asynchronously.
| newStatus required | string Enum: "enable" "disable" "delete" The new status of the detection |
The bulk detection search criteria
| ids | Array of strings The list of detection IDs to bulk update when a specific query is not provided |
| query | string The query string to use for matching detections, or leave empty if providing a list of internal detection IDs" |
{- "ids": [
- "zC73PJABrNRFAsnEYkqy",
- "XgaI6o8B-vS4HfrbYcce"
], - "query": "severity: low AND ruleset: ETOPEN"
}{- "count": 120
}Retrieves the comment associated with the given comment ID.
| id required | string Example: MeEcnpMB4OVrR03M4und The detection comment ID |
{- "createTime": "2024-11-14T15:03:22Z",
- "detectionId": "CwR86o8B-vS4HfrbMV5Y",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client",
- "value": "This detection is known to trigger FPs on the first of the month"
}Creates a new detection comment for the detection associated with the provided detection ID.
| id required | string Example: zC73PJABrNRFAsnEYkqy The internal detection ID |
A detection comment object with the new content; any provided detection ID will be ignored
| createTime | string The date and time that this object was created. This is a read-only field. |
| detectionId | string The detection ID to which this comment was added |
| id | string The ID assigned to this object by the server. This is a read-only field. |
| kind | string The kind of object. This is a read-only field. |
| operation | string The operation that was applied to the object. This is a read-only field. |
| updateTime | string The date and time that this object was last modified. This is a read-only field. |
| userId | string The user ID (or API client ID) that initiated this event. This is a read-only field. |
| value | string The comment text or markdown content |
{- "createTime": "2024-11-14T15:03:22Z",
- "detectionId": "CwR86o8B-vS4HfrbMV5Y",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client",
- "value": "This detection is known to trigger FPs on the first of the month"
}{- "createTime": "2024-11-14T15:03:22Z",
- "detectionId": "CwR86o8B-vS4HfrbMV5Y",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client",
- "value": "This detection is known to trigger FPs on the first of the month"
}Updates the comment associated with the given comment ID with the provided content.
| id required | string Example: MeEcnpMB4OVrR03M4und The detection comment ID |
A detection object with the new content
| createTime | string The date and time that this object was created. This is a read-only field. |
| detectionId | string The detection ID to which this comment was added |
| id | string The ID assigned to this object by the server. This is a read-only field. |
| kind | string The kind of object. This is a read-only field. |
| operation | string The operation that was applied to the object. This is a read-only field. |
| updateTime | string The date and time that this object was last modified. This is a read-only field. |
| userId | string The user ID (or API client ID) that initiated this event. This is a read-only field. |
| value | string The comment text or markdown content |
{- "createTime": "2024-11-14T15:03:22Z",
- "detectionId": "CwR86o8B-vS4HfrbMV5Y",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "operation": "create",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client",
- "value": "This detection is known to trigger FPs on the first of the month"
}Converts the given Sigma Detection rule into an Elasticsearch query. NOTE: The API method only works with Sigma rules.
The Sigma detection object with the Content and optional Overrides populated
| aiSummary | string The detection summary generated by artificial intelligence |
| aiSummaryReviewed | boolean Reserved for future use |
| author | string The original author of this detection. This can be a mixture of email address, organization name, first name, or any freeform value |
| category | string Used for categorizing this detection into a broader grouping such as firewalls or web servers |
| content | string The underlying detection rule source content |
| createTime | string The date and time that this object was created. This is a read-only field. |
| description | string Brief explanation of this detection |
| engine | string (model.EngineName) The engine that processes this detection |
| id | string The ID assigned to this object by the server. This is a read-only field. |
| isCommunity | boolean Indicates whether this detection originated from a community ruleset. Duplicated detections will show 'false'. |
| isEnabled | boolean Indicates whether this detection is currently enabled in the Security Onion grid |
| isReporting | boolean Indicates whether this detection is currently triggering alerts. Not yet fully implemented. |
| isSummaryStale | boolean Indicates whether this detection's AI summary is current (true) or if the detection source has changed but the generated summary has not yet been updated to reflect the change" |
| kind | string The kind of object. This is a read-only field. |
| language | string (model.SigLanguage) Enum: "sigma" "suricata" "yara" The language that this detection uses. |
| license | string The license that applies to this detection |
| operation | string The operation that was applied to the object. This is a read-only field. |
Array of objects (model.Override) A list of tuning overrides that apply to this detection. | |
| product | string Used by Sigma rules for filtering log outputs to a specific product, such as the Windows eventlog types |
| publicId | string The public ID shared across all Security Onion grids |
| ruleset | string The name of the ruleset from which this detection originated, or custom if the ruleset was created outside of a ruleset |
| service | string Used by Sigma rules for filtering a subset of log ouputs to a specific server. |
| severity | string (model.Severity) Enum: "unknown" "informational" "low" "medium" "high" "critical" The severity classification of this detection |
| sourceCreated | string The date and time when the underlying detection rule source was created. This is not when the detection was added to this grid. |
| sourceUpdated | string The date and time when the underlying detection rule source was last updated. This is not when the detection was updated in this grid. |
| tags | Array of strings An optional list of user-defined tags, useful for grouping similar detections together |
| title | string Summarized title of the detection |
| updateTime | string The date and time that this object was last modified. This is a read-only field. |
| userId | string The user ID (or API client ID) that initiated this event. This is a read-only field. |
{- "aiSummary": "This rule detects antivirus alerts reporting the presence of ransomware,...",
- "aiSummaryReviewed": false,
- "author": "Security Onion Solutions",
- "category": "ps_script",
- "content": "title: CobaltStrike Named Pipe\nid: ...\n logsource:\n ...\ncondition: selection\nfalsepositives:\n...",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Detects when a user fails to login to a grid node via SSH. Review associated logs for username and source IP.",
- "engine": "string",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "isCommunity": true,
- "isEnabled": true,
- "isReporting": false,
- "isSummaryStale": false,
- "kind": "case",
- "language": "sigma",
- "license": "DRL",
- "operation": "create",
- "overrides": [
- {
- "count": 10,
- "createdAt": "2024-12-06T14:36:45.579994541Z",
- "customFilter": "sofilter:\n user.name: dresden",
- "ip": "1.2.3.4/32",
- "isEnabled": true,
- "note": "Exclude the SMTP server due to FPs",
- "regex": "content:xyz",
- "seconds": 120,
- "thresholdType": "threshold",
- "track": "by_src",
- "type": "customFilter",
- "updatedAt": "2024-12-06T14:36:45.579994541Z",
- "value": "content:xyz content:!1.2.3.4/32"
}
], - "product": "windows",
- "publicId": "923421c7-9b1e-45d4-80cc-e21d060c8723",
- "ruleset": "__custom__",
- "service": "sshd",
- "severity": "unknown",
- "sourceCreated": "string",
- "sourceUpdated": "string",
- "tags": [
- "string"
], - "title": "Security Onion - Grid Node Login Failure (SSH)",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}{- "query": "somefield: somevalue AND anotherfield: 123"
}Retrieves a specific detection given a public detection ID. This ID is assigned by the ruleset author.
| id required | string Example: 2038279 The detection public ID to retrieve |
{- "aiSummary": "This rule detects antivirus alerts reporting the presence of ransomware,...",
- "aiSummaryReviewed": false,
- "author": "Security Onion Solutions",
- "category": "ps_script",
- "content": "title: CobaltStrike Named Pipe\nid: ...\n logsource:\n ...\ncondition: selection\nfalsepositives:\n...",
- "createTime": "2024-11-14T15:03:22Z",
- "description": "Detects when a user fails to login to a grid node via SSH. Review associated logs for username and source IP.",
- "engine": "string",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "isCommunity": true,
- "isEnabled": true,
- "isReporting": false,
- "isSummaryStale": false,
- "kind": "case",
- "language": "sigma",
- "license": "DRL",
- "operation": "create",
- "overrides": [
- {
- "count": 10,
- "createdAt": "2024-12-06T14:36:45.579994541Z",
- "customFilter": "sofilter:\n user.name: dresden",
- "ip": "1.2.3.4/32",
- "isEnabled": true,
- "note": "Exclude the SMTP server due to FPs",
- "regex": "content:xyz",
- "seconds": 120,
- "thresholdType": "threshold",
- "track": "by_src",
- "type": "customFilter",
- "updatedAt": "2024-12-06T14:36:45.579994541Z",
- "value": "content:xyz content:!1.2.3.4/32"
}
], - "product": "windows",
- "publicId": "923421c7-9b1e-45d4-80cc-e21d060c8723",
- "ruleset": "__custom__",
- "service": "sshd",
- "severity": "unknown",
- "sourceCreated": "string",
- "sourceUpdated": "string",
- "tags": [
- "string"
], - "title": "Security Onion - Grid Node Login Failure (SSH)",
- "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}Initiates an asynchronous synchronization of the specified detection engine.
| engine required | string Enum: "all" "elastalert" "suricata" "strelka\"" The detection engine to sync |
| type required | string Enum: "full" "update" The type of sync to perform |
Given a search query, fetch all matching results, up to the maximum number requested, or the maximum that the backend data server will provide.
The query structure resembles the following:
(field_name1:required_value AND field_name2:>50) OR field_name3:"some string value" | groupby field_name1 field_name2 | sortby field_name1 field_name3 | ...
Everything the left of the | "pipe" character must be in Lucene syntax.
The operation keywords, such as AND, OR, NOT must always be capitalized.
For more information on the query syntax, refer to the Security Onion documentation and search for OQL.
| query required | string Example: query=tags:conn | groupby source.ip destination.ip network.protocol destination.port User defined search query |
| range required | string Example: range=2024/12/03 03:09:31 PM - 2024/12/04 03:09:31 PM Date range, in the specified timezone |
| zone required | string Example: zone=America/New_York Timezone of the date range |
| format required | string Example: format=2006/01/02 3:04:05 PM Date range date format. Use the example, exactly as shown, if not familiar with date formats |
| metricLimit required | integer Example: metricLimit=10 Maximum number of metrics to include in each aggregation |
| eventLimit required | integer Example: eventLimit=100 Maximum number of events to return |
[- {
- "completeTime": "2024-12-04T19:54:33.822293482Z",
- "createTime": "2024-12-04T19:54:33.519514906Z",
- "criteria": {
- "beginTime": "2024-12-03T14:31:35-05:00",
- "createTime": "2024-12-04T19:31:42.73865332Z",
- "dateRange": "",
- "endTime": "2024-12-04T14:31:35-05:00",
- "eventLimit": 100,
- "metricLimit": 10,
- "query": "(*) AND tags:alert AND NOT event.acknowledged:true AND NOT event.escalated:true | groupby rule.name event.module* event.severity_label rule.uuid"
}, - "elapsedMs": 299,
- "errors": [
- "all shards failed"
], - "events": [
- {
- "id": "ru5Jk5MB4OVrR03M8ee8",
- "payload": {
- "@timestamp": "2024-12-04T20:06:04.725Z",
- "@version": "1",
- "client.ip": "4.33.51.1",
- "client.port": "5544"
}, - "score": 0,
- "sort": [
- "0:33.32.12.56"
], - "source": "so:.ds-logs-zeek-so-2024.11.21-000017",
- "time": "2024-12-04T20:08:15.97Z",
- "timestamp": "2024-12-04T20:08:15.970Z",
- "type": ""
}
], - "metrics": {
- "property1": { },
- "property2": { }
}, - "totalEvents": 5109848
}
]Acknowledges the alert event(s) matching the given query. Note that this will not remove the event from connected SOC users' Alert screens when the same alert event happens to be also present on their Alert screen. However, if they refresh the Alert screen the alert event will no longer be listed.
Ack criteria
| acknowledge | boolean Whether to acknowledge or unacknowledge the events: true = acknowledge, false = unacknowledge |
| dateRange | string The date range to use for searching for matching events |
| dateRangeFormat | string The date range format. If unsure how to use this then use the example value exactly as shown. |
| escalate | boolean Whether the events have also been escalated to a case: true = escalated, false = has not been escalated |
object Optional event filters to further narrow down matching events to acknowledge. These are field:value pairs. | |
| searchFilter | string The search filter to utilize when searching for matching events to acknowledge. |
| timezone | string The timezone to use with the date range |
{- "acknowledge": true,
- "dateRange": "2024/12/03 02:31:35 PM - 2024/12/04 02:31:35 PM",
- "dateRangeFormat": "2006/01/02 3:04:05 PM",
- "escalate": false,
- "eventFilter": {
- "event.module": "sigma",
- "rule.name": "Security Onion - SOC Login Failure",
- "rule.uuid": "bf86ef21-41e6-417b-9a05-b9ea6bf28a38"
}, - "searchFilter": "tags:alert AND NOT event.acknowledged:true AND NOT event.escalated:true | groupby rule.name event.module* event.severity_label rule.uuid",
- "timezone": "America/New_York"
}{- "completeTime": "2024-12-04T19:54:33.822293482Z",
- "createTime": "2024-12-04T19:54:33.519514906Z",
- "criteria": {
- "async": false,
- "beginTime": "2024-12-03T14:31:35-05:00",
- "createTime": "2024-12-04T19:31:42.73865332Z",
- "dateRange": "",
- "endTime": "2024-12-04T14:31:35-05:00",
- "eventLimit": 100,
- "metricLimit": 10,
- "query": "(*) AND tags:alert AND NOT event.acknowledged:true AND NOT event.escalated:true | groupby rule.name event.module* event.severity_label rule.uuid",
- "updateScripts": [
- "<Painless Script Syntax>"
]
}, - "elapsedMs": 299,
- "errors": [
- "all shards failed"
], - "unchangedCount": 0,
- "updatedCount": 1
}Requests the server provide a new query for the SOC client to show, given a particular change needed in the query.
| operation required | string Example: grouped The type of operation for this query update. Supports: grouped, filtered, sorted |
The operation mode.
Returns a list of active event/data queries within the grid. Users will only see their queries unless they have privileged access to see active queries across all users. Requires a Security Onion Pro license.
| filter | boolean Example: filter=true If set to true the internal, child, uncancelable, and related queries will be filtered out of the results |
[- {
- "cancelable": true,
- "details": "transport (cluster:monitor/tasks/lists)",
- "elapsedMs": 100023,
- "gridId": "SubgridA",
- "startTime": "2024-10-06T19:29:39.332211Z",
- "taskId": "jSliTqa12bOPhdW195TuuZ:443"
}
]Requests that the event storage system cancel a specific query identified by the provided input ID. Note that not all queries can be canceled. Requires a Security Onion Pro license.
| queryId required | string Example: jSliTqa12bOPhdW195TuuZ:321 The unique query ID to cancel |
{ }Performs a reverse name lookup query on a list of provided IP addresses. The configured list of DNS overrides is checked first, and if no match is found a DNS reverse lookup is performed. The input listed is deduplicated first to avoid repeated lookups in the same request.
List of IP addresses to reverse lookup
[- "string"
]{- "property1": [
- "string"
], - "property2": [
- "string"
]
}Retrieves the list of nodes that have recently checked-in with SOC. Nodes are grid members that have recently checked in with SOC. Under certain scenarios this may not include nodes that are accepted members of the grid but currently offline. Effectively, the results of this API call will match the view of the Grid screen in SOC (Not the Grid Members screen).
[- {
- "address": "4.3.2.1",
- "captureLossPct": 24.0605,
- "connectionStatus": "fault",
- "consumptionEps": 110,
- "cpuUsedPct": 5.0035165275079265,
- "description": "East coast sensor",
- "diskTotalNsmGB": 772.7962808320001,
- "diskTotalRootGB": 314.41920000000005,
- "diskUsedElasticGB": 386.948,
- "diskUsedInfluxDbGB": 1.922272,
- "diskUsedNsmPct": 84.28509193998036,
- "diskUsedRootPct": 20.944604461814038,
- "epochTime": "2024-12-01T03:24:01Z",
- "eventstoreStatus": "ok",
- "failedEvents": 0,
- "fpsEnabled": 0,
- "gmdEnabled": 0,
- "gridId": "so1",
- "highstateAgeSeconds": 220,
- "id": "sensor-001",
- "imageBack": "5000v2_back_thumb.jpg",
- "imageFront": "5000v2_front_thumb.jpg",
- "ioWaitPct": 0.21099,
- "lksEnabled": 1,
- "load5m": 0.96,
- "load15m": 1.09,
- "load1m": 0.43,
- "memoryTotalGB": 33.176731648,
- "memoryUsedPct": 60.66793353109983,
- "metricsEnabled": true,
- "mgmtMac": "AA:BB:CC:11:22:33",
- "model": "SOS5000-DE02",
- "nonCriticalNode": false,
- "onlineTime": "2024-01-26T21:17:25Z",
- "osNeedsRestart": 1,
- "osUptimeSeconds": 1384801,
- "pcapDays": 1.8762268518518517,
- "processJson": "{\"status_code\":0, \"containers\":[{\"Name\":\"so-dockerregistry\", \"Status\":\"running\",\"Details\":\"Up 2 weeks\"}, ... ]}",
- "processStatus": "ok",
- "productionEps": 0,
- "raidStatus": "unknown",
- "redisQueueSize": 0,
- "role": "so-standalone",
- "status": "ok",
- "suriLossPct": 1.1345,
- "suriRulesFailed": 0,
- "suriRulesLoaded": 45879,
- "suriRulesReloadTime": "2025-12-04T01:04:07.994734+0000",
- "suriRulesStatus": "ok",
- "swapTotalGB": 8.589930496000001,
- "swapUsedPct": 63.27341235800379,
- "trafficManInMbs": 0.031592,
- "trafficManOutMbs": 0.030966666666666667,
- "trafficMonInDropsMbs": 0,
- "trafficMonInMbs": 1.6864359999999998,
- "updateTime": "2024-12-03T15:42:21.723166638Z",
- "uptimeSeconds": 26936696,
- "version": "2.4.110",
- "zeekLossPct": 0
}
]Retrieves the status of the grid overall. Includes grid health status information related to nodes, alerts, detection engines, etc.
[- {
- "alerts": {
- "newCount": 132
}, - "detections": {
- "elastalert": {
- "blocked": false,
- "importing": false,
- "integrityFailure": false,
- "migrating": false,
- "migrationFailure": false,
- "syncFailure": false,
- "syncing": true
}, - "strelka": {
- "blocked": false,
- "importing": false,
- "integrityFailure": false,
- "migrating": false,
- "migrationFailure": false,
- "syncFailure": false,
- "syncing": true
}, - "suricata": {
- "blocked": false,
- "importing": false,
- "integrityFailure": false,
- "migrating": false,
- "migrationFailure": false,
- "syncFailure": false,
- "syncing": true
}
}, - "grid": {
- "awaitingRebootNodeCount": 1,
- "eps": 2311,
- "totalNodeCount": 4,
- "unhealthyNodeCount": 0
}, - "gridId": "my_subgrid_a"
}
]Retrieves the complete list of all machine members associated, in some capacity, with this grid. A grid member is not necessarily an official grid node. For example, this list includes members that are not yet accepted into the grid, as well as members that have been rejected from joining the grid.
[- {
- "fingerprint": "89:b2:75:46:7e:a7:5d:b2:bf:3a:d8:5d:62:fa:23:cf:43:e7:74:f5:68:4f:03:02:3c:24:0c:47:d6:29:86:af",
- "id": "myserver_standalone",
- "name": "myserver",
- "role": "standalone",
- "status": "accepted"
}
]Manages a grid member by performing the specified operation.
| id required | string Example: so_standalone The grid member ID to be managed |
| operation required | string Example: reject The operation to perform: add, reject, delete, test, restart |
Imports the data from the given file. This is commonly used for importing PCAP and EVTX data directly into the node. The max file size defaults to 25MB unless customized in the server configuration. Example directory listing of a PCAP file being uploaded for import:
-rw-r--r-- 1 jertel jertel 1355 Jan 27 18:15 hdcp_authentication_sample.pcap
Example POST request, with some of the noteworthy headers shown:
POST /connect/gridmembers/manager_standalone/import
...
content-length: 1584
content-type: multipart/form-data; boundary=----WebKitFormBoundaryaKfZhnMSKrgA9HJh
...
------WebKitFormBoundaryaKfZhnMSKrgA9HJh
Content-Disposition: form-data; name="attachment"; filename="hdcp_authentication_sample.pcap"
Content-Type: application/vnd.tcpdump.pcap
<< raw bytes >>
------WebKitFormBoundaryaKfZhnMSKrgA9HJh--
| id required | string Example: manager_standalone The full node ID (name_role) into which this data will be imported |
The raw file data to import. This request must use multipart/form-data content type and the body must include one form part containing form-data content named 'attachment' with a filename attribute, a Content-Type header representing the file stream MIME type, and then the associated raw data stream.
Requests the Security Onion grid general details.
{- "customReports": {
- "property1": "string",
- "property2": "string"
}, - "elasticVersion": "8.14.3",
- "forceUserOtp": true,
- "license": "Elastic License 2.0 (ELv2)",
- "licenseKey": {
- "dataUrl": "",
- "effective": "2024-08-22T00:00:00Z",
- "expiration": "2025-08-22T23:59:59Z",
- "features": [
- "NTF"
], - "id": "acme_corp_20240822",
- "licensee": "Acme Corp",
- "mgmtMac": "10:20:30:A0:B0:C0",
- "name": "Security Onion Pro",
- "nodes": 5,
- "socUrl": "acme-so-manager",
- "subgrids": 2,
- "users": 0
}, - "licenseStatus": "active",
- "mgmtMac": "11:22:33:AA:BB:CC",
- "parameters": {
- "alerts": {
- "ackEnabled": true,
- "actions": [
- {
- "background": true,
- "backgroundFailureLink": "string",
- "backgroundSuccessLink": "string",
- "body": "string",
- "categories": [
- "string"
], - "description": "string",
- "fields": [
- "string"
], - "icon": "string",
- "jsCall": "string",
- "link": "string",
- "links": [
- "string"
], - "method": "string",
- "name": "string",
- "options": {
- "property1": null,
- "property2": null
}, - "target": "string"
}
], - "advanced": true,
- "aggregationActionsEnabled": true,
- "chartLabelFieldSeparator": "string",
- "chartLabelMaxLength": 0,
- "chartLabelOtherLimit": 0,
- "createLink": "string",
- "detectionEngineStatusQueries": "string",
- "escalateEnabled": true,
- "escalateRelatedEventsEnabled": true,
- "eventFetchLimit": 0,
- "eventFields": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "eventItemsPerPage": 0,
- "groupFetchLimit": 0,
- "groupItemsPerPage": 0,
- "maxBulkEscalateEvents": 0,
- "mostRecentlyUsedLimit": 0,
- "queries": [
- {
- "description": "string",
- "name": "string",
- "query": "string",
- "showSubtitle": true
}
], - "queryBaseFilter": "string",
- "queryToggleFilters": [
- {
- "disablesToggles": [
- "string"
], - "enabled": true,
- "enablesToggles": [
- "string"
], - "exclusive": true,
- "filter": "string",
- "name": "string"
}
], - "relativeTimeUnit": 0,
- "relativeTimeValue": 0,
- "safeStringMaxLength": 0,
- "viewEnabled": true
}, - "apiTimeoutMs": 0,
- "assistant": {
- "availableAdapters": [
- {
- "name": "string",
- "protocol": "string"
}
], - "availableModels": [
- {
- "adapter": "string",
- "contextLimitLarge": 0,
- "contextLimitSmall": 0,
- "displayName": "string",
- "enabled": true,
- "id": "string",
- "lowBalanceColorAlert": 0,
- "origin": "string"
}
], - "compressContextPrompt": "string",
- "enabled": true,
- "investigationPrompt": "string",
- "thresholdColorRatioLow": 0,
- "thresholdColorRatioMax": 0,
- "thresholdColorRatioMed": 0
}, - "cacheExpirationMs": 0,
- "case": {
- "analyzerNodeId": "string",
- "mostRecentlyUsedLimit": 0,
- "presets": {
- "property1": {
- "customEnabled": true,
- "labels": [
- "string"
]
}, - "property2": {
- "customEnabled": true,
- "labels": [
- "string"
]
}
}, - "renderAbbreviatedCount": 0
}, - "cases": {
- "ackEnabled": true,
- "actions": [
- {
- "background": true,
- "backgroundFailureLink": "string",
- "backgroundSuccessLink": "string",
- "body": "string",
- "categories": [
- "string"
], - "description": "string",
- "fields": [
- "string"
], - "icon": "string",
- "jsCall": "string",
- "link": "string",
- "links": [
- "string"
], - "method": "string",
- "name": "string",
- "options": {
- "property1": null,
- "property2": null
}, - "target": "string"
}
], - "advanced": true,
- "aggregationActionsEnabled": true,
- "chartLabelFieldSeparator": "string",
- "chartLabelMaxLength": 0,
- "chartLabelOtherLimit": 0,
- "createLink": "string",
- "detectionEngineStatusQueries": "string",
- "escalateEnabled": true,
- "escalateRelatedEventsEnabled": true,
- "eventFetchLimit": 0,
- "eventFields": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "eventItemsPerPage": 0,
- "groupFetchLimit": 0,
- "groupItemsPerPage": 0,
- "mostRecentlyUsedLimit": 0,
- "queries": [
- {
- "description": "string",
- "name": "string",
- "query": "string",
- "showSubtitle": true
}
], - "queryBaseFilter": "string",
- "queryToggleFilters": [
- {
- "disablesToggles": [
- "string"
], - "enabled": true,
- "enablesToggles": [
- "string"
], - "exclusive": true,
- "filter": "string",
- "name": "string"
}
], - "relativeTimeUnit": 0,
- "relativeTimeValue": 0,
- "safeStringMaxLength": 0,
- "viewEnabled": true
}, - "casesEnabled": true,
- "cheatsheetUrl": "string",
- "dashboards": {
- "ackEnabled": true,
- "actions": [
- {
- "background": true,
- "backgroundFailureLink": "string",
- "backgroundSuccessLink": "string",
- "body": "string",
- "categories": [
- "string"
], - "description": "string",
- "fields": [
- "string"
], - "icon": "string",
- "jsCall": "string",
- "link": "string",
- "links": [
- "string"
], - "method": "string",
- "name": "string",
- "options": {
- "property1": null,
- "property2": null
}, - "target": "string"
}
], - "advanced": true,
- "aggregationActionsEnabled": true,
- "chartLabelFieldSeparator": "string",
- "chartLabelMaxLength": 0,
- "chartLabelOtherLimit": 0,
- "createLink": "string",
- "detectionEngineStatusQueries": "string",
- "escalateEnabled": true,
- "escalateRelatedEventsEnabled": true,
- "eventFetchLimit": 0,
- "eventFields": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "eventItemsPerPage": 0,
- "groupFetchLimit": 0,
- "groupItemsPerPage": 0,
- "mostRecentlyUsedLimit": 0,
- "queries": [
- {
- "description": "string",
- "name": "string",
- "query": "string",
- "showSubtitle": true
}
], - "queryBaseFilter": "string",
- "queryToggleFilters": [
- {
- "disablesToggles": [
- "string"
], - "enabled": true,
- "enablesToggles": [
- "string"
], - "exclusive": true,
- "filter": "string",
- "name": "string"
}
], - "relativeTimeUnit": 0,
- "relativeTimeValue": 0,
- "safeStringMaxLength": 0,
- "viewEnabled": true
}, - "detection": {
- "presets": {
- "property1": {
- "customEnabled": true,
- "labels": [
- "string"
]
}, - "property2": {
- "customEnabled": true,
- "labels": [
- "string"
]
}
}, - "severityTranslations": {
- "property1": "string",
- "property2": "string"
}, - "showUnreviewedAiSummaries": true,
- "templateDetections": {
- "property1": "string",
- "property2": "string"
}
}, - "detections": {
- "ackEnabled": true,
- "actions": [
- {
- "background": true,
- "backgroundFailureLink": "string",
- "backgroundSuccessLink": "string",
- "body": "string",
- "categories": [
- "string"
], - "description": "string",
- "fields": [
- "string"
], - "icon": "string",
- "jsCall": "string",
- "link": "string",
- "links": [
- "string"
], - "method": "string",
- "name": "string",
- "options": {
- "property1": null,
- "property2": null
}, - "target": "string"
}
], - "advanced": true,
- "aggregationActionsEnabled": true,
- "chartLabelFieldSeparator": "string",
- "chartLabelMaxLength": 0,
- "chartLabelOtherLimit": 0,
- "createLink": "string",
- "detectionEngineStatusQueries": "string",
- "escalateEnabled": true,
- "escalateRelatedEventsEnabled": true,
- "eventFetchLimit": 0,
- "eventFields": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "eventItemsPerPage": 0,
- "groupFetchLimit": 0,
- "groupItemsPerPage": 0,
- "mostRecentlyUsedLimit": 0,
- "presets": {
- "property1": {
- "customEnabled": true,
- "labels": [
- "string"
]
}, - "property2": {
- "customEnabled": true,
- "labels": [
- "string"
]
}
}, - "queries": [
- {
- "description": "string",
- "name": "string",
- "query": "string",
- "showSubtitle": true
}
], - "queryBaseFilter": "string",
- "queryToggleFilters": [
- {
- "disablesToggles": [
- "string"
], - "enabled": true,
- "enablesToggles": [
- "string"
], - "exclusive": true,
- "filter": "string",
- "name": "string"
}
], - "relativeTimeUnit": 0,
- "relativeTimeValue": 0,
- "safeStringMaxLength": 0,
- "viewEnabled": true
}, - "detectionsEnabled": true,
- "docsUrl": "string",
- "exportNodeId": "string",
- "grid": {
- "maxUploadSize": 0,
- "staleMetricsMs": 0
}, - "hunt": {
- "ackEnabled": true,
- "actions": [
- {
- "background": true,
- "backgroundFailureLink": "string",
- "backgroundSuccessLink": "string",
- "body": "string",
- "categories": [
- "string"
], - "description": "string",
- "fields": [
- "string"
], - "icon": "string",
- "jsCall": "string",
- "link": "string",
- "links": [
- "string"
], - "method": "string",
- "name": "string",
- "options": {
- "property1": null,
- "property2": null
}, - "target": "string"
}
], - "advanced": true,
- "aggregationActionsEnabled": true,
- "chartLabelFieldSeparator": "string",
- "chartLabelMaxLength": 0,
- "chartLabelOtherLimit": 0,
- "createLink": "string",
- "detectionEngineStatusQueries": "string",
- "escalateEnabled": true,
- "escalateRelatedEventsEnabled": true,
- "eventFetchLimit": 0,
- "eventFields": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "eventItemsPerPage": 0,
- "groupFetchLimit": 0,
- "groupItemsPerPage": 0,
- "mostRecentlyUsedLimit": 0,
- "queries": [
- {
- "description": "string",
- "name": "string",
- "query": "string",
- "showSubtitle": true
}
], - "queryBaseFilter": "string",
- "queryToggleFilters": [
- {
- "disablesToggles": [
- "string"
], - "enabled": true,
- "enablesToggles": [
- "string"
], - "exclusive": true,
- "filter": "string",
- "name": "string"
}
], - "relativeTimeUnit": 0,
- "relativeTimeValue": 0,
- "safeStringMaxLength": 0,
- "viewEnabled": true
}, - "inactiveTools": [
- "string"
], - "job": {
- "ackEnabled": true,
- "actions": [
- {
- "background": true,
- "backgroundFailureLink": "string",
- "backgroundSuccessLink": "string",
- "body": "string",
- "categories": [
- "string"
], - "description": "string",
- "fields": [
- "string"
], - "icon": "string",
- "jsCall": "string",
- "link": "string",
- "links": [
- "string"
], - "method": "string",
- "name": "string",
- "options": {
- "property1": null,
- "property2": null
}, - "target": "string"
}
], - "advanced": true,
- "aggregationActionsEnabled": true,
- "chartLabelFieldSeparator": "string",
- "chartLabelMaxLength": 0,
- "chartLabelOtherLimit": 0,
- "createLink": "string",
- "detectionEngineStatusQueries": "string",
- "escalateEnabled": true,
- "escalateRelatedEventsEnabled": true,
- "eventFetchLimit": 0,
- "eventFields": {
- "property1": [
- "string"
], - "property2": [
- "string"
]
}, - "eventItemsPerPage": 0,
- "groupFetchLimit": 0,
- "groupItemsPerPage": 0,
- "mostRecentlyUsedLimit": 0,
- "queries": [
- {
- "description": "string",
- "name": "string",
- "query": "string",
- "showSubtitle": true
}
], - "queryBaseFilter": "string",
- "queryToggleFilters": [
- {
- "disablesToggles": [
- "string"
], - "enabled": true,
- "enablesToggles": [
- "string"
], - "exclusive": true,
- "filter": "string",
- "name": "string"
}
], - "relativeTimeUnit": 0,
- "relativeTimeValue": 0,
- "safeStringMaxLength": 0,
- "viewEnabled": true
}, - "releaseNotesUrl": "string",
- "tipTimeoutMs": 0,
- "tools": [
- {
- "description": "string",
- "icon": "string",
- "link": "string",
- "name": "string",
- "target": "string"
}
], - "webSocketTimeoutMs": 0
}, - "srvToken": "string",
- "subgrids": [
- {
- "caCertificate": "-----BEGIN CERTIFICATE-----\n...-----END CERTIFICATE-----\n",
- "clientId": "socl_my_client_id",
- "clientSecret": "xSff24sSvkKJaMN24",
- "enabled": false,
- "id": "subgrid_b",
- "skipTlsVerify": true
}
], - "timezones": [
- "Africa/Abidjan"
], - "userId": "socl_my_so_api_client",
- "version": "2.4.110"
}Used by Security Onion agent nodes to check-in with their current metrics and request any pending jobs assigned to it. It is not recommended to make calls to this API endpoint, as this is intended to be used exclusively by official Security Onion nodes only.
The node object with recent metrics
| address | string The IP address of this node |
| captureLossPct | number The current percentage capture loss experienced by the network, if applicable to this node |
| connectionStatus | string The connectivity status between this node and the manager node: unknown, ok, fault |
| consumptionEps | integer The events per second (EPS) consumed by this node |
| cpuUsedPct | number The current CPU usage of the node, across all cores |
| description | string The node's optional description |
| diskTotalNsmGB | number Total size, in gigabytes, of the NSM data disk/partition |
| diskTotalRootGB | number Total size, in gigabytes, of the root operating system disk/partition |
| diskUsedElasticGB | number The disk space used, in gigabytes, on the backend data store system (Elasticsearch) |
| diskUsedInfluxDbGB | number The disk space used, in gigabytes, on the metrics data store system (InfluxDB) |
| diskUsedNsmPct | number Percentage usage of the NSM data disk/partition |
| diskUsedRootPct | number Percentage usage of the root system disk/partition |
| epochTime | string The node's data epoch; this is the date and time of the oldest known PCAP data available to the node |
| eventstoreStatus | string The event storage status; this refers to the backend status, such as Elasticsearch: unknown, ok, fault |
| failedEvents | integer The count of failed events (currently not in use)" |
| fpsEnabled | integer Indicates whether federal information processing standards are enabled on this node |
| gmdEnabled | integer Indicates whether guaranteed message delivery is enabled on this node |
| gridId | string Grid ID, used for subgrids |
| highstateAgeSeconds | integer How long ago, in seconds, the last highstate completed on this node |
| id | string The node ID |
| imageBack | string The Security Onion appliance back image, if available |
| imageFront | string The Security Onion appliance front image, if available |
| ioWaitPct | number The IO wait percentage for this node |
| lksEnabled | integer Indicates whether disk encryption is enabled on this node |
| load5m | number The node's 5-minute load metric |
| load15m | number The node's 15-minute load metric |
| load1m | number The node's 1-minute load metric |
| memoryTotalGB | number Total size, in gigabytes, of the system memory, or RAM |
| memoryUsedPct | number Percentage usage of the system memory, or RAM |
| metricsEnabled | boolean Indicates whether the metric subsytem is available |
| mgmtMac | string The MAC address assigned to this node's management NIC |
| model | string The Seurity Onion appliance model, or N/A if this is not an official Security Onion appliance |
| nonCriticalNode | boolean Indicates whether this node is a non-critical node of the overall grid. An examples of a non-critical nodes is a desktop node |
| onlineTime | string The date and time when this node first came online; best estimate based on the node's apparent file system age |
| osNeedsRestart | integer Indicates whether the node needs to be restarted to apply kernel updates: 0 = no restart needed, 1 = needs restarted |
| osUptimeSeconds | integer The number of seconds that the operating system has been "up" since its last reboot |
| pcapDays | number The number of days of PCAP storage available to this node |
| processJson | string The status of each individual process on the node, in JSON format |
| processStatus | string The overall status of the node's Security Onion processes: unknown, ok, fault |
| productionEps | integer The events per second (EPS) produced by this node (not currently populated) |
| raidStatus | string The raid status, if applicable: unknown, ok, fault |
| redisQueueSize | integer The backlog of events waiting to be processed |
| role | string The node's assigned role; assigned during node setup |
| status | string The current state of the node: unknown, ok, fault, pending, restart |
| suriLossPct | number The current percentage packet loss experienced by Suricata, if applicable to this node |
| suriRulesFailed | integer The number of Suricata rules that failed to load, if applicable to this node |
| suriRulesLoaded | integer The number of Suricata rules currently loaded, if applicable to this node |
| suriRulesReloadTime | string The timestamp of the last Suricata rule reload, if applicable to this node |
| suriRulesStatus | string The status of Suricata rule loading: ok, unknown |
| swapTotalGB | number Total size, in gigabytes, of the system swap memory |
| swapUsedPct | number Percentage usage of the system swap memory |
| trafficManInMbs | number The inbound traffic rate, in megabytes per second, to this node's management network interface |
| trafficManOutMbs | number The outbound traffic rate, in megabytes per second, from this node's management network interface |
| trafficMonInDropsMbs | number The inbound traffic packet drop rate, in megabytes per second, to this node's monitor network interface |
| trafficMonInMbs | number The inbound traffic rate, in megabytes per second, to this node's monitor network interface |
| updateTime | string The date and time when this node was most recently updated" |
| uptimeSeconds | integer The number of seconds since this node first came online and joined the grid |
| version | string The version of Security Onion installed on this node |
| zeekLossPct | number The current percentage packet loss experienced by Zeek, if applicable to this node |
{- "address": "4.3.2.1",
- "captureLossPct": 24.0605,
- "connectionStatus": "fault",
- "consumptionEps": 110,
- "cpuUsedPct": 5.0035165275079265,
- "description": "East coast sensor",
- "diskTotalNsmGB": 772.7962808320001,
- "diskTotalRootGB": 314.41920000000005,
- "diskUsedElasticGB": 386.948,
- "diskUsedInfluxDbGB": 1.922272,
- "diskUsedNsmPct": 84.28509193998036,
- "diskUsedRootPct": 20.944604461814038,
- "epochTime": "2024-12-01T03:24:01Z",
- "eventstoreStatus": "ok",
- "failedEvents": 0,
- "fpsEnabled": 0,
- "gmdEnabled": 0,
- "gridId": "so1",
- "highstateAgeSeconds": 220,
- "id": "sensor-001",
- "imageBack": "5000v2_back_thumb.jpg",
- "imageFront": "5000v2_front_thumb.jpg",
- "ioWaitPct": 0.21099,
- "lksEnabled": 1,
- "load5m": 0.96,
- "load15m": 1.09,
- "load1m": 0.43,
- "memoryTotalGB": 33.176731648,
- "memoryUsedPct": 60.66793353109983,
- "metricsEnabled": true,
- "mgmtMac": "AA:BB:CC:11:22:33",
- "model": "SOS5000-DE02",
- "nonCriticalNode": false,
- "onlineTime": "2024-01-26T21:17:25Z",
- "osNeedsRestart": 1,
- "osUptimeSeconds": 1384801,
- "pcapDays": 1.8762268518518517,
- "processJson": "{\"status_code\":0, \"containers\":[{\"Name\":\"so-dockerregistry\", \"Status\":\"running\",\"Details\":\"Up 2 weeks\"}, ... ]}",
- "processStatus": "ok",
- "productionEps": 0,
- "raidStatus": "unknown",
- "redisQueueSize": 0,
- "role": "so-standalone",
- "status": "ok",
- "suriLossPct": 1.1345,
- "suriRulesFailed": 0,
- "suriRulesLoaded": 45879,
- "suriRulesReloadTime": "2025-12-04T01:04:07.994734+0000",
- "suriRulesStatus": "ok",
- "swapTotalGB": 8.589930496000001,
- "swapUsedPct": 63.27341235800379,
- "trafficManInMbs": 0.031592,
- "trafficManOutMbs": 0.030966666666666667,
- "trafficMonInDropsMbs": 0,
- "trafficMonInMbs": 1.6864359999999998,
- "updateTime": "2024-12-03T15:42:21.723166638Z",
- "uptimeSeconds": 26936696,
- "version": "2.4.110",
- "zeekLossPct": 0
}[- {
- "completeTime": "2024-10-07T12:15:09.12424556Z",
- "createTime": "2024-10-07T06:45:49.52456415Z",
- "failCount": 0,
- "failTime": "0001-01-01T00:00:00Z",
- "failure": "",
- "fileExtension": "bin",
- "filter": {
- "beginTime": "2024-12-03T00:25:09.899Z",
- "dstIp": "1.2.3.4",
- "dstPort": 80,
- "endTime": "2024-12-03T00:29:09.899Z",
- "importId": "bd77c8bc7498c795cc6608c5d45bd51b",
- "parameters": {
- "property1": null,
- "property2": null
}, - "protocol": "tcp",
- "srcIp": "44.2.12.63",
- "srcPort": 55312
}, - "id": 1004,
- "kind": "analyze",
- "nodeId": "sensor-001",
- "owner": "",
- "results": [
- {
- "data": null,
- "id": "malwarebazaar",
- "summary": "no result"
}
], - "sensorId": "string",
- "size": 3781,
- "status": 1,
- "userId": "39314a6b-0b79-4210-1233-4e3fbcd7bfec"
}
]Create a new job.
The job details. The job ID, create timestamp, status, and other processing-related fields will be populated by the server. For a new analyze job, only the kind (analyze), nodeId, and parameters should be specified. For the parameters, the caseId, artifactType, and other relevant fields needed by the analyzers should be submitted.
| completeTime | string The date and time when the job was completed |
| createTime | string The date and time when the job was created |
| failCount | integer The number of times the job was processed but failed |
| failTime | string The date and time when the job last failed and was marked incomplete |
| failure | string The failure reason |
| fileExtension | string The file extension for any attached job result/output data |
object (model.Filter) Optional filter for the job, typically used for packet filtering | |
| id | integer The unique Job ID |
| kind | string The kind of job that this object represents; blank values represent pcap jobs |
| nodeId | string The unique node ID that is responsible for completing this job |
| owner | string Owner field [not actively used by the API] |
Array of objects (model.JobResult) The array of job results; will be empty for jobs that only attach output streams | |
| sensorId | string Legacy sensor ID field |
| size | integer The size of the job stream output, if a stream output was attached |
| status | integer The current state of the job. 0 = pending, 1 = complete, 2 = incomplete, 3 = deleted |
| userId | string The unique user ID that created this job |
{- "completeTime": "2024-10-07T12:15:09.12424556Z",
- "createTime": "2024-10-07T06:45:49.52456415Z",
- "failCount": 0,
- "failTime": "0001-01-01T00:00:00Z",
- "failure": "",
- "fileExtension": "bin",
- "filter": {
- "beginTime": "2024-12-03T00:25:09.899Z",
- "dstIp": "1.2.3.4",
- "dstPort": 80,
- "endTime": "2024-12-03T00:29:09.899Z",
- "importId": "bd77c8bc7498c795cc6608c5d45bd51b",
- "parameters": {
- "property1": null,
- "property2": null
}, - "protocol": "tcp",
- "srcIp": "44.2.12.63",
- "srcPort": 55312
}, - "id": 1004,
- "kind": "analyze",
- "nodeId": "sensor-001",
- "owner": "",
- "results": [
- {
- "data": null,
- "id": "malwarebazaar",
- "summary": "no result"
}
], - "sensorId": "string",
- "size": 3781,
- "status": 1,
- "userId": "39314a6b-0b79-4210-1233-4e3fbcd7bfec"
}{- "completeTime": "2024-10-07T12:15:09.12424556Z",
- "createTime": "2024-10-07T06:45:49.52456415Z",
- "failCount": 0,
- "failTime": "0001-01-01T00:00:00Z",
- "failure": "",
- "fileExtension": "bin",
- "filter": {
- "beginTime": "2024-12-03T00:25:09.899Z",
- "dstIp": "1.2.3.4",
- "dstPort": 80,
- "endTime": "2024-12-03T00:29:09.899Z",
- "importId": "bd77c8bc7498c795cc6608c5d45bd51b",
- "parameters": {
- "property1": null,
- "property2": null
}, - "protocol": "tcp",
- "srcIp": "44.2.12.63",
- "srcPort": 55312
}, - "id": 1004,
- "kind": "analyze",
- "nodeId": "sensor-001",
- "owner": "",
- "results": [
- {
- "data": null,
- "id": "malwarebazaar",
- "summary": "no result"
}
], - "sensorId": "string",
- "size": 3781,
- "status": 1,
- "userId": "39314a6b-0b79-4210-1233-4e3fbcd7bfec"
}Update an existing job with the provided job details.
The job details. Any provided user ID or node ID will be ignored as those fields are read-only after initial job creation.
| completeTime | string The date and time when the job was completed |
| createTime | string The date and time when the job was created |
| failCount | integer The number of times the job was processed but failed |
| failTime | string The date and time when the job last failed and was marked incomplete |
| failure | string The failure reason |
| fileExtension | string The file extension for any attached job result/output data |
object (model.Filter) Optional filter for the job, typically used for packet filtering | |
| id | integer The unique Job ID |
| kind | string The kind of job that this object represents; blank values represent pcap jobs |
| nodeId | string The unique node ID that is responsible for completing this job |
| owner | string Owner field [not actively used by the API] |
Array of objects (model.JobResult) The array of job results; will be empty for jobs that only attach output streams | |
| sensorId | string Legacy sensor ID field |
| size | integer The size of the job stream output, if a stream output was attached |
| status | integer The current state of the job. 0 = pending, 1 = complete, 2 = incomplete, 3 = deleted |
| userId | string The unique user ID that created this job |
{- "completeTime": "2024-10-07T12:15:09.12424556Z",
- "createTime": "2024-10-07T06:45:49.52456415Z",
- "failCount": 0,
- "failTime": "0001-01-01T00:00:00Z",
- "failure": "",
- "fileExtension": "bin",
- "filter": {
- "beginTime": "2024-12-03T00:25:09.899Z",
- "dstIp": "1.2.3.4",
- "dstPort": 80,
- "endTime": "2024-12-03T00:29:09.899Z",
- "importId": "bd77c8bc7498c795cc6608c5d45bd51b",
- "parameters": {
- "property1": null,
- "property2": null
}, - "protocol": "tcp",
- "srcIp": "44.2.12.63",
- "srcPort": 55312
}, - "id": 1004,
- "kind": "analyze",
- "nodeId": "sensor-001",
- "owner": "",
- "results": [
- {
- "data": null,
- "id": "malwarebazaar",
- "summary": "no result"
}
], - "sensorId": "string",
- "size": 3781,
- "status": 1,
- "userId": "39314a6b-0b79-4210-1233-4e3fbcd7bfec"
}{- "completeTime": "2024-10-07T12:15:09.12424556Z",
- "createTime": "2024-10-07T06:45:49.52456415Z",
- "failCount": 0,
- "failTime": "0001-01-01T00:00:00Z",
- "failure": "",
- "fileExtension": "bin",
- "filter": {
- "beginTime": "2024-12-03T00:25:09.899Z",
- "dstIp": "1.2.3.4",
- "dstPort": 80,
- "endTime": "2024-12-03T00:29:09.899Z",
- "importId": "bd77c8bc7498c795cc6608c5d45bd51b",
- "parameters": {
- "property1": null,
- "property2": null
}, - "protocol": "tcp",
- "srcIp": "44.2.12.63",
- "srcPort": 55312
}, - "id": 1004,
- "kind": "analyze",
- "nodeId": "sensor-001",
- "owner": "",
- "results": [
- {
- "data": null,
- "id": "malwarebazaar",
- "summary": "no result"
}
], - "sensorId": "string",
- "size": 3781,
- "status": 1,
- "userId": "39314a6b-0b79-4210-1233-4e3fbcd7bfec"
}Retrieves a specific job that matches the given job ID.
| jobId required | integer Example: 1004 The job ID |
{- "completeTime": "2024-10-07T12:15:09.12424556Z",
- "createTime": "2024-10-07T06:45:49.52456415Z",
- "failCount": 0,
- "failTime": "0001-01-01T00:00:00Z",
- "failure": "",
- "fileExtension": "bin",
- "filter": {
- "beginTime": "2024-12-03T00:25:09.899Z",
- "dstIp": "1.2.3.4",
- "dstPort": 80,
- "endTime": "2024-12-03T00:29:09.899Z",
- "importId": "bd77c8bc7498c795cc6608c5d45bd51b",
- "parameters": {
- "property1": null,
- "property2": null
}, - "protocol": "tcp",
- "srcIp": "44.2.12.63",
- "srcPort": 55312
}, - "id": 1004,
- "kind": "analyze",
- "nodeId": "sensor-001",
- "owner": "",
- "results": [
- {
- "data": null,
- "id": "malwarebazaar",
- "summary": "no result"
}
], - "sensorId": "string",
- "size": 3781,
- "status": 1,
- "userId": "39314a6b-0b79-4210-1233-4e3fbcd7bfec"
}Given a TCP or UDP network connection log event, create a PCAP lookup job that would best locate the PCAP from that event.
| time required | string Example: time=2024-01-29T12:31:59.220Z Time timestamp of the event |
| esid | string Example: esid=P5mgnpEB0JpjNDZz1bIN The event document ID. If this is not specified then the ncid param is required. |
| ncid | string Example: ncid=1:URggUwcolUh/BgIWApL6rUUZUK4= The network.community_id value for the event. Ignored if the esid param is provided. |
Retrieves the list of jobs that match the given parameters.
| kind required | string Example: kind=analyzer The job kind, such as 'analyze'. Specify an empty value for PCAP jobs |
| parameters[artifact][id] | string Example: parameters[artifact][id]=P5mgnpEB0JpjNDZz1bIN Optional case ID to locate matching analyze jobs |
[- {
- "completeTime": "2024-10-07T12:15:09.12424556Z",
- "createTime": "2024-10-07T06:45:49.52456415Z",
- "failCount": 0,
- "failTime": "0001-01-01T00:00:00Z",
- "failure": "",
- "fileExtension": "bin",
- "filter": {
- "beginTime": "2024-12-03T00:25:09.899Z",
- "dstIp": "1.2.3.4",
- "dstPort": 80,
- "endTime": "2024-12-03T00:29:09.899Z",
- "importId": "bd77c8bc7498c795cc6608c5d45bd51b",
- "parameters": {
- "property1": null,
- "property2": null
}, - "protocol": "tcp",
- "srcIp": "44.2.12.63",
- "srcPort": 55312
}, - "id": 1004,
- "kind": "analyze",
- "nodeId": "sensor-001",
- "owner": "",
- "results": [
- {
- "data": null,
- "id": "malwarebazaar",
- "summary": "no result"
}
], - "sensorId": "string",
- "size": 3781,
- "status": 1,
- "userId": "39314a6b-0b79-4210-1233-4e3fbcd7bfec"
}
]Retrieves the packets collected and attached to the job represented by the given job ID. This request assumes the job is a PCAP job.
| jobId required | integer Example: 1004 The job ID |
| unwrap | boolean Example: unwrap=true If true, and if the stream data is eligible the stream data will be unwrapped. An example of wrapped stream data is VXLAN packet data. |
| offset | integer Example: offset=100 The starting offset of the packet to retrieve; used for paging large packet results. Defaults to 0. |
| count | integer Example: count=100 The maximum number of packets to retrieve; used for paging large packet results. Defaults to 5000, or an optional server-side configuration value/ |
[- {
- "acknowledge": 1400892081,
- "checksum": 4868,
- "dstIp": "41.51.61.71",
- "dstMac": "a0:b1:c2:d3:e4:f5",
- "dstPort": 55423,
- "flags": [
- "SYN",
- "ACK"
], - "length": 79,
- "number": 0,
- "payload": "oDaf1FD=",
- "payloadOffset": 0,
- "sequence": 2023436470,
- "srcIp": "1.2.3.4",
- "srcMac": "0a:1b:2c:3d:4e:5f",
- "srcPort": 80,
- "timestamp": "2024-10-06T19:29:39.332211Z",
- "type": "DNS",
- "window": 64296
}
]Returns the full job output stream for the given job ID. An example of a job stream is a packet capture (PCAP) file.
| jobId required | integer Example: 1004 The job ID |
| ext | string Example: ext=pcap Optional filename extension to use on the returned stream. Appends extension to stream name, unless stream name already contains '.bin' in which case it replaces that extension. |
| unwrap | boolean Example: unwrap=true If true, and if the stream data is eligible the stream data will be unwrapped. An example of wrapped stream data is VXLAN packet data. |
Sends the job output up to the server for posterity and future retrieval. Not all jobs will have binary job output to upload. The job ID is used to reference the job for this output stream.
| jobId required | integer Example: 1004 The job ID |
The job output stream byte content
"string"Retrieves playbooks given an internal playbook ID.
| id required | string Example: 6F64990A-ACDA-40B6-AB71-134C073013B5 The playbook ID to retrieve |
{- "contributors": [
- "['John Doe'",
- " 'Jane Smith']"
], - "createTime": "2024-11-14T15:03:22Z",
- "created": "2023-10-01T12:00:00Z",
- "description": "This is a sample playbook",
- "detection_category": "process_creation",
- "detection_id": "ac5856cd-7e4c-4a61-8b15-6fc9148ff7f2",
- "detection_type": "nids",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "modified": "2023-10-01T12:00:00Z",
- "name": "Sample Playbook",
- "operation": "create",
- "questions": [
- {
- "answer_sources": [
- "string"
], - "context": "Knowing if the attack comes from inside or outside the network can help determine if this is a false positive or a real attack.",
- "fields": [
- "string"
], - "filledQuery": "string",
- "oqlQuery": "string",
- "query": "string",
- "queryResults": [
- {
- "id": "ru5Jk5MB4OVrR03M8ee8",
- "payload": {
- "@timestamp": "2024-12-04T20:06:04.725Z",
- "@version": "1",
- "client.ip": "4.33.51.1",
- "client.port": "5544"
}, - "score": 0,
- "sort": [
- "0:33.32.12.56"
], - "source": "so:.ds-logs-zeek-so-2024.11.21-000017",
- "time": "2024-12-04T20:08:15.97Z",
- "timestamp": "2024-12-04T20:08:15.970Z",
- "type": ""
}
], - "question": "What is the source IP address of the alert?",
- "range": "+/-3d"
}
], - "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}Retrieves playbooks that apply to the indicated detection.
| id required | string Example: 6F64990A-ACDA-40B6-AB71-134C073013B5 The public Id for the detection |
| raw | boolean If true, return the playbook in raw YAML format |
[- {
- "contributors": [
- "['John Doe'",
- " 'Jane Smith']"
], - "createTime": "2024-11-14T15:03:22Z",
- "created": "2023-10-01T12:00:00Z",
- "description": "This is a sample playbook",
- "detection_category": "process_creation",
- "detection_id": "ac5856cd-7e4c-4a61-8b15-6fc9148ff7f2",
- "detection_type": "nids",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "modified": "2023-10-01T12:00:00Z",
- "name": "Sample Playbook",
- "operation": "create",
- "questions": [
- {
- "answer_sources": [
- "string"
], - "context": "Knowing if the attack comes from inside or outside the network can help determine if this is a false positive or a real attack.",
- "fields": [
- "string"
], - "filledQuery": "string",
- "oqlQuery": "string",
- "query": "string",
- "queryResults": [
- {
- "id": "ru5Jk5MB4OVrR03M8ee8",
- "payload": {
- "@timestamp": "2024-12-04T20:06:04.725Z",
- "@version": "1",
- "client.ip": "4.33.51.1",
- "client.port": "5544"
}, - "score": 0,
- "sort": [
- "0:33.32.12.56"
], - "source": "so:.ds-logs-zeek-so-2024.11.21-000017",
- "time": "2024-12-04T20:08:15.97Z",
- "timestamp": "2024-12-04T20:08:15.970Z",
- "type": ""
}
], - "question": "What is the source IP address of the alert?",
- "range": "+/-3d"
}
], - "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}
]Fetches the playbook for a specific event.
| id required | string The SOC Id for the alert |
[- {
- "contributors": [
- "['John Doe'",
- " 'Jane Smith']"
], - "createTime": "2024-11-14T15:03:22Z",
- "created": "2023-10-01T12:00:00Z",
- "description": "This is a sample playbook",
- "detection_category": "process_creation",
- "detection_id": "ac5856cd-7e4c-4a61-8b15-6fc9148ff7f2",
- "detection_type": "nids",
- "id": "PdFc-JIBLkNJ8-bDfz47",
- "kind": "case",
- "modified": "2023-10-01T12:00:00Z",
- "name": "Sample Playbook",
- "operation": "create",
- "questions": [
- {
- "answer_sources": [
- "string"
], - "context": "Knowing if the attack comes from inside or outside the network can help determine if this is a false positive or a real attack.",
- "fields": [
- "string"
], - "filledQuery": "string",
- "oqlQuery": "string",
- "query": "string",
- "queryResults": [
- {
- "id": "ru5Jk5MB4OVrR03M8ee8",
- "payload": {
- "@timestamp": "2024-12-04T20:06:04.725Z",
- "@version": "1",
- "client.ip": "4.33.51.1",
- "client.port": "5544"
}, - "score": 0,
- "sort": [
- "0:33.32.12.56"
], - "source": "so:.ds-logs-zeek-so-2024.11.21-000017",
- "time": "2024-12-04T20:08:15.97Z",
- "timestamp": "2024-12-04T20:08:15.970Z",
- "type": ""
}
], - "question": "What is the source IP address of the alert?",
- "range": "+/-3d"
}
], - "updateTime": "2024-11-14T15:33:02Z",
- "userId": "socl_my_new_client"
}
][- {
- "createTime": "2024-11-14T15:03:22Z",
- "email": "someone@somewhere.invalid",
- "firstName": "John",
- "id": "3610b2cf-a2e7-4037-9c51-227f0c2e79ff",
- "lastName": "Smith",
- "note": "Employment terminated on Nov 10, 2023",
- "oidcStatus": "enabled",
- "password": "string",
- "passwordChanged": true,
- "roles": [
- "limited-analyst"
], - "searchUsername": "someoneelse@somewhere.invalid",
- "status": "locked",
- "totpStatus": "enabled",
- "updateTime": "2024-11-14T15:33:02Z",
- "webauthnStatus": "enabled"
}
]Creates a new SOC user.
User object to be created. The provided email address, firstname, lastname, note, roles, and password will be used. All other fields are ignored.
| createTime | string The date and time that this user was created. This is a read-only field. |
string The email address for this user. | |
| firstName | string The user's first name. |
| id | string The ID assigned to this user by the server. This is a read-only field. |
| lastName | string The user's last name, or family name. |
| note | string A custom note about this user. |
| oidcStatus | string The OIDC status for this user. This is a read-only field. |
| password | string The password must have a length of at least 8 characters and no more than 72 characters and cannot contain the following: ' " $ \ |
| passwordChanged | boolean A rough determination of whether this user has changed their password since the user was created. Technically this can only detect if the user has been updated after creation and is therefore an imperfect estimator for whether the password has been changed. This is a read-only field. |
| roles | Array of strings A list of assigned roles to this user. |
| searchUsername | string An alternate username (typically an email address) to use when performing backend (Ex: Elasticsearch) data searches and updates. |
| status | string The login status of this user. |
| totpStatus | string The TOTP MFA status for this user. This is a read-only field. |
| updateTime | string The date and time that this user was last modified. This is a read-only field. |
| webauthnStatus | string The WebAuthn (Passwordless) status for this user. This status field is not ready for production use. This is a read-only field. |
{- "createTime": "2024-11-14T15:03:22Z",
- "email": "someone@somewhere.invalid",
- "firstName": "John",
- "id": "3610b2cf-a2e7-4037-9c51-227f0c2e79ff",
- "lastName": "Smith",
- "note": "Employment terminated on Nov 10, 2023",
- "oidcStatus": "enabled",
- "password": "string",
- "passwordChanged": true,
- "roles": [
- "limited-analyst"
], - "searchUsername": "someoneelse@somewhere.invalid",
- "status": "locked",
- "totpStatus": "enabled",
- "updateTime": "2024-11-14T15:33:02Z",
- "webauthnStatus": "enabled"
}{- "createTime": "2024-11-14T15:03:22Z",
- "email": "someone@somewhere.invalid",
- "firstName": "John",
- "id": "3610b2cf-a2e7-4037-9c51-227f0c2e79ff",
- "lastName": "Smith",
- "note": "Employment terminated on Nov 10, 2023",
- "oidcStatus": "enabled",
- "password": "string",
- "passwordChanged": true,
- "roles": [
- "limited-analyst"
], - "searchUsername": "someoneelse@somewhere.invalid",
- "status": "locked",
- "totpStatus": "enabled",
- "updateTime": "2024-11-14T15:33:02Z",
- "webauthnStatus": "enabled"
}Update a user with the provided user object data.
| id required | string The user ID |
User object containing new updates. The provided email address, firstname, lastname, and note will be updated. All other fields are ignored.
| createTime | string The date and time that this user was created. This is a read-only field. |
string The email address for this user. | |
| firstName | string The user's first name. |
| id | string The ID assigned to this user by the server. This is a read-only field. |
| lastName | string The user's last name, or family name. |
| note | string A custom note about this user. |
| oidcStatus | string The OIDC status for this user. This is a read-only field. |
| password | string The password must have a length of at least 8 characters and no more than 72 characters and cannot contain the following: ' " $ \ |
| passwordChanged | boolean A rough determination of whether this user has changed their password since the user was created. Technically this can only detect if the user has been updated after creation and is therefore an imperfect estimator for whether the password has been changed. This is a read-only field. |
| roles | Array of strings A list of assigned roles to this user. |
| searchUsername | string An alternate username (typically an email address) to use when performing backend (Ex: Elasticsearch) data searches and updates. |
| status | string The login status of this user. |
| totpStatus | string The TOTP MFA status for this user. This is a read-only field. |
| updateTime | string The date and time that this user was last modified. This is a read-only field. |
| webauthnStatus | string The WebAuthn (Passwordless) status for this user. This status field is not ready for production use. This is a read-only field. |
{- "createTime": "2024-11-14T15:03:22Z",
- "email": "someone@somewhere.invalid",
- "firstName": "John",
- "id": "3610b2cf-a2e7-4037-9c51-227f0c2e79ff",
- "lastName": "Smith",
- "note": "Employment terminated on Nov 10, 2023",
- "oidcStatus": "enabled",
- "password": "string",
- "passwordChanged": true,
- "roles": [
- "limited-analyst"
], - "searchUsername": "someoneelse@somewhere.invalid",
- "status": "locked",
- "totpStatus": "enabled",
- "updateTime": "2024-11-14T15:33:02Z",
- "webauthnStatus": "enabled"
}{- "createTime": "2024-11-14T15:03:22Z",
- "email": "someone@somewhere.invalid",
- "firstName": "John",
- "id": "3610b2cf-a2e7-4037-9c51-227f0c2e79ff",
- "lastName": "Smith",
- "note": "Employment terminated on Nov 10, 2023",
- "oidcStatus": "enabled",
- "password": "string",
- "passwordChanged": true,
- "roles": [
- "limited-analyst"
], - "searchUsername": "someoneelse@somewhere.invalid",
- "status": "locked",
- "totpStatus": "enabled",
- "updateTime": "2024-11-14T15:33:02Z",
- "webauthnStatus": "enabled"
}Update a user's password with the provided value.
| id required | string The user ID |
User object containing the new password. All other fields are ignored.
| createTime | string The date and time that this user was created. This is a read-only field. |
string The email address for this user. | |
| firstName | string The user's first name. |
| id | string The ID assigned to this user by the server. This is a read-only field. |
| lastName | string The user's last name, or family name. |
| note | string A custom note about this user. |
| oidcStatus | string The OIDC status for this user. This is a read-only field. |
| password | string The password must have a length of at least 8 characters and no more than 72 characters and cannot contain the following: ' " $ \ |
| passwordChanged | boolean A rough determination of whether this user has changed their password since the user was created. Technically this can only detect if the user has been updated after creation and is therefore an imperfect estimator for whether the password has been changed. This is a read-only field. |
| roles | Array of strings A list of assigned roles to this user. |
| searchUsername | string An alternate username (typically an email address) to use when performing backend (Ex: Elasticsearch) data searches and updates. |
| status | string The login status of this user. |
| totpStatus | string The TOTP MFA status for this user. This is a read-only field. |
| updateTime | string The date and time that this user was last modified. This is a read-only field. |
| webauthnStatus | string The WebAuthn (Passwordless) status for this user. This status field is not ready for production use. This is a read-only field. |
{- "createTime": "2024-11-14T15:03:22Z",
- "email": "someone@somewhere.invalid",
- "firstName": "John",
- "id": "3610b2cf-a2e7-4037-9c51-227f0c2e79ff",
- "lastName": "Smith",
- "note": "Employment terminated on Nov 10, 2023",
- "oidcStatus": "enabled",
- "password": "string",
- "passwordChanged": true,
- "roles": [
- "limited-analyst"
], - "searchUsername": "someoneelse@somewhere.invalid",
- "status": "locked",
- "totpStatus": "enabled",
- "updateTime": "2024-11-14T15:33:02Z",
- "webauthnStatus": "enabled"
}Exchanges a client ID and client secret for a temporary access token needed for calling Security Onion Connect API methods. The client ID and client secret are provided within the SOC Administration -> API Clients screen, when creating a new API client or when regenerating an API client's secret. The client secrets are only temporarily visible during those two specific times. The returned access token will expire within 1-2 hours, by default. Ensure the custom integration application is capable of exchanging for a new access token prior to the expiration.
The body of this POST request must contain the required fields as shown below.
| grant_type required | string Must be set to client_credentials |
{- "access_token": "ory_at_arkgYuJXYp5zwU8Xyh8-URW6QIUbaZVf4JwDPoNZh0g.YcF4W5i2qoQ2RTWZvLYLNIeUjGaUhYuewz9Gua0y7YA",
- "expires_in": 3599,
- "scope": "",
- "token_type": "bearer"
}