[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-upstash-upstash-redis-start":3,"mdc-8gd030-key":40,"related-org-upstash-upstash-redis-start":809,"related-repo-upstash-upstash-redis-start":988},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":29,"repoUrl":30,"updatedAt":31,"license":32,"forks":33,"topics":34,"repo":35,"sourceUrl":38,"mdContent":39},"upstash-redis-start","provision Upstash Redis databases for agents","Provision a zero-config, no-signup Upstash Redis database for an AI agent via a single POST to `https:\u002F\u002Fupstash.com\u002Fstart-redis`. Use when an agent needs scratch Redis for short-term memory, conversation history, sub-agent work queues, or ranked recall and the user has not provided credentials. The database lives 3 days unless the user claims it.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"upstash","Upstash","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fupstash.png",[12,16,19,22,25,28],{"name":13,"slug":14,"type":15},"Automation","automation","tag",{"name":17,"slug":18,"type":15},"Memory","memory",{"name":20,"slug":21,"type":15},"Database","database",{"name":23,"slug":24,"type":15},"Agents","agents",{"name":26,"slug":27,"type":15},"Redis","redis",{"name":9,"slug":8,"type":15},15,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fskills","2026-05-09T05:27:35.503104",null,2,[],{"repoUrl":30,"stars":29,"forks":33,"topics":36,"description":37},[],"Collection of skills for Upstash","https:\u002F\u002Fgithub.com\u002Fupstash\u002Fskills\u002Ftree\u002FHEAD\u002Fskills\u002Fupstash-redis-start","---\nname: upstash-redis-start\ndescription: Provision a zero-config, no-signup Upstash Redis database for an AI agent via a single POST to `https:\u002F\u002Fupstash.com\u002Fstart-redis`. Use when an agent needs scratch Redis for short-term memory, conversation history, sub-agent work queues, or ranked recall and the user has not provided credentials. The database lives 3 days unless the user claims it.\n---\n\n# Upstash Redis for Agents (`start-redis`)\n\nA zero-config Redis database for AI agents — **no signup, no UI, no SDK setup**. One HTTP request returns a working endpoint + token. Databases live for **3 days** unless the user claims them.\n\nUse this when:\n- The agent needs Redis right now and the user has not given you credentials.\n- You want short-term memory across tool calls, conversation history, a sub-agent work queue, or recent-first ranked recall.\n\nDo **not** use this for: production workloads, anything tied to a user account, or anything storing PII \u002F secrets \u002F production credentials. The database is temporary and unauthenticated until claimed.\n\n## Create or re-fetch a database\n\n```bash\n# Generate a fresh UUIDv4 yourself, then POST it as the Idempotency-Key.\n# The UUIDv4 you send becomes the database id.\ncurl -X POST -H \"Idempotency-Key: \u003Cuuidv4>\" https:\u002F\u002Fupstash.com\u002Fstart-redis\n```\n\n- Sending your own UUIDv4 makes the first call **retry-safe** — if the response is lost, retrying with the same UUID returns the same database instead of minting a duplicate.\n- Re-POST with the same `Idempotency-Key` to **re-fetch credentials** for an existing database.\n- The header is optional. Omit it to mint a new database with a server-generated id (returned in the response — re-fetch later by passing that id back as `Idempotency-Key`). Only UUIDv4 is accepted.\n\nThe response is markdown containing:\n- `Database ID`, `Endpoint`, `Token`\n- `Metrics` URL (JSON: uptime, commands, keys, throughput, memory, bandwidth)\n- `Expires` date\n- `Console URL` to share with the user (where they view usage and click **Claim** to keep the database)\n- An inline quickstart for the body-style REST API\n\nParse these out of the markdown response and use them directly — there is no separate JSON envelope.\n\n## Calling the database (body-style REST)\n\nThe returned endpoint speaks the Upstash Redis REST API. Prefer the **body-style** form: POST a JSON array as the body so you don't have to URL-encode the command.\n\n```bash\n# SET with TTL\ncurl https:\u002F\u002F\u003Cendpoint> \\\n  -H \"Authorization: Bearer \u003Ctoken>\" \\\n  -d '[\"SET\",\"session:abc\",\"{\\\"step\\\":2}\",\"EX\",\"3600\"]'\n\n# GET\ncurl https:\u002F\u002F\u003Cendpoint> \\\n  -H \"Authorization: Bearer \u003Ctoken>\" \\\n  -d '[\"GET\",\"session:abc\"]'\n```\n\nYou can also use the official SDKs against the same endpoint + token (`@upstash\u002Fredis` for TS\u002FJS, `upstash-redis` for Python).\n\n## Common agent patterns\n\n| Need | Commands |\n|------|----------|\n| Short-term memory across tool calls in one run | `SET key value EX \u003Cttl>` \u002F `GET key` |\n| Conversation \u002F turn-by-turn log | `LPUSH chat:\u003Cuser> \u003Cjson>` \u002F `LRANGE chat:\u003Cuser> 0 20` |\n| Sub-agent work queue (producer\u002Fconsumer) | `LPUSH jobs \u003Cjson>` \u002F `RPOP jobs` |\n| Ranked memory (recent-first or score-first) | `ZADD memories \u003Cscore> \u003Cmember>` \u002F `ZREVRANGE memories 0 9` |\n\n## Tell the user\n\nAfter provisioning, surface the **console URL** from the response to the user. Make clear that:\n- The database expires in 3 days.\n- They can view usage at the console URL and click **Claim** to keep it.\n- This is unauthenticated scratch storage — don't put secrets or PII in it.\n\n## Reference\n\n- Service entry point (also serves the `GET` doc): https:\u002F\u002Fupstash.com\u002Fstart-redis\n- Full REST API: https:\u002F\u002Fupstash.com\u002Fdocs\u002Fredis\u002Ffeatures\u002Frestapi\n- TS\u002FJS SDK: https:\u002F\u002Fupstash.com\u002Fdocs\u002Fredis\u002Fsdks\u002Fts\n- Python SDK: https:\u002F\u002Fupstash.com\u002Fdocs\u002Fredis\u002Fsdks\u002Fpy\n",{"data":41,"body":42},{"name":4,"description":6},{"type":43,"children":44},"root",[45,63,84,89,104,116,123,201,248,253,325,330,336,348,546,567,573,698,704,716,740,746,803],{"type":46,"tag":47,"props":48,"children":50},"element","h1",{"id":49},"upstash-redis-for-agents-start-redis",[51,54,61],{"type":52,"value":53},"text","Upstash Redis for Agents (",{"type":46,"tag":55,"props":56,"children":58},"code",{"className":57},[],[59],{"type":52,"value":60},"start-redis",{"type":52,"value":62},")",{"type":46,"tag":64,"props":65,"children":66},"p",{},[67,69,75,77,82],{"type":52,"value":68},"A zero-config Redis database for AI agents — ",{"type":46,"tag":70,"props":71,"children":72},"strong",{},[73],{"type":52,"value":74},"no signup, no UI, no SDK setup",{"type":52,"value":76},". One HTTP request returns a working endpoint + token. Databases live for ",{"type":46,"tag":70,"props":78,"children":79},{},[80],{"type":52,"value":81},"3 days",{"type":52,"value":83}," unless the user claims them.",{"type":46,"tag":64,"props":85,"children":86},{},[87],{"type":52,"value":88},"Use this when:",{"type":46,"tag":90,"props":91,"children":92},"ul",{},[93,99],{"type":46,"tag":94,"props":95,"children":96},"li",{},[97],{"type":52,"value":98},"The agent needs Redis right now and the user has not given you credentials.",{"type":46,"tag":94,"props":100,"children":101},{},[102],{"type":52,"value":103},"You want short-term memory across tool calls, conversation history, a sub-agent work queue, or recent-first ranked recall.",{"type":46,"tag":64,"props":105,"children":106},{},[107,109,114],{"type":52,"value":108},"Do ",{"type":46,"tag":70,"props":110,"children":111},{},[112],{"type":52,"value":113},"not",{"type":52,"value":115}," use this for: production workloads, anything tied to a user account, or anything storing PII \u002F secrets \u002F production credentials. The database is temporary and unauthenticated until claimed.",{"type":46,"tag":117,"props":118,"children":120},"h2",{"id":119},"create-or-re-fetch-a-database",[121],{"type":52,"value":122},"Create or re-fetch a database",{"type":46,"tag":124,"props":125,"children":130},"pre",{"className":126,"code":127,"language":128,"meta":129,"style":129},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Generate a fresh UUIDv4 yourself, then POST it as the Idempotency-Key.\n# The UUIDv4 you send becomes the database id.\ncurl -X POST -H \"Idempotency-Key: \u003Cuuidv4>\" https:\u002F\u002Fupstash.com\u002Fstart-redis\n","bash","",[131],{"type":46,"tag":55,"props":132,"children":133},{"__ignoreMap":129},[134,146,154],{"type":46,"tag":135,"props":136,"children":139},"span",{"class":137,"line":138},"line",1,[140],{"type":46,"tag":135,"props":141,"children":143},{"style":142},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[144],{"type":52,"value":145},"# Generate a fresh UUIDv4 yourself, then POST it as the Idempotency-Key.\n",{"type":46,"tag":135,"props":147,"children":148},{"class":137,"line":33},[149],{"type":46,"tag":135,"props":150,"children":151},{"style":142},[152],{"type":52,"value":153},"# The UUIDv4 you send becomes the database id.\n",{"type":46,"tag":135,"props":155,"children":157},{"class":137,"line":156},3,[158,164,170,175,180,186,191,196],{"type":46,"tag":135,"props":159,"children":161},{"style":160},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[162],{"type":52,"value":163},"curl",{"type":46,"tag":135,"props":165,"children":167},{"style":166},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[168],{"type":52,"value":169}," -X",{"type":46,"tag":135,"props":171,"children":172},{"style":166},[173],{"type":52,"value":174}," POST",{"type":46,"tag":135,"props":176,"children":177},{"style":166},[178],{"type":52,"value":179}," -H",{"type":46,"tag":135,"props":181,"children":183},{"style":182},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[184],{"type":52,"value":185}," \"",{"type":46,"tag":135,"props":187,"children":188},{"style":166},[189],{"type":52,"value":190},"Idempotency-Key: \u003Cuuidv4>",{"type":46,"tag":135,"props":192,"children":193},{"style":182},[194],{"type":52,"value":195},"\"",{"type":46,"tag":135,"props":197,"children":198},{"style":166},[199],{"type":52,"value":200}," https:\u002F\u002Fupstash.com\u002Fstart-redis\n",{"type":46,"tag":90,"props":202,"children":203},{},[204,216,236],{"type":46,"tag":94,"props":205,"children":206},{},[207,209,214],{"type":52,"value":208},"Sending your own UUIDv4 makes the first call ",{"type":46,"tag":70,"props":210,"children":211},{},[212],{"type":52,"value":213},"retry-safe",{"type":52,"value":215}," — if the response is lost, retrying with the same UUID returns the same database instead of minting a duplicate.",{"type":46,"tag":94,"props":217,"children":218},{},[219,221,227,229,234],{"type":52,"value":220},"Re-POST with the same ",{"type":46,"tag":55,"props":222,"children":224},{"className":223},[],[225],{"type":52,"value":226},"Idempotency-Key",{"type":52,"value":228}," to ",{"type":46,"tag":70,"props":230,"children":231},{},[232],{"type":52,"value":233},"re-fetch credentials",{"type":52,"value":235}," for an existing database.",{"type":46,"tag":94,"props":237,"children":238},{},[239,241,246],{"type":52,"value":240},"The header is optional. Omit it to mint a new database with a server-generated id (returned in the response — re-fetch later by passing that id back as ",{"type":46,"tag":55,"props":242,"children":244},{"className":243},[],[245],{"type":52,"value":226},{"type":52,"value":247},"). Only UUIDv4 is accepted.",{"type":46,"tag":64,"props":249,"children":250},{},[251],{"type":52,"value":252},"The response is markdown containing:",{"type":46,"tag":90,"props":254,"children":255},{},[256,280,291,302,320],{"type":46,"tag":94,"props":257,"children":258},{},[259,265,267,273,274],{"type":46,"tag":55,"props":260,"children":262},{"className":261},[],[263],{"type":52,"value":264},"Database ID",{"type":52,"value":266},", ",{"type":46,"tag":55,"props":268,"children":270},{"className":269},[],[271],{"type":52,"value":272},"Endpoint",{"type":52,"value":266},{"type":46,"tag":55,"props":275,"children":277},{"className":276},[],[278],{"type":52,"value":279},"Token",{"type":46,"tag":94,"props":281,"children":282},{},[283,289],{"type":46,"tag":55,"props":284,"children":286},{"className":285},[],[287],{"type":52,"value":288},"Metrics",{"type":52,"value":290}," URL (JSON: uptime, commands, keys, throughput, memory, bandwidth)",{"type":46,"tag":94,"props":292,"children":293},{},[294,300],{"type":46,"tag":55,"props":295,"children":297},{"className":296},[],[298],{"type":52,"value":299},"Expires",{"type":52,"value":301}," date",{"type":46,"tag":94,"props":303,"children":304},{},[305,311,313,318],{"type":46,"tag":55,"props":306,"children":308},{"className":307},[],[309],{"type":52,"value":310},"Console URL",{"type":52,"value":312}," to share with the user (where they view usage and click ",{"type":46,"tag":70,"props":314,"children":315},{},[316],{"type":52,"value":317},"Claim",{"type":52,"value":319}," to keep the database)",{"type":46,"tag":94,"props":321,"children":322},{},[323],{"type":52,"value":324},"An inline quickstart for the body-style REST API",{"type":46,"tag":64,"props":326,"children":327},{},[328],{"type":52,"value":329},"Parse these out of the markdown response and use them directly — there is no separate JSON envelope.",{"type":46,"tag":117,"props":331,"children":333},{"id":332},"calling-the-database-body-style-rest",[334],{"type":52,"value":335},"Calling the database (body-style REST)",{"type":46,"tag":64,"props":337,"children":338},{},[339,341,346],{"type":52,"value":340},"The returned endpoint speaks the Upstash Redis REST API. Prefer the ",{"type":46,"tag":70,"props":342,"children":343},{},[344],{"type":52,"value":345},"body-style",{"type":52,"value":347}," form: POST a JSON array as the body so you don't have to URL-encode the command.",{"type":46,"tag":124,"props":349,"children":351},{"className":126,"code":350,"language":128,"meta":129,"style":129},"# SET with TTL\ncurl https:\u002F\u002F\u003Cendpoint> \\\n  -H \"Authorization: Bearer \u003Ctoken>\" \\\n  -d '[\"SET\",\"session:abc\",\"{\\\"step\\\":2}\",\"EX\",\"3600\"]'\n\n# GET\ncurl https:\u002F\u002F\u003Cendpoint> \\\n  -H \"Authorization: Bearer \u003Ctoken>\" \\\n  -d '[\"GET\",\"session:abc\"]'\n",[352],{"type":46,"tag":55,"props":353,"children":354},{"__ignoreMap":129},[355,363,401,426,450,460,469,501,525],{"type":46,"tag":135,"props":356,"children":357},{"class":137,"line":138},[358],{"type":46,"tag":135,"props":359,"children":360},{"style":142},[361],{"type":52,"value":362},"# SET with TTL\n",{"type":46,"tag":135,"props":364,"children":365},{"class":137,"line":33},[366,370,375,380,385,391,396],{"type":46,"tag":135,"props":367,"children":368},{"style":160},[369],{"type":52,"value":163},{"type":46,"tag":135,"props":371,"children":372},{"style":166},[373],{"type":52,"value":374}," https:\u002F\u002F",{"type":46,"tag":135,"props":376,"children":377},{"style":182},[378],{"type":52,"value":379},"\u003C",{"type":46,"tag":135,"props":381,"children":382},{"style":166},[383],{"type":52,"value":384},"endpoin",{"type":46,"tag":135,"props":386,"children":388},{"style":387},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[389],{"type":52,"value":390},"t",{"type":46,"tag":135,"props":392,"children":393},{"style":182},[394],{"type":52,"value":395},">",{"type":46,"tag":135,"props":397,"children":398},{"style":387},[399],{"type":52,"value":400}," \\\n",{"type":46,"tag":135,"props":402,"children":403},{"class":137,"line":156},[404,409,413,418,422],{"type":46,"tag":135,"props":405,"children":406},{"style":166},[407],{"type":52,"value":408},"  -H",{"type":46,"tag":135,"props":410,"children":411},{"style":182},[412],{"type":52,"value":185},{"type":46,"tag":135,"props":414,"children":415},{"style":166},[416],{"type":52,"value":417},"Authorization: Bearer \u003Ctoken>",{"type":46,"tag":135,"props":419,"children":420},{"style":182},[421],{"type":52,"value":195},{"type":46,"tag":135,"props":423,"children":424},{"style":387},[425],{"type":52,"value":400},{"type":46,"tag":135,"props":427,"children":429},{"class":137,"line":428},4,[430,435,440,445],{"type":46,"tag":135,"props":431,"children":432},{"style":166},[433],{"type":52,"value":434},"  -d",{"type":46,"tag":135,"props":436,"children":437},{"style":182},[438],{"type":52,"value":439}," '",{"type":46,"tag":135,"props":441,"children":442},{"style":166},[443],{"type":52,"value":444},"[\"SET\",\"session:abc\",\"{\\\"step\\\":2}\",\"EX\",\"3600\"]",{"type":46,"tag":135,"props":446,"children":447},{"style":182},[448],{"type":52,"value":449},"'\n",{"type":46,"tag":135,"props":451,"children":453},{"class":137,"line":452},5,[454],{"type":46,"tag":135,"props":455,"children":457},{"emptyLinePlaceholder":456},true,[458],{"type":52,"value":459},"\n",{"type":46,"tag":135,"props":461,"children":463},{"class":137,"line":462},6,[464],{"type":46,"tag":135,"props":465,"children":466},{"style":142},[467],{"type":52,"value":468},"# GET\n",{"type":46,"tag":135,"props":470,"children":472},{"class":137,"line":471},7,[473,477,481,485,489,493,497],{"type":46,"tag":135,"props":474,"children":475},{"style":160},[476],{"type":52,"value":163},{"type":46,"tag":135,"props":478,"children":479},{"style":166},[480],{"type":52,"value":374},{"type":46,"tag":135,"props":482,"children":483},{"style":182},[484],{"type":52,"value":379},{"type":46,"tag":135,"props":486,"children":487},{"style":166},[488],{"type":52,"value":384},{"type":46,"tag":135,"props":490,"children":491},{"style":387},[492],{"type":52,"value":390},{"type":46,"tag":135,"props":494,"children":495},{"style":182},[496],{"type":52,"value":395},{"type":46,"tag":135,"props":498,"children":499},{"style":387},[500],{"type":52,"value":400},{"type":46,"tag":135,"props":502,"children":504},{"class":137,"line":503},8,[505,509,513,517,521],{"type":46,"tag":135,"props":506,"children":507},{"style":166},[508],{"type":52,"value":408},{"type":46,"tag":135,"props":510,"children":511},{"style":182},[512],{"type":52,"value":185},{"type":46,"tag":135,"props":514,"children":515},{"style":166},[516],{"type":52,"value":417},{"type":46,"tag":135,"props":518,"children":519},{"style":182},[520],{"type":52,"value":195},{"type":46,"tag":135,"props":522,"children":523},{"style":387},[524],{"type":52,"value":400},{"type":46,"tag":135,"props":526,"children":528},{"class":137,"line":527},9,[529,533,537,542],{"type":46,"tag":135,"props":530,"children":531},{"style":166},[532],{"type":52,"value":434},{"type":46,"tag":135,"props":534,"children":535},{"style":182},[536],{"type":52,"value":439},{"type":46,"tag":135,"props":538,"children":539},{"style":166},[540],{"type":52,"value":541},"[\"GET\",\"session:abc\"]",{"type":46,"tag":135,"props":543,"children":544},{"style":182},[545],{"type":52,"value":449},{"type":46,"tag":64,"props":547,"children":548},{},[549,551,557,559,565],{"type":52,"value":550},"You can also use the official SDKs against the same endpoint + token (",{"type":46,"tag":55,"props":552,"children":554},{"className":553},[],[555],{"type":52,"value":556},"@upstash\u002Fredis",{"type":52,"value":558}," for TS\u002FJS, ",{"type":46,"tag":55,"props":560,"children":562},{"className":561},[],[563],{"type":52,"value":564},"upstash-redis",{"type":52,"value":566}," for Python).",{"type":46,"tag":117,"props":568,"children":570},{"id":569},"common-agent-patterns",[571],{"type":52,"value":572},"Common agent patterns",{"type":46,"tag":574,"props":575,"children":576},"table",{},[577,596],{"type":46,"tag":578,"props":579,"children":580},"thead",{},[581],{"type":46,"tag":582,"props":583,"children":584},"tr",{},[585,591],{"type":46,"tag":586,"props":587,"children":588},"th",{},[589],{"type":52,"value":590},"Need",{"type":46,"tag":586,"props":592,"children":593},{},[594],{"type":52,"value":595},"Commands",{"type":46,"tag":597,"props":598,"children":599},"tbody",{},[600,626,650,674],{"type":46,"tag":582,"props":601,"children":602},{},[603,609],{"type":46,"tag":604,"props":605,"children":606},"td",{},[607],{"type":52,"value":608},"Short-term memory across tool calls in one run",{"type":46,"tag":604,"props":610,"children":611},{},[612,618,620],{"type":46,"tag":55,"props":613,"children":615},{"className":614},[],[616],{"type":52,"value":617},"SET key value EX \u003Cttl>",{"type":52,"value":619}," \u002F ",{"type":46,"tag":55,"props":621,"children":623},{"className":622},[],[624],{"type":52,"value":625},"GET key",{"type":46,"tag":582,"props":627,"children":628},{},[629,634],{"type":46,"tag":604,"props":630,"children":631},{},[632],{"type":52,"value":633},"Conversation \u002F turn-by-turn log",{"type":46,"tag":604,"props":635,"children":636},{},[637,643,644],{"type":46,"tag":55,"props":638,"children":640},{"className":639},[],[641],{"type":52,"value":642},"LPUSH chat:\u003Cuser> \u003Cjson>",{"type":52,"value":619},{"type":46,"tag":55,"props":645,"children":647},{"className":646},[],[648],{"type":52,"value":649},"LRANGE chat:\u003Cuser> 0 20",{"type":46,"tag":582,"props":651,"children":652},{},[653,658],{"type":46,"tag":604,"props":654,"children":655},{},[656],{"type":52,"value":657},"Sub-agent work queue (producer\u002Fconsumer)",{"type":46,"tag":604,"props":659,"children":660},{},[661,667,668],{"type":46,"tag":55,"props":662,"children":664},{"className":663},[],[665],{"type":52,"value":666},"LPUSH jobs \u003Cjson>",{"type":52,"value":619},{"type":46,"tag":55,"props":669,"children":671},{"className":670},[],[672],{"type":52,"value":673},"RPOP jobs",{"type":46,"tag":582,"props":675,"children":676},{},[677,682],{"type":46,"tag":604,"props":678,"children":679},{},[680],{"type":52,"value":681},"Ranked memory (recent-first or score-first)",{"type":46,"tag":604,"props":683,"children":684},{},[685,691,692],{"type":46,"tag":55,"props":686,"children":688},{"className":687},[],[689],{"type":52,"value":690},"ZADD memories \u003Cscore> \u003Cmember>",{"type":52,"value":619},{"type":46,"tag":55,"props":693,"children":695},{"className":694},[],[696],{"type":52,"value":697},"ZREVRANGE memories 0 9",{"type":46,"tag":117,"props":699,"children":701},{"id":700},"tell-the-user",[702],{"type":52,"value":703},"Tell the user",{"type":46,"tag":64,"props":705,"children":706},{},[707,709,714],{"type":52,"value":708},"After provisioning, surface the ",{"type":46,"tag":70,"props":710,"children":711},{},[712],{"type":52,"value":713},"console URL",{"type":52,"value":715}," from the response to the user. Make clear that:",{"type":46,"tag":90,"props":717,"children":718},{},[719,724,735],{"type":46,"tag":94,"props":720,"children":721},{},[722],{"type":52,"value":723},"The database expires in 3 days.",{"type":46,"tag":94,"props":725,"children":726},{},[727,729,733],{"type":52,"value":728},"They can view usage at the console URL and click ",{"type":46,"tag":70,"props":730,"children":731},{},[732],{"type":52,"value":317},{"type":52,"value":734}," to keep it.",{"type":46,"tag":94,"props":736,"children":737},{},[738],{"type":52,"value":739},"This is unauthenticated scratch storage — don't put secrets or PII in it.",{"type":46,"tag":117,"props":741,"children":743},{"id":742},"reference",[744],{"type":52,"value":745},"Reference",{"type":46,"tag":90,"props":747,"children":748},{},[749,770,781,792],{"type":46,"tag":94,"props":750,"children":751},{},[752,754,760,762],{"type":52,"value":753},"Service entry point (also serves the ",{"type":46,"tag":55,"props":755,"children":757},{"className":756},[],[758],{"type":52,"value":759},"GET",{"type":52,"value":761}," doc): ",{"type":46,"tag":763,"props":764,"children":768},"a",{"href":765,"rel":766},"https:\u002F\u002Fupstash.com\u002Fstart-redis",[767],"nofollow",[769],{"type":52,"value":765},{"type":46,"tag":94,"props":771,"children":772},{},[773,775],{"type":52,"value":774},"Full REST API: ",{"type":46,"tag":763,"props":776,"children":779},{"href":777,"rel":778},"https:\u002F\u002Fupstash.com\u002Fdocs\u002Fredis\u002Ffeatures\u002Frestapi",[767],[780],{"type":52,"value":777},{"type":46,"tag":94,"props":782,"children":783},{},[784,786],{"type":52,"value":785},"TS\u002FJS SDK: ",{"type":46,"tag":763,"props":787,"children":790},{"href":788,"rel":789},"https:\u002F\u002Fupstash.com\u002Fdocs\u002Fredis\u002Fsdks\u002Fts",[767],[791],{"type":52,"value":788},{"type":46,"tag":94,"props":793,"children":794},{},[795,797],{"type":52,"value":796},"Python SDK: ",{"type":46,"tag":763,"props":798,"children":801},{"href":799,"rel":800},"https:\u002F\u002Fupstash.com\u002Fdocs\u002Fredis\u002Fsdks\u002Fpy",[767],[802],{"type":52,"value":799},{"type":46,"tag":804,"props":805,"children":806},"style",{},[807],{"type":52,"value":808},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":810,"total":987},[811,829,842,854,868,885,902,917,932,947,962,977],{"slug":812,"name":812,"fn":813,"description":814,"org":815,"tags":816,"stars":826,"repoUrl":827,"updatedAt":828},"context7-cli","manage documentation and skills with ctx7","Use the ctx7 CLI to fetch library documentation, manage AI coding skills, and configure Context7 MCP. Activate when the user mentions \"ctx7\" or \"context7\", needs current docs for any library, wants to install\u002Fsearch\u002Fgenerate skills, or needs to set up Context7 for their AI coding agent.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[817,820,823],{"name":818,"slug":819,"type":15},"CLI","cli",{"name":821,"slug":822,"type":15},"Documentation","documentation",{"name":824,"slug":825,"type":15},"Knowledge Management","knowledge-management",60095,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fcontext7","2026-04-06T18:55:02.689254",{"slug":830,"name":830,"fn":831,"description":832,"org":833,"tags":834,"stars":826,"repoUrl":827,"updatedAt":841},"context7-docs","fetch documentation and code examples","Fetch up-to-date documentation and code examples for any library, framework, SDK, CLI tool, or cloud service. Use whenever the user asks about a specific library — even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot — because training data may not reflect recent API changes or version updates.\nAlways use for: API syntax questions, configuration options, version migration issues, \"how do I\" questions mentioning a library name, debugging that involves library-specific behavior, setup instructions, and CLI tool usage.\nUse even when you think you know the answer. Do not rely on training data for API details, signatures, or configuration options — they are frequently out of date. Prefer this over web search for library documentation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[835,836,837,838],{"name":818,"slug":819,"type":15},{"name":821,"slug":822,"type":15},{"name":745,"slug":742,"type":15},{"name":839,"slug":840,"type":15},"SDK","sdk","2026-07-28T05:35:31.125695",{"slug":843,"name":843,"fn":844,"description":845,"org":846,"tags":847,"stars":826,"repoUrl":827,"updatedAt":853},"context7-mcp","retrieve library documentation via MCP","This skill should be used when the user asks about libraries, frameworks, API references, or needs code examples. Activates for setup questions, code generation involving libraries, or mentions of specific frameworks like React, Vue, Next.js, Prisma, Supabase, etc.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[848,849,850],{"name":821,"slug":822,"type":15},{"name":824,"slug":825,"type":15},{"name":851,"slug":852,"type":15},"MCP","mcp","2026-07-28T05:35:32.109879",{"slug":855,"name":855,"fn":856,"description":857,"org":858,"tags":859,"stars":826,"repoUrl":827,"updatedAt":867},"find-docs","retrieve documentation for developer technologies","Retrieves up-to-date documentation, API references, and code examples for any developer technology. Use this skill whenever the user asks about a specific library, framework, SDK, CLI tool, or cloud service — even for well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. Your training data may not reflect recent API changes or version updates.\nAlways use for: API syntax questions, configuration options, version migration issues, \"how do I\" questions mentioning a library name, debugging that involves library-specific behavior, setup instructions, and CLI tool usage.\nUse even when you think you know the answer — do not rely on training data for API details, signatures, or configuration options as they are frequently outdated. Always verify against current docs. Prefer this over web search for library documentation and API details.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[860,861,864],{"name":821,"slug":822,"type":15},{"name":862,"slug":863,"type":15},"Research","research",{"name":865,"slug":866,"type":15},"Search","search","2026-07-28T05:35:30.135004",{"slug":869,"name":869,"fn":870,"description":871,"org":872,"tags":873,"stars":882,"repoUrl":883,"updatedAt":884},"upstash-ratelimit-ts","implement Redis rate limiting with Upstash","Lightweight guidance for using the Redis Rate Limit TypeScript SDK, including setup steps, basic usage, and pointers to advanced algorithm, features, pricing, and traffic‑protection docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[874,877,878,881],{"name":875,"slug":876,"type":15},"Performance","performance",{"name":26,"slug":27,"type":15},{"name":879,"slug":880,"type":15},"TypeScript","typescript",{"name":9,"slug":8,"type":15},2043,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fratelimit-js","2026-04-06T18:55:05.25459",{"slug":886,"name":886,"fn":887,"description":888,"org":889,"tags":890,"stars":899,"repoUrl":900,"updatedAt":901},"redis-js","manage serverless Redis with Upstash","Work with the Upstash Redis JavaScript\u002FTypeScript SDK for serverless Redis operations. Use for caching, session storage, rate limiting, leaderboards, full-text search (querying, filtering, aggregating with @upstash\u002Fredis search extension), and all Redis data structures. Supports automatic serialization\u002Fdeserialization of JavaScript types. Search also available via @upstash\u002Fsearch-redis and @upstash\u002Fsearch-ioredis adapters for TCP clients.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[891,894,895,898],{"name":892,"slug":893,"type":15},"Node.js","node-js",{"name":26,"slug":27,"type":15},{"name":896,"slug":897,"type":15},"Serverless","serverless",{"name":9,"slug":8,"type":15},959,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fredis-js","2026-04-06T18:55:06.549589",{"slug":903,"name":903,"fn":904,"description":905,"org":906,"tags":907,"stars":914,"repoUrl":915,"updatedAt":916},"qstash-js","manage serverless messaging with QStash","Work with the QStash JavaScript\u002FTypeScript SDK for serverless messaging, scheduling. Use when publishing messages to HTTP endpoints, creating schedules, managing queues, verifying incoming messages in serverless environments.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[908,911,912,913],{"name":909,"slug":910,"type":15},"Messaging","messaging",{"name":892,"slug":893,"type":15},{"name":896,"slug":897,"type":15},{"name":9,"slug":8,"type":15},268,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fqstash-js","2026-04-06T18:55:07.811408",{"slug":918,"name":918,"fn":919,"description":920,"org":921,"tags":922,"stars":929,"repoUrl":930,"updatedAt":931},"upstash-workflow-js","build serverless workflows with Upstash","Lightweight guidance for using the Upstash Workflow SDK to define, trigger, and manage workflows. Use this Skill whenever a user wants to create workflow endpoints, run steps, or interact with the Upstash Workflow client.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[923,924,925,926],{"name":892,"slug":893,"type":15},{"name":896,"slug":897,"type":15},{"name":9,"slug":8,"type":15},{"name":927,"slug":928,"type":15},"Workflow Automation","workflow-automation",150,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fworkflow-js","2026-04-06T18:55:09.106744",{"slug":933,"name":933,"fn":934,"description":935,"org":936,"tags":937,"stars":944,"repoUrl":945,"updatedAt":946},"upstash-vector-js","implement vector search with Upstash","Provides quick-start guidance and a unified entry point for Vector features, SDK usage, and integrations. Use when users ask how to work with Vector, its TS SDK, features, or supported frameworks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[938,941,942,943],{"name":939,"slug":940,"type":15},"AI Infrastructure","ai-infrastructure",{"name":892,"slug":893,"type":15},{"name":865,"slug":866,"type":15},{"name":9,"slug":8,"type":15},70,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fvector-js","2026-04-06T18:55:10.452627",{"slug":948,"name":948,"fn":949,"description":950,"org":951,"tags":952,"stars":959,"repoUrl":960,"updatedAt":961},"upstash-box-js","build sandboxed environments with Upstash Box","Work with the @upstash\u002Fbox SDK for sandboxed cloud containers with AI agents, shell, filesystem, and git. Use when building with Upstash Box, creating sandboxed environments, running AI agents in containers, or orchestrating parallel boxes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[953,954,955,958],{"name":23,"slug":24,"type":15},{"name":892,"slug":893,"type":15},{"name":956,"slug":957,"type":15},"Sandboxing","sandboxing",{"name":9,"slug":8,"type":15},34,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fbox","2026-04-06T18:55:14.361763",{"slug":963,"name":963,"fn":964,"description":965,"org":966,"tags":967,"stars":974,"repoUrl":975,"updatedAt":976},"upstash-search-js","implement search features with Upstash","Entry point for documentation skills covering Upstash Search quick starts, core concepts, and TypeScript SDK usage. Use when a user asks how to get started, how indexing works, or how to use the TS client.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[968,971,972,973],{"name":969,"slug":970,"type":15},"API Development","api-development",{"name":892,"slug":893,"type":15},{"name":865,"slug":866,"type":15},{"name":9,"slug":8,"type":15},22,"https:\u002F\u002Fgithub.com\u002Fupstash\u002Fsearch-js","2026-04-06T18:55:11.769669",{"slug":8,"name":8,"fn":978,"description":979,"org":980,"tags":981,"stars":29,"repoUrl":30,"updatedAt":986},"build applications with Upstash SDKs","Work with any Upstash TypeScript\u002FJavaScript SDK including Redis, Box, QStash, Workflow, Vector, Search and Ratelimit. Use when the user is working with any Upstash product or SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[982,983,984,985],{"name":20,"slug":21,"type":15},{"name":26,"slug":27,"type":15},{"name":896,"slug":897,"type":15},{"name":9,"slug":8,"type":15},"2026-04-06T18:55:15.67714",19,{"items":989,"total":471},[990,997,1014,1026,1036,1049,1059],{"slug":8,"name":8,"fn":978,"description":979,"org":991,"tags":992,"stars":29,"repoUrl":30,"updatedAt":986},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[993,994,995,996],{"name":20,"slug":21,"type":15},{"name":26,"slug":27,"type":15},{"name":896,"slug":897,"type":15},{"name":9,"slug":8,"type":15},{"slug":998,"name":998,"fn":949,"description":999,"org":1000,"tags":1001,"stars":29,"repoUrl":30,"updatedAt":1013},"upstash-box-py","Work with the upstash-box Python SDK for sandboxed cloud containers with AI agents, shell, filesystem, and git. Use when building with Upstash Box in Python, creating sandboxed environments, running AI agents in containers, or orchestrating parallel boxes.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1002,1005,1008,1011,1012],{"name":1003,"slug":1004,"type":15},"Cloud","cloud",{"name":1006,"slug":1007,"type":15},"Code Execution","code-execution",{"name":1009,"slug":1010,"type":15},"Python","python",{"name":956,"slug":957,"type":15},{"name":9,"slug":8,"type":15},"2026-06-26T07:48:31.466005",{"slug":1015,"name":1015,"fn":1016,"description":1017,"org":1018,"tags":1019,"stars":29,"repoUrl":30,"updatedAt":1025},"upstash-cli","manage Upstash resources via CLI","Run the Upstash CLI (`upstash`) against the Upstash Developer API for Redis, Vector, Search, QStash, and teams. Use when listing or managing databases, backups, vector\u002Fsearch indexes, QStash instances, team members, stats, or any non-interactive Upstash automation with JSON output and terminal commands.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1020,1021,1022,1023,1024],{"name":818,"slug":819,"type":15},{"name":20,"slug":21,"type":15},{"name":26,"slug":27,"type":15},{"name":896,"slug":897,"type":15},{"name":9,"slug":8,"type":15},"2026-04-27T05:30:29.643462",{"slug":1027,"name":1027,"fn":904,"description":1028,"org":1029,"tags":1030,"stars":29,"repoUrl":30,"updatedAt":1035},"upstash-qstash-js","Work with the QStash TypeScript\u002FJavaScript SDK for serverless messaging, scheduling. Use when publishing messages to HTTP endpoints, creating schedules, managing queues, verifying incoming messages and other QStash features in serverless environments.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1031,1032,1033,1034],{"name":909,"slug":910,"type":15},{"name":892,"slug":893,"type":15},{"name":896,"slug":897,"type":15},{"name":9,"slug":8,"type":15},"2026-04-06T18:55:20.426103",{"slug":1037,"name":1037,"fn":1038,"description":1039,"org":1040,"tags":1041,"stars":29,"repoUrl":30,"updatedAt":1048},"upstash-ratelimit-js","implement rate limiting with Upstash","Lightweight guidance for using the Upstash Redis RateLimit TypeScript\u002FJavaScript SDK, including setup steps, basic usage, and pointers to advanced algorithm, features, pricing, and traffic‑protection docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1042,1043,1044,1047],{"name":892,"slug":893,"type":15},{"name":875,"slug":876,"type":15},{"name":1045,"slug":1046,"type":15},"Security","security",{"name":9,"slug":8,"type":15},"2026-04-06T18:55:19.131145",{"slug":1050,"name":1050,"fn":887,"description":1051,"org":1052,"tags":1053,"stars":29,"repoUrl":30,"updatedAt":1058},"upstash-redis-js","Work with the Upstash Redis TypeScript\u002FJavaScript SDK for serverless Redis operations. Use for caching, session storage, rate limiting, leaderboards, full-text search (querying, filtering, aggregating) with Upstash Redis Search (different from regular FT.SEARCH), and all Redis data structures. Supports automatic serialization\u002Fdeserialization of JavaScript types. Upstash Redis Search also available via @upstash\u002Fsearch-redis and @upstash\u002Fsearch-ioredis adapters for TCP clients.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1054,1055,1056,1057],{"name":892,"slug":893,"type":15},{"name":26,"slug":27,"type":15},{"name":896,"slug":897,"type":15},{"name":9,"slug":8,"type":15},"2026-04-06T18:55:22.793505",{"slug":4,"name":4,"fn":5,"description":6,"org":1060,"tags":1061,"stars":29,"repoUrl":30,"updatedAt":31},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1062,1063,1064,1065,1066,1067],{"name":23,"slug":24,"type":15},{"name":13,"slug":14,"type":15},{"name":20,"slug":21,"type":15},{"name":17,"slug":18,"type":15},{"name":26,"slug":27,"type":15},{"name":9,"slug":8,"type":15}]