Upstash

Serverless Redis with Upstash

Upstash is a serverless data platform designed for modern applications that need fast, simple, and scalable data storage with minimal setup. Upstash specializes in providing Redis and Kafka as fully managed, pay-per-request cloud services, making it a popular choice for developers building serverless, edge, and event-driven architectures.

With Upstash Redis, you can:

  • Store and retrieve data instantly: Read and write key-value pairs, hashes, lists, sets, and more—all over a high-performance REST API.
  • Scale serverlessly: No infrastructure to manage. Upstash automatically scales with your app and charges only for what you use.
  • Access globally: Deploy near your users with multi-region support and global distribution.
  • Integrate easily: Use Upstash’s REST API in serverless functions, edge workers, Next.js, Vercel, Cloudflare Workers, and more.
  • Automate with scripts: Run Lua scripts for advanced transactions and automation.
  • Ensure security: Protect your data with built-in authentication and TLS encryption.

In Sim, the Upstash integration empowers your agents and workflows to read, write, and manage data in Upstash Redis using simple, unified commands—perfect for building scalable automations, caching results, managing queues, and more, all without dealing with server management.

Usage Instructions

Connect to Upstash Redis to perform key-value, hash, list, and utility operations via the REST API.

Tools

upstash_redis_get

Get the value of a key from Upstash Redis.

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
keystringYesThe key to retrieve

Output

ParameterTypeDescription
keystringThe key that was retrieved
valuejsonThe value of the key (string), or null if not found

upstash_redis_set

Set the value of a key in Upstash Redis with an optional expiration time in seconds.

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
keystringYesThe key to set
valuestringYesThe value to store
exnumberNoExpiration time in seconds (optional)

Output

ParameterTypeDescription
keystringThe key that was set
resultstringThe result of the SET operation (typically "OK")

upstash_redis_delete

Delete a key from Upstash Redis.

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
keystringYesThe key to delete

Output

ParameterTypeDescription
keystringThe key that was deleted
deletedCountnumberNumber of keys deleted (0 if key did not exist, 1 if deleted)

upstash_redis_keys

List keys matching a pattern in Upstash Redis. Defaults to listing all keys (*).

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
patternstringNoPattern to match keys (e.g., "user:"). Defaults to "" for all keys.

Output

ParameterTypeDescription
patternstringThe pattern used to match keys
keysarrayList of keys matching the pattern
countnumberNumber of keys found

upstash_redis_command

Execute an arbitrary Redis command against Upstash Redis. Pass the full command as a JSON array (e.g., [

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
commandstringYesRedis command as a JSON array (e.g., ["HSET", "myhash", "field1", "value1"]) or a simple command string (e.g., "PING")

Output

ParameterTypeDescription
commandstringThe command that was executed
resultjsonThe result of the Redis command

upstash_redis_hset

Set a field in a hash stored at a key in Upstash Redis.

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
keystringYesThe hash key
fieldstringYesThe field name within the hash
valuestringYesThe value to store in the hash field

Output

ParameterTypeDescription
keystringThe hash key
fieldstringThe field that was set
resultnumberNumber of new fields added (0 if field was updated, 1 if new)

upstash_redis_hget

Get the value of a field in a hash stored at a key in Upstash Redis.

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
keystringYesThe hash key
fieldstringYesThe field name to retrieve

Output

ParameterTypeDescription
keystringThe hash key
fieldstringThe field that was retrieved
valuejsonThe value of the hash field (string), or null if not found

upstash_redis_hgetall

Get all fields and values of a hash stored at a key in Upstash Redis.

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
keystringYesThe hash key

Output

ParameterTypeDescription
keystringThe hash key
fieldsobjectAll field-value pairs in the hash, keyed by field name
fieldCountnumberNumber of fields in the hash

upstash_redis_incr

Atomically increment the integer value of a key by one in Upstash Redis. If the key does not exist, it is set to 0 before incrementing.

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
keystringYesThe key to increment

Output

ParameterTypeDescription
keystringThe key that was incremented
valuenumberThe new value after incrementing

upstash_redis_expire

Set a timeout on a key in Upstash Redis. After the timeout, the key is deleted.

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
keystringYesThe key to set expiration on
secondsnumberYesTimeout in seconds

Output

ParameterTypeDescription
keystringThe key that expiration was set on
resultnumber1 if the timeout was set, 0 if the key does not exist

upstash_redis_ttl

Get the remaining time to live of a key in Upstash Redis. Returns -1 if the key has no expiration, -2 if the key does not exist.

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
keystringYesThe key to check TTL for

Output

ParameterTypeDescription
keystringThe key checked
ttlnumberRemaining TTL in seconds. Positive integer if the key has a TTL set, -1 if the key exists with no expiration, -2 if the key does not exist.

upstash_redis_lpush

Prepend a value to the beginning of a list in Upstash Redis. Creates the list if it does not exist.

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
keystringYesThe list key
valuestringYesThe value to prepend to the list

Output

ParameterTypeDescription
keystringThe list key
lengthnumberThe length of the list after the push

upstash_redis_lrange

Get a range of elements from a list in Upstash Redis. Use 0 and -1 for start and stop to get all elements.

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
keystringYesThe list key
startnumberYesStart index (0-based, negative values count from end)
stopnumberYesStop index (inclusive, -1 for last element)

Output

ParameterTypeDescription
keystringThe list key
valuesarrayList of elements in the specified range
countnumberNumber of elements returned

upstash_redis_exists

Check if a key exists in Upstash Redis. Returns true if the key exists, false otherwise.

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
keystringYesThe key to check

Output

ParameterTypeDescription
keystringThe key that was checked
existsbooleanWhether the key exists (true) or not (false)

upstash_redis_setnx

Set the value of a key only if it does not already exist. Returns true if the key was set, false if it already existed.

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
keystringYesThe key to set
valuestringYesThe value to store if the key does not exist

Output

ParameterTypeDescription
keystringThe key that was attempted to set
wasSetbooleanWhether the key was set (true) or already existed (false)

upstash_redis_incrby

Increment the integer value of a key by a given amount. Use a negative value to decrement. If the key does not exist, it is set to 0 before the operation.

Input

ParameterTypeRequiredDescription
restUrlstringYesUpstash Redis REST URL
restTokenstringYesUpstash Redis REST Token
keystringYesThe key to increment
incrementnumberYesAmount to increment by (use negative value to decrement)

Output

ParameterTypeDescription
keystringThe key that was incremented
valuenumberThe new value after incrementing

On this page

Start building today
Trusted by over 60,000 builders.
Build Agentic workflows visually on a drag-and-drop canvas or with natural language.
Get started