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>.

OperationMethod and path
List violationsGET /violations/list
Submit evidencePOST /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.

ParameterInTypeRequiredDescription
statusquerystringnopending, accepted, rejected or submitted.
page_numberqueryintegernoStarts at 1. Default 1.
page_sizequeryintegerno1 to 100. Default 10.

Request

bash
curl "https://api.sevennadi.si/violations/list?status=pending" \
  -H "Authorization: Bearer vk-0123456789abcdef0123456789abcdef"

Response 200 OK

json
{
  "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

StatusMessage
400status must be one of: pending, accepted, rejected, submitted
400page_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.

ParameterInTypeRequiredDescription
violation_idformstring (UUID)yesThe violation.
violation_fileformfileyesA PNG, JPEG, GIF or WebP image, or a PDF, of at most 10 MB. The content is checked, not the file name.

Request

bash
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

json
{"message": "success", "state": "submitted"}

Errors

StatusMessage
400Violation is already <status>
400The file is larger than 10 MB
400The file must be an image (PNG, JPEG, GIF, WebP) or a PDF
404Violation not found
413The request body is larger than 11 MB