51 / 65 · 14 API Testing Fundamentals · gRPC Fundamentals← prev⊞ allnext →☰ Read as one page
7.4Exploring with grpcurl
grpcurl is like curl for gRPC — essential for manual exploration and debugging.
# List available services
grpcurl -plaintext localhost:50051 list
# List methods in a service
grpcurl -plaintext localhost:50051 list user.UserService
# Describe a method
grpcurl -plaintext localhost:50051 describe user.UserService.GetUser
# Call a method
grpcurl -plaintext -d '{"id": "123"}' localhost:50051 user.UserService/GetUser
# Call with headers (metadata)
grpcurl -plaintext \
-H "Authorization: Bearer token123" \
-d '{"id": "123"}' \
localhost:50051 user.UserService/GetUser
# Call without TLS (-plaintext) for local development
# Call with TLS for staging/production (omit -plaintext)
grpcurl -d '{"id": "123"}' api.staging.example.com:443 user.UserService/GetUser