# Account API

> Get your Easyparser plan, credit balance, per-minute credit limits, address quota and daily usage history with one GET request.

Source: https://docs.easyparser.com/account/account-api

The Account API returns details about your Easyparser account: the active plan, credit balance, per-minute credit limits for the Real-Time API and Bulk API, address quota, and usage history. Use it to monitor remaining credits, show account data in your own dashboards, build usage reports, or alert when your balance runs low.

## Endpoint

```http
GET https://account.easyparser.com/v1/account
```

Authenticate with your API key in the `api_key` query parameter. The Account API does not accept an `Authorization: Bearer` header. You find your key in the web app under **Account > Plan** at https://app.easyparser.com/account/plan. New accounts get 100 free credits per month, with no credit card required. See [Getting Started](/getting-started) for a step-by-step guide.

> **INFO:** Account API requests are free. They do not consume credits.

## Parameters

| Parameter | Type | Required | Description |
|---|---|---|---|
| `api_key` | string | Yes | Your Easyparser API key. Send it as a query parameter. |

The endpoint takes no other parameters.

## Example request

**cURL**

```bash
curl --get "https://account.easyparser.com/v1/account" \
  --data-urlencode "api_key=YOUR_API_KEY"
```

**Python**

```python
import requests

params = {
    "api_key": "YOUR_API_KEY",
}

response = requests.get("https://account.easyparser.com/v1/account", params=params)
print(response.json())
```

**Node.js**

```javascript
const params = new URLSearchParams({
  api_key: "YOUR_API_KEY",
});

const response = await fetch(`https://account.easyparser.com/v1/account?${params}`);
const data = await response.json();
console.log(data);
```

**HTTP**

```http
GET /v1/account?api_key=YOUR_API_KEY HTTP/1.1
Host: account.easyparser.com
```

**PHP**

```php
<?php
$params = [
    'api_key' => 'YOUR_API_KEY',
];

$url = 'https://account.easyparser.com/v1/account?' . http_build_query($params);
$response = file_get_contents($url);
$data = json_decode($response, true);
print_r($data);
```

**Go**

```go
package main

import (
	"fmt"
	"io"
	"net/http"
	"net/url"
)

func main() {
	params := url.Values{}
	params.Add("api_key", "YOUR_API_KEY")

	resp, err := http.Get("https://account.easyparser.com/v1/account?" + params.Encode())
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}
```

**C#**

```csharp
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;

var parameters = new Dictionary<string, string>
{
    ["api_key"] = "YOUR_API_KEY",
};

var query = string.Join("&", parameters.Select(p =>
    $"{Uri.EscapeDataString(p.Key)}={Uri.EscapeDataString(p.Value)}"));

using var client = new HttpClient();
var response = await client.GetStringAsync($"https://account.easyparser.com/v1/account?{query}");
Console.WriteLine(response);
```

**Java**

```java
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.stream.Collectors;

public class EasyparserRequest {
    public static void main(String[] args) throws Exception {
        Map<String, String> params = new LinkedHashMap<>();
        params.put("api_key", "YOUR_API_KEY");

        String query = params.entrySet().stream()
            .map(e -> URLEncoder.encode(e.getKey(), StandardCharsets.UTF_8) + "="
                + URLEncoder.encode(e.getValue(), StandardCharsets.UTF_8))
            .collect(Collectors.joining("&"));

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://account.easyparser.com/v1/account?" + query))
            .GET()
            .build();

        HttpResponse<String> response = HttpClient.newHttpClient()
            .send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
```

> **WARNING:** The response includes your API key and account email. Call the Account API from your server and do not log or expose the full response in client-side code.

## Response fields

The response has two top-level objects: `request_info` and `account_info`.

```
request_info
  success
account_info
  api_key, name, email, plan
  credits_used, credits_remaining, credits_limit, credits_reset_at
  minutely_real_time_credit_limit, minutely_bulk_credit_limit
  addresses_used, addresses_limit, addresses_available
  usage_history[]
    month, year, date, month_number, is_current_month, account_package_id
    credits_total_per_day
      <day>
        day_total
        REALTIME { total, operations }
        BULK { total, operations }
    month_summary
```

### `request_info`

| Field | Type | Description |
|---|---|---|
| `success` | boolean | `true` when the request succeeded. Check it before reading `account_info`. |

### `account_info`

| Field | Type | Description |
|---|---|---|
| `api_key` | string | The API key the request was made with. |
| `name` | string | Account holder name. |
| `email` | string | Email address linked to the account. |
| `plan` | string | Name of the active subscription plan. |
| `credits_used` | integer | Credits used in the current billing cycle. |
| `credits_remaining` | integer | Credits left in the current billing cycle. |
| `credits_limit` | integer | Total credits included in the billing cycle. |
| `credits_reset_at` | string | When credits reset, as an ISO 8601 date-time. |
| `minutely_real_time_credit_limit` | integer | Maximum Real-Time API credits you can spend per minute. |
| `minutely_bulk_credit_limit` | integer | Maximum Bulk API credits you can spend per minute. |
| `addresses_used` | integer | Number of saved addresses in use. |
| `addresses_limit` | integer | Maximum number of saved addresses your plan allows. |
| `addresses_available` | integer | Address slots still available. |
| `usage_history` | array | Monthly usage records, newest first. See `usage_history[]`. |

Per-minute limits are measured in credits. A Real-Time API request above `minutely_real_time_credit_limit` returns HTTP `429` (Too Many Requests). Bulk API items above `minutely_bulk_credit_limit` are returned in `rate_limit_exceeded` (see [Bulk Service Response](/bulk-integration/bulk-service-response)). Creating an address beyond `addresses_limit` fails with "Maximum address count reached". See [Address Management](/essentials/address-management).

### `usage_history[]`

Each entry covers one month.

| Field | Type | Description |
|---|---|---|
| `month` | string | Month name, for example `September`. |
| `year` | integer | Year of the record. |
| `date` | string | Reference date for the record (`YYYY-MM-DD`). |
| `month_number` | integer | Zero-based month index: `0` is January, `8` is September. |
| `is_current_month` | boolean | `true` for the current month. |
| `account_package_id` | integer | ID of the plan that was active during the month. |
| `credits_total_per_day` | object | Daily usage keyed by day of month (`"1"`, `"3"`). See `credits_total_per_day.<day>`. |
| `month_summary` | object | Month total of successful credits, as `{ "success": N }`. |

### `credits_total_per_day.<day>`

| Field | Type | Description |
|---|---|---|
| `day_total` | object | Successful credits for the day across both services, as `{ "success": N }`. |
| `REALTIME` | object | Real-Time API usage for the day. See `REALTIME` and `BULK`. |
| `BULK` | object | Bulk API usage for the day, in the same shape as `REALTIME`. Present only on days with bulk usage. |

### `REALTIME` and `BULK`

| Field | Type | Description |
|---|---|---|
| `total` | object | Successful credits for the service that day, as `{ "success": N }`. |
| `operations` | object | Usage per operation code, for example `DETAIL` or `SEARCH`. Each value is `{ "success": N }`. |

## Sample response

#### Sample response (Account API)

```json
{
  "request_info": {
    "success": true
  },
  "account_info": {
    "api_key": "YOUR_API_KEY",
    "name": "MEMBER_NAME",
    "email": "member_mail@mail.com",
    "plan": "YOUR_PLAN",
    "credits_used": 9629,
    "credits_remaining": 990371,
    "credits_reset_at": "2028-12-09T08:46:47.000Z",
    "credits_limit": 1000000,
    "minutely_real_time_credit_limit": 500,
    "minutely_bulk_credit_limit": 5000,
    "addresses_used": 2,
    "addresses_limit": 30,
    "addresses_available": 28,
    "usage_history": [
      {
        "month": "September",
        "year": 2026,
        "date": "2026-09-03",
        "account_package_id": 2446,
        "month_number": 8,
        "is_current_month": true,
        "credits_total_per_day": {
          "1": {
            "day_total": { "success": 10 },
            "REALTIME": {
              "total": { "success": 10 },
              "operations": {
                "DETAIL": { "success": 5 },
                "SEARCH": { "success": 3 },
                "OFFER": { "success": 1 },
                "SELLER_PRODUCTS": { "success": 1 }
              }
            }
          },
          "3": {
            "day_total": { "success": 4 },
            "REALTIME": {
              "total": { "success": 3 },
              "operations": {
                "SEARCH": { "success": 1 },
                "DETAIL": { "success": 1 },
                "OFFER": { "success": 1 }
              }
            },
            "BULK": {
              "total": { "success": 1 },
              "operations": {
                "DETAIL": { "success": 1 }
              }
            }
          }
        },
        "month_summary": { "success": 21 }
      }
    ]
  }
}
```

## Related

- [Getting Started](/getting-started): create an account and find your API key
- [Credit Consumption](/essentials/credit-consumption): how many credits each operation uses
- [Address Management](/essentials/address-management): saved addresses and the address quota
- [Real-Time API overview](/real-time-integration/overview): response envelope, rate limits and errors
- [MCP Server](/integrations/mcp-server): the `check_credits` tool reads this endpoint
