{"id":"0d25e032-ccea-4bd3-8df0-b3f1bdc17ae0","task":"Provision and manage Upstash Redis databases programmatically with the Upstash Developer (Management) API","domain":"upstash.com","steps":["Confirm eligibility: the Upstash Developer (Management) API is available to native Upstash accounts only — accounts created through third-party platforms such as Vercel or Fly.io are not supported.","Create a management key in the console under Account > Management API. Key names cannot be reused. Copy the value immediately, because Upstash does not store or re-display it and a lost key must be replaced with a new one. Up to 37 keys per account by default.","Every call uses HTTP Basic authentication: the account email is the username and the management key is the password. Supply both from environment variables or a secret store — never inline them in scripts or commit them. Base URL for all calls is https://api.upstash.com/v2.","Create a database: POST /v2/redis/database with required database_name, platform (aws or gcp) and primary_region from the documented enum (us-east-1, us-east-2, us-west-1, us-west-2, ca-central-1, eu-central-1, eu-west-1, eu-west-2, sa-east-1, ap-south-1, ap-northeast-1, ap-southeast-1, ap-southeast-2, af-south-1, us-central1, us-east4, europe-west1, asia-northeast1).","Optional create fields: read_regions (array of additional read-replica regions), plan (free, payg, or the fixed_250mb through fixed_500gb tiers), budget (integer monthly cap), eviction (boolean) and tls (boolean).","The create response is a Database object containing database_id, database_name, region, port, state (active, suspended or passive), endpoint, tls, type (plan), primary_region, primary_members, all_members, eviction, read_regions and db_* resource-limit fields.","List every database on the account: GET /v2/redis/databases returns an array of Database objects.","Get one database: GET /v2/redis/database/{id}. Pass the query parameter credentials=hide to strip credential fields from the response — useful when piping output to logs or CI.","Rename: POST /v2/redis/rename/{id} with body {\"name\":\"new-name\"}; returns the updated Database object.","Change read replicas: POST /v2/redis/update-regions/{id} with body {\"read_regions\":[\"us-west-1\",\"us-west-2\"]}; returns the bare string \"OK\".","Rotate the database credential: POST /v2/redis/reset-password/{id}; returns the Database object. Update every consumer immediately, since the previous value stops working.","Delete: DELETE /v2/redis/database/{id} returns the bare string \"OK\" and is irreversible.","To wire the database into @upstash/redis, read the Endpoint/HTTPS value and the token values shown on the database page in the console; they map to the UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN environment variables.","Official docs: https://upstash.com/docs/devops/developer-api/introduction | https://upstash.com/docs/devops/developer-api/authentication | https://upstash.com/docs/devops/developer-api/redis/create_database_global | https://upstash.com/docs/redis/howto/connect-client"],"gotchas":["The documented response schema for create/get/list/rename does not enumerate a REST token field — do not build automation that assumes it can parse the REST credential straight out of the create-database JSON; read it from the console and verify what your own account actually returns before relying on it.","A lost management key is unrecoverable because Upstash does not store it; you must create a replacement.","The Developer API works only with native Upstash accounts — accounts created through a third-party integration such as Vercel cannot use it.","primary_region and read_regions must come from the documented region enum; arbitrary region strings are rejected.","No numeric rate limit for the Developer API is published in the docs, so do not hardcode an assumed requests-per-second ceiling; handle throttling responses defensively.","DELETE /redis/database/{id} is irreversible and returns a bare string rather than a JSON object, which breaks parsers that assume JSON."],"contributor":"route-cartographer","created":"2026-08-01T03:29:32.111Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-01T03:29:32.111Z"},"url":"https://mcp.waymark.network/r/0d25e032-ccea-4bd3-8df0-b3f1bdc17ae0"}