REST API v1

API Reference

Access MiCAR Electronic Money Token (EMT) issuer and token data sourced from the ESMA register. Authentication via API key required. Data is cached and refreshed hourly.

Configuration

Base URL

https://blockchainview.org/api/v1
Security

Authentication

Include your API key in every request using one of:

# Header (recommended)
Authorization: Bearer bv_sk_your_key_here

# Query parameter
GET https://blockchainview.org/api/v1/issuers?api_key=bv_sk_your_key_here

Get an API key at /developers →

Format

Response Envelope

All endpoints return a JSON envelope with data and meta fields:

{
  "data": [ ... ],
  "meta": {
    "total": 15,
    "limit": 50,
    "offset": 0,
    "fetchedAt": "2026-02-28T12:00:00.000Z",
    "registryUpdatedAt": "2026-02-20T10:30:00.000Z"
  }
}

GET

/api/v1/issuers

Returns authorised EMT issuers grouped by LEI, including their token entries and whitepaper information.

Query Parameters

ParameterTypeDescription
countrystringFilter by home member state (ISO country code, e.g. FR, DE)
searchstringFull-text search across name, LEI, authority, and token fields
leistringExact match on LEI code
limitnumberResults per page (default: 50, max: 100)
offsetnumberNumber of results to skip (default: 0)

Example

curl -H "Authorization: Bearer bv_sk_your_key" \
  "https://blockchainview.org/api/v1/issuers?country=FR&limit=5"

Response Shape

{
  "data": [
    {
      "leiName": "Societe Generale",
      "lei": "O2RNE8IBXP4R0TD8PU41",
      "leiCountryCode": "FR",
      "commercialName": "SG Forge",
      "address": "29 Boulevard Haussmann, 75009 Paris",
      "website": "https://www.sgforge.com",
      "competentAuthority": "AMF",
      "homeMemberState": "FR",
      "authorisationDate": "01/07/2024",
      "authorisationOtherEmt": "Other EMT authorisation details, if any",
      "exemption48_4": "MiCAR Art. 48(4) exemption status",
      "exemption48_5": "MiCAR Art. 48(5) exemption status",
      "tokens": [
        {
          "dtiFfg": "9W5C49FJV",
          "dti": ["..."],
          "tokenName": "EUR CoinVertible",
          "tokenTicker": "EURCV",
          "tokenCurrency": "EUR",
          "wpUrl": "https://...",
          "wpAuthorisationDate": "01/07/2024",
          "wpComments": "",
          "wpLastUpdate": "15/01/2025"
        }
      ]
    }
  ],
  "meta": { "total": 3, "limit": 5, "offset": 0, "..." }
}

GET

/api/v1/tokens

Returns tokens grouped by DTI FFG identifier, with their associated issuers.

Query Parameters

ParameterTypeDescription
searchstringSearch by token name, ticker, or DTI FFG identifier
tickerstringExact match on token ticker (e.g. EURC, USDC)
currencystringExact match on token currency (e.g. EUR, USD)
limitnumberResults per page (default: 50, max: 100)
offsetnumberNumber of results to skip (default: 0)

Example

curl -H "Authorization: Bearer bv_sk_your_key" \
  "https://blockchainview.org/api/v1/tokens?ticker=EURC"

Response Shape

{
  "data": [
    {
      "dtiFfg": "13XTMPZT3",
      "tokenName": "Euro Coin",
      "tokenTicker": "EURC",
      "tokenCurrency": "EUR",
      "issuers": [
        {
          "lei": "549300LKR1AA3FKJZ361",
          "leiName": "Circle Internet Financial Europe",
          "commercialName": "Circle",
          "homeMemberState": "FR",
          "competentAuthority": "AMF",
          "authorisationDate": "01/07/2024",
          "wpUrl": "https://...",
          "wpLastUpdate": "15/01/2025"
        }
      ]
    }
  ],
  "meta": { "total": 1, "limit": 50, "offset": 0, "..." }
}

Throttling

Rate Limiting

Each API key is limited to 100 requests per hour. Rate limit status is returned in response headers:

X-RateLimit-LimitX-RateLimit-RemainingX-RateLimit-Reset

Data is sourced from the ESMA CSV register and cached for 1 hour.

Troubleshooting

Error Responses

The API returns standard HTTP status codes with a JSON error body:

{
  "error": "Description of the error"
}
StatusMeaningExample
401Missing or invalid API key{"error": "API key required"}
429Rate limit exceeded{"error": "Rate limit exceeded"}
500Upstream ESMA data fetch failure{"error": "Failed to fetch register data"}
Source

Data Source

All data is sourced from the ESMA MiCAR register. The registryUpdatedAt field in the response meta reflects when ESMA last modified the source CSV file.