API reference
Violations
List complaints raised against your calls and submit evidence in response.
A violation is a complaint recorded against one of your calls, for example one passed on by a carrier or a regulator. Violations are filed by the platform's staff; you cannot create one through the API. You can list the violations on your account and answer each with one evidence file. See the Compliance guide.
Both routes need Authorization: Bearer <key>.
| Operation | Method and path |
|---|---|
| List violations | GET /violations/list |
| Submit evidence | POST /violations/submit |
A violation has one of four statuses: pending (waiting for your evidence), submitted (evidence received), accepted or rejected. You can submit evidence while a violation is pending or rejected.
Operations
List violations
GET /violations/list
Returns the account's violations, newest first.
Auth: API key or session token. Role: viewer and up.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
status | query | string | no | pending, accepted, rejected or submitted. |
page_number | query | integer | no | Starts at 1. Default 1. |
page_size | query | integer | no | 1 to 100. Default 10. |
Request
curl "https://api.sevennadi.si/violations/list?status=pending" \
-H "Authorization: Bearer vk-0123456789abcdef0123456789abcdef"Response 200 OK
{
"data": [
{
"id": "d1e2f3a4-b5c6-4d7e-8f90-a1b2c3d4e5f6",
"from_phone_number": "+918045550100",
"to_phone_number": "+919876500012",
"date_of_call": "2026-10-09T11:42:00+00:00",
"status": "pending",
"created_at": "2026-10-12T06:00:00+00:00",
"updated_at": "2026-10-12T06:00:00+00:00",
"user_id": "4a257495-4e4b-484e-92e5-c616a720ec03",
"agent_id": "f412f2b1-3493-4458-bcf2-8676cc798edd",
"execution_id": "0b6c2c4e-7a55-4b0f-9a07-3d6b1f9f2a11",
"email": "ops@example.test"
}
],
"total": 1,
"limit": 10,
"offset": 0,
"has_more": false
}The request pages with page_number and page_size, but the response reports the page as limit and offset. image_url is added once evidence has been submitted; it holds a storage key, not a link. agent_id, execution_id and date_of_call appear only when known.
Errors
| Status | Message |
|---|---|
| 400 | status must be one of: pending, accepted, rejected, submitted |
| 400 | page_number must be >= 1 and page_size between 1 and 100 |
Submit evidence
POST /violations/submit
Uploads one evidence file for a violation and sets its status to submitted. Submitting again while the violation is rejected replaces the file. The request is multipart/form-data.
Auth: API key or session token. Role: member and up.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
violation_id | form | string (UUID) | yes | The violation. |
violation_file | form | file | yes | A PNG, JPEG, GIF or WebP image, or a PDF, of at most 10 MB. The content is checked, not the file name. |
Request
curl -X POST https://api.sevennadi.si/violations/submit \
-H "Authorization: Bearer vk-0123456789abcdef0123456789abcdef" \
-F "violation_id=d1e2f3a4-b5c6-4d7e-8f90-a1b2c3d4e5f6" \
-F "violation_file=@consent-record.pdf;type=application/pdf"Response 200 OK
{"message": "success", "state": "submitted"}Errors
| Status | Message |
|---|---|
| 400 | Violation is already <status> |
| 400 | The file is larger than 10 MB |
| 400 | The file must be an image (PNG, JPEG, GIF, WebP) or a PDF |
| 404 | Violation not found |
| 413 | The request body is larger than 11 MB |