API - Get Account Summary (HMAC signed)

Index Management
Index Management API

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
HMAC-signed endpoint. Besides 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

ParameterStatusDescription
emailRequiredYour Opensolr registration email address
api_keyRequiredYour Opensolr API key (master key, or a scoped key that allows this endpoint)
core_nameRequiredOne of your indexes — the index-specific fields (solr_version, vector_allowed, crawler_ip) are reported for it
signatureRequiredHex 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

KeyTypeDescription
plan / plan_idstring / intSubscription package name and id
is_trial / trial_days_remainingbool / intTrial state
price / recurrencestringBilling amount and cycle
disk_used_mb / disk_limit_mbnumberStorage across all your indexes vs. plan limit
bandwidth_used_mb / bandwidth_limit_mbnumberTraffic this billing cycle vs. plan limit
indexed_docsintDocuments across all your indexes
crawl_max_pages / crawl_max_threads / crawl_max_filesize_mb / crawl_max_traffic_mbnumberWeb Crawler limits of the plan
has_webcrawler / has_analytics / has_backupboolFeature flags
max_ai_requestsintMonthly AI API request cap (0 = unlimited)
vector_allowedboolWhether core_name may store vector embeddings
solr_version / index_name / crawler_ipstringSolr 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 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']);

Py 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_ip to whitelist the Opensolr crawler in your firewall or WAF
  • Check vector_allowed before calling the embedding endpoints

Related Documentation

Need help with the Opensolr API? We are here to help.

Contact Support