grpcb.in exposes both plaintext and TLS gRPC endpoints and has server reflection enabled, so it’s ideal for testing with grpcurl.

List available services

TLS (port 9001):

grpcurl grpcb.in:9001 list

Plaintext (port 9000):

grpcurl -plaintext grpcb.in:9000 list

Describe a service

grpcurl grpcb.in:9001 describe hello.HelloService

Or list methods in a service:

grpcurl grpcb.in:9001 list hello.HelloService

Unary RPC example

grpcurl \
  -d '{"greeting":"ChatGPT"}' \
  grpcb.in:9001 \
  hello.HelloService/SayHello

Expected response:

{
  "message": "Hello ChatGPT"
}

Addition service example

grpcurl \
  -d '{"a":10,"b":20}' \
  grpcb.in:9001 \
  addsvc.Addition/Sum

Send custom headers

grpcurl \
  -H "Authorization: Bearer my-token" \
  -d '{"greeting":"Alice"}' \
  grpcb.in:9001 \
  hello.HelloService/SayHello

Verbose output

To inspect the HTTP/2 exchange and metadata:

grpcurl -v \
  -d '{"greeting":"Alice"}' \
  grpcb.in:9001 \
  hello.HelloService/SayHello

If you’re not sure what services are available, start with:

grpcurl grpcb.in:9001 list

and then:

grpcurl grpcb.in:9001 describe <service-name>

to discover the available methods and message schemas.