Logs & Analytics

Opensolr Logs & Analytics — find answers to your questions

API Usage Dashboard — Monitor Your API Requests and Rate L...

Account Feature

API Usage Dashboard

Every Opensolr account now has a dedicated API Usage page that gives you full visibility into how your application consumes the API. See your request volume, live rate limit gauges, per-endpoint breakdowns, and monthly trends.

What You Can See

Total Requests

Your total API calls for the selected month, updated every minute as data flows in from all servers.

Live Rate Gauges

Your last-minute and last-hour request counts shown as color-coded gauges. Green, yellow, or red — know instantly if you are close to being throttled.

Endpoint Breakdown

A full table showing which API endpoints your application calls and what percentage of traffic each one accounts for.

Monthly History

A bar chart of your request volume over the last 6 months so you can spot usage trends and plan ahead.

How Rate Limiting Works

Your App

API Client

Rate Limiter

Checks: 30/min, 500/hr

current usage

200 OK

Request processed

429 Too Many

Retry-After header sent

Dashboard

All logged and visible on your API Usage page

Every authenticated API request passes through the rate limiter. It uses sliding-window counters to track your usage per minute and per hour. If you are within limits, the request is processed normally. If you exceed your threshold, you get an HTTP 429 response with a Retry-After header.

Default Limits

30
requests / minute
Sliding window — resets continuously
500
requests / hour
Sliding window — resets continuously
Sliding windows, not fixed intervals. If you sent 30 requests between 10:00:15 and 10:00:45, you can send your next request at 10:01:15 when the oldest one falls out of the window — you do not need to wait until the next full minute boundary.

Which API Calls Count?

Every authenticated API endpoint counts toward your limits. The dashboard breaks them down individually:

ai_summary
embed
batch_embed
index (search)
commit
get_index_list
create_index
start_crawl
reload_core
+ all other endpoints

How to Access Your Dashboard

Log in to your Opensolr account at opensolr.com
Click Account in the top navigation bar
Select API Usage from the dropdown

Or navigate directly to /admin/solr_manager/my_api_usage

Need higher rate limits for your integration? We can set custom thresholds for your account.

Contact Us
Read Full Answer

API - Solr Traffic Monitoring API

Logs & Analytics API

Solr Traffic Monitoring API

Analyze your Solr request traffic programmatically. Get request logs as JSON or CSV, filter by date ranges, facet by IP, path, query terms, and HTTP status codes.

Endpoint

GET https://opensolr.com/solr_manager/api/request_log
This is the same endpoint as the Request Log API, but this page focuses on practical traffic monitoring examples using facets, date filters, and aggregation. Also see the Real-Time Monitoring UI in your control panel.

Parameters

ParameterStatusDescription
emailRequiredYour Opensolr registration email address
api_keyRequiredYour Opensolr API key
core_nameRequiredThe name of the index you want traffic data for
startOptionalPagination offset (default: 0)
rowsOptionalNumber of results per page (default: 10)
sortOptionalSort field and direction (e.g., date desc)
fq[]OptionalFilter queries. Use multiple fq[] params for AND conditions
wtOptionalResponse format: json (default) or csv
facetOptionalEnable faceting: true
facet.field[]OptionalFields to facet on (e.g., ip, path, q, http_status)

Traffic Monitoring Examples

Last 200 requests from the past 24 hours (JSON)

curl -gs "https://opensolr.com/solr_manager/api/request_log?email=YOUR_EMAIL&api_key=YOUR_API_KEY&core_name=YOUR_INDEX&start=0&sort=date%20desc&rows=200&fq[]=date:[NOW-1DAY%20TO%20NOW]&wt=json"

IP and Path facets for the last month

curl -gs "https://opensolr.com/solr_manager/api/request_log?email=YOUR_EMAIL&api_key=YOUR_API_KEY&core_name=YOUR_INDEX&start=0&sort=date%20desc&rows=0&fq[]=date:[NOW-1MONTH%20TO%20NOW]&wt=json&facet=true&facet.field[]=path&facet.field[]=ip"

Popular search queries today

curl -gs "https://opensolr.com/solr_manager/api/request_log?email=YOUR_EMAIL&api_key=YOUR_API_KEY&core_name=YOUR_INDEX&start=0&sort=date%20desc&rows=0&fq[]=date:[NOW-1DAY%20TO%20NOW]&wt=json&facet=true&facet.field[]=q"

HTTP status code breakdown for today

curl -gs "https://opensolr.com/solr_manager/api/request_log?email=YOUR_EMAIL&api_key=YOUR_API_KEY&core_name=YOUR_INDEX&start=0&sort=date%20desc&rows=0&fq[]=date:[NOW-1DAY%20TO%20NOW]&wt=json&facet=true&facet.field[]=http_status"

Failed requests (4xx errors) today — 20 per page

curl -gs "https://opensolr.com/solr_manager/api/request_log?email=YOUR_EMAIL&api_key=YOUR_API_KEY&core_name=YOUR_INDEX&start=0&sort=date%20desc&rows=20&fq[]=date:[NOW-1DAY%20TO%20NOW]&fq[]=+http_status:4*&wt=json"

Export all requests as CSV

curl -gs "https://opensolr.com/solr_manager/api/request_log?email=YOUR_EMAIL&api_key=YOUR_API_KEY&core_name=YOUR_INDEX&start=0&sort=date%20desc&rows=200000&wt=csv"

PHP — Get popular queries today

$params = http_build_query([
    'email'     => 'YOUR_EMAIL',
    'api_key'   => 'YOUR_API_KEY',
    'core_name' => 'YOUR_INDEX',
    'start'     => 0,
    'rows'      => 0,
    'sort'      => 'date desc',
    'wt'        => 'json',
    'facet'     => 'true',
]);
// Add array params manually (fq[], facet.field[])
$url = "https://opensolr.com/solr_manager/api/request_log?{$params}"
     . "&fq[]=" . urlencode("date:[NOW-1DAY TO NOW]")
     . "&facet.field[]=q";

$response = file_get_contents($url);
$data = json_decode($response, true);
print_r($data['facet_counts']['facet_fields']['q'] ?? []);

Python — Get failed requests today

import requests

response = requests.get("https://opensolr.com/solr_manager/api/request_log", params={
    "email": "YOUR_EMAIL",
    "api_key": "YOUR_API_KEY",
    "core_name": "YOUR_INDEX",
    "start": 0,
    "rows": 20,
    "sort": "date desc",
    "wt": "json",
    "fq[]": ["date:[NOW-1DAY TO NOW]", "+http_status:4*"],
})
data = response.json()
for doc in data.get("response", {}).get("docs", []):
    print(f"{doc['date']} | {doc['http_status']} | {doc.get('q', '')}")

Related Documentation

Need help analyzing your Solr traffic? We are here to help.

Contact Support
Read Full Answer

API - Get error log

Logs & Analytics API

Get Solr Error Log

Retrieve the error log for your Opensolr Index. Returns recent Solr errors, warnings, and severe messages to help you diagnose indexing or query issues.

Endpoint

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

Parameters

ParameterStatusDescription
emailRequiredYour Opensolr registration email address
api_keyRequiredYour Opensolr API key
core_nameRequiredThe name of the index you wish to get the error log for
The error log contains ERROR, WARN, and SEVERE level messages from Solr. Check this when your queries return unexpected results, indexing fails, or you see HTTP 400/500 errors in your request log.

Code Examples

cURL

curl -s "https://opensolr.com/solr_manager/api/get_error_log?email=YOUR_EMAIL&api_key=YOUR_API_KEY&core_name=my_solr_core"

PHP

$params = http_build_query([
    'email'     => 'YOUR_EMAIL',
    'api_key'   => 'YOUR_API_KEY',
    'core_name' => 'my_solr_core',
]);
$response = file_get_contents("https://opensolr.com/solr_manager/api/get_error_log?{$params}");
$result = json_decode($response, true);
print_r($result);

Python

import requests

response = requests.get("https://opensolr.com/solr_manager/api/get_error_log", params={
    "email": "YOUR_EMAIL",
    "api_key": "YOUR_API_KEY",
    "core_name": "my_solr_core",
})
print(response.json())

Related Documentation

Need help debugging Solr errors? We are here to help.

Contact Support
Read Full Answer

API - Get Index Request Log

Logs & Analytics API

Get Index Request Log

Query your full Solr request log using standard Solr query parameters. Filter, sort, facet, and paginate through every request made to your index.

Endpoint

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

Parameters

ParameterStatusDescription
emailRequiredYour Opensolr registration email address
api_keyRequiredYour Opensolr API key
core_nameRequiredThe name of the index to get the request log for
qOptionalSearch query (default: *:* — all requests)
startOptionalPagination offset (default: 0)
rowsOptionalNumber of results per page (default: 10)
sortOptionalSort field and direction (e.g., date desc)
fq[]OptionalFilter queries — use multiple fq[] for AND. Example: fq[]=date:[NOW-1DAY TO NOW]
wtOptionalResponse format: json (default), csv, xml
facetOptionalEnable faceting: true
facet.field[]OptionalFields to facet on: ip, path, q, http_status, core_name
The request log supports most Solr Query Syntax parameters. Array parameters like fq and facet.field use square brackets: fq[]=...&fq[]=.... Exclude empty queries with fq[]=-q:"". Exclude wildcards with fq[]=-q:"*:*".

Code Examples

cURL — Error requests between two dates

curl -gs "https://opensolr.com/solr_manager/api/request_log?email=YOUR_EMAIL&api_key=YOUR_API_KEY&core_name=my_index&start=0&sort=date%20desc&rows=10&fq[]=date:[2023-01-01T00:00:00Z%20TO%202023-05-31T00:00:00Z]&facet=true&facet.field[]=core_name&fq[]=-http_status:200"

PHP — Paginated request log

$params = http_build_query([
    'email'     => 'YOUR_EMAIL',
    'api_key'   => 'YOUR_API_KEY',
    'core_name' => 'my_index',
    'start'     => 0,
    'rows'      => 50,
    'sort'      => 'date desc',
    'wt'        => 'json',
]);
$url = "https://opensolr.com/solr_manager/api/request_log?{$params}"
     . "&fq[]=" . urlencode("date:[NOW-7DAY TO NOW]");

$response = file_get_contents($url);
$data = json_decode($response, true);
foreach ($data['response']['docs'] as $doc) {
    echo $doc['date'] . " | " . $doc['http_status'] . " | " . ($doc['q'] ?? '') . "\n";
}

Python — Faceted request analysis

import requests

response = requests.get("https://opensolr.com/solr_manager/api/request_log", params={
    "email": "YOUR_EMAIL",
    "api_key": "YOUR_API_KEY",
    "core_name": "my_index",
    "start": 0,
    "rows": 0,
    "sort": "date desc",
    "wt": "json",
    "facet": "true",
    "facet.field[]": ["ip", "path", "http_status"],
    "fq[]": "date:[NOW-1DAY TO NOW]",
})
data = response.json()
facets = data.get("facet_counts", {}).get("facet_fields", {})
for field, values in facets.items():
    print(f"\n--- {field} ---")
    for i in range(0, len(values), 2):
        print(f"  {values[i]}: {values[i+1]}")

Related Documentation

Need help analyzing your Solr request logs? We are here to help.

Contact Support
Read Full Answer