Entities

Profile clusters by id, or list every address of a category

Two modes, selected by which field is sent; exactly one per request (both, or neither, is a 400).

By id (entity_ids): takes cluster ids, the axes.membership.group_id values that /v2/enrich returns, and profiles the whole grouped entity: its size, type, name, and the risk reading of its anchor address (the hot wallet or hub the cluster is keyed on). Use this when the question is about an exchange rather than about one of its addresses. Open to anonymous callers; one unit per id.

A cluster bound to a platform brand (entity_ref) also carries brand: a summary of the venue as a regulated business — country of registration and country of actual control, the countries that licensed it and the lists those countries are on, and risk_score, an integer 0..100. The licences themselves, the KYC periods and the list rows per country are one call away, at GET /v1/brands/{name_key} (brand.detail). The score is computed on read, never stored: an active sanction of the ORGANISATION scores 100, one no longer in force 50, a country of the brand on the FATF call-for-action list 100, on the EU high-risk third-country list 50, on the FATF increased-monitoring list 40, on our own weak-supervision list 20. The worst component wins — not the sum, not the average — and the jurisdiction carries over to the brand in full. null means no component at all; complete: false means the score is a LOWER BOUND, because some country has no list row for the date. The weights and the full rule are published once per response in brand_risk_policy. Read risk_score, not high_risk, which is now derived from it at >= 40 and kept for compatibility.

By category (category + chain): pages through every address attributed to one category on one chain, with a keyset cursor. Each address carries the same facts as venues[].addresses[] in /v1/source-trace (label, venue, venue_role, basis, cluster_id, external_label_meta) EXCEPT axes, which this mode does not return: ask /v2/enrich for the addresses you need them on. Needs an API key (any valid key). Classed with the scans; one unit per address RETURNED: the page size is reserved up front and the unfilled part refunded. Unknown body fields are a 400 in this mode. deposit is refused (category_not_listable): it has no index a page could walk. Each address also names the platform it belongs to (brand): what it scores, where it is registered and managed, which countries licensed it and which lists those countries are on. The paperwork behind that score — the licences themselves, the KYC periods, the list rows per country — is at GET /v1/brands/{name_key}.

post/v1/entities

Request

  • Base URL: https://intelapi.publicaml.org
  • URL: https://intelapi.publicaml.org/v1/entities
  • Auth: one of:
    • API key in header X-API-Key
    • none

Request body

categorystring required

An attribution category (can_attribute) from GET /v1/categories, e.g. 'gambling'. Not 'deposit'.

chain'bitcoin' | 'ethereum' | 'bsc' | 'tron' required

The chain to list. Same values and aliases as everywhere else (ETH, BTC, TRX, BNB accepted).

limitinteger
cursorstring

next_cursor of the previous page. Bound to its chain and category; does not expire.

includestring[]

Per-address blocks. Both are on by default; naming a subset turns the other off and [] omits both.

Response

Entity profiles (by id) or one page of a category's addresses.

OR

Changes

No recorded changes to this operation across all 1 revision of this API.