Sandbox
Try the API's writes without touching anything real. Your sandbox is a free organization with sample DNS zones, records, monitors, a server, domains, certificates and an incident. Tokens you make there are test tokens, and nothing in it ever reaches a DNS provider, a cloud provider or the internet.
Create your sandbox
In the app, open My account → Developer and select Create a sandbox. InfraNest makes the organization, fills it with sample data and switches you to it. You have one sandbox; it is marked Sandbox in the organization switcher.
A sandbox belongs with an organization of your own: you need to be in at least one live organization to make one (sandbox_needs_organization). It is yours alone — nobody can be invited into it, and it cannot be subscribed or handed to someone else (sandbox_personal).
Its ID is in the address bar and under Settings → Organization, like any organization's. Your scripts use it in the same paths, for example /organizations/{sandbox id}/dns-zones.
Make a test token
While you work in the sandbox, create a token under My account → Developer as usual. A token made there is a test token:
- It starts with
in_test_after the ID (123|in_test_…), so you can tell it from a live token anywhere you paste it. - It works only in your sandbox. A live organization answers it with
test_token_sandbox_only. - A live token never works in the sandbox, not even one made for all your organizations. It gets
test_token_required.
Try an AI assistant there first
Connect Claude or ChatGPT and pick your sandbox on InfraNest's consent page, or give Claude Code, Cursor or VS Code a test token. The assistant reads the sample data, so you can see what it answers before it reads anything real.
What happens there
- Writes work, even before API writes are switched on for your own organizations. The same routes are writable as in a live organization, so what works in the sandbox works live, too.
- Nothing leaves. DNS changes are saved in InfraNest only, monitors are never actually checked, and webhooks and automation calls are not sent. No alerts go out either — no email, chat, SMS or push, and no status page notices. An alert that would have gone out is recorded as not sent in the destination's delivery log, so you can still see what would have happened. Lookups on the internet (certificate scans, DNS propagation) answer
organization_offline. - Limits are small, and the sandbox is free and does not count towards your organizations.
- Changes are audited, like everywhere else.
Start again
Select Reset sandbox on the same page, or call:
curl -X POST https://api.infranest.io/api/organizations/42/sandbox/reset \
-H "Authorization: Bearer $INFRANEST_TEST_TOKEN" \
-H "Accept: application/json"Everything you made in the sandbox is removed — domains, contacts, DNS zones and records, servers, monitors, maintenance windows, status pages, alert destinations, certificates, endpoints, dynamic IPs, watched domains, automations, webhooks, deploy links and tokens, templates, dashboards, report schedules, cost items, custom fields and tags — and the sample data comes back.
What stays:
- Your test tokens, so a test suite keeps using the token it reset with.
- The audit log, including the reset itself.
- The sandbox's settings — its members and roles, notification preferences and any integrations you connected. Nothing in a sandbox is ever sent through them.
- History — activity, cost and domain events — which ages out like any organization's.
A test suite can reset the sandbox before each run — up to 30 times an hour (rate_limited after that). One reset runs at a time: a second one sent while the first is still running waits for it, and answers conflict if it waited too long. Any organization that is not a sandbox answers this with 404.
When a sandbox is removed
- Unused for 90 days — no API call with its test tokens and no visit in the app. We email you 14 days before, and using it once keeps it.
- When you leave your last live organization, your sandbox goes too.
Making a new one is one click.
The sample data
| What | Sample |
|---|---|
| DNS zones | sandbox-{id}.example (A, AAAA, CNAME, MX, SPF and DMARC records) and shop-{id}.example |
| Server | web-01, at 192.0.2.10 |
| Monitors | A website, a certificate and a ping monitor, all up |
| Domains | sandbox-{id}.example, shop-{id}.example (expires in three weeks) and old-brand-{id}.example (expires in nine days, auto-renew off) |
| Certificates | One for sandbox-{id}.example, and one for shop-{id}.example that expires soon |
| Incident | A resolved outage of the website three days ago, with its timeline |
| Maintenance | An upgrade of web-01 scheduled for next week |
| Tags | production, staging |
Names use the reserved .example domain and documentation addresses, so nothing in the sandbox points at a real machine.