Managing DNS Records
All DNS endpoints require SIWE authentication. Mutations (add, update, delete) cost $0.10 USDC each, settled via x402.
List records
Section titled “List records”curl https://api.bloomfilter.xyz/dns/example.io \ -H "Authorization: Bearer YOUR_TOKEN"{ "domain": "example.io", "records": [ { "recordId": "rr-1", "type": "A", "host": "@", "value": "76.76.21.21", "ttl": 3600, "distance": null }, { "recordId": "rr-2", "type": "CNAME", "host": "www", "value": "example.io", "ttl": 3600, "distance": null }, { "recordId": "rr-3", "type": "MX", "host": "@", "value": "mail.example.io", "ttl": 3600, "distance": 10 } ]}Add a record
Section titled “Add a record”curl -X POST https://api.bloomfilter.xyz/dns/example.io \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"type": "A", "host": "@", "value": "76.76.21.21"}'{ "recordId": "rr-abc123", "type": "A", "host": "@", "value": "76.76.21.21", "ttl": 3600, "distance": null}Update a record
Section titled “Update a record”Use the recordId from the list response:
curl -X PUT https://api.bloomfilter.xyz/dns/example.io/rr-abc123 \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{"value": "1.2.3.4", "ttl": 300}'{ "message": "DNS record updated"}You can update any combination of host, value, ttl, and priority. Only include the fields you want to change.
Delete a record
Section titled “Delete a record”curl -X DELETE https://api.bloomfilter.xyz/dns/example.io/rr-abc123 \ -H "Authorization: Bearer YOUR_TOKEN"{ "message": "DNS record deleted"}Supported record types
Section titled “Supported record types”| Type | Purpose | Example value | Priority |
|---|---|---|---|
| A | IPv4 address | 76.76.21.21 | No |
| AAAA | IPv6 address | 2001:db8::1 | No |
| CNAME | Alias | example.io | No |
| MX | Mail server | mail.example.io | Yes (required) |
| TXT | Text/verification | v=spf1 include:... | No |
| NS | Nameserver | ns1.example.com | No |
| SRV | Service | 10 5 8080 server.example.io | Yes |
| CAA | Certificate authority | 0 issue "letsencrypt.org" | No |
Request body reference
Section titled “Request body reference”| Field | Type | Default | Range | Notes |
|---|---|---|---|---|
type | string | — | Required | One of the types above |
host | string | "@" | 1-253 chars | @ for root, www, mail, etc. |
value | string | — | Required, 1-4096 chars | IP, hostname, or text content |
ttl | number | 3600 | 300-86400 | Time-to-live in seconds |
priority | number | — | 0-65535 | Required for MX, optional for SRV |