PROTOCOLS
gRPC
Full gRPC API testing with unary and server-streaming calls — proto file loading, service/method picker, metadata headers, auth, TLS certificates, and grpcurl code export.
Connection
gRPC mode is activated by entering a grpc:// or grpcs:// URL scheme in the address bar.
| Scheme | Transport | Example |
|---|---|---|
| grpc:// | Plaintext (no TLS) | grpc://localhost:50051 |
| grpcs:// | TLS encrypted | grpcs://api.example.com:443 |
Proto File Loading
gRPC services are defined in .proto files. API Studio parses these to discover available services and methods.
.proto definition from disk@grpc/proto-loader (pure Node.js, esbuild compatible)protoFilePath, protoFileName)Service & Method Selection
After loading a proto file, the discovered services and methods appear in dropdown selectors.
Stored configuration (GrpcConfig):
{
"protoFilePath": "/path/to/service.proto",
"protoFileName": "service.proto",
"serviceName": "greeter.GreeterService",
"methodName": "SayHello",
"callType": "unary",
"messageBody": "{ \"name\": \"World\" }"
}
Call Types
API Studio supports two gRPC call patterns:
Unary
Single request → single response. Result shown as a standard API response with status, time, and JSON body. Same response viewer as HTTP requests.
Server Streaming
Single request → stream of responses. Messages arrive in real-time with timestamps in a dedicated message log. Stream duration is shown. Click Cancel to stop mid-stream.
Metadata Tab
gRPC metadata headers are the equivalent of HTTP headers — key-value pairs sent alongside the RPC call.
{{variables}} in values — resolved from the active environmentCommon metadata keys:
Auth & TLS
All authentication types are supported for gRPC — credentials are injected as metadata headers.
| Auth Type | Injection |
|---|---|
| Bearer | authorization: Bearer <token> |
| Basic | authorization: Basic <base64> |
| API Key | Custom metadata key with value |
TLS Certificates
grpcs:// auto-uses TLS; grpc:// connects in plaintextCode Export (grpcurl)
The code export panel includes a grpcurl option that generates equivalent CLI commands for your gRPC request.
Generated flags:
| Flag | Purpose |
|---|---|
| -plaintext | Used for grpc:// (insecure connections) |
| -proto | Path to the .proto file |
| -H | Metadata headers (one per key-value pair) |
| -d | JSON message body |
Example output:
grpcurl -plaintext \
-proto ./service.proto \
-H 'authorization: Bearer {{token}}' \
-d '{"name": "World"}' \
localhost:50051 greeter.GreeterService/SayHello
Current Limitations
The gRPC client covers the most common use cases. These features are planned for future releases:
| Feature | Status |
|---|---|
| Client streaming | Not yet supported |
| Bidirectional streaming | Not yet supported |
| Server reflection | useReflection field exists but not yet implemented |
| Nested proto imports | May require specifying include paths manually |
| Binary/protobuf response display | Shown as JSON (decoded via proto definition) |