List Topics
GET /topics
Lists all topics belonging to the user.
Response:
JSON Map of topic name to topic’s partition:
{
"cities": 12,
"greetings": 1,
"words": 137
}
List Consumers
Lists consumers belonging to the user known by the REST server.
Response:
JSON array of GroupAssignments
.
TopicAssignments{
topic: String,
partitions: Array<Int>
}
InstanceAssignments{
name: String,
topics: Array<TopicAssignments>
}
GroupAssignments{
name: String,
instances: Array<InstanceAssignments>
}
[
{
"name": "mygroup",
"instances": [
{
"name": "instance-1",
"topics": [
{
"topic": "cities",
"partitions": [0, 1, 2]
},
{
"topic": "words",
"partitions": [10, 21, 32]
}
]
},
{
"name": "instance-2",
"topics": [
{
"topic": "cities",
"partitions": [3, 4, 5]
},
{
"topic": "words",
"partitions": [1, 3, 5, 7]
}
]
}
]
}
]
List Committed Offsets
[GET | POST] /committed/$CONSUMER_GROUP/$INSTANCE_ID?timeout=$TIMEOUT
Returns the last committed offsets for the topic partitions inside the group.
Can be used alongside Commit Consumer API. Request body should be a single
TopicPartition
object or an array of TopicPartition
s:
TopicPartition{topic: String, partition: Int}
timeout
parameter defines the time to wait at most for the offsets in
milliseconds. It’s optional and its default value is 10 seconds (10000
).
- List committed offset for a single topic partition:
curl https://tops-stingray-7863-eu1-rest-kafka.upstash.io/committed/mygroup/myconsumer -u myuser:mypass \
-d '{"topic": "cities", "partition": 0}'
- List committed offsets for multiple topic partitions:
curl https://tops-stingray-7863-eu1-rest-kafka.upstash.io/committed/mygroup/myconsumer -u myuser:mypass \
-d '[
{"topic": "cities", "partition": 0},
{"topic": "cities", "partition": 1},
{"topic": "greetings", "partition": 0}
]'
- List committed offsets with a
1 second
timeout:
curl https://tops-stingray-7863-eu1-rest-kafka.upstash.io/committed/mygroup/myconsumer?timeout=1000 -u myuser:mypass \
-d '{"topic": "cities", "partition": 1}'
Response:
Returns a JSON array of TopicPartitionOffset
s:
[
{ "topic": "cities", "partition": 0, "offset": 11 },
{ "topic": "cities", "partition": 1, "offset": 21 },
{ "topic": "greetings", "partition": 0, "offset": 1 }
]
Get Topic Partition Offsets
[GET | POST] /offsets/$TIMESTAMP?timeout=$TIMEOUT
Returns the offsets for the given partitions by timestamp. The returned offset
for each partition is the earliest offset whose timestamp is greater than or
equal to the given timestamp in the corresponding partition.
Request body should be a single TopicPartition
object or an array of
TopicPartition
s:
TopicPartition{topic: String, partition: Int}
timeout
parameter defines the time to wait at most for the offsets in
milliseconds. It’s optional and its default value is 10 seconds (10000
).
To find out the first and the end offsets for the partitions, earliest
and
latest
strings should be used as timestamp values.
-
Beginning offsets for topic partitions:
curl https://tops-stingray-7863-eu1-rest-kafka.upstash.io/offsets/earliest -u myuser:mypass \
-d '[
{"topic": "cities", "partition": 0},
{"topic": "cities", "partition": 1},
{"topic": "greetings", "partition": 0}
]'
-
End offsets for topic partitions:
curl https://tops-stingray-7863-eu1-rest-kafka.upstash.io/offsets/latest -u myuser:mypass \
-d '[
{"topic": "cities", "partition": 0},
{"topic": "cities", "partition": 1},
{"topic": "greetings", "partition": 0}
]'
-
Offsets with a 1 second
timeout:
curl https://tops-stingray-7863-eu1-rest-kafka.upstash.io/offsets/latest?timeout=1000 -u myuser:mypass \
-d '{"topic": "cities", "partition": 1}'
Response:
Returns a JSON array of TopicPartitionOffset
s:
[
{ "topic": "cities", "partition": 0, "offset": 11 },
{ "topic": "cities", "partition": 1, "offset": 21 },
{ "topic": "greetings", "partition": 0, "offset": 1 }
]