Founder pricing: $3/mo

OAuth tokens expire. Your automations shouldn't.

Tokens that never perish

Connect your OAuth apps once. Get a permanent API key. perpetua.sh handles token refresh forever — so your scripts, agents, and workflows never break.

Start free trial →

14-day free trial · Cancel anytime

The Trial

Why OAuth is broken for builders

If you automate things with personal OAuth APIs, you know this pain.

Tokens break at 3am

Your OAuth tokens expire. Your n8n workflow fails silently. You wake up to broken automations and hours of debugging ahead.

Google Cloud Console is a maze

Service accounts don't work for personal accounts. OAuth app verification takes weeks. Every provider has its own dashboard hell.

Every provider is different

Oura, Strava, Google, Notion — each has its own auth quirks, refresh logic, and expiry timing. You end up writing the same token refresh code five times.

The Path

Three steps, then never again

The setup takes 2 minutes. After that, your automations just work — forever.

1

Connect once

POST to start the OAuth flow, open the URL, authorize in your browser. Done. Never do it again.

curl -X POST https://perpetua.sh/auth/oura/start \
  -H "Authorization: Bearer <your-key>" \
  -d '{"account": "me"}'

# → {"auth_url": "https://cloud.ouraring.com/oauth2/authorize?..."}
# Open the URL → authorize → done forever.
2

Get your API key

One permanent key. Covers every connected provider, every account.

# Your permanent perpetua.sh key — never expires
PERPETUA_KEY=pptua_live_abc123...

# That's it. No refresh tokens. No expiry.
3

Call any provider

Replace the provider base URL with perpetua.sh. We swap in the real OAuth token, forward the request, and return the response. Token expired? We refreshed it before you even asked.

# Before: juggle tokens manually
GET https://api.ouraring.com/v2/usercollection/daily_sleep
Authorization: Bearer <expires-in-7-days>

# After: just call perpetua.sh
GET https://perpetua.sh/proxy/oura/v2/usercollection/daily_sleep
Authorization: Bearer <your-perpetua-key>

The diff

Before
// Before: manual token management
const token = await refreshOAuthToken('oura');
const res = await fetch(
  'https://api.ouraring.com/v2/usercollection/daily_sleep',
  { headers: { Authorization: `Bearer ${token}` } }
);
After
// After: just call perpetua.sh
const res = await fetch(
  'https://perpetua.sh/proxy/oura/v2/usercollection/daily_sleep',
  { headers: { Authorization: `Bearer ${process.env.PERPETUA_KEY}` } }
);

The Architecture

One proxy, every provider

You send requests with your perpetua.sh key. We inject the real OAuth token and forward to the provider.

Your app

Script / Cron

n8n / Make

AI Agent

API key

perpetua.sh

OAuth proxy

EncryptedAuto-refresh
Real token

Provider APIs

Oura

Google Cal

& more

Transparent proxy — we never store your data. Requests pass through, tokens stay encrypted at rest.

Ready to stop fighting OAuth?

Lock in founder pricing — $3/month forever.

Start free trial →

The Arsenal

Your favorite APIs, covered

Pre-configured OAuth apps for popular providers. No setup required — just connect and go.

💍Oura Ring
📅Google Calendar
🚴Strava
📝Notionsoon
+more coming soon

Works with any HTTP client — curl, n8n, Make, Zapier, or your own scripts and agents.

We add new providers regularly. Need one that's not listed? Request it.

The Choice

Open Source or Hosted

Self-host for full control, or use perpetua.sh for the managed experience.

Open Source

Free

Self-hosted, full control

  • Self-host on any VPS
  • Bring your own OAuth apps
  • SQLite, no external deps
  • Full source on GitHub (MIT license)
View on GitHub →
Hosted

perpetua.sh

Managed, zero-ops

  • Managed, always-on
  • Pre-configured OAuth apps (no Google Cloud Console)
  • 14-day free trial, cancel anytime
  • Founder pricing: $3/month (locked forever)
Start free trial →

The Offering

Simple pricing. No surprises.

14-day free trial · Cancel anytime

Recommended

Founder

$3/mo

Locked in forever for early adopters

  • Unlimited providers
  • Unlimited accounts per provider
  • Unlimited API calls (fair use)
  • Founder price locked in forever
  • 14-day free trial included
Start free trial →

14-day free trial · Cancel anytime

After launch

Standard

$5/mo

Standard pricing after founder window closes

  • Unlimited providers
  • Unlimited accounts per provider
  • Unlimited API calls (fair use)
  • Founder price locked in forever
  • 14-day free trial included
Coming soon