Skip to main content
The V2 API is the recommended API for all new integrations. It offers richer data, flexible validator selectors, cursor-based pagination, and exclusive features like BeaconScore and entity benchmarking. The V1 API remains available but no new features will be added to V1.

Pricing

PlanPrice/moFeaturesLimit/secLimit/mo
Free0€Basic11000
Hobbyist59€*Basic1
Business99€*Basic2
Scale399€*Basic & Pro 💎5
EnterpriseContact usBasic & Pro 💎Contact us-
*Prices shown are for annual billing, excluding VAT
  • Free Usage Policy: The API is free to use under a fair use policy, with rate limits of 1 request per second / 1,000 requests per month.
  • API Keys: API endpoints require an API key, get your free api key here.
  • Access: Free and paid users have access to both V1 and V2 APIs. Pro 💎 features are available for users on the Scale and Enterprise plans.
  • Higher Usage Plans: For higher usage plans, visit: https://beaconcha.in/pricing.
  • Attribution: See API Terms and Conditions for details.
Building with AI? Connect your AI assistant to our documentation via AI Integration. Get accurate, up-to-date answers about the beaconcha.in API directly in your development environment.

Attribution Requirements

If you use beaconcha.in API data in your application or website, please follow these attribution guidelines:

BeaconScore

After an agreement the BeaconScore badge may be required. See API Terms and Conditions for details.
BeaconScore

Powered by beaconcha.in

After an agreement the “Powered by beaconcha.in” logo may be required. See API Terms and Conditions for details.
Powered by beaconcha.in

License Materials

Download official BeaconScore and “Powered by beaconcha.in” badges in SVG and PNG formats
For full terms and conditions, see our BeaconScore License.

API Keys

API keys can be obtained in the user portal and must be included in requests either as a query string parameter or in the request header.
V1 and V2 APIs use the same authentication method. A single API key is valid for all endpoints.

Quick Start — Your First Request

The simplest V2 API call is the Chain State endpoint, which returns the current state of the Ethereum network with a single field in the request body:
curl -X POST 'https://beaconcha.in/api/v2/ethereum/state' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{"chain": "mainnet"}'
All V2 API endpoints use the POST method with a JSON request body. The chain field ("mainnet" or "hoodi") is required in every request.

Full Example — Validator Rewards

This example uses the Rewards endpoint to get validator rewards data.

Request

curl -X POST 'https://beaconcha.in/api/v2/ethereum/validators/rewards-list' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
    "validator": {
      "validator_identifiers": [1]
    },
    "chain": "mainnet",
    "page_size": 10,
    "epoch": 347566
  }'

Response

{
  "data": [
    {
      "total": "80660680222696592",
      "validator": {
        "index": 1,
        "public_key": "0xa1d1ad0714035353258038e964ae9675dc0252ee22cea896825c01458e1807bfad2f9969338798548d9858a571f7425c"
      },
      "total_reward": "80660680222696592",
      "total_penalty": "0",
      "total_missed": "132644000000000",
      "attestation": {
        "total": "9371000000000",
        "head": {
          "total": "2408000000000",
          "reward": "2408000000000",
          "penalty": "0",
          "missed_reward": "0"
        },
        "source": {
          "total": "2437000000000",
          "reward": "2437000000000",
          "penalty": "0",
          "missed_reward": "0"
        },
        "target": {
          "total": "4526000000000",
          "reward": "4526000000000",
          "penalty": "0",
          "missed_reward": "0"
        },
        "inactivity_leak_penalty": "0",
        "inclusion_delay": null
      },
      "sync_committee": {
        "total": "0",
        "reward": "0",
        "penalty": "0",
        "missed_reward": "0"
      },
      "proposal": {
        "total": "80651309222696592",
        "execution_layer_reward": "35087332222696592",
        "attestation_inclusion_reward": "43946801000000000",
        "sync_inclusion_reward": "1617176000000000",
        "slashing_inclusion_reward": "0",
        "missed_cl_reward": "132644000000000",
        "missed_el_reward": "0"
      },
      "finality": "finalized"
    }
  ],
  "paging": {},
  "range": {
    "slot": {
      "start": 11122112,
      "end": 11122143
    },
    "epoch": {
      "start": 347566,
      "end": 347566
    },
    "timestamp": {
      "start": 1740289367,
      "end": 1740289750
    }
  }
}

View Full API Documentation

See all parameters, response fields, and try the Rewards endpoint