Download OpenAPI specification:
Blockscout's blockchain intelligence API provides comprehensive attribution data for Bitcoin addresses. Our data products enable compliance teams, law enforcement, and financial institutions to identify and track entities operating on the blockchain.
All API endpoints require authentication using an API key. Include your API key in the request headers:
x-api-key: YOUR_API_KEY_HERE
curl -X GET "https://api.bs-data.com/v1/attributions/darknet/addresses" \
-H "x-api-key: YOUR_API_KEY_HERE"
Rate limits are enforced based on your subscription tier. Every response includes rate limit headers:
X-RateLimit-Limit: Maximum requests allowedX-RateLimit-Remaining: Requests remainingX-RateLimit-Reset: When the rate limit resetsWelcome to Blockscout's Entity Intelligence API - the comprehensive blockchain attribution platform serving law enforcement, financial institutions, and compliance teams worldwide. Our platform provides real-time access to a curated catalogue of 30,000+ entities spanning legitimate businesses and illicit operations across Bitcoin and Ethereum networks.
Every blockchain address and transaction in our system maps to real-world entities through our proprietary attribution engine. Using advanced clustering algorithms and human intelligence gathering, we maintain the industry's most comprehensive entity database.
Our SOT (Source of Truth) database contains 30,000+ meticulously researched entities including:
The entity_id field serves as the universal primary key across all Blockscout APIs. This unique identifier:
entity_id in the response/entities/{entity_id} to retrieve full profileentity_id from transaction endpoints to retrieve full entity profilesOur attribution data is powered by:
The Entity object represents a single entry in Blockscout's comprehensive catalogue. Each entity is uniquely identified by an entity_id that serves as the primary key across all APIs.
Primary fields that uniquely identify and classify the entity:
entity_id: Unique identifier (primary key)proper_name: Official or commonly known nameentity_type: Classification (exchange, darknet, mixer, etc.)url: Primary website or service URLCorporate and contact details, primarily for legitimate businesses:
ceo: Chief Executive Officer namekey_personnel: Notable team membersyear_founded: Establishment yearticker: Stock ticker symbol (if publicly traded)contact_email: Official contact emailcontact_phone: Business phone numbercontact_address: Physical addresslegal_info_url: Terms of service or legal documentationRisk assessment and regulatory information:
risk_score: Risk rating from 0-100no_kyc_req: KYC requirement flagofac: OFAC sanctions statuscentralized: Centralization indicatordead: Operational statusLocation and regulatory jurisdiction:
associate_country_1: Primary country of operationassociate_country_2: Secondary countryjurisdiction: Legal jurisdictionFor chemical and pharmaceutical entities:
cas_1 through cas_27: Chemical Abstracts Service registry numbersOnline presence and communication channels:
contact_twitter: Twitter/X handlecontact_telegram: Telegram contactsocial_media_profile: Primary social mediaens_address: Ethereum Name Service addressClassification and search optimization:
entity_tag1 through entity_tag7: Descriptive tagsdescription_merged: Comprehensive descriptionparent_id: Parent entity referenceField completeness varies significantly by entity type:
centralized exchange: Licensed cryptocurrency exchangesdecentralized exchange: DEX protocols and smart contractspayment processor: Crypto payment gatewaysotc broker: Over-the-counter trading deskscustody provider: Digital asset custodiansdarknet: Darknet marketplacesdarknet_vendor: Individual marketplace vendorsransomware: Ransomware operation addressesmixer: Cryptocurrency mixing servicesfraud: Scam and theft operationsgambling: Online gambling platformshigh_risk_exchange: Exchanges with poor complianceunregistered_msb: Unlicensed money servicessanctioned: OFAC/UN sanctioned entitieschemical: Chemical and pharmaceutical vendorsweapons: Arms and explosives dealershuman_trafficking: Human exploitation networkscsam: CSAM-related entitiesThis section provides actual entity objects from the Blockscout SOT catalogue, demonstrating the contrast between legitimate businesses and illicit operations. These examples illustrate field availability patterns and help developers understand the data structure.
A fully regulated cryptocurrency exchange with complete business information and regulatory compliance.
{
"entity_id": "coinbase",
"proper_name": "Coinbase",
"entity_type": "centralized exchange",
"url": "coinbase.com",
"ticker": "COIN",
"year_founded": "2012",
"ceo": "Brian Armstrong",
"key_personnel": "Brian Armstrong, Fred Ehrsam",
"contact_email": "subpoenas@coinbase.com",
"contact_phone": "+1 (888) 908-7930",
"contact_address": "248 3rd St #434, Oakland CA, 94607",
"contact_twitter": "@CoinbaseSupport",
"legal_info_url": "https://www.coinbase.com/legal/licenses",
"social_media_profile": "facebook.com/coinbase/",
"social_media_profile_2": "github.com/coinbase",
"social_media_profile_3": "www.linkedin.com/company/coinbase",
"ens_address": "coinbase.eth",
"description_merged": "Coinbase.com is a widely-used platform for buying, selling, and storing cryptocurrencies. It's known for its user-friendly interface and strong security measures",
"entity_tag1": "custodian",
"entity_tag2": "staking",
"entity_tag3": "gateway",
"entity_tag4": "derivatives",
"entity_tag5": "debit card",
"entity_tag6": "non custodial wallets",
"entity_tag7": "bitcoin treasury",
"associate_country_1": "United States",
"associate_country_2": "Global",
"centralized": true,
"no_kyc_req": false,
"ofac": false,
"dead": false,
"parent_id": "coinbase"
}
An illegal vendor of controlled substances and precursor chemicals operating without regulatory oversight.
{
"entity_id": "buymethcanberra",
"proper_name": "Buy Meth Canberra",
"entity_type": "chemical",
"url": "buymethcanberra.com",
"cas_numbers": "537-46-2",
"description_merged": "Australian supplier of high-purity methamphetamine and precursor chemicals. Offers nationwide shipping with 'discrete' packaging. Active on multiple encrypted communication platforms.",
"entity_tag1": "methamphetamine",
"entity_tag2": "precursor_chemicals",
"entity_tag3": "australia",
"entity_tag4": "encrypted_messaging",
"associate_country_1": "Australia",
"centralized": false,
"no_kyc_req": true,
"ofac": false,
"dead": false,
"risk_score": 95
}
| Field | Legitimate (Coinbase) | Illicit (Buy Meth) |
|---|---|---|
| CEO/Leadership | ✅ Present | ❌ Absent |
| Contact Information | ✅ Complete | ❌ None |
| Legal Documentation | ✅ Available | ❌ None |
| KYC Required | ✅ Yes | ❌ No |
| Risk Score | Low | 🔴 Very High (95) |
| CAS Numbers | N/A | ⚠️ Tracked |
| OFAC Sanctions | ❌ No | ❌ No |
// Check if entity requires enhanced due diligence
if (entity.risk_score > 70 || entity.ofac === true) {
flagForEnhancedReview(entity);
}
// Filter for darknet entities
const darknetEntities = entities.filter(e =>
e.entity_type.includes('darknet')
);
// Categorize risk levels
const riskLevel = entity.risk_score > 80 ? 'CRITICAL' :
entity.risk_score > 50 ? 'HIGH' :
entity.risk_score > 30 ? 'MEDIUM' : 'LOW';
API endpoints for searching and retrieving entities from the SOT (Source of Truth) catalogue. See the Overview, Entity Documentation, and Examples sections for comprehensive platform information.
Search and filter entities from the SOT (Source of Truth) catalogue.
Search Capabilities:
Returns:
See Entity Documentation section for complete field definitions and Examples section for sample responses.
| name | string Search entities by name (partial match supported) |
| type | string Filter by entity type(s), comma-separated |
| limit | integer <= 1000 Default: 100 Number of results per page |
| offset | integer Default: 0 Pagination offset |
| format | string Default: "standard" Enum: "standard" "simplified" Response format |
{- "success": true,
- "data": {
- "entities": [
- {
- "entity_id": "string",
- "name": "string",
- "entity_type": [
- "string"
], - "ticker": "string",
- "jurisdiction": "string",
- "phone": "string",
- "website": "string",
- "email": "string",
- "description": "string",
- "risk_score": 100,
- "status": "active",
- "addresses": [
- "string"
], - "proper_name": "string",
- "no_kyc_req": true,
- "centralized": true,
- "dead": true,
- "ofac": true,
- "parent_id": "string",
- "ceo": "string",
- "key_personnel": "string",
- "contact_telegram": "string",
- "contact_twitter": "string",
- "contact_address": "string",
- "legal_info_url": "string",
- "year_founded": "string",
- "ens_address": "string",
- "associate_country_1": "string",
- "associate_country_2": "string",
- "social_media_profile": "string",
- "entity_tags": [
- "string"
], - "cas_numbers": [
- "string"
], - "metadata": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
]
}, - "meta": {
- "total": 0,
- "limit": 0,
- "offset": 0,
- "queryTime": 0,
- "format": "standard"
}
}Retrieve a specific entity by its unique identifier.
Endpoint Features:
Returns:
The entity_id parameter accepts the unique identifier returned from search endpoints or attribution lookups.
See Entity Documentation section for field definitions and Examples section for sample responses.
| entity_id required | string Unique entity identifier |
| format | string Default: "standard" Enum: "standard" "simplified" Response format |
{- "success": true,
- "data": {
- "entity": {
- "entity_id": "string",
- "name": "string",
- "entity_type": [
- "string"
], - "ticker": "string",
- "jurisdiction": "string",
- "phone": "string",
- "website": "string",
- "email": "string",
- "description": "string",
- "risk_score": 100,
- "status": "active",
- "addresses": [
- "string"
], - "proper_name": "string",
- "no_kyc_req": true,
- "centralized": true,
- "dead": true,
- "ofac": true,
- "parent_id": "string",
- "ceo": "string",
- "key_personnel": "string",
- "contact_telegram": "string",
- "contact_twitter": "string",
- "contact_address": "string",
- "legal_info_url": "string",
- "year_founded": "string",
- "ens_address": "string",
- "associate_country_1": "string",
- "associate_country_2": "string",
- "social_media_profile": "string",
- "entity_tags": [
- "string"
], - "cas_numbers": [
- "string"
], - "metadata": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}, - "meta": {
- "queryTime": 0,
- "format": "standard"
}
}Complete attribution data across all categories - unrestricted access to all entity types
Access ALL attribution data across all entity categories without filtering.
Use Cases:
| entity_type | string Filter by entity type(s), comma-separated |
| limit | integer <= 1000 Default: 100 |
| offset | integer Default: 0 |
| format | string Default: "standard" Enum: "standard" "simplified" |
{- "success": true,
- "data": {
- "listing": "string",
- "description": "string",
- "entities": [
- {
- "entity_id": "string",
- "name": "string",
- "entity_type": [
- "string"
], - "ticker": "string",
- "jurisdiction": "string",
- "phone": "string",
- "website": "string",
- "email": "string",
- "description": "string",
- "risk_score": 100,
- "status": "active",
- "addresses": [
- "string"
], - "proper_name": "string",
- "no_kyc_req": true,
- "centralized": true,
- "dead": true,
- "ofac": true,
- "parent_id": "string",
- "ceo": "string",
- "key_personnel": "string",
- "contact_telegram": "string",
- "contact_twitter": "string",
- "contact_address": "string",
- "legal_info_url": "string",
- "year_founded": "string",
- "ens_address": "string",
- "associate_country_1": "string",
- "associate_country_2": "string",
- "social_media_profile": "string",
- "entity_tags": [
- "string"
], - "cas_numbers": [
- "string"
], - "metadata": { },
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
], - "statistics": {
- "total_entities": 0,
- "by_type": {
- "property1": 0,
- "property2": 0
}, - "by_status": {
- "property1": 0,
- "property2": 0
}, - "average_risk_score": 0
}
}, - "meta": {
- "total": 0,
- "limit": 0,
- "offset": 0,
- "queryTime": 0,
- "format": "standard"
}
}Analyze ALL transaction flows across all entity categories.
Use Cases:
| start_date | string <date> Start date (YYYY-MM-DD) |
| end_date | string <date> End date (YYYY-MM-DD) |
| address | string Filter by specific Bitcoin address |
| min_amount | number Minimum transaction amount in BTC |
| limit | integer <= 1000 Default: 100 |
| offset | integer Default: 0 |
| format | string Default: "standard" Enum: "standard" "simplified" |
{- "success": true,
- "data": {
- "transactions": [
- {
- "txid": "string",
- "timestamp": 0,
- "block": 0,
- "inputCount": 0,
- "outputCount": 0,
- "blockDate": "2019-08-24",
- "feeAmount": 0,
- "transfers": [
- {
- "srcAddrs": "string",
- "srcEntity": "string",
- "srcEntityType": "string",
- "srcUrl": "string",
- "srcTags": [
- "string"
], - "srcAmount": 0,
- "dstAddr": "string",
- "dstEntity": "string",
- "dstEntityType": "string",
- "dstUrl": "string",
- "dstTags": [
- "string"
], - "dstAmount": 0
}
]
}
]
}, - "meta": {
- "total": 0,
- "limit": 0,
- "offset": 0,
- "queryTime": 0
}
}Retrieve entities involved in darknet marketplaces and services.
Entity Coverage:
Intelligence Applications:
| entity_type | string Filter by entity type(s), comma-separated |
| limit | integer <= 1000 Default: 100 |
| offset | integer Default: 0 |
| format | string Default: "standard" Enum: "standard" "simplified" |
Retrieve Bitcoin addresses associated with darknet marketplaces and services.
Intelligence Applications:
Creative Use Cases:
| entityType | string Filter by entity type (e.g., darknet_marketplace, darknet_vendor) |
| tags | string Comma-separated list of tags to filter by |
| limit | integer <= 1000 Default: 100 Number of results per page |
| offset | integer Default: 0 Pagination offset |
| includeCluster | boolean Default: false Include cluster information (premium tier only) |
{- "success": true,
- "data": {
- "addresses": [
- {
- "address": "string",
- "entity": "string",
- "entityType": "string",
- "tags": [
- "string"
], - "firstSeen": "2019-08-24",
- "lastSeen": "2019-08-24",
- "cluster": {
- "cospendId": "string",
- "totalAddresses": 0
}
}
]
}, - "meta": {
- "total": 0,
- "limit": 0,
- "offset": 0,
- "queryTime": 0
}
}Analyze transaction flows involving darknet entities.
Intelligence Applications:
Creative Use Cases:
| startDate | string <date> Start date (YYYY-MM-DD) |
| endDate | string <date> End date (YYYY-MM-DD) |
| address | string Filter by specific Bitcoin address |
| minAmount | integer Minimum transfer amount in satoshis |
| limit | integer <= 1000 Default: 100 Number of results per page |
| offset | integer Default: 0 Pagination offset |
{- "success": true,
- "data": {
- "transactions": [
- {
- "txid": "string",
- "timestamp": 0,
- "block": 0,
- "inputCount": 0,
- "outputCount": 0,
- "blockDate": "2019-08-24",
- "feeAmount": 0,
- "transfers": [
- {
- "srcAddrs": "string",
- "srcEntity": "string",
- "srcEntityType": "string",
- "srcUrl": "string",
- "srcTags": [
- "string"
], - "srcAmount": 0,
- "dstAddr": "string",
- "dstEntity": "string",
- "dstEntityType": "string",
- "dstUrl": "string",
- "dstTags": [
- "string"
], - "dstAmount": 0
}
]
}
]
}, - "meta": {
- "total": 0,
- "limit": 0,
- "offset": 0,
- "queryTime": 0
}
}Retrieve entities operating cryptocurrency ATMs and kiosks.
Entity Coverage:
Intelligence Applications:
| entity_type | string Filter by entity type(s), comma-separated |
| limit | integer <= 1000 Default: 100 |
| offset | integer Default: 0 |
| format | string Default: "standard" Enum: "standard" "simplified" |
Access addresses associated with cryptocurrency ATM operators.
Intelligence Applications:
Creative Use Cases:
| entityType | string Filter by entity type (e.g., crypto_atm, atm_operator) |
| tags | string Comma-separated list of tags to filter by |
| limit | integer <= 1000 Default: 100 Number of results per page |
| offset | integer Default: 0 Pagination offset |
| includeCluster | boolean Default: false Include cluster information (premium tier only) |
{- "success": true,
- "data": {
- "addresses": [
- {
- "address": "string",
- "entity": "string",
- "entityType": "string",
- "tags": [
- "string"
], - "firstSeen": "2019-08-24",
- "lastSeen": "2019-08-24",
- "cluster": {
- "cospendId": "string",
- "totalAddresses": 0
}
}
]
}, - "meta": {
- "total": 0,
- "limit": 0,
- "offset": 0,
- "queryTime": 0
}
}Analyze transactions involving crypto ATM addresses.
Intelligence Applications:
Creative Use Cases:
| startDate | string <date> Start date (YYYY-MM-DD) |
| endDate | string <date> End date (YYYY-MM-DD) |
| address | string Filter by specific Bitcoin address |
| minAmount | integer Minimum transfer amount in satoshis |
| limit | integer <= 1000 Default: 100 Number of results per page |
| offset | integer Default: 0 Pagination offset |
{- "success": true,
- "data": {
- "transactions": [
- {
- "txid": "string",
- "timestamp": 0,
- "block": 0,
- "inputCount": 0,
- "outputCount": 0,
- "blockDate": "2019-08-24",
- "feeAmount": 0,
- "transfers": [
- {
- "srcAddrs": "string",
- "srcEntity": "string",
- "srcEntityType": "string",
- "srcUrl": "string",
- "srcTags": [
- "string"
], - "srcAmount": 0,
- "dstAddr": "string",
- "dstEntity": "string",
- "dstEntityType": "string",
- "dstUrl": "string",
- "dstTags": [
- "string"
], - "dstAmount": 0
}
]
}
]
}, - "meta": {
- "total": 0,
- "limit": 0,
- "offset": 0,
- "queryTime": 0
}
}Retrieve entities related to Russian-linked money services businesses and exchangers.
Intelligence Applications:
| entity_type | string Filter by entity type(s), comma-separated |
| limit | integer <= 1000 Default: 100 |
| offset | integer Default: 0 |
| format | string Default: "standard" Enum: "standard" "simplified" |
Analyze transactions involving Russian-linked money services.
Use Cases:
| start_date | string <date> |
| end_date | string <date> |
| address | string |
| min_amount | number |
| limit | integer <= 1000 Default: 100 |
| offset | integer Default: 0 |
| format | string Default: "standard" Enum: "standard" "simplified" |
Retrieve entities involved in human trafficking, CSAM, and organ trafficking.
Intelligence Applications:
Sensitive Data Notice: This endpoint contains highly sensitive data. All access is logged and audited.
| entity_type | string Filter by entity type(s), comma-separated |
| limit | integer <= 1000 Default: 100 |
| offset | integer Default: 0 |
| format | string Default: "standard" Enum: "standard" "simplified" |
Analyze financial transactions related to human trafficking operations.
Use Cases:
| start_date | string <date> |
| end_date | string <date> |
| address | string |
| min_amount | number |
| limit | integer <= 1000 Default: 100 |
| offset | integer Default: 0 |
| format | string Default: "standard" Enum: "standard" "simplified" |
Retrieve entities involved in weapons trafficking, including military-grade weapons, explosives, and related materials.
Intelligence Applications:
| entity_type | string Filter by entity type(s), comma-separated |
| limit | integer <= 1000 Default: 100 |
| offset | integer Default: 0 |
| format | string Default: "standard" Enum: "standard" "simplified" |
Analyze financial flows related to weapons trafficking.
Use Cases:
| start_date | string <date> |
| end_date | string <date> |
| address | string |
| min_amount | number |
| limit | integer <= 1000 Default: 100 |
| offset | integer Default: 0 |
| format | string Default: "standard" Enum: "standard" "simplified" |
Retrieve entities involved in fentanyl, opioid, and precursor chemical trade.
Intelligence Applications:
| entity_type | string Filter by entity type(s), comma-separated |
| limit | integer <= 1000 Default: 100 |
| offset | integer Default: 0 |
| format | string Default: "standard" Enum: "standard" "simplified" |
Analyze transactions related to fentanyl and opioid trade.
Use Cases:
| start_date | string <date> |
| end_date | string <date> |
| address | string |
| min_amount | number |
| limit | integer <= 1000 Default: 100 |
| offset | integer Default: 0 |
| format | string Default: "standard" Enum: "standard" "simplified" |
Retrieve entities involved in CSAM (Child Sexual Abuse Material).
Critical Notice: This endpoint contains extremely sensitive data related to child exploitation. All access is strictly logged, audited, and limited to authorized law enforcement and compliance personnel.
Intelligence Applications:
| entity_type | string Filter by entity type(s), comma-separated |
| limit | integer <= 1000 Default: 100 |
| offset | integer Default: 0 |
| format | string Default: "standard" Enum: "standard" "simplified" |
Analyze financial transactions related to CSAM.
Critical Notice: Highly sensitive data. Access is strictly monitored and logged.
Use Cases:
| start_date | string <date> |
| end_date | string <date> |
| address | string |
| min_amount | number |
| limit | integer <= 1000 Default: 100 |
| offset | integer Default: 0 |
| format | string Default: "standard" Enum: "standard" "simplified" |
| category | string Filter by category |
| active | boolean Filter by active status |
{- "success": true,
- "data": [
- {
- "name": "string",
- "description": "string",
- "category": "string",
- "endpoint": "string",
- "pricing": {
- "model": "per_request",
- "price": 0,
- "currency": "string"
}
}
]
}| days | integer Default: 30 Number of days to look back |
| groupBy | string Default: "day" Enum: "day" "hour" Grouping interval |
{- "success": true,
- "data": {
- "period": {
- "start": "2019-08-24T14:15:22Z",
- "end": "2019-08-24T14:15:22Z",
- "days": 0
}, - "summary": {
- "totalRequests": 0,
- "totalCost": 0,
- "totalDataTransferred": 0,
- "averageResponseTime": 0,
- "successRate": 0
}, - "dailyUsage": [
- {
- "date": "2019-08-24",
- "requests": 0,
- "cost": 0,
- "dataTransferred": 0,
- "errors": 0
}
], - "endpointBreakdown": [
- {
- "endpoint": "string",
- "requests": 0,
- "cost": 0,
- "averageResponseTime": 0
}
]
}
}| name required | string |
| permissions | Array of strings |
| rateLimit | integer |
| expiresAt | string <date-time> |
{- "name": "string",
- "permissions": [
- "string"
], - "rateLimit": 0,
- "expiresAt": "2019-08-24T14:15:22Z"
}{- "success": true,
- "data": {
- "key": "string",
- "name": "string",
- "permissions": [
- "string"
], - "rateLimit": 0,
- "isActive": true,
- "lastUsed": "2019-08-24T14:15:22Z",
- "createdAt": "2019-08-24T14:15:22Z"
}
}