API - Get Settings Dashboard (Combined Account, Crawl & Environment Data)

Index Management
Index Management API

Get Settings Dashboard

Retrieve your complete account overview in a single HMAC-signed API call — account summary, crawl statistics, crawl schedule status, owned index list, and available server environments. Designed to minimize API round-trips for dashboard rendering.

Endpoint

GET https://opensolr.com/solr_manager/api/get_settings_dashboard

Authentication

This endpoint uses HMAC-SHA256 signature verification instead of plain API key transmission. The signature proves that the caller possesses the API key without sending it as a query parameter.

How to compute the signature

Concatenate core_name + email and sign with your api_key using HMAC-SHA256:

signature = HMAC-SHA256(core_name + email, api_key)

The api_key is still sent as a parameter (required for user identification and rate limiting), but the signature ensures the request has not been tampered with.

Parameters

ParameterStatusDescription
emailRequiredYour Opensolr registration email address
api_keyRequiredYour Opensolr API key
core_nameRequiredThe name of your Opensolr index (e.g. my_index__dense)
signatureRequiredHMAC-SHA256 of core_name + email using api_key as the secret key
Why a combined endpoint? Loading a settings dashboard typically requires account limits, crawl status, index list, and available regions — four separate API calls. This endpoint combines them into one request, reducing your rate limit consumption from 4 calls to 1.

Response

Returns a JSON object with status: true and a msg object containing five data sections:

FieldTypeDescription
account_summaryobjectPlan info, disk/bandwidth usage, crawler limits, feature flags, pricing, and crawler server IP
crawl_statsobjectPages crawled, pages in error, download size, queue depth, MIME type breakdown (from the crawler server)
crawl_schedule_activebooleantrue if a crawl cron schedule exists for this index
index_listarrayAll indexes owned by this account: [{index_name, index_type}, ...]
environmentsarrayAvailable server regions with country, flag URL, Solr version, and server identifier (web-crawler-enabled only)
api_rate_limitobjectCurrent rate limits and real-time usage: max_per_minute, max_per_hour, last_min, last_hour
account_summary fields
FieldDescription
planPlan display name (Free Trial, Corporate, Pre-Paid Plan)
is_trialBoolean — true if the account is on a free trial
trial_days_remainingDays left on the trial (only present when is_trial is true)
pricePlan price (e.g. "22.00")
recurrenceBilling period (e.g. "1 Month")
disk_used_mb / disk_limit_mbCurrent disk usage and limit in MB
bandwidth_used_mb / bandwidth_limit_mbCurrent bandwidth usage and limit in MB
crawl_max_pagesMaximum pages the crawler can index
crawl_max_threadsMaximum concurrent crawl threads
crawl_max_filesize_mbMaximum file size the crawler will download (MB)
crawl_max_traffic_mbMaximum total crawl traffic (MB)
has_webcrawler / has_analytics / has_backupFeature flags (boolean)
crawler_ipIP address of the crawler server (for firewall whitelisting)

Code Examples

$_ cURL

# Compute the HMAC signature first
CORE="my_index__dense"
EMAIL="you@example.com"
API_KEY="your_api_key_here"
SIGNATURE=$(echo -n "${CORE}${EMAIL}" | openssl dgst -sha256 -hmac "${API_KEY}" | awk '{print $2}')

curl -s "https://opensolr.com/solr_manager/api/get_settings_dashboard?email=${EMAIL}&api_key=${API_KEY}&core_name=${CORE}&signature=${SIGNATURE}"

PHP PHP

$email    = 'you@example.com';
$api_key  = 'your_api_key_here';
$core     = 'my_index__dense';
$signature = hash_hmac('sha256', $core . $email, $api_key);

$params = http_build_query([
    'email'     => $email,
    'api_key'   => $api_key,
    'core_name' => $core,
    'signature' => $signature,
]);
$response = file_get_contents("https://opensolr.com/solr_manager/api/get_settings_dashboard?{$params}");
$data = json_decode($response, true);

// Access the sections
$summary  = $data['msg']['account_summary'];
$crawl    = $data['msg']['crawl_stats'];
$active   = $data['msg']['crawl_schedule_active'];
$indexes  = $data['msg']['index_list'];
$regions  = $data['msg']['environments'];
$rateLimit = $data['msg']['api_rate_limit'];

echo "Plan: " . $summary['plan'] . "
";
echo "Disk: " . $summary['disk_used_mb'] . " / " . $summary['disk_limit_mb'] . " MB
";
echo "Crawl schedule: " . ($active ? "active" : "inactive") . "
";
echo "Indexes: " . count($indexes) . "
";
echo "API usage: " . $rateLimit['last_min'] . "/" . $rateLimit['max_per_minute'] . " per minute
";

Py Python

import hmac, hashlib, requests

email    = "you@example.com"
api_key  = "your_api_key_here"
core     = "my_index__dense"
signature = hmac.new(api_key.encode(), (core + email).encode(), hashlib.sha256).hexdigest()

response = requests.get("https://opensolr.com/solr_manager/api/get_settings_dashboard", params={
    "email": email,
    "api_key": api_key,
    "core_name": core,
    "signature": signature,
})
data = response.json()

summary = data["msg"]["account_summary"]
crawl   = data["msg"]["crawl_stats"]
active  = data["msg"]["crawl_schedule_active"]
indexes = data["msg"]["index_list"]
regions = data["msg"]["environments"]
rate    = data["msg"]["api_rate_limit"]

print(f"Plan: {summary['plan']}")
print(f"Disk: {summary['disk_used_mb']} / {summary['disk_limit_mb']} MB")
print(f"Crawl schedule: {'active' if active else 'inactive'}")
print(f"Indexes: {len(indexes)}")
print(f"API usage: {rate['last_min']}/{rate['max_per_minute']} per minute")

Error Responses

ErrorCause
ERROR_MISSING_PARAMSMissing core_name or signature
ERROR_INVALID_SIGNATUREHMAC signature does not match — check that you are signing core_name + email with the correct api_key
ERROR_AUTHENTICATION_FAILEDInvalid email or API key
ERROR_NOT_CORE_OWNERThe specified index does not exist or does not belong to this account
ERROR_RATE_LIMIT_PER_MINUTEToo many requests — wait 60 seconds and retry
ERROR_RATE_LIMIT_PER_HOURHourly rate limit exceeded — request an upgrade

Related Documentation

Need higher API rate limits or a custom integration? We are here to help.

Contact Support