This is the audit log resource.
- Coro public API
- Coro API reference
- Get the comments of a ticket
Coro Cybersecurity Public API (v1)
This is the Coro Cybersecurity platform API specification reference.
This section provides a complete reference listing for the Coro Cybersecurity REST API resource model.
This reference lists all the resources available through the Coro REST API.
Each section relates to a specific resource and provides its name, description, unique URI path, and the list of operations you can perform on it.
For each operation, you can find:
- A complete description of the action
- Request parameters
- A list of potential responses
- Security (authentication) requirements
The portal also provides code samples and examples for making requests in a number of programming languages, together with samples of the possible response bodies.
In addition to this, Coro provides a Try It feature where you can interact with the API directly through the portal. To use Try It, you'll need to first obtain Client ID and Secret credentials; for more information, see Authentication.
Request
Get the comments of a ticket, most recent first. Comments marked as confidential are not returned to workspace credentials.
This call supports pagination; default page size includes 20 comments.
- Coro mock API serverhttps://docs.coro.net/_mock/api/api-docs/v1/tickets/{id}/comments
- Coro US API server target URLhttps://api.secure.coro.net/v1/tickets/{id}/comments
- cURL
- JavaScript
- Node.js
curl -i -X GET \
'https://docs.coro.net/_mock/api/api-docs/v1/tickets/{id}/comments?page=0&pageSize=50' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Workspace: corodevonmicrosoftcom_TX7T_u'{ "items": [ { … } ], "totalElements": 0 }
Request
Add a comment to a ticket, and notify the chosen recipients about it.
The comment is attributed to the administrator who generated the API credentials used for the call.
The text of the comment.
Marks the comment as confidential. Confidential comments are visible only to Coro administrators and are never returned to workspace credentials.
Requires globally authorised API credentials. When true, the only notification option that may be set is notifyCustomRecipients, and every custom recipient must be a Coro administrator.
Includes the details of the ticket in the notifications sent for this comment.
Notifies the users affected by the ticket. Not available for device tickets, or when the comment is confidential.
Notifies every administrator of the workspace. Not available when the comment is confidential.
Notifies the managed service contacts of the workspace. Available only for tickets handled by the managed service, and not when the comment is confidential.
- Coro mock API serverhttps://docs.coro.net/_mock/api/api-docs/v1/tickets/{id}/comments
- Coro US API server target URLhttps://api.secure.coro.net/v1/tickets/{id}/comments
- cURL
- JavaScript
- Node.js
curl -i -X POST \
'https://docs.coro.net/_mock/api/api-docs/v1/tickets/{id}/comments' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-H 'Workspace: corodevonmicrosoftcom_TX7T_u' \
-d '{
"message": "Reviewed with the customer, no further action required.",
"confidential": false,
"includeTicketDetails": false,
"notifyAffectedUsers": false,
"notifyAllWorkspaceAdmins": false,
"notifySocContacts": false,
"notifyCustomRecipients": false,
"customRecipients": [
"security@example.com"
]
}'Request
Get the list of actions currently available for a ticket, by ticket id.
The returned list is dynamic: it reflects the ticket's current state and changes as actions are performed. For example, an open ticket returns markAsProcessed, while a ticket that is already closed returns markAsUnprocessed instead. Always call this endpoint before triggering an action and only trigger actions present in the response; triggering an action that is not in the list fails with a validation error.
Each returned value can be passed as eventAction to POST /v1/tickets/{id}/actions (Trigger a ticket action).
- Coro mock API serverhttps://docs.coro.net/_mock/api/api-docs/v1/tickets/{id}/actions
- Coro US API server target URLhttps://api.secure.coro.net/v1/tickets/{id}/actions
- cURL
- JavaScript
- Node.js
curl -i -X GET \
'https://docs.coro.net/_mock/api/api-docs/v1/tickets/{id}/actions' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Workspace: corodevonmicrosoftcom_TX7T_u'A JSON array of action identifiers (eventAction values) currently available for the ticket. The schema lists all possible values; a given ticket returns only the subset applicable to its type and current state. Empty if no actions are currently applicable.
[ "suspendFromAll", "signInToAll", "signInToService", "suspendFromService", "contactUser", "markAsProcessed" ]
Request
Trigger a ticket action by ticket id.
The set of applicable actions is dynamic and depends on the ticket's current state. Always call GET /v1/tickets/{id}/actions (Get ticket actions) before triggering an action and only trigger actions present in its response; triggering an action that is not in the list fails with a validation error.
Most actions require only eventAction. Three actions accept a metadata object; refer to the request schema and the provided examples.
A ticket action, corresponding to an appropriate EventAction to trigger.
Additional data required for executing certain ticket actions. This is a key-value object; the keys depend on the action.
The following actions read metadata:
contactUser - metadata is required; the call fails without it:
contactMessage(string): the message sent to the usersrecipients(array of strings): user emails to contactincludeEventDetails(boolean): whether to include the ticket's event details in the messageworkspaceDisplayName(string): workspace name shown to the recipients
addToDataGovernancePermissions - required:
selectedSubEventTriggers(array of strings): the data types to grant permissions for. Values must come fromticketDetails.violatedDataTypesin the GET /tickets response for this ticket; values not present on the ticket are ignored.
approveEmail - optional:
recipients(array of strings): release the quarantined email only to this subset of the original recipients. When omitted, the email is released to all original recipients.
All other actions: omit metadata entirely; the action takes all required context from the ticket itself.
- Coro mock API serverhttps://docs.coro.net/_mock/api/api-docs/v1/tickets/{id}/actions
- Coro US API server target URLhttps://api.secure.coro.net/v1/tickets/{id}/actions
- cURL
- JavaScript
- Node.js
- Standard action (no metadata)
- contactUser (metadata required)
- addToDataGovernancePermissions
- approveEmail (optional recipients)
curl -i -X POST \
'https://docs.coro.net/_mock/api/api-docs/v1/tickets/{id}/actions' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-H 'Workspace: corodevonmicrosoftcom_TX7T_u' \
-d '{
"eventAction": "markAsProcessed"
}'Request
Get a list of all tickets in the specified workspace. This call supports pagination; default page size includes 20 tickets.
- Coro mock API serverhttps://docs.coro.net/_mock/api/api-docs/v1/tickets
- Coro US API server target URLhttps://api.secure.coro.net/v1/tickets
- cURL
- JavaScript
- Node.js
curl -i -X GET \
'https://docs.coro.net/_mock/api/api-docs/v1/tickets?ticketIds=string&ticketTriggers=malwareInCloudDrive&processed=true&fromTime=0&toTime=0&page=0&pageSize=50' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Workspace: corodevonmicrosoftcom_TX7T_u'{ "items": [ { … } ], "totalElements": 0, "_links": { "autoRemediatedAuditLogs": { … } } }
- Coro mock API serverhttps://docs.coro.net/_mock/api/api-docs/v1/tickets/{id}
- Coro US API server target URLhttps://api.secure.coro.net/v1/tickets/{id}
- cURL
- JavaScript
- Node.js
curl -i -X GET \
'https://docs.coro.net/_mock/api/api-docs/v1/tickets/{id}' \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Workspace: corodevonmicrosoftcom_TX7T_u'Success
The type of open ticket.
Indicates whether the ticket was processed/manually actioned/closed by an operator or by Coro
UNIX timestamp in milliseconds for the time when the ticket was created in Coro
UNIX timestamp in milliseconds for when the threat was detected
UNIX timestamp in milliseconds for when the ticket was processed
UNIX timestamp in milliseconds for the last event time
Extra details about the ticket
Extra details about the ticket
A human-readable description of what Coro detected for this ticket
A link to this ticket in the Coro console
{ "id": "GYDU-1212", "ticketTrigger": "malwareInCloudDrive", "processed": true, "creationTime": 1662052343274, "threatTime": 1662052343274, "processedTime": 1662052343274, "lastEventTime": 16620523284720, "parentWorkspaceId": "coroparent_123", "ticketDetails": { "deviceMetadata": { … }, "emailMetadata": { … }, "filesMetadata": [ … ], "location": [ … ], "malwareMetadata": { … }, "affectedUser": "test@example.com", "service": "Microsoft 365", "violationDirection": "access", "violatedDataTypes": [ … ] }, "workspaceId": "corotest_123", "description": "Coro detected 3 login(s) from blocked IP address 192.0.2.10 (Israel) for user@example.com in Google Workspace, starting on Sep 1, 2026 10:15 AM. For more information, see Full Details.", "consoleUrl": "https://secure.coro.net/portal/tickets?search=GYDU-1212", "_links": { "autoRemediatedAuditLogs": { … } } }