For agent builders

Give your agent a reason to pause.

Before an AI agent or a robot pays, opens or changes an account on a voice instruction, ORAVYS scores the recording for signs of synthetic speech. A risk signal before an irreversible action, never a lock.

Record, score, then hold or step up.

The agent keeps doing the reversible work. Only the irreversible step waits for the result.

01 · Record with consent

The person is told, and agrees.

The agent announces the recording and gets consent from the person who speaks. Every call must carry consent=true. Without it the API refuses the call and counts nothing.

02 · Send the clip

One call, from your backend or through MCP.

POST /api/v1/verdict-only, or the MCP tool check_deepfake. For flows that can wait, submit to /api/v1/analyze/async and poll /api/v1/job/{job_id}.

03 · Hold or step up

The result decides the next check, not the action.

If the result is not clear, confirm through another channel before acting, for example a call back to a number you already know.

Timing: typically seconds when warm, longer on cold start; use the async job API for non-interactive flows.

Each answer maps to a next step.

The result is advisory. It says whether synthetic speech signals were found in this recording, nothing more.

Answer

Strong synthetic signals

The recording shows strong signs of generated speech. Hold the irreversible action and confirm through another channel.

Answer

No strong synthetic signal (not a certification)

Nothing strong was found. This does not prove that the voice is human, nor who is speaking. Keep your usual controls.

Answer

Inconclusive

The clip could not be scored with confidence, or the service did not answer in time. Treat it as unknown, never as a pass.

  • Not a lock.Never make it the only gate on an action. It tells your agent when to ask for more.
  • Not proof.A probabilistic output, not legal evidence and not an identity check. It does not tell who is speaking.
  • Not emotion or intent reading.No stress, hesitation or intent scoring. The EU AI Act, Art. 5(1)(f), bars this kind of inference at work and in education.
  • Not live call monitoring.It scores a recorded clip. There is no streaming endpoint.

The API you call, or the MCP server your agent uses.

Send the key in the X-API-Key header, or as Authorization: Bearer. Keys in the query string or in form fields are refused. Keep the key on your server, never inside a device or a client app.

verdict-only request
curl -X POST https://app.oravys.com/api/v1/verdict-only \
  -H "X-API-Key: $ORAVYS_API_KEY" \
  -H "Idempotency-Key: order-4812-voice" \
  -F "audio=@instruction.wav" \
  -F "consent=true"
MCP host configuration (stdio)
{"mcpServers": {"oravys": {
  "command": "python",
  "args": ["mcp_server.py"],
  "env": {
    "ORAVYS_API_URL": "https://app.oravys.com",
    "ORAVYS_API_KEY": "..."}}}}
400 without consent
{"error": {
  "code": "consent_required",
  "message": "Consent attestation required: send
    consent=true (or consent_data_processing=true and
    consent_voice_processing=true), collected from the
    person whose voice is analyzed."}}
429 over the limit
{"error": {
  "code": "rate_limit_exceeded",
  "message": "Rate limit exceeded.
    Please retry later."}}
# Back off and retry. Do not count on a
# Retry-After header.

A paid key from the first call.

There is no free tier for automated agents: every analysis uses compute. Monthly quotas depend on the plan, and per-minute and per-day limits also apply. Access is opened on request.

Put a pause in front of the irreversible step.

Tell us what your agent does and which actions it takes on a voice instruction. We reply with access terms for the API and the MCP server.