Building with Passport
Model Based Detection API
API reference

API Reference

The Model Based Detection API enables developers to retrieve different model-based unique humanity scores in real-time, enabling you to score any EVM wallet address without requiring the users to create and build up a Passport score.

This API is currently in beta.

You can also experiment with the Model Based Detection API using our API playground tool (opens in a new tab) and adding your API keys via the 'Authorize' button.

Rate Limits

TierRate limit
Tier 1[DEFAULT] 15 requests per 15 minutes
Tier 2350 requests per 15 minutes
Tier 32000 requests per 15 minutes

These rate limits are completely separate from the existing Passport API rate limits.

If you'd like to request elevated rate limits, please fill out our rate limit elevation form (opens in a new tab).

Retrieve Model Based Detection scores

Use this endpoint to request a model-based score for a specified user. You can find all of the available models and recommended score thresholds via our available models page.

  • Endpoint: GET /v2/models/score/{address}
  • Base URL: https://api.passport.xyz
  • Authentication: API Key – Can be the same API Key that is used with the Passport API

Parameters

ParameterTypeDescription
addressPath parameter[Required] Pass a single EVM wallet address

While we only allow a single address to be scored per request, we are considering expanding this to enable bulk scoring when we graduate this API from beta. If this is important to you, please let us know (opens in a new tab).
modelQuery parameterInclude one of the following available models to request that model's score for the specified wallet address:
aggregate, ethereum_activity, nft, arbitrum, optimism, polygon, and zksync

If you don't include this parameter, the API will return the aggregate model by default.

While we only allow scoring using a single model per request, we are considering enabling requesting multiple models when we graduate this API from beta. If this is important to you, please let us know (opens in a new tab).

Default example

Request

curl --request GET \
    --url 'https://api.passport.xyz/v2/models/score/{address}?model=aggregate' \
    --header 'Content-Type: application/json' \
    --header 'X-API-KEY: {API KEY}'

Response

{
    "address": "string",
    "details": {
        "models": {
            "aggregate": {
                "score": 50 
            }
        } 
    }
}

Arbitrum model example

Request

curl --request GET \
    --url 'https://api.passport.xyz/v2/models/score/{address}?model=arbitrum' \
    --header 'Content-Type: application/json' \
    --header 'X-API-KEY: {API KEY}'

Response

{
    "address": "string",
    "details": {
        "models": {
            "arbitrum": {
                "score": 50 
            }
        } 
    }
}