NUACOM API

Advanced

Client Operations

Client operations are the account's data-subject tools: for one phone number, export the data NUACOM holds that involves it, or schedule its deletion or anonymisation — what a GDPR access or erasure request calls for. The group holds the export, the scheduling of a delete or anonymise operation, the list of scheduled and finished operations and the delete of a scheduled one. The data they act on is the call history of Call Logs, the phonebook contacts, the SMS messages and the voicemail messages that involve the number.

Workflow (what the portal does)

  1. Export: POST /v2/client-operations/export/{phone} with payload, the list of sections to include: call_logs, phonebook, sms, voicemail. It answers 204 at once; the export is built in the background and emailed to the user your API key acts as, with one CSV per section attached, named after your company, the section, the number and a timestamp. The number is matched in its local, international and E.164 forms; a number without + is read in the account's country. The columns:
    • call_logs: Date, From, To, Direction, Duration, Disposition — the calls since 1 January 2021 in which the number is the caller or the called party;
    • phonebook: First Name, Last Name, Mobile, Landline, Email, Address — the phonebook contacts that hold the number;
    • sms: Status, Scheduled Send Time, Message, Number — the messages addressed to the number, drafts excluded;
    • voicemail: Date, Caller, Duration — the voicemail messages left from the number.
  2. Schedule a delete or anonymise: POST /v2/client-operations/process/{phone} with process (delete or anonymize) and payload, a non-empty list of sections with the names above. It answers 204: the operation is stored as scheduled and an email confirming the request goes to the account's primary contact. When a scheduled operation of the same kind already exists for the number, its payload is replaced rather than a second one created. The processing itself runs later, in the background: the operation moves to processing and then to done. There is no endpoint to run it on demand and the API reports no details of what was changed.
  3. List: GET /v2/client-operations answers at most 20 operations as a plain array, scheduled ones first, then processing, then done. Each row is id, account_id, phone, process, payload, status (0 scheduled, 1 processing, 2 done), status_label (Scheduled, Processing or Done), has_scheduled (true while the row can still be deleted), created_at and updated_at. Exports are not listed: nothing is stored for them.
  4. Delete a scheduled operation: DELETE /v2/client-operations/{id} answers 204. Once processing has started it answers 422 with {"error": "Only scheduled processes can be deleted"}; an id that is not one of your account's operations answers 404.
curl -X POST 'https://api.api-nuacom.com/v2/client-operations/process/+353861234567' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"process": "anonymize", "payload": ["call_logs", "sms", "voicemail"]}'

The list then shows:

[
  {
    "id": 42,
    "account_id": "IE-00123",
    "phone": "+353861234567",
    "status": 0,
    "process": "anonymize",
    "payload": ["call_logs", "sms", "voicemail"],
    "created_at": "2026-10-29 09:15:00",
    "updated_at": "2026-10-29 09:15:00",
    "status_label": "Scheduled",
    "has_scheduled": true
  }
]

Roles and access

  • All four endpoints are for account admins: any other user gets 403 with the body "Forbidden", a missing or invalid token 401 "Unauthorized".
  • With the account's ISO dates option, created_at and updated_at are ISO 8601 in the X-Timezone you send, UTC by default (2026-10-29T09:15:00+00:00); without it they are Y-m-d H:i:s in Irish time. See Dates and timezones.

Pitfalls

  • Both POST endpoints are asynchronous and answer 204 with no job id: the export arrives by email, and a scheduled operation is only visible in the list. Nothing tells you when the export has been sent.
  • phone is not validated when scheduling: the number is stored exactly as you send it. Use the international format (+353861234567).
  • The section names in payload are not validated when scheduling; an unknown name is stored as sent. For the export an unknown name is ignored, and an empty or missing payload still sends the email, with no attachments.
  • Scheduling the same process for the same number again replaces the earlier payload; it does not add to it.
  • The list is capped at 20 rows and has no paging; when the account has more, finished operations are the ones left out.
  • A delete operation cannot be undone, and the scheduled row can only be removed while it is still scheduled.