HTTP API

Reputation

GET/api/v1/reputation/affinity/{domain}/{entity_kind}/{entity_id}/edges
GET
/api/v1/reputation/affinity/{domain}/{entity_kind}/{entity_id}/edges

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

domain*string
entity_kind*string
entity_id*string

Query Parameters

sort?string

Whether to rank by strongest positive or strongest negative edges.

Value in

  • "positive"
  • "negative"
limit?integer

Maximum number of edges to return.

Formatint64
Range0 <= value
offset?integer

Number of leading edges to skip.

Formatint64
Range0 <= value

Response Body

application/json

curl -X GET "https://example.com/api/v1/reputation/affinity/string/string/string/edges"
{  "count": 0,  "edges": [    {      "domain": "string",      "from": {        "id": "string",        "kind": "auth_user"      },      "last_update": "2019-08-24T14:15:22Z",      "last_update_ts": 0,      "nemesis": null,      "score": 0.1,      "state": "string",      "state_history": [        {          "entered_at": "2019-08-24T14:15:22Z",          "state": "string"        }      ],      "to": {        "id": "string",        "kind": "auth_user"      },      "updated_at": "2019-08-24T14:15:22Z"    }  ]}
GET/api/v1/reputation/affinity/{domain}/{from_kind}/{from_id}/{to_kind}/{to_id}
GET
/api/v1/reputation/affinity/{domain}/{from_kind}/{from_id}/{to_kind}/{to_id}

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

domain*string
from_kind*string
from_id*string
to_kind*string
to_id*string

Response Body

application/json

curl -X GET "https://example.com/api/v1/reputation/affinity/string/string/string/string/string"
{  "edge": {    "domain": "string",    "from": {      "id": "string",      "kind": "auth_user"    },    "last_update": "2019-08-24T14:15:22Z",    "last_update_ts": 0,    "nemesis": null,    "score": 0.1,    "state": "string",    "state_history": [      {        "entered_at": "2019-08-24T14:15:22Z",        "state": "string"      }    ],    "to": {      "id": "string",      "kind": "auth_user"    },    "updated_at": "2019-08-24T14:15:22Z"  }}
GET/api/v1/reputation/nemesis/{domain}/{entity_kind}/{entity_id}
GET
/api/v1/reputation/nemesis/{domain}/{entity_kind}/{entity_id}

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

domain*string
entity_kind*string
entity_id*string

Response Body

application/json

curl -X GET "https://example.com/api/v1/reputation/nemesis/string/string/string"
{  "count": 0,  "nemeses": [    {      "edge": {        "domain": "string",        "from": {          "id": "string",          "kind": "auth_user"        },        "last_update": "2019-08-24T14:15:22Z",        "last_update_ts": 0,        "nemesis": null,        "score": 0.1,        "state": "string",        "state_history": [          {            "entered_at": "2019-08-24T14:15:22Z",            "state": "string"          }        ],        "to": {          "id": "string",          "kind": "auth_user"        },        "updated_at": "2019-08-24T14:15:22Z"      },      "level": 0    }  ]}
GET/api/v1/reputation/scores/{domain}/leaderboard
GET
/api/v1/reputation/scores/{domain}/leaderboard

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

domain*string

Query Parameters

tier?string

Optional tier filter (only entities currently in this tier).

limit?integer

Maximum number of ranked entries to return.

Formatint64
Range0 <= value

Response Body

application/json

curl -X GET "https://example.com/api/v1/reputation/scores/string/leaderboard"
{  "domain": "string",  "entries": [    {      "entity_id": "string",      "entity_kind": "string",      "rank": 0,      "score": 0.1,      "tier": "string"    }  ]}
GET/api/v1/reputation/scores/{domain}/{entity_kind}/{entity_id}
GET
/api/v1/reputation/scores/{domain}/{entity_kind}/{entity_id}

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

domain*string
entity_kind*string
entity_id*string

Query Parameters

at?string

Optional historical timestamp; the score is recomputed as of this time.

Formatdate-time

Response Body

application/json

curl -X GET "https://example.com/api/v1/reputation/scores/string/string/string"
{  "score": {    "decay_half_life_days": 0.1,    "domain": "string",    "entity": {      "id": "string",      "kind": "auth_user"    },    "flags": [      "string"    ],    "last_update": "2019-08-24T14:15:22Z",    "last_update_ts": 0,    "rating_count": 0,    "raw_score": 0.1,    "score": 0.1,    "tier": "string",    "tier_entered_at": "2019-08-24T14:15:22Z",    "tier_entered_ts": 0,    "unique_raters": 0,    "updated_at": "2019-08-24T14:15:22Z"  }}
GET/api/v1/reputation/{domain}/config
GET
/api/v1/reputation/{domain}/config

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

domain*string

Response Body

application/json

curl -X GET "https://example.com/api/v1/reputation/string/config"
{  "config": {    "affinity": {      "decay_toward_neutral_half_life_days": 0.1,      "event_deltas": {        "property1": 0.1,        "property2": 0.1      },      "neutral_point": 0.1,      "states": [        {          "max": 0.1,          "name": "string",          "nemesis_suite": true        }      ]    },    "created_at": "2019-08-24T14:15:22Z",    "domain": "string",    "reputation": {      "decay_half_life_days": 0.1,      "gain_multiplier": 0.1,      "loss_multiplier": 0.1,      "min_rater_account_age_days": 0,      "repeat_rater_falloff": 0.1,      "source_weighting": "string",      "tiers": [        {          "min": 0.1,          "name": "string"        }      ],      "velocity_cap": {        "max_events_per_rater_per_day": 0      }    },    "updated_at": "2019-08-24T14:15:22Z"  }}
PUT/api/v1/reputation/{domain}/config
PUT
/api/v1/reputation/{domain}/config

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

domain*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Upsert the per-domain scoring configuration.

Response Body

application/json

curl -X PUT "https://example.com/api/v1/reputation/string/config" \  -H "Content-Type: application/json" \  -d '{    "affinity": {      "decay_toward_neutral_half_life_days": 0.1,      "event_deltas": {        "property1": 0.1,        "property2": 0.1      },      "neutral_point": 0.1,      "states": [        {          "max": 0.1,          "name": "string"        }      ]    },    "reputation": {      "decay_half_life_days": 0.1,      "gain_multiplier": 0.1,      "loss_multiplier": 0.1,      "min_rater_account_age_days": 0,      "repeat_rater_falloff": 0.1,      "tiers": [        {          "min": 0.1,          "name": "string"        }      ],      "velocity_cap": {        "max_events_per_rater_per_day": 0      }    }  }'
{  "config": {    "affinity": {      "decay_toward_neutral_half_life_days": 0.1,      "event_deltas": {        "property1": 0.1,        "property2": 0.1      },      "neutral_point": 0.1,      "states": [        {          "max": 0.1,          "name": "string",          "nemesis_suite": true        }      ]    },    "created_at": "2019-08-24T14:15:22Z",    "domain": "string",    "reputation": {      "decay_half_life_days": 0.1,      "gain_multiplier": 0.1,      "loss_multiplier": 0.1,      "min_rater_account_age_days": 0,      "repeat_rater_falloff": 0.1,      "source_weighting": "string",      "tiers": [        {          "min": 0.1,          "name": "string"        }      ],      "velocity_cap": {        "max_events_per_rater_per_day": 0      }    },    "updated_at": "2019-08-24T14:15:22Z"  }}
POST/api/v1/reputation/{domain}/events
POST
/api/v1/reputation/{domain}/events

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

domain*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

A single interaction event to ingest into both projections.

Response Body

application/json

curl -X POST "https://example.com/api/v1/reputation/string/events" \  -H "Content-Type: application/json" \  -d '{    "actor": {      "id": "string",      "kind": "auth_user"    },    "event_type": "string",    "target": {      "id": "string",      "kind": "auth_user"    }  }'
{  "accepted": true,  "applied_weight": 0.1,  "integrity": {    "damped": true,    "damping_factor": 0.1,    "quarantined": true,    "reasons": [      "string"    ],    "review_ticket": "string"  },  "new_reputation_score": 0.1,  "relationship_transition": null,  "reputation_delta": 0.1,  "tier_transition": null}
POST/api/v1/reputation/{domain}/events/batch
POST
/api/v1/reputation/{domain}/events/batch

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

domain*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

A batch of interaction events to ingest atomically per event.

Response Body

application/json

curl -X POST "https://example.com/api/v1/reputation/string/events/batch" \  -H "Content-Type: application/json" \  -d '{    "events": [      {        "actor": {          "id": "string",          "kind": "auth_user"        },        "event_type": "string",        "target": {          "id": "string",          "kind": "auth_user"        }      }    ]  }'
{  "accepted": 0,  "results": [    {      "accepted": true,      "applied_weight": 0.1,      "integrity": {        "damped": true,        "damping_factor": 0.1,        "quarantined": true,        "reasons": [          "string"        ],        "review_ticket": "string"      },      "new_reputation_score": 0.1,      "relationship_transition": null,      "reputation_delta": 0.1,      "tier_transition": null    }  ]}
POST/api/v1/reputation/{domain}/nemesis/resolve
POST
/api/v1/reputation/{domain}/nemesis/resolve

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

domain*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Resolve and retire an active nemesis block.

Response Body

application/json

curl -X POST "https://example.com/api/v1/reputation/string/nemesis/resolve" \  -H "Content-Type: application/json" \  -d '{    "from": {      "id": "string",      "kind": "auth_user"    },    "outcome": "nemesis_defeated_final",    "to": {      "id": "string",      "kind": "auth_user"    }  }'
{  "edge": {    "domain": "string",    "from": {      "id": "string",      "kind": "auth_user"    },    "last_update": "2019-08-24T14:15:22Z",    "last_update_ts": 0,    "nemesis": null,    "score": 0.1,    "state": "string",    "state_history": [      {        "entered_at": "2019-08-24T14:15:22Z",        "state": "string"      }    ],    "to": {      "id": "string",      "kind": "auth_user"    },    "updated_at": "2019-08-24T14:15:22Z"  },  "message": "string"}
PUT/api/v1/reputation/{domain}/preferences/{entity_kind}/{entity_id}
PUT
/api/v1/reputation/{domain}/preferences/{entity_kind}/{entity_id}

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

domain*string
entity_kind*string
entity_id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Upsert an entity's preference profile.

Response Body

application/json

curl -X PUT "https://example.com/api/v1/reputation/string/preferences/string/string" \  -H "Content-Type: application/json" \  -d '{    "preferences": [      {        "delta_multiplier": 0.1,        "event_type": "string"      }    ]  }'
{  "profile": {    "domain": "string",    "entity": {      "id": "string",      "kind": "auth_user"    },    "preferences": [      {        "delta_multiplier": 0.1,        "event_type": "string",        "metadata_key": "string",        "metadata_value": "string"      }    ],    "updated_at": "2019-08-24T14:15:22Z"  }}
GET/api/v1/reputation/{domain}/quarantine/{entity_kind}/{entity_id}
GET
/api/v1/reputation/{domain}/quarantine/{entity_kind}/{entity_id}

Authorization

bearer_token
AuthorizationBearer <token>

In: header

Path Parameters

domain*string
entity_kind*string
entity_id*string

Response Body

application/json

curl -X GET "https://example.com/api/v1/reputation/string/quarantine/string/string"
{  "status": {    "domain": "string",    "entity": {      "id": "string",      "kind": "auth_user"    },    "quarantined": true,    "review_ticket": "string"  }}

On this page