Skip to content

Usage and limits

Understand RPC credits, organization-wide limits, retries, archive access, and batching.

Estimate what your RPC workload will cost and keep it within your organization's shared limits. RPC calls and WebSocket subscription events draw credits at the rates for their method class. Rate and concurrency limits apply to your whole organization and depend on your subscription plan.

Current credit rates

Use the method rates below to estimate request costs. Track actual consumption in Platform Usage.

Current rates. Last updated: Oct 23, 2026, 12:01 AM UTC.

Usage componentApplies toRate
RPC callsDefault1 credit per RPC call
RPC callsRPC method cost class: Standard1 credit per RPC call
RPC callsRPC method cost class: Compute-heavy2 credits per RPC call
RPC callsRPC method cost class: Trace and debug2 credits per RPC call
RPC callsRPC method cost class: Archive and state-heavy2 credits per RPC call
Subscription eventsDefault1 credit per subscription event
Subscription eventsSubscription type: newHeads1 credit per subscription event
Subscription eventsSubscription type: logs1 credit per subscription event
Subscription eventsSubscription type: newPendingTransactions1 credit per subscription event
Subscription eventsSubscription type: syncing1 credit per subscription event

RPC method cost class

ClassMethods
Compute-heavyeth_call, eth_createAccessList, eth_estimateGas, eth_getLogs
Trace and debugdebug_…, trace_…
Archive and state-heavyeth_getBalance, eth_getCode, eth_getProof, eth_getStorageAt, eth_getTransactionCount
StandardAll methods not matched by another class

Archive reads can consume more credits when their method is assigned to a higher-cost class in the current catalog. Check Supported networks for archive coverage on your network.

Plan limits

Limits are shared across your organization and depend on your plan. Check your plan terms or contact support for the values that apply to your workload.

The following limits are plan-specific:

LimitApplies toGuidance
Request rateHTTPS and WebSocket RPC callsSpread traffic across time and use backoff after 429.
Concurrent requestsIn-flight requests for the organizationBound worker pools and queue background jobs.
Batch sizeNumber of JSON-RPC calls in one HTTP batchKeep batches small enough to retry individual failures.
Response sizeLarge logs, blocks, receipts, and archive readsUse narrower ranges or paginated application workflows.
Request timeoutLong state reads and log scansSplit large archive jobs by block range.
WebSocket connectionsLive subscriptionsReuse connections and unsubscribe unused streams.
WebSocket subscriptionsActive subscriptions per organizationPrefer one filtered subscription over many overlapping ones.

Rate-limit and request headers

Treat optional headers as informational

Do not rely on rate-limit or request-tracing headers to enforce production limits. Handle 429 responses, use bounded concurrency, apply backoff with jitter, and monitor usage in the platform UI.

Responses may include headers such as:

X-GraphOps-RateLimit-Limit: <limit>
X-GraphOps-RateLimit-Remaining: <remaining>
X-GraphOps-RateLimit-Reset: <unix-seconds>
X-GraphOps-Request-Id: <request-id>

These headers are informational; availability can vary by endpoint and plan.

Control your usage

Most limit errors come from a few workload shapes. Keep each one bounded:

WorkloadKeep it within limitsGuide
Current-state readsRetry 429, 502, 503, and 504 with exponential backoff and jitter, and cap total retry time.Retries and reorgs
Log scans and archive readsSplit work into block ranges and reduce the range before retrying.Backfill historical events
Batch requestsKeep batches small, match responses by id, and retry only failed retryable items.API integration
Transaction submissionRetry the same signed transaction; never change it and resend blindly.Send a raw transaction
WebSocket streamsReuse connections, unsubscribe unused streams, and backfill gaps after a reconnect.WebSocket subscriptions

Production checklist

  • Store API keys outside source code. See Authentication.
  • Bound request concurrency per organization.
  • Add exponential backoff with jitter for retryable errors.
  • Use explicit block references for multi-call workflows.
  • Split broad eth_getLogs and archive reads into block ranges.
  • Track credit usage in the platform UI.
  • Use route-token authentication for WebSocket clients that cannot send custom headers.
  • Contact GraphOps support when limits need to be raised.

Next steps