gRPC Client

Send live gRPC-Web & Connect Protocol requests from the browser, or generate grpcurl / buf curl terminal commands.

How browser gRPC works: Browsers can't speak raw gRPC (HTTP/2 binary framing). Two protocols bridge the gap:
 • Connect Protocol — plain JSON POST, works with any ConnectRPC server. Most compatible.
 • gRPC-Web JSON — gRPC-Web wire format with JSON body, requires an Envoy / grpc-web proxy in front of your server.
Both require the server to send CORS headers (Access-Control-Allow-Origin: *). For raw binary gRPC use the terminal commands below.
Request
JSON over HTTP
Sends a plain JSON POST. Server must support ConnectRPC. Easiest to set up.
Routes the request through corsproxy.io to bypass browser CORS restrictions. Useful when your server has no CORS headers (localhost, internal services).
⚠ Request body is sent through a third-party proxy — don't use with sensitive credentials.
or use the terminal commands below
Response
Hit Send to make a live request.
CORS / Network Error — the server is blocking browser requests.

Quick fix: Enable the CORS Proxy toggle in the request panel above. It routes the request through corsproxy.io so CORS doesn't apply.

Server-side fix (permanent):
 • Add Access-Control-Allow-Origin: * + Access-Control-Allow-Headers: * to your server.
 • For raw gRPC servers: put Envoy or grpc-web-proxy in front.

Bypass CORS entirely: Use the terminal commands (grpcurl / buf curl) below — they're not subject to browser restrictions.
Terminal Commands
grpcurl brew install grpcurl
buf curl brew install bufbuild/buf/buf
List & Describe (Terminal)
List all services
Describe a service / method
Quick Reference
Connect Protocol server
POST /pkg.Service/Method
Content-Type: application/json
Connect-Protocol-Version: 1
gRPC-Web JSON frame
Content-Type: application/grpc-web+json
[flags:1][len:4][JSON body]
grpcurl unary
grpcurl -plaintext -d '{"k":"v"}' host:port pkg.S/M
grpcurl with TLS + auth
grpcurl -H 'authorization: Bearer TOKEN' host:443 pkg.S/M
Envoy gRPC-Web config
http_filters:
- name: envoy.grpc_web
- name: envoy.cors
buf curl
buf curl --data '{}' https://host:443/pkg.S/M

About gRPC Client

This tool lets you send live requests to gRPC services directly from your browser using two browser-compatible protocols: Connect Protocol (plain JSON POST) and gRPC-Web JSON (framed binary). Enter the host, service method, and a JSON request body, then click Send. It also generates ready-to-run grpcurl and buf curl commands for use in your terminal.

Because raw gRPC uses HTTP/2 binary framing that browsers cannot initiate natively, this tool bridges the gap via Connect Protocol or gRPC-Web. For services without CORS headers, a built-in CORS proxy toggle routes the request through corsproxy.io — avoid using this with sensitive credentials.

Common Use Cases

How to Use

  1. Enter your server host (e.g. localhost:8080) and check TLS if your server uses HTTPS
  2. Choose a connection mode — "Connect Protocol" for ConnectRPC servers, "gRPC-Web JSON" for Envoy-proxied servers
  3. Fill in the service method in package.Service/Method format and enter the JSON request body
  4. Click Send for a live response, or copy the grpcurl command from the Terminal Commands panel to run in your shell

Frequently Asked Questions

Why can't browsers send native gRPC requests?

Native gRPC uses HTTP/2 with binary framing and trailer headers — browser Fetch and XHR APIs do not expose these low-level controls. Connect Protocol and gRPC-Web were designed specifically to work around this limitation by using standard HTTP semantics that browsers can initiate.

What is the difference between Connect Protocol and gRPC-Web?

Connect Protocol sends a plain JSON POST request — any ConnectRPC server handles it without a proxy. gRPC-Web JSON wraps the payload in a 5-byte binary frame and uses a special Content-Type, requiring Envoy or grpc-web-proxy to unframe it before forwarding to the gRPC server. Connect is easier to set up for new services.

How do I install grpcurl to use the generated commands?

On macOS run brew install grpcurl. On Linux, download the binary from the grpcurl GitHub releases page or use go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest. For buf curl, run brew install bufbuild/buf/buf.

Advertisement