Quickstart

Get up and running with ResolveDB in under 5 minutes.

Try It Now

See ResolveDB in action - no signup required. Try the live query below or run dig in your terminal:

Live DNS Query
Try:
Query breakdown:
operation:getresource:weathernamespace:publicversion:v1

You just queried a globally distributed database using DNS. That query was served from a DNS resolver near you - possibly in under 1ms if it was cached.

Why DNS?

When you set a 5-minute TTL, every DNS resolver worldwide caches your data for free:

Your Application


┌─────────────────┐
│  Browser Cache  │ ─── TTL: 300s (5 min)
└────────┬────────┘
         │ Cache miss

┌─────────────────┐
│  Corporate DNS  │ ─── TTL: 300s
│   (10K users)   │     Serves all 10K users
└────────┬────────┘
         │ Cache miss (once per 5 min)

┌─────────────────┐
│   ISP Resolver  │ ─── TTL: 300s
│   (1M users)    │     Serves all 1M users
└────────┬────────┘
         │ Cache miss (once per 5 min)

┌─────────────────┐
│    ResolveDB    │ ─── Origin
│   (your data)   │     ~24 requests/day globally
└─────────────────┘

With a 5-minute TTL, a piece of data accessed by millions of users might only hit your origin a few times per hour globally.

1. Create an Account

Sign up for a free ResolveDB account to get your API credentials.

Create Account

2. Create Your First Record

Use the dashboard or API to create a DNS-accessible record.

Via Dashboard

Navigate to Records in the dashboard and click Create Record.

Via API

curl -X POST https://api.resolvedb.io/api/v1/records \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "record": {
      "key": "mydata.myapp.v1",
      "data": "eyJoZWxsbyI6IndvcmxkIn0="
    }
  }'

Note: The data field is Base64 encoded. The example above encodes {"hello":"world"}.

3. Query Your Record

Use any DNS tool to query your data. No SDK required.

Using dig

dig get.mydata.myapp.v1.resolvedb.net TXT +short

Using nslookup

nslookup -type=TXT get.mydata.myapp.v1.resolvedb.net

In your code (Node.js)

const dns = require('dns').promises;

async function getData() {
  const records = await dns.resolveTxt('get.mydata.myapp.v1.resolvedb.net');
  const response = records[0].join('');
  // Parse the UQRP response
  const data = response.match(/d=(.+)$/)?.[1];
  return JSON.parse(data);
}

getData().then(console.log);
// Output: { hello: "world" }

In your code (Python)

import dns.resolver
import json
import re

def get_data():
    answers = dns.resolver.resolve('get.mydata.myapp.v1.resolvedb.net', 'TXT')
    response = str(answers[0]).strip('"')
    # Parse the UQRP response
    match = re.search(r'd=(.+)$', response)
    if match:
        return json.loads(match.group(1))

print(get_data())
# Output: {'hello': 'world'}

Next Steps