Skip to main content
Audact
See the offer

May this number be dialled, now, by you?

Public API host: In development

POST https://api.audact.ai/v1/eligibility/check

The public API host. The code examples document the intended interface and the endpoints used within the current product.

No public API is served on this host yet, apart from the published Merkle roots at /v1/metachain. The endpoints used inside the product are not the same thing as a public API.

Why this status
Claim
In development · By application
Scope
The public API host. The code examples document the intended interface and the endpoints used within the current product.
Ground
No public API is served on this host yet, apart from the published Merkle roots at /v1/metachain. The endpoints used inside the product are not the same thing as a public API.
What it does not establish
That any individual endpoint works today. That is confirmed per endpoint, and the confirmation is open.
What you can get today
Production access sits inside an applicable paid agreement. Endpoints are not priced separately.
Last checked
5 October 2026
Where to check it
/apis

In controlled testing · Germany: national policy layer active. Netherlands: in development. Belgium and Austria: planned.

One call before the dial. The endpoint checks the number against do-not-call registries, the consent you hold for it, the local quiet-hours window and the vulnerable-person signals your policy defines. It returns allow or block with the reason as structured data. Whether it allows or blocks, it writes a receipt, so a campaign that was stopped is as documented as one that ran.

POST /v1/eligibility/check

curl -X POST https://api.audact.ai/v1/eligibility/check \
  -H "Authorization: Bearer $AUDACT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "msisdn": "+4915112345678",
    "campaign_id": "camp_dental_followup_q3",
    "jurisdiction": "DE",
    "dispatch_window": "2026-08-15T14:00:00+02:00",
    "consent_reference": "consent_8h2k9d7"
  }'

One request per number per dispatch window. Cache the verdict; the window is part of the key.

200 OK · structured decision

{
  "verdict": "BLOCK",
  "reasons": [
    {
      "code": "DNC_LIST",
      "source": "robinsonliste.de",
      "checked_at": "2026-08-15T13:59:47Z"
    },
    {
      "code": "QUIET_HOURS",
      "jurisdiction": "DE",
      "window": "08:00-20:00 local"
    }
  ],
  "call_id": "7f3c2a1e-0000-4000-8000-000000000000",
  "next_eligible": null
}

next_eligible carries the earliest permissible moment where one exists. A block becomes a schedule, not a dead end.

What the law requires

Unsolicited communication for commercial purposes to a natural person requires prior consent, and every call must offer the means to object.
Telecommunicatiewet (NL), art. 11.7, amendment in force since 1 July 2026
Telephone advertising without the recipient's prior express consent is an unacceptable nuisance.
Gesetz gegen den unlauteren Wettbewerb (DE), § 7(2)
A person interacting with an AI system must be informed of that. On an outbound call that means before the conversation proper begins.
Regulation (EU) 2024/1689, Art. 50(1) and 50(5)
Consent must be demonstrable: the controller must be able to show that the data subject consented.
Regulation (EU) 2016/679 (GDPR), Art. 7(1)

What gets checked

Do-not-call registries: Robinsonliste (DE), voluntary; it does not replace the consent test under § 7 UWG.
In controlled testing · Germany: national policy layer active. Netherlands: in development. Belgium and Austria: planned.
Consent provenance: was an opt-in collected, by which entity, with what scope, and has it expired?
In development
Quiet hours in local time, public holidays included.
In controlled testing
Vulnerable-person signals: age cohort, behavioural markers, registry flags. Block or escalate, per your policy.
In controlled testing
National policy packs on top of the shared engine.
In controlled testing · Germany: national policy layer active. Netherlands: in development. Belgium and Austria: planned.

Why before and not after

A blocked dial is the cheapest evidence you will ever produce.

Suppression lists get applied at the end of a pipeline, where they are a filter over an export. Checked at the moment of dispatch, the same rule becomes a record: this number, this campaign, this window, this reason. The receipt for a call you did not make costs nothing and answers the question a regulator actually asks.

Art. 7(1) GDPR puts the burden of showing consent on you. A consent reference that travels with the eligibility check, and lands in the same chain as the call itself, is what turns that burden into a lookup.

Composition

Three endpoints on one outbound call.

  • Eligibility before the dial: this endpoint.
  • Article 50 attestation on the disclosure, at the top of the call.
  • The governance gate on each utterance, for anything commercial or advisory.

Questions

Does a block stop the campaign?
It stops that dial. Where a later moment is permissible, next_eligible carries it, so your dialler reschedules instead of dropping the contact.
Which registries are covered?
The German registry is live. The Dutch registry sits inside the Dutch policy layer, which is in progress; Belgium and Austria are queued.
Do you store the phone number?
The number is needed to run the registry check. What lands in the receipt is a hash of it plus the decision and the reason codes, so the evidence survives a deletion request against the number itself.

The Dutch layer, in full

The Telecomwet page carries what changed on 1 July 2026, what it means for an AI dialler, and how it sits on top of the Article 50 duty rather than replacing it.

Read the Telecomwet page

Related