Skip to main content

API Rate Limit

All API endpoints share a global rate limit based on your API key.
ParameterValue
Requests per window50
Window duration60 seconds
ScopePer API key
When the limit is exceeded the backend returns HTTP 429 with these headers:
HeaderDescription
X-RateLimit-LimitMaximum requests allowed in the window
X-RateLimit-RemainingRequests remaining in the current window
X-RateLimit-ResetSeconds until the window resets
Retry-AfterSeconds to wait before retrying
The SDK raises RateLimitError with a retry_after attribute you can use to sleep and retry.
from valiqor import RateLimitError
import time

try:
    result = client.eval.evaluate(dataset=data, metrics=["coherence"])
except RateLimitError as e:
    time.sleep(e.retry_after or 5)
    result = client.eval.evaluate(dataset=data, metrics=["coherence"])

Monthly Quotas

API Call Quotas

Each organisation has a monthly API call quota that resets automatically.
TierMonthly API Calls
Free100
Pro1,000
Enterprise10,000

Token Quotas

A separate token-based quota tracks LLM token consumption across all services.
TierMonthly Token Quota
Default1,000,000 tokens
When either quota is exceeded the backend returns HTTP 429. The SDK raises QuotaExceededError (for API call quotas) or TokenQuotaExceededError (for token quotas).
from valiqor import QuotaExceededError, TokenQuotaExceededError

try:
    result = client.failure_analysis.run(dataset=data)
except TokenQuotaExceededError as e:
    print(f"Token quota exceeded: {e.current_tokens}/{e.token_limit}")
except QuotaExceededError as e:
    print(f"API quota exceeded: {e.current_usage}/{e.quota_limit}")

Trial Limits

Users who have not verified their email operate in trial mode.
LimitValue
Rows per run25 (dataset is silently truncated)
Total trial runs3
After 3 runsBlocked until email is verified
Trial limits apply equally to Evaluation, Security Audit, and Failure Analysis.
Run valiqor verify to verify your email and unlock 50 free runs on the free tier.

Dataset Size Limits

LimitValue
Maximum items per request1,000
Applies to evaluate(), audit(), and failure_analysis.run(). The SDK raises DatasetTooLargeError if the limit is exceeded.
from valiqor import DatasetTooLargeError

try:
    result = client.eval.evaluate(dataset=large_dataset, metrics=["coherence"])
except DatasetTooLargeError as e:
    print(f"Dataset has {e.dataset_size} items, max is {e.max_allowed}")

Playground Limits

The Failure Analysis playground (client.failure_analysis.playground()) has stricter limits because it is a lightweight, single-item endpoint.
LimitValue
Requests per minute2
Analyses per day10
Max input tokens4,000
Max input field length2,000 characters
Max output field length5,000 characters
Max context field length5,000 characters
Max tool calls5

Other Limits

ResourceLimit
API keys per user5
Request timeout300 seconds (5 minutes)

Checking Your Usage

SDK

from valiqor import ValiqorClient

client = ValiqorClient(api_key="vq_...")
usage = client.get_usage()

print(usage)
# Returns per-service API call counts, per-service token usage,
# quota limits, remaining quota, period start/end, and reset date.

API

curl -H "Authorization: Bearer vq_..." \
     https://api.valiqor.com/v2/auth/usage
The response includes:
FieldDescription
total_api_usageTotal API calls this period
evaluation_usageEval API call count
security_audit_usageSecurity audit call count
security_redteam_usageRed team simulation call count
tracing_usageTrace upload call count
scanner_usageScan upload call count
failure_analysis_usageFA API call count
total_token_usageTotal tokens consumed this period
evaluation_tokensTokens used by evaluations
security_audit_tokensTokens used by security audits
security_redteam_tokensTokens used by red team runs
tracing_tokensTokens used by tracing
scanner_tokensTokens used by scanner
failure_analysis_tokensTokens used by failure analysis
api_quota_limitYour plan’s API call quota
api_quota_remainingAPI calls remaining this period
token_quota_limitYour plan’s token quota
token_quota_remainingTokens remaining this period
period_startStart of the current billing period
period_endEnd of the current billing period
reset_dateWhen quotas reset (monthly)
org_idYour organisation ID
org_nameYour organisation name
planYour current plan (free, pro, enterprise)

CLI

valiqor status
Shows authentication status, current configuration, cloud connection, and module availability.