# V3 Stream Violations

When a violation occurs during the creation of a stream, there won't be any stream ID (because the stream was not created).

## Get violations as a result of policy enforcement on streams.

> Retrieves DLP v3 signal related violations for a given time range

```json
{"openapi":"3.0.1","info":{"title":"Agent API","version":"25.8.1"},"servers":[{"url":"youragentURL.symphony.com/agent"}],"paths":{"/v3/dlp/violations/stream":{"get":{"tags":["Violations"],"summary":"Get violations as a result of policy enforcement on streams.","description":"Retrieves DLP v3 signal related violations for a given time range","parameters":[{"name":"startTime","in":"query","description":"Timestamp of the first required violation.\nThis is a long integer value representing milliseconds since Jan 1 1970\n","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"endTime","in":"query","description":"Timestamp of the last required violation.\nThis is a long integer value representing milliseconds since Jan 1 1970\nIf unspecified, it will default to current time of the request.\n","schema":{"type":"integer","format":"int64"}},{"name":"next","in":"query","description":"Offset of the next chunk of violations. Value is null for the first request.","schema":{"type":"string"}},{"name":"limit","in":"query","description":"Max No. of violations to return. If no value is provided, 50 is the default. The maximum supported value is 500.\n","schema":{"type":"integer"}},{"name":"sessionToken","in":"header","description":"Session authentication token.","required":true,"schema":{"type":"string"}},{"name":"keyManagerToken","in":"header","description":"Key Manager authentication token.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/V3DLPViolationStreamResponse"}}}},"204":{"description":"No Messages.","content":{}},"400":{"description":"Client error, see response body for further details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized: Session tokens invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Forbidden: Caller lacks necessary entitlement.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server error, see response body for further details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"V3DLPViolationStreamResponse":{"type":"object","required":["violations"],"properties":{"violations":{"type":"array","items":{"$ref":"#/components/schemas/V3DLPViolationStream"}},"nextOffset":{"type":"string","description":"Offset for the next chunk of violations to be submitted in the next request.\nValue is null if there are no further violations.\n"}}},"V3DLPViolationStream":{"type":"object","properties":{"violation":{"$ref":"#/components/schemas/V3DLPViolation"},"stream":{"$ref":"#/components/schemas/V1DLPStream"}}},"V3DLPViolation":{"type":"object","properties":{"enforcementEventID":{"type":"string","description":"Enforcement event ID. Unique ID that identifies this enforcement."},"entityID":{"type":"string","description":"Entity ID is the content Id of the violation. For example, for messages it's the Id of the message"},"createTime":{"type":"integer","description":"Timestamp of the violation in milliseconds since Jan 1 1970","format":"int64"},"lastModified":{"type":"integer","description":"Timestamp of the last modification of violation in milliseconds since Jan 1 1970","format":"int64"},"requesterId":{"type":"integer","description":"Id of the requester responsible for the message/stream/signal","format":"int64"},"details":{"type":"array","description":"JSON representation of the details of the violation.","items":{"type":"object"}},"action":{"type":"string","description":"action taken such as BLOCK or WARN.  See outcome for a more detailed description of the outcome this action."},"outcome":{"$ref":"#/components/schemas/V1DLPOutcome"},"version":{"type":"string","description":"Version of application which processed the message and produced this violation."},"ignoreDLPwarning":{"type":"boolean","description":"Did the user chose to ignore DLP warning that was presented?"}},"description":"A representation of a violation due to an event created by a user of Symphony"},"V1DLPOutcome":{"type":"object","properties":{"type":{"type":"string","description":"Outcome of DLP enforcement"}},"description":"A representation of outcome of DLP message/stream/signal sent by a user of Symphony"},"V1DLPStream":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Stream/Room."},"creatorPrettyName":{"type":"string","description":"Name of the creator of the Room."},"publicRoom":{"type":"boolean","description":"Is this a public room?"},"crossPod":{"type":"boolean","description":"Is this a cross pod scenario?"},"allowExternal":{"type":"boolean","description":"Is external messaging allowed"},"creatorId":{"type":"string","description":"Id of the creator of the Room."},"roomDescription":{"type":"string","description":"Description of the Room."},"streamId":{"type":"string","description":"ThreadId of the Room."},"state":{"type":"string","description":"State of the Room (example CREATED etc)"},"type":{"type":"string","description":"Type of the Room (example ROOM (or IM or Wall))"},"lastDisabled":{"type":"integer","description":"Timestamp of last time the room is Disabled","format":"int64"},"memberAddUserEnabled":{"type":"boolean","description":"Is memberAddUserEnabled"},"active":{"type":"boolean","description":"Is Room Active"},"discoverable":{"type":"boolean","description":"Is Room discoverable"},"readOnly":{"type":"boolean","description":"Is Room read-only"},"copyDisabled":{"type":"boolean","description":"Is Room copyDisabled"},"externalOwned":{"type":"boolean","description":"Is Room externalOwned"},"sendMessageDisabled":{"type":"boolean","description":"Is sendMessage Disabled for this Room"},"moderated":{"type":"boolean","description":"Is room moderated"},"shareHistoryEnabled":{"type":"boolean","description":"Is room shareHistoryEnabled"},"diagnostic":{"type":"string","description":"A diagnostic message containing an error message in the event that the\nstream retrieval failed. May also be present in the case of a successful\ncall if there is useful narrative to return.\n"}},"description":"Room details in the context of violation."},"Error":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"message":{"type":"string"}}}}}}
```

> #### 🚧 Required Permissions
>
> Calling this endpoint requires the Expression Filter Policy Management role.\
> See [Bot Permissions](https://docs.developers.symphony.com/building-bots-on-symphony/configuration/bot-permissions) for a list of roles and associated privileges.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://rest-api.symphony.com/main/dlp-dictionary-and-policy-management/v3-violations-endpoints/v3-stream-violations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
