gRPC-Web Proxy API
OpenAPI specification for gRPC-Web proxy endpoints covering health checking, server reflection, and channelz introspection services exposed over HTTP for browser-based and REST clients.
OpenAPI specification for gRPC-Web proxy endpoints covering health checking, server reflection, and channelz introspection services exposed over HTTP for browser-based and REST clients.
openapi: 3.0.3
info:
title: gRPC-Web Proxy API
description: >-
OpenAPI specification for gRPC-Web proxy endpoints. gRPC-Web is a JavaScript
client library that enables browser-based applications to communicate with
gRPC services through an intermediary proxy. The proxy translates HTTP/1.1
and HTTP/2 requests into native gRPC calls, exposing health checking,
reflection, and channelz services over RESTful HTTP endpoints.
version: 1.0.0
contact:
name: gRPC Authors
url: https://grpc.io/
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
externalDocs:
description: gRPC Documentation
url: https://grpc.io/docs/
servers:
- url: https://localhost:8080
description: Local gRPC-Web proxy
paths:
/grpc.health.v1.Health/Check:
post:
operationId: healthCheck
summary: gRPC Check service health
description: >-
Performs a health check against a specific gRPC service or the
overall server. Implements the gRPC Health Checking Protocol
as defined in the grpc.health.v1 package.
tags:
- Health Checking
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HealthCheckRequest'
responses:
'200':
description: Health check response
content:
application/json:
schema:
$ref: '#/components/schemas/HealthCheckResponse'
'404':
description: Service not found
'503':
description: Service unhealthy
/grpc.health.v1.Health/Watch:
post:
operationId: healthWatch
summary: gRPC Watch service health changes
description: >-
Opens a server-streaming connection that sends health status
updates whenever the health of the requested service changes.
tags:
- Health Checking
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/HealthCheckRequest'
responses:
'200':
description: Stream of health check responses
content:
application/json:
schema:
$ref: '#/components/schemas/HealthCheckResponse'
/grpc.reflection.v1alpha.ServerReflection/ServerReflectionInfo:
post:
operationId: serverReflectionInfo
summary: gRPC Query server reflection information
description: >-
Bidirectional streaming endpoint for querying server reflection
data. Allows clients to discover available services, methods,
and message types at runtime without prior knowledge of the
service definitions.
tags:
- Reflection
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ServerReflectionRequest'
responses:
'200':
description: Reflection response
content:
application/json:
schema:
$ref: '#/components/schemas/ServerReflectionResponse'
/grpc.channelz.v1.Channelz/GetTopChannels:
post:
operationId: getTopChannels
summary: gRPC Get top-level channels
description: >-
Returns information about top-level channels including their
connectivity state, call statistics, and subchannel references.
Part of the Channelz service for runtime introspection.
tags:
- Channelz
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GetTopChannelsRequest'
responses:
'200':
description: Top channels response
content:
application/json:
schema:
$ref: '#/components/schemas/GetTopChannelsResponse'
/grpc.channelz.v1.Channelz/GetServers:
post:
operationId: getServers
summary: gRPC Get server information
description: >-
Returns information about all servers including their listen
addresses, call counts, and last call timestamps.
tags:
- Channelz
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GetServersRequest'
responses:
'200':
description: Servers response
content:
application/json:
schema:
$ref: '#/components/schemas/GetServersResponse'
/grpc.channelz.v1.Channelz/GetChannel:
post:
operationId: getChannel
summary: gRPC Get channel details
description: >-
Returns detailed information about a specific channel
identified by its channel ID.
tags:
- Channelz
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GetChannelRequest'
responses:
'200':
description: Channel details response
content:
application/json:
schema:
$ref: '#/components/schemas/GetChannelResponse'
/grpc.channelz.v1.Channelz/GetServerSockets:
post:
operationId: getServerSockets
summary: gRPC Get server socket information
description: >-
Returns information about sockets associated with a specific
server, including connection details and data transfer statistics.
tags:
- Channelz
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/GetServerSocketsRequest'
responses:
'200':
description: Server sockets response
content:
application/json:
schema:
$ref: '#/components/schemas/GetServerSocketsResponse'
components:
schemas:
HealthCheckRequest:
type: object
properties:
service:
type: string
description: >-
The fully-qualified service name to check. An empty string
or omitted value checks the overall server health.
HealthCheckResponse:
type: object
required:
- status
properties:
status:
type: string
enum:
- UNKNOWN
- SERVING
- NOT_SERVING
- SERVICE_UNKNOWN
description: The health status of the requested service.
ServerReflectionRequest:
type: object
properties:
host:
type: string
description: The host name for which reflection info is requested.
list_services:
type: string
description: >-
Set to empty string to list all services. When set, returns
the list of all registered services.
file_by_filename:
type: string
description: >-
Find a proto file by the file name.
file_containing_symbol:
type: string
description: >-
Find the proto file that declares the given fully-qualified symbol name.
file_containing_extension:
type: object
properties:
containing_type:
type: string
extension_number:
type: integer
description: Find the proto file which defines an extension of the given type and number.
all_extension_numbers_of_type:
type: string
description: >-
Find all extension numbers for a given type.
ServerReflectionResponse:
type: object
properties:
valid_host:
type: string
original_request:
$ref: '#/components/schemas/ServerReflectionRequest'
list_services_response:
type: object
properties:
service:
type: array
items:
type: object
properties:
name:
type: string
error_response:
type: object
properties:
error_code:
type: integer
error_message:
type: string
GetTopChannelsRequest:
type: object
properties:
start_channel_id:
type: string
format: int64
description: >-
The channel ID from which to start listing. Set to 0 to
list from the beginning.
max_results:
type: string
format: int64
description: Maximum number of results to return.
GetTopChannelsResponse:
type: object
properties:
channel:
type: array
items:
$ref: '#/components/schemas/Channel'
end:
type: boolean
description: Whether the server has returned all available channels.
GetServersRequest:
type: object
properties:
start_server_id:
type: string
format: int64
description: The server ID from which to start listing.
max_results:
type: string
format: int64
GetServersResponse:
type: object
properties:
server:
type: array
items:
$ref: '#/components/schemas/Server'
end:
type: boolean
GetChannelRequest:
type: object
required:
- channel_id
properties:
channel_id:
type: string
format: int64
GetChannelResponse:
type: object
properties:
channel:
$ref: '#/components/schemas/Channel'
GetServerSocketsRequest:
type: object
required:
- server_id
properties:
server_id:
type: string
format: int64
start_socket_id:
type: string
format: int64
max_results:
type: string
format: int64
GetServerSocketsResponse:
type: object
properties:
socket_ref:
type: array
items:
$ref: '#/components/schemas/SocketRef'
end:
type: boolean
Channel:
type: object
properties:
ref:
$ref: '#/components/schemas/ChannelRef'
data:
$ref: '#/components/schemas/ChannelData'
channel_ref:
type: array
items:
$ref: '#/components/schemas/ChannelRef'
subchannel_ref:
type: array
items:
$ref: '#/components/schemas/SubchannelRef'
socket_ref:
type: array
items:
$ref: '#/components/schemas/SocketRef'
ChannelRef:
type: object
properties:
channel_id:
type: string
format: int64
name:
type: string
SubchannelRef:
type: object
properties:
subchannel_id:
type: string
format: int64
name:
type: string
SocketRef:
type: object
properties:
socket_id:
type: string
format: int64
name:
type: string
ChannelData:
type: object
properties:
state:
type: object
properties:
state:
type: string
enum:
- UNKNOWN
- IDLE
- CONNECTING
- READY
- TRANSIENT_FAILURE
- SHUTDOWN
target:
type: string
description: The target URI this channel is connecting to.
trace:
type: object
properties:
num_events_logged:
type: string
format: int64
events:
type: array
items:
type: object
properties:
description:
type: string
severity:
type: string
enum:
- CT_UNKNOWN
- CT_INFO
- CT_WARNING
- CT_ERROR
timestamp:
type: string
format: date-time
calls_started:
type: string
format: int64
calls_succeeded:
type: string
format: int64
calls_failed:
type: string
format: int64
last_call_started_timestamp:
type: string
format: date-time
Server:
type: object
properties:
ref:
type: object
properties:
server_id:
type: string
format: int64
name:
type: string
data:
type: object
properties:
calls_started:
type: string
format: int64
calls_succeeded:
type: string
format: int64
calls_failed:
type: string
format: int64
last_call_started_timestamp:
type: string
format: date-time
trace:
type: object
properties:
num_events_logged:
type: string
format: int64
listen_socket:
type: array
items:
$ref: '#/components/schemas/SocketRef'
tags:
- name: Channelz
description: >-
Channelz service for runtime introspection of gRPC channels,
subchannels, servers, and sockets.
- name: Health Checking
description: >-
gRPC Health Checking Protocol endpoints for monitoring service
availability and readiness.
- name: Reflection
description: >-
Server Reflection service for runtime discovery of available
gRPC services and their definitions.