Simple & Shareable

Key-value storage with
presigned URLs

Store text via REST. Secure write access for webhooks, forms, and third parties.

~ terminal ~
# Create a stash to organize your data
$ curl -X POST https://wrendb.com/api/stash

{
  "stash_id": "abc123...",
  "master_token": "token-xyz789...",
  "message": "Save this token securely..."
}

# Add an item to the stash
$ curl -X POST https://wrendb.com/api/item/abc123... \
  -d "Hello, world!"

{
  "key": "def456...",
  "message": "Item created successfully in stash"
}

# Read it back (public by default)
$ curl https://wrendb.com/api/item/abc123...

Hello, world!

# Generate a presigned URL for time-limited writes
$ curl -X POST https://wrendb.com/api/abc123.../def456.../presign \
  -H "Authorization: Bearer token-xyz789..." \
  -H "X-Operation: upsert" \
  -d "Embedded value here!"

{
  "presigned_url": "https://wrendb.com/api/update?token=...",
  "expires_at": "2025-11-27T12:30:00Z",
  "operation": "upsert"
}

# Use the presigned URL (no auth needed!)
$ curl -X POST "https://wrendb.com/api/update?token=..."

{
  "id": "def456...",
  "message": "Item upserted successfully"
}

How it works

1

Create a stash

POST to /stash and get back a master token. This is your key to everything.

2

Add items

Store any text data as key-value pairs. JSON, HTML, plain text - whatever you need.

3

Delegate writes with presigned URLs

Generate time-limited, single-use URLs that allow specific write operations. Perfect for webhooks, forms, or one-click approvals—no token sharing required.

4

No cleanup needed

Data expires automatically — WrenDB stays lightweight by design.

Features

Built for ephemeral workflows

Organize with stashes

Each stash is a namespace for related key-value pairs, controlled by one master token.

Delegate writes with presigned URLs

Generate time-limited URLs that allow specific write operations without sharing your master token. Perfect for webhooks, HTML forms, or one-click approvals.

Store any text: JSON, logs, flags, output, whatever

If it's text, it works. JSON, HTML, XML, plain text, configuration, build output—store it all.

Auto-expiring data

All data expires automatically—no manual cleanup needed. Perfect for ephemeral use cases where you need temporary storage without long-term persistence overhead.

Share write access without sharing secrets

Generate a presigned URL. Give it to a webhook, a form, or a third party. They can write to your stash—you keep your token.

~ presigned urls ~
# Generate a presigned URL for time-limited writes
$ curl -X POST https://wrendb.com/api/{stash_id}/{item_id}/presign \
  -H "Authorization: Bearer {token}" \
  -d "payload from webhook"

{
  "presigned_url": "https://wrendb.com/api/presigned?token=abc123...",
  "expires_at": "2025-11-27T12:30:00Z"
}

# Anyone with this URL can write—no token needed
$ curl -X POST "https://wrendb.com/api/presigned?token=abc123..."

{
  "id": "item_id",
  "message": "Operation successful"
}

Why presigned URLs matter

Time-limited

URLs expire after 30 minutes. Set it and forget it.

No token exposure

Share write access without sharing your master token.

Single-use

Each URL can only be used once. Replay protection built-in.

Third-party safe

Perfect for webhooks, forms, and external services you don't fully trust.

Normally, sharing write access means sharing your token. That's a security risk you have to manage forever.

Presigned URLs flip this: Generate a one-time, time-limited URL for exactly the operation you need. Give it to Stripe webhooks, HTML forms, GitHub Actions, or any third party—without exposing your credentials.

How WrenDB compares

Presigned URLs are our superpower—competitors require you to share your API keys

Feature WrenDB KVdb JSONBin
Presigned URLs
Share write access safely ✅ Time-limited, single-use URLs ❌ Must share master key ❌ Must share API key
Webhook support ✅ No token exposure ⚠️ Requires sharing credentials ⚠️ Requires sharing credentials
Public read access
Auto-expiring data

The key difference: WrenDB lets you delegate write access without sharing your master token. Other services force you to expose credentials to third parties—a security risk that never expires.

Free Tier (forever)

Real use cases

What people actually build with WrenDB

Operational Control

One-click approvals

Generate presigned URLs to approve/deny actions (shutdown, rollback, cache flush). Share the URL in Slack or email—clicking it triggers the action. No credentials shared, URL expires in 30 minutes.

See Example →

CI/CD breadcrumbs

Pipelines write build status using presigned URLs. Team dashboards read the status publicly—no pipeline credentials needed. Each build gets its own time-limited write URL.

See Example →

Device mode switches

IoT devices read their state publicly. When you need to send a command, generate a presigned URL that updates the device state. Command URLs expire automatically for security.

See Example →
Development & Collaboration

Receive webhooks without exposing secrets

Generate a presigned URL for Stripe, GitHub, or Zapier webhooks. They POST to your stash—you keep your master token. Perfect for serverless webhook receivers on static sites.

See Example →

Config sharing / feature flags

Share environment-specific config or lightweight flags with public reads and controlled updates.

See Example →

API mockups

Store fixture responses per endpoint/version; frontends hit read-only URLs while backends are in progress.

See Example →

Our mission

WrenDB exists to give developers the simplest possible way to store and retrieve text over HTTP — no accounts, no dashboards, no complexity. Just a tiny, dependable bird that delivers your data when you need it.

WrenDB isn't here to replace your production database or data warehouse. It's a lightweight stash — perfect for small jobs, quick scripts, webhooks, forms, flags, and anything that just needs to be stored and shared fast.

Built for developers who value simplicity over ceremony.

)●>

Ready to get started?

One curl to store. One curl to retrieve. That's it. Free while in beta.