A simple REST API for storing and retrieving key-value pairs in the cloud
Use this API in your TurboWarp projects with our custom extension
Live demo: A dart-throwing game that syncs player scores to the KV store in real time
Live demo: A scoreboard that polls the KV store to display ranked player scores
This API allows you to store key-value pairs organized by topics. Values automatically expire after 24 hours by default.
| Limit | Value | Notes |
|---|---|---|
| Maximum item size | 400 KB | DynamoDB limit for combined topic + key + value |
| Maximum request body | 6 MB | Lambda payload limit (POST endpoint) |
| Maximum URL length | ~2,000 chars | Recommended limit for PUT endpoint values |
| Topic name | 2 KB | DynamoDB partition key limit |
| Key name | 1 KB | DynamoDB sort key limit |
List all keys in a topic.
| Parameter | Type | Description |
|---|---|---|
topic | string | The topic/namespace to list keys from |
curl https://kvstore.quincycoders.click/myTopic
200 Success
{
"topic": "myTopic",
"keys": ["key1", "key2", "key3"]
}
Retrieve a stored value by topic and key.
| Parameter | Type | Description |
|---|---|---|
topic | string | The topic/namespace for the key |
key | string | The key to retrieve |
curl https://kvstore.quincycoders.click/myTopic/myKey
200 Success
{
"value": "Hello, World!"
}
404 Not Found
{
"error": "Key 'myKey' not found in topic 'myTopic'"
}
Store a value using URL path parameters. The value is automatically URL-decoded.
| Parameter | Type | Description |
|---|---|---|
topic | string | The topic/namespace for the key |
key | string | The key to store |
value | string | The value to store (URL-encoded) |
curl -X PUT https://kvstore.quincycoders.click/myTopic/myKey/Hello%20World
201 Created
{
"message": "Value stored successfully",
"topic": "myTopic",
"key": "myKey"
}
Store a value using a JSON body. Allows setting a custom TTL.
| Parameter | Type | Description |
|---|---|---|
topic | string | The topic/namespace for the key |
| Parameter | Type | Required | Description |
|---|---|---|---|
key | string | Yes | The key to store |
value | any | Yes | The value to store |
ttl | number | No | Time-to-live in seconds (default: 86400) |
curl -X POST https://kvstore.quincycoders.click/myTopic \
-H "Content-Type: application/json" \
-d '{"key": "myKey", "value": "Hello, World!", "ttl": 3600}'
201 Created
{
"message": "Value stored successfully",
"topic": "myTopic",
"key": "myKey"
}
Delete a stored value.
| Parameter | Type | Description |
|---|---|---|
topic | string | The topic/namespace for the key |
key | string | The key to delete |
curl -X DELETE https://kvstore.quincycoders.click/myTopic/myKey
200 Success
{
"message": "Value deleted successfully",
"topic": "myTopic",
"key": "myKey"
}
404 Not Found
{
"error": "Key 'myKey' not found in topic 'myTopic'"
}
Delete all keys in a topic.
| Parameter | Type | Description |
|---|---|---|
topic | string | The topic/namespace to delete |
curl -X DELETE https://kvstore.quincycoders.click/myTopic
200 Success
{
"message": "Topic deleted successfully",
"topic": "myTopic",
"deletedCount": 5
}
| Status Code | Description |
|---|---|
| 400 | Bad Request - Missing required parameters |
| 404 | Not Found - Key does not exist |
| 500 | Internal Server Error |