The AbuseZero API is in public beta. Breaking changes are announced two weeks in advance.
AbuseZero

Create a risk check

POST
/v1/checks

Scores an identity against device, network, email and benefit history signals, then applies your rules to return a decision.

Authorization

apiKey
headerAuthorizationBearer <token>

Your secret API key, for example az_live_.... Use az_test_... keys against the sandbox.

Request Body

application/json
  1. body
event*string
Value in"signup""trial_start""credit_claim""coupon_redeem""referral"
identity*

Everything you know about the person making the request. Send as much as you can.

benefit?
async?boolean

Score in the background and send a check.completed webhook.

Defaultfalse

Response Body

The check was scored.

application/json
  1. response
id*string
score*integer

Risk score. Higher means more likely to be abuse.

Range0 <= value <= 100
decision*string
Value in"allow""review""deny"
matchedRule?|

ID of the rule that produced the decision.

signals*array<>
createdAt*string
Formatdate-time
Example Request
curl -X POST 'https://api.abusezero.com/v1/checks' \  -H 'Content-Type: application/json' \  -d '{  "event": "trial_start",  "identity": {    "email": "jane@example.com",    "ip": "203.0.113.42",    "deviceId": "dev_9f8a7b6c"  },  "benefit": {    "type": "free_trial",    "plan": "pro"  }}'
Example Response
{  "id": "string",  "score": 0,  "decision": "allow",  "matchedRule": "string",  "signals": [    {      "name": "string",      "weight": 0,      "detail": "string"    }  ],  "createdAt": "2019-08-24T14:15:22Z"}