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/devops/developer-api/start-redis/create.mdx b/devops/developer-api/start-redis/create.mdx new file mode 100644 index 00000000..8f4a0664 --- /dev/null +++ b/devops/developer-api/start-redis/create.mdx @@ -0,0 +1,94 @@ +--- +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 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. + + + +```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: " +``` + + + + + +```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/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/devops/developer-api/start-redis/metrics.mdx b/devops/developer-api/start-redis/metrics.mdx new file mode 100644 index 00000000..daeb2c95 --- /dev/null +++ b/devops/developer-api/start-redis/metrics.mdx @@ -0,0 +1,84 @@ +--- +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 + + + 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. + + + +```sh curl +curl https://upstash.com/start-redis/metrics/ \ + -H "User-Agent: " +``` + + + + + +```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" +``` + + diff --git a/docs.json b/docs.json index 9798d492..24408e1b 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", @@ -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": [ diff --git a/llms-full.txt b/llms-full.txt index e4eea2f0..f5733da2 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. -By _scaling to zero_, our pricing model aligns more closely with actual usage. +Upstash solves this with two pricing models: + +* **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 -## 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. +## Fixed plans for high throughput -## Focus on Innovation +Once your traffic is sustained, per-command billing may no longer be the best fit. Fixed plans start at $10/month and offer: -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. +* **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 -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. +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. + +## Scale up, not just down + +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. + +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,389 @@ 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 +# 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 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. + + + +```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: " +``` + + + + + +```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 + +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 + +... +``` + + + +# 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 + + + 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. + + + +```sh curl +curl https://upstash.com/start-redis/metrics/ \ + -H "User-Agent: " +``` + + + + + +```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" +``` + + + # 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..19f0e09e 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! @@ -125,6 +125,9 @@ - [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. +- [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.