REST API Index
- Execute a statement (/ksql endpoint)
- Run a query (/query endpoint)
- Run push and pull queries (/query-stream endpoint)
- Terminate a cluster (/ksql/terminate endpoint)
- Introspect query status (/status endpoint)
- Introspect server status (/info endpoint)
- Introspect cluster status (/clusterStatus endpoint)
- Get the validity of a property (/is_valid_property)
REST Endpoint¶
The default HTTP API endpoint is http://0.0.0.0:8088/
.
Change the server configuration that controls the HTTP API endpoint by
setting the listeners
parameter in the ksqlDB server config file. For
more info, see listeners.
To configure the endpoint to use HTTPS, see
Configuring Listener for SSL encryption.
Content Types¶
The ksqlDB HTTP API uses content types for requests and responses to indicate the serialization format of the data and the API version.
Your request should specify this serialization
format and version in the Accept
header, for example:
1 |
|
The less specific application/json
content type is also permitted.
However, this is only for compatibility and ease of use, and you should
use the versioned value where possible. application/json
maps to the latest
versioned content type, meaning the response may change after upgrading the server to
a later version.
The server also supports content negotiation, so you may include multiple, weighted preferences:
1 |
|
For example, content negotiation is useful when a new version of the API is preferred, but you are not sure if it is available yet.
Here's an example request that returns the results from the
LIST STREAMS
command:
1 2 3 4 5 6 |
|
Here's an example request that retrieves streaming data from
TEST_STREAM
:
1 2 3 4 5 6 |
|
A PROTOBUF
content type where the rows are serialized in the PROTOBUF
format
is also supported for querying the /query
and /query-stream
endpoints.
You can specify this serialization format in the Accept
header:
1 |
|
CURRENTLOCATION
with the PROTOBUF
content type:
1 2 3 4 5 6 |
|
1 2 3 4 5 6 7 |
|
protoSchema
field in the header
corresponds to the content of a .proto
file that the proto compiler uses at build time.
Use the protoSchema
field to deserialize the protobufBytes
into PROTOBUF
messages.
Provide the --basic
and --user
options if basic HTTPS authentication is
enabled on the cluster, as shown in the following command.
1 2 3 4 5 6 7 |
|
Errors¶
All API endpoints use a standard error message format for any requests that return an HTTP status indicating an error (any 4xx or 5xx statuses):
1 2 3 4 5 6 7 |
|
Some endpoints may include additional fields that provide more context for handling the error.