Get Account Summary
A single signed call that returns everything a client needs to render an account status panel: plan and billing cycle, trial state, disk and bandwidth used vs. allowed, indexed document count, Web Crawler limits, the monthly AI request cap and feature flags. It is what the Drupal module and the WordPress plugin call for their “Account” tab.
Endpoint
GET or POST https://opensolr.com/solr_manager/api/get_account_summary
email + api_key, this call carries a signature = hex HMAC-SHA256 of the concatenated string shown in the Parameters table, keyed with your api_key. The signature proves the caller holds the key even when the request is relayed by a CMS module or a third-party host.Parameters
| Parameter | Status | Description |
|---|---|---|
email | Required | Your Opensolr registration email address |
api_key | Required | Your Opensolr API key (master key, or a scoped key that allows this endpoint) |
core_name | Required | One of your indexes — the index-specific fields (solr_version, vector_allowed, crawler_ip) are reported for it |
signature | Required | Hex HMAC-SHA256(core_name . email, api_key) — the index name immediately followed by your email, no separator |
How It Works
Ownership of core_name is verified, the signature is recomputed server-side and compared in constant time, then the account, plan limits and live usage counters are read and returned in one JSON object. Nothing is modified. Limits are expressed in MB; max_ai_requests is the monthly cap for the AI API (embeddings count per document, ai_summary per call).
Response
| Key | Type | Description |
|---|---|---|
plan / plan_id | string / int | Subscription package name and id |
is_trial / trial_days_remaining | bool / int | Trial state |
price / recurrence | string | Billing amount and cycle |
disk_used_mb / disk_limit_mb | number | Storage across all your indexes vs. plan limit |
bandwidth_used_mb / bandwidth_limit_mb | number | Traffic this billing cycle vs. plan limit |
indexed_docs | int | Documents across all your indexes |
crawl_max_pages / crawl_max_threads / crawl_max_filesize_mb / crawl_max_traffic_mb | number | Web Crawler limits of the plan |
has_webcrawler / has_analytics / has_backup | bool | Feature flags |
max_ai_requests | int | Monthly AI API request cap (0 = unlimited) |
vector_allowed | bool | Whether core_name may store vector embeddings |
solr_version / index_name / crawler_ip | string | Solr version of the index, its name, and the crawler IP to allow-list on your site |
Code Examples
cURL
EMAIL=you@example.com; KEY=YOUR_API_KEY; CORE=my_index SIG=$(printf '%s' "$CORE$EMAIL" | openssl dgst -sha256 -hmac "$KEY" | awk '{print $NF}') curl -s "https://opensolr.com/solr_manager/api/get_account_summary?email=$EMAIL&api_key=$KEY&core_name=$CORE&signature=$SIG"
PHP
$email = 'you@example.com'; $key = 'YOUR_API_KEY'; $core = 'my_index'; $sig = hash_hmac('sha256', $core . $email, $key); $q = http_build_query(['email' => $email, 'api_key' => $key, 'core_name' => $core, 'signature' => $sig]); $summary = json_decode(file_get_contents("https://opensolr.com/solr_manager/api/get_account_summary?{$q}"), true)['msg']; printf("%s plan — %.0f of %.0f MB used\n", $summary['plan'], $summary['disk_used_mb'], $summary['disk_limit_mb']);
Python
import hmac, hashlib, requests email, key, core = "you@example.com", "YOUR_API_KEY", "my_index" sig = hmac.new(key.encode(), (core + email).encode(), hashlib.sha256).hexdigest() r = requests.get("https://opensolr.com/solr_manager/api/get_account_summary", params={"email": email, "api_key": key, "core_name": core, "signature": sig}, timeout=30) print(r.json()["msg"]["plan"], r.json()["msg"]["max_ai_requests"])
Example Response
{ "status": true, "msg": { "plan": "Corporate", "plan_id": 7, "is_trial": false, "trial_days_remaining": 0, "price": "0.00", "recurrence": "1 Month", "disk_used_mb": 1350.49, "disk_limit_mb": 100000, "bandwidth_used_mb": 645.03, "bandwidth_limit_mb": 10000000, "indexed_docs": 47617, "crawl_max_pages": 10000000, "crawl_max_threads": 10, "crawl_max_filesize_mb": 953.67, "crawl_max_traffic_mb": 5000000, "has_webcrawler": true, "has_analytics": true, "has_backup": true, "max_ai_requests": 100000000, "vector_allowed": true, "solr_version": "9.0", "index_name": "news__dense", "crawler_ip": "178.63.71.253" } }
Use Cases
- Show plan, usage and limits inside your own admin UI (this is exactly what the Drupal and WordPress integrations do)
- Alert before a disk or bandwidth limit is reached
- Read
crawler_ipto whitelist the Opensolr crawler in your firewall or WAF - Check
vector_allowedbefore calling the embedding endpoints
Related Documentation
Need help with the Opensolr API? We are here to help.
Contact Support