Every URL you need to talk to Sui over gRPC, GraphQL or JSON-RPC, what each plan allows, and where the Foundation's public endpoints fit. One API key works on all of them.
Each protocol reads from the same live nodes and the same archival history back to genesis. Requests are routed to the live node or archival storage automatically, so there is one URL per protocol and network, not one per data age.
| PROTOCOL | MAINNET | TESTNET | AUTH | DOCS |
|---|---|---|---|---|
| gRPC | mainnet-grpc.inodra.com:443 | testnet-grpc.inodra.com:443 | x-api-key metadata, TLS | gRPC gateway -> |
| GraphQL | https://mainnet-api.inodra.com/v1/graphql | https://testnet-api.inodra.com/v1/graphql | x-api-key header | GraphQL gateway -> |
| JSON-RPC | https://mainnet-api.inodra.com/v1/jsonrpc | https://testnet-api.inodra.com/v1/jsonrpc | x-api-key header | JSON-RPC gateway -> |
Inodra serves mainnet and testnet. For devnet, use the Foundation endpoint below. No account yet? You can also pay per request with x402 from a Sui wallet.
grpcurl -H "x-api-key: YOUR_API_KEY" \
-d '{"read_mask": {"paths": ["sequence_number", "digest"]}}' \
mainnet-grpc.inodra.com:443 \
sui.rpc.v2.LedgerService/GetCheckpointcurl https://mainnet-api.inodra.com/v1/graphql \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{"query": "{ chainIdentifier }"}'curl https://mainnet-api.inodra.com/v1/jsonrpc \
-H "x-api-key: YOUR_API_KEY" \
-H "content-type: application/json" \
-d '{"jsonrpc": "2.0", "id": 1, "method": "sui_getLatestCheckpointSequenceNumber", "params": []}'Some tools only take a URL: a wallet's custom RPC setting, a script's RPC flag, a hosted service's config field. They cannot send an x-api-key header, so put the key in the URL as an api_key query parameter instead. This works on the JSON-RPC and GraphQL URLs; gRPC takes the key only as x-api-key metadata. For JSON-RPC on mainnet it looks like this:
https://mainnet-api.inodra.com/v1/jsonrpc?api_key=YOUR_API_KEYAnyone who sees that URL can spend your credits. Create a separate API key for each tool you paste it into, so you can revoke one without touching the others, and give it a scope, a rate limit and an expiry. For testnet, use a testnet key with https://testnet-api.inodra.com/v1/jsonrpc.
The rate limit applies across every protocol on one key. A credit is roughly one typical read; heavier calls cost more, and the per-method table lives in the docs.
| PLAN | CREDITS / MONTH | REQUESTS / SECOND |
|---|---|---|
| Free | 1M | 10 |
| Team | 10M | 50 |
| Growth | 45M | 100 |
| Professional | 120M | 200 |
| Business | 250M | 500 |
| Enterprise | Custom | 1000+ |
The Sui Foundation runs public-good gRPC, GraphQL and archival endpoints on mainnet and testnet, and gRPC only on devnet, all with strict rate limits. Sui's own documentation describes them as suitable for development and testing, not for production workloads. They no longer serve JSON-RPC. The gRPC hosts below are the ones Sui publishes as defaults; the Sui docs are the reference for the rest.
| NETWORK | GRPC | JSON-RPC |
|---|---|---|
| Mainnet | fullnode.mainnet.sui.io:443 | Retired |
| Testnet | fullnode.testnet.sui.io:443 | Retired |
| Devnet | fullnode.devnet.sui.io:443 | Retired |
On Inodra, gRPC is mainnet-grpc.inodra.com:443, GraphQL is https://mainnet-api.inodra.com/v1/graphql and JSON-RPC is https://mainnet-api.inodra.com/v1/jsonrpc. All three take the same API key.
Yes. Inodra's free plan includes 1M credits a month at 10 requests per second with no credit card, on every protocol. The Sui Foundation also runs rate-limited public-good gRPC, GraphQL and archival endpoints for development, which are not meant for production traffic.
No. Sui Foundation full nodes stopped serving JSON-RPC by July 31, 2026. Inodra serves the same methods on its own infrastructure, with history back to genesis, so an existing client only needs a new URL and an API key.
Use the JSON-RPC or GraphQL endpoint with your key as an api_key query parameter, for example https://mainnet-api.inodra.com/v1/jsonrpc?api_key=YOUR_API_KEY. gRPC takes the key only as x-api-key metadata. Anyone holding that URL can spend your credits, so give it its own key.
gRPC for backends, indexers and anything latency-sensitive. GraphQL when one request should return a shaped view of several objects. JSON-RPC only for code that already speaks it. All three read from the same nodes and the same archival history.
The free plan is 1M credits a month, no credit card. The same key works on gRPC, GraphQL and JSON-RPC.