Vilkax
VILKAX
Personal Business Developers
Live endpoints Request an API key
Vilkax Protect API

The risk-decision API for builders who can't ship a guess.

One HTTPS call in. A scored, explained verdict out: action, reasons, evidence and confidence. EU-built, PII-free, fail-closed auth, pay per call.

allow review block
Scroll
One call in, one decision out

POST a signal bundle.
Get an explained verdict.

No raw PII, ever. Send opaque signal ids and context. Get back an action, a score and the reason behind it, in one round trip.

  • Fail-closed auth. Missing or under-scoped keys are refused, never downgraded.
  • Never a false clear. If a source is not live, the response says "degraded": true.
decide.sh200 OK · 42ms
# POST a signal bundle, get one explained decision back
curl -X POST https://vilkax.com/api/partner/v1/decide \
  -H "Authorization: Bearer $VILKAX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "signals": [
      { "id": "process.remote_access_tool", "value": 0.9 },
      { "id": "text.urgency_pressure",       "value": 0.8 },
      { "id": "transfer.outbound_initiated", "value": 1.0 }
    ],
    "context": { "action_kind": "transfer" }
  }'
→ {
    "action": "review",
    "score": 84,
    "why": "Remote-access tool + urgency during a transfer."
  }
Quickstart

Live in an afternoon.

Get a key, make one call, act on the verdict. Every example targets a real, live endpoint.

01
Get a key
We issue a partner key vlx_live_… and a tier. The plaintext is shown once; we store only its SHA-256 hash.
02
Authenticate
Send Authorization: Bearer on every request. Each endpoint needs a scope the key carries.
03
Decide
POST a signal bundle, get back the verdict, score, reasons and confidence. Approve, queue, or block.
04
Pay for use
Transparent metering. Light lookups bill 1 unit, deep fused calls bill 3, usage is free.
API reference

The live endpoints. No vapourware.

Real, deployed routes on https://vilkax.com. Fields add, never break.

MethodEndpointScopeUnits
POST/api/partner/v1/decideSignal bundle to scored, explained verdict. Add "deep": true to run the semantic rung over text - the same paraphrase-invariant layer our own apps use, for scams no pattern covers.decide3 · 5 deep
POST/api/business/v1/risk/decideB2B fraud decision from a PII-free vector.risk:decide3
GET/api/partner/v1/signals/lookupemail · url · entity reputation lookup.signals:read1-3
GET/api/intel/v1/risk/lookupScammer Reputation Index.risk:lookup1
POST/api/nexus/v1/kyt/screenKnow-Your-Transaction: wallet or tx to allow · review · block.kyt:screen3
POST/api/business/v1/guard/evaluateChargeback risk scoring (advisory).guard:evaluate3
POST/api/business/v1/guard/disputeChargeback received to representment evidence packet.guard:dispute1
GET/api/partner/v1/guard/telemetryYour own Guard activity this period: verdict mix, auto-approve rate, guarantee coverage, dispute win-rate, last 20 evaluations. Pinned to your tenant.guard:read1
GET/api/partner/v1/usageCurrent-month units, quota, breakdown. Not metered.usage:read0
Chargeback risk scoring

A fraud API that
scores every order.

One call returns a 0 to 100 hazard score and an advisory verdict. If an order disputes, the representment evidence packet is ready to file with your acquirer.

Score at request time
Guard returns a 0 to 100 hazard score and an advisory verdict, all in one call. Thresholds are per tenant.
Cross-domain moat
Draws from the anti-scam intelligence layer. An inbound counterparty can be flagged as a social-engineering target before the transaction posts.
Representment evidence packet
POST a chargeback to /guard/dispute. Get back a packet: reason-code, evidence mapping, dispute strategy, ready for your acquirer.
Pricing

Pay per call. Start free.

Lookups bill 1 unit, deep calls 3, usage is free. No seat fees.

Free trial
€0/15 days
The full API against real, live endpoints. No card needed.
Every live endpoint
Partner key + tier
Transparent metering
Start free
Pay per call
from €149/mo
Usage-based pricing that scales with your volume. No seat fees, ever.
All decision + lookup endpoints
Guard chargeback risk scoring
1 / 3 / 0 unit metering
Request a key
Enterprise
Uncapped
Volume commitments for regulated teams.
Uncapped throughput
Priority support + SLAs
Talk to us

See full pricing

Products

Decisions first. Intelligence where you may resell it.

Every product is a scope on your key, metered per successful call, rate limited, audited and documented in the OpenAPI 3.1 spec. Call GET /api/partner/v1/capabilities to see exactly what your key can use. Commercial terms: contact us.

DomainProducts (POST/GET /api/partner/v1/...)
Decisioningdecide · explain · policy · policy/simulate · intervene · anticipate (alias risk/sequence) · review · evaluate · outcome
Fraud and scamsmessage/scan · phone/risk · qr/risk
Paymentspayee/risk (IBAN, Pix, UPI, mobile money, crypto) · transaction/risk · crypto/screen
Cyberurl/risk · file/risk · email/auth · domain/security · ip/risk · login/risk · endpoint/posture · prompt/injection
Identity and abusesignup/risk · bot/risk
Physical safetyincident/nearby (country level, k-anonymised) · travel/risk. No individual tracking, ever.
Threat intelligenceintel/feed?scope=fraud|cyber|physical|brand as JSON pages, NDJSON or STIX 2.1
Brand protectionbrand/monitors · brand/monitors/{id}/scan · brand/alerts
Platformcapabilities · webhooks · webhooks/{id}/test · webhooks/deliveries

One decision contract

Every decision product answers in the same shape: decision.action (allow, warn, step_up, hold, block or human_review), a calibrated confidence, a 0 to 100 risk_score, the threat taxonomy ids, structured evidence, plain-language explain text and a decision_ref. Send the decision_ref back to POST /api/partner/v1/outcome when you learn what happened; that feedback is how decisions improve.

curl -s https://vilkax.com/api/partner/v1/message/scan \
  -H "Authorization: Bearer vlx_live_..." -H "Idempotency-Key: 7c2e..." \
  -H "content-type: application/json" \
  -d '{"text":"Your account is locked, move your savings to a safe account","channel":"sms"}'

{ "ok": true, "request_id": "req_...", "product": "message.scan",
  "decision_ref": "pd_...",
  "decision": { "action": "hold", "confidence": 0.86, "risk_score": 72,
                "decision_type": "scam_social_engineering",
                "taxonomy": { "taxonomy_version": "...", "domain": "fraud", "type": "...", "family": "..." },
                "evidence": [ { "type": "signal", "code": "text.safe_account_transfer", "detail": "..." } ],
                "human_review_required": false, "policy_version": 3 },
  "explain": { "summary": "...", "next_step": "..." },
  "billed_units": 1 }

High-stakes categories (child exploitation, grooming, trafficking, abuse) always return human_review. No partner policy can turn that into an automated block or an allow, and the API never makes a statement about a person: it assesses behaviour and patterns.

Verdicts versus data

Decisions may draw on every signal Vilkax is licensed to use, including licensed third-party sources, because you are buying the verdict, not the data. The intelligence feed is different: it ships only rows Vilkax is allowed to redistribute, only confirmed indicators, hash-keyed with defanged previews. Personal identifiers such as phone numbers, email addresses and bank accounts are matched on query as hashes and are never exported in bulk. Vilkax sells verdicts and threat intelligence, never user personal data, profiles, messages or contacts.

Keys, sandbox, limits and errors

vlx_live_ keys run live engines. vlx_test_ keys run a sandbox that returns deterministic fixtures in the same contract: a value containing sandbox-block returns block, sandbox-review returns hold, and a person subject returns human_review. Sandbox calls are never billed. Responses carry x-request-id, x-vilkax-api-version, x-billed-units and quota headers; a POST accepts Idempotency-Key and replays the stored answer for 24 hours. Errors are {"ok":false,"error":"<code>","detail":"...","request_id":"..."} with stable codes such as insufficient_scope, tier_required, quota_exceeded, product_rate_limited and partner_suspended. Retired products announce themselves with Deprecation and Sunset headers before they leave /v1.

Webhooks

Subscribe an HTTPS endpoint to campaign.detected, brand.lookalike, indicator.confirmed, review.created, review.updated and decision.human_review. Each delivery is signed: x-vilkax-signature: t=<unix>,v1=<hex HMAC-SHA256> over t + "." + rawBody with your endpoint secret, which is shown once. Failed deliveries are retried with backoff and visible in webhooks/deliveries.

FAQ

Common questions.

How do I get an API key?

Request one from the contact form. We issue your vlx_live_ key and tier; the plaintext is shown exactly once. A self-serve portal is on the way.

Can I send raw PII?

No. Decisioning endpoints take opaque signal ids only; raw PII is rejected with pii_in_features. Lookup values (email, phone, domain, IP, wallet) are hashed server-side.

Does the API score chargeback risk?

Yes, via the guard:* scope family. POST to /api/business/v1/guard/evaluate with a hashed order (no raw PII) and get back a 0 to 100 hazard score and an advisory verdict. If that order later disputes, POST the chargeback to /guard/dispute and receive a representment evidence packet, reason-code classification, evidence mapping and dispute strategy, ready to file with your acquirer.

How does Guard differ from Signifyd or Riskified?

They score isolated purchase signals within their merchant network. Guard additionally draws from the Vilkax anti-scam intelligence layer, the consumer-side behaviour patterns and entity-graph signals that protect people. An inbound counterparty can be scored against known social-engineering victim and mule patterns before the transaction posts. The advisory score is native to the API call, not a separate integration.

Request an API key

Built for builders who
can't ship a guess.

Start free, wire one call, and decide with evidence from day one. We issue your vlx_live_ key and tier.

Not building yet? Get on the developer early-access list and we'll email you the moment the Protect API opens.

Plain HTTPS + JSON · fail-closed auth · EU-built

Tweaks

Feel of the page