From 4ec72c66e25b7c80cb6aa2c1baca77601178a6a8 Mon Sep 17 00:00:00 2001 From: CahidArda Date: Tue, 25 Aug 2026 16:09:38 +0300 Subject: [PATCH 1/9] developer-api: rename openapi.yml to openapi.yaml so Mintlify serves it Mintlify only serves .yaml files, so the Developer API spec was not reachable at /docs/devops/developer-api/openapi.yaml like the QStash and Workflow specs are. --- devops/developer-api/{openapi.yml => openapi.yaml} | 0 docs.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename devops/developer-api/{openapi.yml => openapi.yaml} (100%) diff --git a/devops/developer-api/openapi.yml b/devops/developer-api/openapi.yaml similarity index 100% rename from devops/developer-api/openapi.yml rename to devops/developer-api/openapi.yaml diff --git a/docs.json b/docs.json index 9798d492..f6e181cb 100644 --- a/docs.json +++ b/docs.json @@ -2110,7 +2110,7 @@ }, { "tab": "Developer API", - "openapi": "devops/developer-api/openapi.yml", + "openapi": "devops/developer-api/openapi.yaml", "groups": [ { "group": "Developer API", From d5307f1c74a10ee5de1039564baca0732897d5cf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2026 13:17:50 +0000 Subject: [PATCH 2/9] chore(llms): regenerate llms.txt and llms-full.txt --- llms-full.txt | 173 +++++++++++++++++++++++++++++++------------------- llms.txt | 2 +- 2 files changed, 107 insertions(+), 68 deletions(-) diff --git a/llms-full.txt b/llms-full.txt index e4eea2f0..d0286ba5 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -732,50 +732,50 @@ The combined `upstash` skill includes the full `@upstash/cli` command reference, # Disable Production Pack Source: https://upstash.com/docs/api-reference/qstash/disable-production-pack -/devops/developer-api/openapi.yml post /qstash/disable-prodpack/{id} +/devops/developer-api/openapi.yaml post /qstash/disable-prodpack/{id} Disables the production pack for a QStash instance. # Enable Production Pack Source: https://upstash.com/docs/api-reference/qstash/enable-production-pack -/devops/developer-api/openapi.yml post /qstash/enable-prodpack/{id} +/devops/developer-api/openapi.yaml post /qstash/enable-prodpack/{id} Enables the production pack for a QStash instance. # Get QStash Source: https://upstash.com/docs/api-reference/qstash/get-qstash -/devops/developer-api/openapi.yml get /qstash/user/{id} +/devops/developer-api/openapi.yaml get /qstash/user/{id} Retrieves detailed information about the specified QStash user, including plan details, limits, and configuration # Get QStash IPv4 Addresses Source: https://upstash.com/docs/api-reference/qstash/get-qstash-ipv4-addresses -/devops/developer-api/openapi.yml get /qstash/ipv4 +/devops/developer-api/openapi.yaml get /qstash/ipv4 Returns the list of IPv4 addresses used by QStash for sending requests. # Get QStash Stats Source: https://upstash.com/docs/api-reference/qstash/get-qstash-stats -/devops/developer-api/openapi.yml get /qstash/stats/{id} +/devops/developer-api/openapi.yaml get /qstash/stats/{id} Retrieves detailed usage statistics for the QStash account including daily requests, billing, bandwidth, and workflow metrics over time. # List QStash Users Source: https://upstash.com/docs/api-reference/qstash/list-qstash-users -/devops/developer-api/openapi.yml get /qstash/users +/devops/developer-api/openapi.yaml get /qstash/users Retrieves a list of all QStash users associated with the account, including plan details, limits, and configuration. # Move QStash to Team Source: https://upstash.com/docs/api-reference/qstash/move-qstash-to-team -/devops/developer-api/openapi.yml post /qstash/move-to-team +/devops/developer-api/openapi.yaml post /qstash/move-to-team Moves a QStash instance to a different team. # Reset QStash Token Source: https://upstash.com/docs/api-reference/qstash/reset-qstash-token -/devops/developer-api/openapi.yml post /qstash/rotate-token/{id} +/devops/developer-api/openapi.yaml post /qstash/rotate-token/{id} Resets the authentication credentials for the QStash user account. This invalidates the old password and token, and generates new ones. Returns the updated user information with new credentials. @@ -783,68 +783,68 @@ Returns the updated user information with new credentials. # Set QStash Plan Source: https://upstash.com/docs/api-reference/qstash/set-qstash-plan -/devops/developer-api/openapi.yml post /qstash/set-plan/{id} +/devops/developer-api/openapi.yaml post /qstash/set-plan/{id} Changes the QStash account to a different plan type. This operation changes the plan and associated limits for the QStash account. # Update QStash Budget Source: https://upstash.com/docs/api-reference/qstash/update-qstash-budget -/devops/developer-api/openapi.yml patch /qstash/update-budget/{id} +/devops/developer-api/openapi.yaml patch /qstash/update-budget/{id} Updates the monthly spending budget limit for a QStash instance. # Create Search Index Source: https://upstash.com/docs/api-reference/search/create-search-index -/devops/developer-api/openapi.yml post /search +/devops/developer-api/openapi.yaml post /search Creates a new search index with the specified configuration # Delete Search Index Source: https://upstash.com/docs/api-reference/search/delete-search-index -/devops/developer-api/openapi.yml delete /search/{id} +/devops/developer-api/openapi.yaml delete /search/{id} Permanently deletes a search index and all its data # Get Index Stats Source: https://upstash.com/docs/api-reference/search/get-index-stats -/devops/developer-api/openapi.yml get /search/{id}/stats +/devops/developer-api/openapi.yaml get /search/{id}/stats Retrieves statistics and metrics for a specific search index # Get Search Index Source: https://upstash.com/docs/api-reference/search/get-search-index -/devops/developer-api/openapi.yml get /search/{id} +/devops/developer-api/openapi.yaml get /search/{id} Retrieves detailed information about a specific search index # Get Search Stats Source: https://upstash.com/docs/api-reference/search/get-search-stats -/devops/developer-api/openapi.yml get /search/stats +/devops/developer-api/openapi.yaml get /search/stats Get search statistics for all the search indices associated with the authenticated user # List Search Indexes Source: https://upstash.com/docs/api-reference/search/list-search-indexes -/devops/developer-api/openapi.yml get /search +/devops/developer-api/openapi.yaml get /search Returns a list of all search indices belonging to the authenticated user. # Rename Search Index Source: https://upstash.com/docs/api-reference/search/rename-search-index -/devops/developer-api/openapi.yml post /search/{id}/rename +/devops/developer-api/openapi.yaml post /search/{id}/rename Renames a search index. # Reset Password Source: https://upstash.com/docs/api-reference/search/reset-password -/devops/developer-api/openapi.yml post /search/{id}/reset-password +/devops/developer-api/openapi.yaml post /search/{id}/reset-password This endpoint resets the regular and readonly tokens of a search index. # Transfer Search Index Source: https://upstash.com/docs/api-reference/search/transfer-search-index -/devops/developer-api/openapi.yml post /search/{id}/transfer +/devops/developer-api/openapi.yaml post /search/{id}/transfer Transfers ownership of a search index to another team. Transferring to a personal account is not supported. However, transferring from a personal account to a team is allowed. @@ -852,13 +852,13 @@ However, transferring from a personal account to a team is allowed. # Get Index Stats Source: https://upstash.com/docs/api-reference/vector/get-index-stats -/devops/developer-api/openapi.yml get /vector/index/{id}/stats +/devops/developer-api/openapi.yaml get /vector/index/{id}/stats Retrieves statistics and metrics for a specific vector index # Get Vector Stats Source: https://upstash.com/docs/api-reference/vector/get-vector-stats -/devops/developer-api/openapi.yml get /vector/index/stats +/devops/developer-api/openapi.yaml get /vector/index/stats Get vector statistics for all the vector indices associated with the authenticated user # Code Interpreter with Vercel AI SDK @@ -2348,6 +2348,29 @@ box = Box.create( ``` + + + +Get your API key from [OpenCode](https://opencode.ai). + +```bash title=".env" {2} +UPSTASH_BOX_API_KEY=abx_xxxxxxxxxxxxxxxxxxxxxxxx +ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxx +``` + +```tsx {5-8} +import { Box, Agent, OpenCodeModel } from "@upstash/box" + +const box = await Box.create({ + runtime: "node", + agent: { + provider: Agent.OpenCode, + model: OpenCodeModel.Claude_Sonnet_4_5, + apiKey: process.env.ANTHROPIC_API_KEY!, + }, +}) +``` + @@ -8502,24 +8525,40 @@ Check out [our blog post](https://upstash.com/blog/global-database) to learn mor # Scale to Zero Source: https://upstash.com/docs/common/concepts/scale-to-zero -Traditionally, cloud services required users to predict their resource needs and provision servers or instances based on those predictions. This often led to over-provisioning to handle potential peak loads, resulting in paying for unused resources during periods of low demand. +Traditionally, cloud services required users to predict their resource needs and provision servers based on those predictions. This often led to over-provisioning for potential peak loads and paying for unused resources during periods of low demand. + +Upstash solves this with two pricing models: -By _scaling to zero_, our pricing model aligns more closely with actual usage. +* **Pay-as-you-go** databases _scale to zero_: you're billed per command, and an idle database costs $0. +* **Fixed plans** offer a flat monthly price with unlimited commands for sustained, high-throughput workloads. + +Both run on the same high-performance production infrastructure. ## Pay for usage -You're only charged for the resources you actively use. When your application experiences low activity or no incoming requests, the system automatically scales down resources to a minimal level. This means you're no longer paying for idle capacity, resulting in cost savings. +On pay-as-you-go, you're only charged for the commands you run ($0.20 per 100K commands). When your application has little or no traffic, you pay little or nothing. - +This is ideal for: + +* Small teams and side projects that don't want a fixed monthly bill +* Spiky traffic, where provisioning for peak would mean paying for idle capacity most of the time +* Prototypes and internal tools with low or intermittent usage + +## Fixed plans for high throughput + +Once your traffic is sustained, per-command billing may no longer be the best fit. Fixed plans start at $10/month and offer: + +* **Unlimited commands** at a flat monthly price, so costs stay predictable no matter how much traffic you serve +* **Higher throughput limits**: up to 16,000 commands per second on larger fixed plans, and 100K+ commands per second with dedicated resources on Enterprise +* **Graceful behavior under load**: requests beyond your plan's throughput limit are briefly queued instead of rejected, so traffic spikes don't turn into errors -## Flexibility -"Scaling to zero" offers flexibility in scaling both up and down. As your application experiences traffic spikes, the system scales up resources to meet demand. Conversely, during quiet periods, resources scale down. +See [Redis pricing](https://upstash.com/pricing/redis) for the full plan comparison, or a [live throughput benchmark](https://upstash.com/blog/upstash-vs-aws-elasticache-serverless-redis-pricing-and-performance-2026) sustaining 16,000+ commands per second on a fixed plan. -## Focus on Innovation +## Scale up, not just down -Developers can concentrate on building and improving the application without constantly worrying about resource optimization. Upstash handles the scaling, allowing developers to focus on creating features that enhance user experiences. +Because scaling is automatic in both directions, you never manage capacity yourself. During traffic spikes, Upstash scales up to meet demand; during quiet periods, resources (and your bill, on pay-as-you-go) scale back down. -In essence, this aligns pricing with actual utilization, increases cost efficiency, and promotes a more sustainable approach to resource consumption. This model empowers businesses to leverage cloud resources without incurring unnecessary expenses, making cloud computing more accessible and attractive to a broader range of organizations. +You can start on the free tier, move to pay-as-you-go as you grow, and switch to a fixed plan once sustained throughput makes a flat price the cheaper, more predictable option. # Serverless Source: https://upstash.com/docs/common/concepts/serverless @@ -9095,7 +9134,7 @@ You can see the average latencies for different regions in # List Audit Logs Source: https://upstash.com/docs/devops/developer-api/account/list_audit_logs -/devops/developer-api/openapi.yml get /auditlogs +/devops/developer-api/openapi.yaml get /auditlogs This endpoint lists all audit logs of user. # Authentication @@ -9188,49 +9227,49 @@ privileges. For example you will be able to create a key with read-only access. # Create Backup Source: https://upstash.com/docs/devops/developer-api/redis/backup/create_backup -/devops/developer-api/openapi.yml post /redis/create-backup/{id} +/devops/developer-api/openapi.yaml post /redis/create-backup/{id} This endpoint creates a backup for a Redis database. # Delete Backup Source: https://upstash.com/docs/devops/developer-api/redis/backup/delete_backup -/devops/developer-api/openapi.yml delete /redis/delete-backup/{id}/{backup_id} +/devops/developer-api/openapi.yaml delete /redis/delete-backup/{id}/{backup_id} This endpoint deletes a backup of a Redis database. # Disable Daily Backup Source: https://upstash.com/docs/devops/developer-api/redis/backup/disable_dailybackup -/devops/developer-api/openapi.yml patch /redis/disable-dailybackup/{id} +/devops/developer-api/openapi.yaml patch /redis/disable-dailybackup/{id} This endpoint disables daily backup for a Redis database. # Enable Daily Backup Source: https://upstash.com/docs/devops/developer-api/redis/backup/enable_dailybackup -/devops/developer-api/openapi.yml patch /redis/enable-dailybackup/{id} +/devops/developer-api/openapi.yaml patch /redis/enable-dailybackup/{id} This endpoint enables daily backup for a Redis database. # List Backup Source: https://upstash.com/docs/devops/developer-api/redis/backup/list_backup -/devops/developer-api/openapi.yml get /redis/list-backup/{id} +/devops/developer-api/openapi.yaml get /redis/list-backup/{id} This endpoint lists all backups for a Redis database. # Restore Backup Source: https://upstash.com/docs/devops/developer-api/redis/backup/restore_backup -/devops/developer-api/openapi.yml post /redis/restore-backup/{id} +/devops/developer-api/openapi.yaml post /redis/restore-backup/{id} This endpoint restores data from an existing backup. # Change Database Plan Source: https://upstash.com/docs/devops/developer-api/redis/change_plan -/devops/developer-api/openapi.yml post /redis/{id}/change-plan +/devops/developer-api/openapi.yaml post /redis/{id}/change-plan This endpoint changes the plan of a Redis database. # Create Redis Database Source: https://upstash.com/docs/devops/developer-api/redis/create_database_global -/devops/developer-api/openapi.yml post /redis/database +/devops/developer-api/openapi.yaml post /redis/database This endpoint creates a new Redis database. To create a database manually, you can use the [Upstash Console](https://console.upstash.com/redis). @@ -9240,169 +9279,169 @@ For a quick development database, POST to https://upstash.com/start-redis — no # Delete Database Source: https://upstash.com/docs/devops/developer-api/redis/delete_database -/devops/developer-api/openapi.yml delete /redis/database/{id} +/devops/developer-api/openapi.yaml delete /redis/database/{id} This endpoint deletes a database. # Disable Auto Upgrade Source: https://upstash.com/docs/devops/developer-api/redis/disable_autoscaling -/devops/developer-api/openapi.yml post /redis/disable-autoupgrade/{id} +/devops/developer-api/openapi.yaml post /redis/disable-autoupgrade/{id} This endpoint disables Auto Upgrade for given database. # Disable Eviction Source: https://upstash.com/docs/devops/developer-api/redis/disable_eviction -/devops/developer-api/openapi.yml post /redis/disable-eviction/{id} +/devops/developer-api/openapi.yaml post /redis/disable-eviction/{id} This endpoint disables eviction for given database. # Enable Auto Upgrade Source: https://upstash.com/docs/devops/developer-api/redis/enable_autoscaling -/devops/developer-api/openapi.yml post /redis/enable-autoupgrade/{id} +/devops/developer-api/openapi.yaml post /redis/enable-autoupgrade/{id} This endpoint enables Auto Upgrade for given database. # Enable Eviction Source: https://upstash.com/docs/devops/developer-api/redis/enable_eviction -/devops/developer-api/openapi.yml post /redis/enable-eviction/{id} +/devops/developer-api/openapi.yaml post /redis/enable-eviction/{id} This endpoint enables eviction for given database. # Enable TLS Source: https://upstash.com/docs/devops/developer-api/redis/enable_tls -/devops/developer-api/openapi.yml post /redis/enable-tls/{id} +/devops/developer-api/openapi.yaml post /redis/enable-tls/{id} This endpoint enables tls on a database. # Get Database Source: https://upstash.com/docs/devops/developer-api/redis/get_database -/devops/developer-api/openapi.yml get /redis/database/{id} +/devops/developer-api/openapi.yaml get /redis/database/{id} This endpoint gets details of a database. # Get Database Stats Source: https://upstash.com/docs/devops/developer-api/redis/get_database_stats -/devops/developer-api/openapi.yml get /redis/stats/{id} +/devops/developer-api/openapi.yaml get /redis/stats/{id} This endpoint gets detailed stats of a database. # List Databases Source: https://upstash.com/docs/devops/developer-api/redis/list_databases -/devops/developer-api/openapi.yml get /redis/databases +/devops/developer-api/openapi.yaml get /redis/databases This endpoint list all databases of user. # Move To Team Source: https://upstash.com/docs/devops/developer-api/redis/moveto_team -/devops/developer-api/openapi.yml post /redis/move-to-team +/devops/developer-api/openapi.yaml post /redis/move-to-team This endpoint moves database under a target team # Rename Database Source: https://upstash.com/docs/devops/developer-api/redis/rename_database -/devops/developer-api/openapi.yml post /redis/rename/{id} +/devops/developer-api/openapi.yaml post /redis/rename/{id} This endpoint renames a database. # Reset Password Source: https://upstash.com/docs/devops/developer-api/redis/reset_password -/devops/developer-api/openapi.yml post /redis/reset-password/{id} +/devops/developer-api/openapi.yaml post /redis/reset-password/{id} This endpoint updates the password of a database. # Update Database Budget Source: https://upstash.com/docs/devops/developer-api/redis/update_budget -/devops/developer-api/openapi.yml patch /redis/update-budget/{id} +/devops/developer-api/openapi.yaml patch /redis/update-budget/{id} This endpoint updates the monthly budget of a Redis database. # Update Regions Source: https://upstash.com/docs/devops/developer-api/redis/update_regions -/devops/developer-api/openapi.yml post /redis/update-regions/{id} +/devops/developer-api/openapi.yaml post /redis/update-regions/{id} Update the regions of a database # Add Team Member Source: https://upstash.com/docs/devops/developer-api/teams/add_team_member -/devops/developer-api/openapi.yml post /teams/member +/devops/developer-api/openapi.yaml post /teams/member This endpoint adds a new team member to the specified team. # Create Team Source: https://upstash.com/docs/devops/developer-api/teams/create_team -/devops/developer-api/openapi.yml post /team +/devops/developer-api/openapi.yaml post /team This endpoint creates a new team. # Delete Team Source: https://upstash.com/docs/devops/developer-api/teams/delete_team -/devops/developer-api/openapi.yml delete /team/{id} +/devops/developer-api/openapi.yaml delete /team/{id} This endpoint deletes a team. # Delete Team Member Source: https://upstash.com/docs/devops/developer-api/teams/delete_team_member -/devops/developer-api/openapi.yml delete /teams/member +/devops/developer-api/openapi.yaml delete /teams/member This endpoint deletes a team member from the specified team. # Get Team Members Source: https://upstash.com/docs/devops/developer-api/teams/get_team_members -/devops/developer-api/openapi.yml get /teams/{team_id} +/devops/developer-api/openapi.yaml get /teams/{team_id} This endpoint list all members of a team. # List Teams Source: https://upstash.com/docs/devops/developer-api/teams/list_teams -/devops/developer-api/openapi.yml get /teams +/devops/developer-api/openapi.yaml get /teams This endpoint lists all teams of user. # Create Index Source: https://upstash.com/docs/devops/developer-api/vector/create_index -/devops/developer-api/openapi.yml post /vector/index +/devops/developer-api/openapi.yaml post /vector/index This endpoint creates an index. # Delete Index Source: https://upstash.com/docs/devops/developer-api/vector/delete_index -/devops/developer-api/openapi.yml delete /vector/index/{id} +/devops/developer-api/openapi.yaml delete /vector/index/{id} This endpoint deletes an index. # Get Index Source: https://upstash.com/docs/devops/developer-api/vector/get_index -/devops/developer-api/openapi.yml get /vector/index/{id} +/devops/developer-api/openapi.yaml get /vector/index/{id} This endpoint returns the data associated to a index. # List Indices Source: https://upstash.com/docs/devops/developer-api/vector/list_indices -/devops/developer-api/openapi.yml get /vector/index +/devops/developer-api/openapi.yaml get /vector/index This endpoint returns the data related to all indices of an account as a list. # Rename Index Source: https://upstash.com/docs/devops/developer-api/vector/rename_index -/devops/developer-api/openapi.yml post /vector/index/{id}/rename +/devops/developer-api/openapi.yaml post /vector/index/{id}/rename This endpoint is used to change the name of an index. # Reset Index Passwords Source: https://upstash.com/docs/devops/developer-api/vector/reset_index_passwords -/devops/developer-api/openapi.yml post /vector/index/{id}/reset-password +/devops/developer-api/openapi.yaml post /vector/index/{id}/reset-password This endpoint is used to reset regular and readonly tokens of an index. # Set Index Plan Source: https://upstash.com/docs/devops/developer-api/vector/set_index_plan -/devops/developer-api/openapi.yml post /vector/index/{id}/setplan +/devops/developer-api/openapi.yaml post /vector/index/{id}/setplan This endpoint is used to change the plan of an index. # Transfer Index Source: https://upstash.com/docs/devops/developer-api/vector/transfer_index -/devops/developer-api/openapi.yml post /vector/index/{id}/transfer +/devops/developer-api/openapi.yaml post /vector/index/{id}/transfer This endpoint is used to transfer an index to another team. Transferring to a personal account is not supported. However, transferring an index from a personal account to a team is allowed. diff --git a/llms.txt b/llms.txt index 2760cdf7..a3eab196 100644 --- a/llms.txt +++ b/llms.txt @@ -88,7 +88,7 @@ - [Teams and Users](https://upstash.com/docs/common/account/teams.md) - [Access Anywhere](https://upstash.com/docs/common/concepts/access-anywhere.md) - [Global Replication](https://upstash.com/docs/common/concepts/global-replication.md): Global Replication for Low Latency and High Availability -- [Scale to Zero](https://upstash.com/docs/common/concepts/scale-to-zero.md): Only pay for what you really use. +- [Scale to Zero](https://upstash.com/docs/common/concepts/scale-to-zero.md): Pay nothing when idle, without giving up capacity when traffic is high. - [Serverless](https://upstash.com/docs/common/concepts/serverless.md): What do we mean by serverless? - [Account & Teams](https://upstash.com/docs/common/help/account.md) - [Announcements](https://upstash.com/docs/common/help/announcements.md): Upstash Announcements! From 14d2a149e4d084b95779ceb87c4f99cde876f2ea Mon Sep 17 00:00:00 2001 From: CahidArda Date: Tue, 25 Aug 2026 16:19:11 +0300 Subject: [PATCH 3/9] developer-api: document the free Redis for agents endpoint Adds hand-written pages for GET and POST https://upstash.com/start-redis under a Free Redis for Agents group. These live on upstash.com rather than api.upstash.com, so they are not part of the OpenAPI spec. --- devops/developer-api/start-redis/create.mdx | 60 +++++++++++++++++++ .../start-redis/instructions.mdx | 48 +++++++++++++++ docs.json | 7 +++ 3 files changed, 115 insertions(+) create mode 100644 devops/developer-api/start-redis/create.mdx create mode 100644 devops/developer-api/start-redis/instructions.mdx diff --git a/devops/developer-api/start-redis/create.mdx b/devops/developer-api/start-redis/create.mdx new file mode 100644 index 00000000..f7eabd5f --- /dev/null +++ b/devops/developer-api/start-redis/create.mdx @@ -0,0 +1,60 @@ +--- +title: "Create a Free Database" +description: "Creates a free, temporary Redis database without an account or API key." +api: "POST https://upstash.com/start-redis" +--- + +This endpoint does not require authentication. It creates a zero-config +Redis database and returns its credentials, so an AI agent can get scratch +storage on the fly without signing up. + +The database is deleted after **3 days** unless it is claimed. The response +includes a console URL where a user can view usage and click **Claim** to +keep the database in their Upstash account. + + + If you are an agent, always send a `User-Agent` header identifying which + agent you are (for example `claude-code`, `cursor`, `codex`, `opencode`) on + every request you make to this endpoint. + + +## Request + + + Optional but recommended. The UUID you send becomes the database ID, and + sending the same UUID again returns the same database instead of creating + a duplicate. This makes the first call retry-safe and lets you re-fetch the + credentials later. Only UUIDv4 values are accepted. + + If omitted, the server generates an ID and returns it in the response; you + can pass that ID back as `Idempotency-Key` to re-fetch the credentials. + + + + The name of the agent making the request, for example `claude-code`. + + +## Response + +The response body is `text/markdown` and contains: + +- The connection credentials (REST URL and token, and the TCP endpoint). +- A short quickstart showing how to connect. +- The database ID, which you can reuse as `Idempotency-Key`. +- A console URL that a user can open to view usage and claim the database. + + + +```sh curl +curl -X POST https://upstash.com/start-redis \ + -H "Idempotency-Key: $(uuidgen | tr '[:upper:]' '[:lower:]')" \ + -H "User-Agent: " +``` + +```sh Re-fetch an existing database +curl -X POST https://upstash.com/start-redis \ + -H "Idempotency-Key: " \ + -H "User-Agent: " +``` + + diff --git a/devops/developer-api/start-redis/instructions.mdx b/devops/developer-api/start-redis/instructions.mdx new file mode 100644 index 00000000..ba581e96 --- /dev/null +++ b/devops/developer-api/start-redis/instructions.mdx @@ -0,0 +1,48 @@ +--- +title: "Get Instructions" +description: "Returns instructions for creating a free Redis database without an account." +api: "GET https://upstash.com/start-redis" +--- + +This endpoint does not require authentication. It returns a markdown +document that explains how to create a free, temporary Redis database with +[`POST /start-redis`](/devops/developer-api/start-redis/create), including how +the `Idempotency-Key` header works and how the database can be claimed later. + +It is meant to be read by AI agents: point an agent at +`https://upstash.com/start-redis` and it has everything it needs. + +## Request + +This endpoint doesn't require any parameters. + +## Response + +The response body is `text/markdown`. + + + +```sh curl +curl https://upstash.com/start-redis \ + -H "User-Agent: " +``` + + + + + +```md 200 OK +# Upstash Redis for Agents + +A zero-config Redis database for AI agents — no signup, no UI. + +To create a database, generate a fresh UUIDv4 and POST it as the +`Idempotency-Key` header: + + curl -X POST -H "Idempotency-Key: " \ + -H "User-Agent: " https://upstash.com/start-redis + +... +``` + + diff --git a/docs.json b/docs.json index f6e181cb..c7c8fdcb 100644 --- a/docs.json +++ b/docs.json @@ -2205,6 +2205,13 @@ "DELETE /teams/member" ] }, + { + "group": "Free Redis for Agents", + "pages": [ + "devops/developer-api/start-redis/instructions", + "devops/developer-api/start-redis/create" + ] + }, { "group": "Account", "pages": [ From d970b3bbfc309fdab4f63b7dc3fd1148fb0fdfe7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2026 13:20:18 +0000 Subject: [PATCH 4/9] chore(llms): regenerate llms.txt and llms-full.txt --- llms-full.txt | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++ llms.txt | 2 + 2 files changed, 106 insertions(+) diff --git a/llms-full.txt b/llms-full.txt index d0286ba5..00b98a49 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -9360,6 +9360,110 @@ Source: https://upstash.com/docs/devops/developer-api/redis/update_regions /devops/developer-api/openapi.yaml post /redis/update-regions/{id} Update the regions of a database +# Create a Free Database +Source: https://upstash.com/docs/devops/developer-api/start-redis/create + +This endpoint does not require authentication. It creates a zero-config +Redis database and returns its credentials, so an AI agent can get scratch +storage on the fly without signing up. + +The database is deleted after **3 days** unless it is claimed. The response +includes a console URL where a user can view usage and click **Claim** to +keep the database in their Upstash account. + + + If you are an agent, always send a `User-Agent` header identifying which + agent you are (for example `claude-code`, `cursor`, `codex`, `opencode`) on + every request you make to this endpoint. + + +## Request + + + Optional but recommended. The UUID you send becomes the database ID, and + sending the same UUID again returns the same database instead of creating + a duplicate. This makes the first call retry-safe and lets you re-fetch the + credentials later. Only UUIDv4 values are accepted. + + If omitted, the server generates an ID and returns it in the response; you + can pass that ID back as `Idempotency-Key` to re-fetch the credentials. + + + + The name of the agent making the request, for example `claude-code`. + + +## Response + +The response body is `text/markdown` and contains: + +* The connection credentials (REST URL and token, and the TCP endpoint). +* A short quickstart showing how to connect. +* The database ID, which you can reuse as `Idempotency-Key`. +* A console URL that a user can open to view usage and claim the database. + + + +```sh curl +curl -X POST https://upstash.com/start-redis \ + -H "Idempotency-Key: $(uuidgen | tr '[:upper:]' '[:lower:]')" \ + -H "User-Agent: " +``` + +```sh Re-fetch an existing database +curl -X POST https://upstash.com/start-redis \ + -H "Idempotency-Key: " \ + -H "User-Agent: " +``` + + + +# Get Instructions +Source: https://upstash.com/docs/devops/developer-api/start-redis/instructions + +This endpoint does not require authentication. It returns a markdown +document that explains how to create a free, temporary Redis database with +[`POST /start-redis`](/docs/devops/developer-api/start-redis/create), including how +the `Idempotency-Key` header works and how the database can be claimed later. + +It is meant to be read by AI agents: point an agent at +`https://upstash.com/start-redis` and it has everything it needs. + +## Request + +This endpoint doesn't require any parameters. + +## Response + +The response body is `text/markdown`. + + + +```sh curl +curl https://upstash.com/start-redis \ + -H "User-Agent: " +``` + + + + + +```md 200 OK +# Upstash Redis for Agents + +A zero-config Redis database for AI agents — no signup, no UI. + +To create a database, generate a fresh UUIDv4 and POST it as the +`Idempotency-Key` header: + + curl -X POST -H "Idempotency-Key: " \ + -H "User-Agent: " https://upstash.com/start-redis + +... +``` + + + # Add Team Member Source: https://upstash.com/docs/devops/developer-api/teams/add_team_member diff --git a/llms.txt b/llms.txt index a3eab196..51e5f8d2 100644 --- a/llms.txt +++ b/llms.txt @@ -125,6 +125,8 @@ - [Reset Password](https://upstash.com/docs/devops/developer-api/redis/reset_password.md): This endpoint updates the password of a database. - [Update Database Budget](https://upstash.com/docs/devops/developer-api/redis/update_budget.md): This endpoint updates the monthly budget of a Redis database. - [Update Regions](https://upstash.com/docs/devops/developer-api/redis/update_regions.md): Update the regions of a database +- [Create a Free Database](https://upstash.com/docs/devops/developer-api/start-redis/create.md): Creates a free, temporary Redis database without an account or API key. +- [Get Instructions](https://upstash.com/docs/devops/developer-api/start-redis/instructions.md): Returns instructions for creating a free Redis database without an account. - [Add Team Member](https://upstash.com/docs/devops/developer-api/teams/add_team_member.md): This endpoint adds a new team member to the specified team. - [Create Team](https://upstash.com/docs/devops/developer-api/teams/create_team.md): This endpoint creates a new team. - [Delete Team](https://upstash.com/docs/devops/developer-api/teams/delete_team.md): This endpoint deletes a team. From 795b1ff734d491f647d17f3c307f8a68bf657f76 Mon Sep 17 00:00:00 2001 From: CahidArda Date: Tue, 25 Aug 2026 16:24:00 +0300 Subject: [PATCH 5/9] developer-api: document GET /start-redis/metrics/{id} --- devops/developer-api/start-redis/metrics.mdx | 43 ++++++++++++++++++++ docs.json | 3 +- 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 devops/developer-api/start-redis/metrics.mdx diff --git a/devops/developer-api/start-redis/metrics.mdx b/devops/developer-api/start-redis/metrics.mdx new file mode 100644 index 00000000..ab855e58 --- /dev/null +++ b/devops/developer-api/start-redis/metrics.mdx @@ -0,0 +1,43 @@ +--- +title: "Get Metrics" +description: "Returns usage metrics for a database created with start-redis." +api: "GET https://upstash.com/start-redis/metrics/{id}" +--- + +This endpoint does not require authentication. It returns usage metrics for +a free database created with +[`POST /start-redis`](/devops/developer-api/start-redis/create), so an agent +can check how the database is being used without a console login. + +## Request + + + The database ID: the UUID you sent as `Idempotency-Key` when creating the + database, or the ID returned in the response if you omitted it. + + + + The name of the agent making the request, for example `claude-code`. + + +## Response + +`200 OK` with the database's usage metrics as JSON, or `404 Not Found` if no +database exists with that ID. + + + +```sh curl +curl https://upstash.com/start-redis/metrics/ \ + -H "User-Agent: " +``` + + + + + +```json 404 Not Found +"not found" +``` + + diff --git a/docs.json b/docs.json index c7c8fdcb..334d6588 100644 --- a/docs.json +++ b/docs.json @@ -2209,7 +2209,8 @@ "group": "Free Redis for Agents", "pages": [ "devops/developer-api/start-redis/instructions", - "devops/developer-api/start-redis/create" + "devops/developer-api/start-redis/create", + "devops/developer-api/start-redis/metrics" ] }, { From 09a8aa764d0b0b4aedfddc8cfe13030cc38362f4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2026 13:24:27 +0000 Subject: [PATCH 6/9] chore(llms): regenerate llms.txt and llms-full.txt --- llms-full.txt | 41 +++++++++++++++++++++++++++++++++++++++++ llms.txt | 1 + 2 files changed, 42 insertions(+) diff --git a/llms-full.txt b/llms-full.txt index 00b98a49..47b2bcc6 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -9464,6 +9464,47 @@ To create a database, generate a fresh UUIDv4 and POST it as the +# Get Metrics +Source: https://upstash.com/docs/devops/developer-api/start-redis/metrics + +This endpoint does not require authentication. It returns usage metrics for +a free database created with +[`POST /start-redis`](/docs/devops/developer-api/start-redis/create), so an agent +can check how the database is being used without a console login. + +## Request + + + The database ID: the UUID you sent as `Idempotency-Key` when creating the + database, or the ID returned in the response if you omitted it. + + + + The name of the agent making the request, for example `claude-code`. + + +## Response + +`200 OK` with the database's usage metrics as JSON, or `404 Not Found` if no +database exists with that ID. + + + +```sh curl +curl https://upstash.com/start-redis/metrics/ \ + -H "User-Agent: " +``` + + + + + +```json 404 Not Found +"not found" +``` + + + # Add Team Member Source: https://upstash.com/docs/devops/developer-api/teams/add_team_member diff --git a/llms.txt b/llms.txt index 51e5f8d2..19f0e09e 100644 --- a/llms.txt +++ b/llms.txt @@ -127,6 +127,7 @@ - [Update Regions](https://upstash.com/docs/devops/developer-api/redis/update_regions.md): Update the regions of a database - [Create a Free Database](https://upstash.com/docs/devops/developer-api/start-redis/create.md): Creates a free, temporary Redis database without an account or API key. - [Get Instructions](https://upstash.com/docs/devops/developer-api/start-redis/instructions.md): Returns instructions for creating a free Redis database without an account. +- [Get Metrics](https://upstash.com/docs/devops/developer-api/start-redis/metrics.md): Returns usage metrics for a database created with start-redis. - [Add Team Member](https://upstash.com/docs/devops/developer-api/teams/add_team_member.md): This endpoint adds a new team member to the specified team. - [Create Team](https://upstash.com/docs/devops/developer-api/teams/create_team.md): This endpoint creates a new team. - [Delete Team](https://upstash.com/docs/devops/developer-api/teams/delete_team.md): This endpoint deletes a team. From 5c829113a85a8dd0ba04b8e5f5fb512a439f7b24 Mon Sep 17 00:00:00 2001 From: CahidArda Date: Tue, 25 Aug 2026 16:26:33 +0300 Subject: [PATCH 7/9] developer-api: add real response examples to the start-redis pages --- devops/developer-api/start-redis/create.mdx | 42 ++++++++++++++++-- devops/developer-api/start-redis/metrics.mdx | 45 +++++++++++++++++++- 2 files changed, 81 insertions(+), 6 deletions(-) diff --git a/devops/developer-api/start-redis/create.mdx b/devops/developer-api/start-redis/create.mdx index f7eabd5f..8f4a0664 100644 --- a/devops/developer-api/start-redis/create.mdx +++ b/devops/developer-api/start-redis/create.mdx @@ -38,10 +38,11 @@ keep the database in their Upstash account. The response body is `text/markdown` and contains: -- The connection credentials (REST URL and token, and the TCP endpoint). -- A short quickstart showing how to connect. -- The database ID, which you can reuse as `Idempotency-Key`. -- A console URL that a user can open to view usage and claim the database. +- The database ID (reuse it as `Idempotency-Key` to re-fetch the credentials). +- The REST endpoint and token. +- A metrics URL (see [Get Metrics](/devops/developer-api/start-redis/metrics)). +- The expiry date, and a console URL a user can open to view usage and claim the database. +- A quickstart with example commands using the REST API. @@ -58,3 +59,36 @@ curl -X POST https://upstash.com/start-redis \ ``` + + + +```md 200 OK +# Your Redis is ready + +**Database ID:** 3b1f7c2e-9d4a-4c8b-a1e5-6f2d8e9c0b47 +**Endpoint:** https://example-123456.upstash.io +**Token:** +**Metrics:** https://upstash.com/start-redis/metrics/3b1f7c2e-9d4a-4c8b-a1e5-6f2d8e9c0b47 (JSON: uptime, commands, keys, throughput, memory, bandwidth) +**Expires:** 2026-08-28 (3 days from creation). +To keep this database alive, share the console URL with the user +(they can view usage and click Claim to take ownership): +https://upstash.com/start-redis/console/3b1f7c2e-9d4a-4c8b-a1e5-6f2d8e9c0b47 + +To re-fetch these credentials, POST again with the database id as +the `Idempotency-Key` header: + + curl -X POST -H "Idempotency-Key: 3b1f7c2e-9d4a-4c8b-a1e5-6f2d8e9c0b47" https://upstash.com/start-redis + +**Avoid storing sensitive data** (PII, secrets, production credentials) — this database is temporary and not tied to a user account until claimed. + +## Quickstart + +# Short-term memory — state across tool calls in one run +curl https://example-123456.upstash.io \ + -H "Authorization: Bearer " \ + -d '["SET","session:abc","{\"step\":2,\"plan\":\"...\"}","EX","3600"]' + +... +``` + + diff --git a/devops/developer-api/start-redis/metrics.mdx b/devops/developer-api/start-redis/metrics.mdx index ab855e58..daeb2c95 100644 --- a/devops/developer-api/start-redis/metrics.mdx +++ b/devops/developer-api/start-redis/metrics.mdx @@ -22,8 +22,35 @@ can check how the database is being used without a console login. ## Response -`200 OK` with the database's usage metrics as JSON, or `404 Not Found` if no -database exists with that ID. + + Seconds since the database was created. + + + When the database will be deleted unless claimed, as an ISO 8601 timestamp. + + + The console page where a user can view usage and claim the database. + + + Total number of commands executed. + + + Command throughput over the last minute. + + + Number of keys in the database. + + + Memory used by the data, in bytes. + + + Total bytes received by the database. + + + Total bytes sent by the database. + + +Returns `404 Not Found` if no database exists with that ID. @@ -36,6 +63,20 @@ curl https://upstash.com/start-redis/metrics/ \ +```json 200 OK +{ + "uptime_seconds": 1, + "expires_at": "2026-08-28T13:25:49Z", + "console_url": "https://upstash.com/start-redis/console/3b1f7c2e-9d4a-4c8b-a1e5-6f2d8e9c0b47", + "commands_total": 0, + "commands_per_sec_1m": 0, + "keys": 0, + "memory_bytes": 0, + "bytes_in": 0, + "bytes_out": 0 +} +``` + ```json 404 Not Found "not found" ``` From 1c47745720fd12f98ea3cbcaac39ceaf82160d56 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2026 13:27:00 +0000 Subject: [PATCH 8/9] chore(llms): regenerate llms.txt and llms-full.txt --- llms-full.txt | 87 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 81 insertions(+), 6 deletions(-) diff --git a/llms-full.txt b/llms-full.txt index 47b2bcc6..f5733da2 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -9397,10 +9397,11 @@ keep the database in their Upstash account. The response body is `text/markdown` and contains: -* The connection credentials (REST URL and token, and the TCP endpoint). -* A short quickstart showing how to connect. -* The database ID, which you can reuse as `Idempotency-Key`. -* A console URL that a user can open to view usage and claim the database. +* The database ID (reuse it as `Idempotency-Key` to re-fetch the credentials). +* The REST endpoint and token. +* A metrics URL (see [Get Metrics](/docs/devops/developer-api/start-redis/metrics)). +* The expiry date, and a console URL a user can open to view usage and claim the database. +* A quickstart with example commands using the REST API. @@ -9418,6 +9419,39 @@ curl -X POST https://upstash.com/start-redis \ + + +```md 200 OK +# Your Redis is ready + +**Database ID:** 3b1f7c2e-9d4a-4c8b-a1e5-6f2d8e9c0b47 +**Endpoint:** https://example-123456.upstash.io +**Token:** +**Metrics:** https://upstash.com/start-redis/metrics/3b1f7c2e-9d4a-4c8b-a1e5-6f2d8e9c0b47 (JSON: uptime, commands, keys, throughput, memory, bandwidth) +**Expires:** 2026-08-28 (3 days from creation). +To keep this database alive, share the console URL with the user +(they can view usage and click Claim to take ownership): +https://upstash.com/start-redis/console/3b1f7c2e-9d4a-4c8b-a1e5-6f2d8e9c0b47 + +To re-fetch these credentials, POST again with the database id as +the `Idempotency-Key` header: + + curl -X POST -H "Idempotency-Key: 3b1f7c2e-9d4a-4c8b-a1e5-6f2d8e9c0b47" https://upstash.com/start-redis + +**Avoid storing sensitive data** (PII, secrets, production credentials) — this database is temporary and not tied to a user account until claimed. + +## Quickstart + +# Short-term memory — state across tool calls in one run +curl https://example-123456.upstash.io \ + -H "Authorization: Bearer " \ + -d '["SET","session:abc","{\"step\":2,\"plan\":\"...\"}","EX","3600"]' + +... +``` + + + # Get Instructions Source: https://upstash.com/docs/devops/developer-api/start-redis/instructions @@ -9485,8 +9519,35 @@ can check how the database is being used without a console login. ## Response -`200 OK` with the database's usage metrics as JSON, or `404 Not Found` if no -database exists with that ID. + + Seconds since the database was created. + + + When the database will be deleted unless claimed, as an ISO 8601 timestamp. + + + The console page where a user can view usage and claim the database. + + + Total number of commands executed. + + + Command throughput over the last minute. + + + Number of keys in the database. + + + Memory used by the data, in bytes. + + + Total bytes received by the database. + + + Total bytes sent by the database. + + +Returns `404 Not Found` if no database exists with that ID. @@ -9499,6 +9560,20 @@ curl https://upstash.com/start-redis/metrics/ \ +```json 200 OK +{ + "uptime_seconds": 1, + "expires_at": "2026-08-28T13:25:49Z", + "console_url": "https://upstash.com/start-redis/console/3b1f7c2e-9d4a-4c8b-a1e5-6f2d8e9c0b47", + "commands_total": 0, + "commands_per_sec_1m": 0, + "keys": 0, + "memory_bytes": 0, + "bytes_in": 0, + "bytes_out": 0 +} +``` + ```json 404 Not Found "not found" ``` From d61d1e5ee19c63131756d6b5e6c4075b88a4403a Mon Sep 17 00:00:00 2001 From: CahidArda Date: Tue, 25 Aug 2026 16:34:21 +0300 Subject: [PATCH 9/9] fix: rename start redis --- docs.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs.json b/docs.json index 334d6588..24408e1b 100644 --- a/docs.json +++ b/docs.json @@ -2150,6 +2150,14 @@ } ] }, + { + "group": "Redis for Agents", + "pages": [ + "devops/developer-api/start-redis/instructions", + "devops/developer-api/start-redis/create", + "devops/developer-api/start-redis/metrics" + ] + }, { "group": "Vector", "pages": [ @@ -2205,14 +2213,6 @@ "DELETE /teams/member" ] }, - { - "group": "Free Redis for Agents", - "pages": [ - "devops/developer-api/start-redis/instructions", - "devops/developer-api/start-redis/create", - "devops/developer-api/start-redis/metrics" - ] - }, { "group": "Account", "pages": [