> ## Documentation Index
> Fetch the complete documentation index at: https://docs.credprotocol.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Batch Credit Scores

> Get individual credit scores for multiple Ethereum addresses in a single request

## Overview

Returns credit scores for multiple Ethereum addresses in a single API call. This is more efficient than making individual requests when you need to score multiple addresses.

<Info>
  Maximum of **100 addresses** per batch request.
</Info>

## Query Parameters

<ParamField query="address" type="string" required>
  Comma-separated list of Ethereum addresses or ENS names (e.g., `address=0x123...,0x456...,vitalik.eth`)
</ParamField>

## Response

<ResponseField name="scores" type="array">
  Array of score results for each address
</ResponseField>

<ResponseField name="scores[].address" type="string">
  The resolved Ethereum address (checksummed)
</ResponseField>

<ResponseField name="scores[].score" type="integer">
  Credit score between 300 and 1000
</ResponseField>

<ResponseField name="scores[].decile" type="integer">
  Score decile from 1 to 10
</ResponseField>

<ResponseField name="scores[].range" type="string">
  Score range: `low`, `fair`, `good`, `very_good`, or `excellent`
</ResponseField>

<ResponseField name="scores[].model_version" type="string">
  The scoring model version (currently `andromeda_1.0`)
</ResponseField>

<ResponseField name="scores[].timestamp" type="string">
  ISO 8601 timestamp when the score was calculated
</ResponseField>

<ResponseField name="count" type="integer">
  Total number of scores returned
</ResponseField>

## Use Cases

* **Portfolio Analysis**: Score all addresses in a user's portfolio
* **Batch Verification**: Check creditworthiness of multiple counterparties
* **Risk Assessment**: Evaluate a list of addresses for lending decisions

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.credprotocol.com/api/v2/score/batch/?address=vitalik.eth,0x742d35Cc6634C0532925a3b844Bc9e7595f0Ab17" \
    -H "Authorization: Bearer YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const addresses = ['vitalik.eth', '0x742d35Cc6634C0532925a3b844Bc9e7595f0Ab17'];

  const response = await fetch(
    `https://api.credprotocol.com/api/v2/score/batch/?address=${addresses.join(',')}`,
    {
      headers: {
        'Authorization': 'Bearer YOUR_API_KEY'
      }
    }
  );

  const data = await response.json();
  console.log(data.scores);
  ```

  ```python Python theme={null}
  import requests

  addresses = ['vitalik.eth', '0x742d35Cc6634C0532925a3b844Bc9e7595f0Ab17']

  response = requests.get(
      'https://api.credprotocol.com/api/v2/score/batch/',
      params={'address': ','.join(addresses)},
      headers={'Authorization': 'Bearer YOUR_API_KEY'}
  )

  data = response.json()
  print(data['scores'])
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "scores": [
      {
        "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
        "score": 847,
        "decile": 7,
        "range": "very_good",
        "model_version": "andromeda_1.0",
        "timestamp": "2024-01-15T10:30:00Z"
      },
      {
        "address": "0x742d35Cc6634C0532925a3b844Bc9e7595f0Ab17",
        "score": 765,
        "decile": 5,
        "range": "good",
        "model_version": "andromeda_1.0",
        "timestamp": "2024-01-15T10:30:00Z"
      }
    ],
    "count": 2
  }
  ```

  ```json 400 theme={null}
  {
    "detail": "Too many addresses. Maximum is 100 per request."
  }
  ```
</ResponseExample>

## Performance Notes

* **Response Time**: Typically 2-5 seconds for 10 addresses, longer for larger batches
* **Caching**: Individual address scores are cached for 5 minutes
* **Parallelization**: Requests are processed in parallel for optimal performance

<Warning>
  Batch requests count as multiple API calls against your quota (one per address).
</Warning>
