Environments

Production and Development keep separate users, keys and policies, so testing never touches a bill or a real inbox.

Every project has two environments, Production and Development. They share the same project and the same apps, but nothing else carries over: users, connections, API keys, policies and audit history are all separate.

Switching

The environment is a query param on any dashboard URL: ?env=development. Leave it off and you get Production. The switcher in the dashboard header does the same thing.

The project overview with Development selected, showing the free and unmetered banner
Development is labeled and banked apart from Production, on every page.

What differs

Production (prod)Development (dev)
UsersLive users, e.g. u_8f2Test users, e.g. test_001
Default customerYour own customer idsacme-qa
BillingBilled per active connected userFree and unmetered, always
API keysPrefixed a0_live_Prefixed a0_test_
Approval timeout60 minutes by default15 minutes by default
PoliciesIts own versionsIts own versions
Failed callsFreeFree

A banner on every Development page spells it out: "Test users and sandbox accounts. Free, unmetered and never billed."

Billing

Production is where the meter runs. An active connected user is anyone with at least one action in the month, counted in production only. Development calls, and any call that fails before it reaches the app, never count toward that number or toward a bill. See Billing for plans and rates.

Keys

An API key belongs to one project and one environment, so a a0_test_ key can't touch production data even if it leaks, and vice versa. Most teams keep a Development key in local .env files and a Production key in their deploy secrets. See API keys.

Policies

Policies are scoped per environment too. The fixtures show why that matters: acme-support runs as pol_acme_support in production, fail-closed, while its development counterpart, pol_acme_support_dev, runs fail-open — so a broken policy check blocks live calls but lets development calls through. Edit and version each environment's rules independently; publishing one never touches the other. See Policies.

Users

Connected users, their connections, and the audit log are all scoped to one environment. A test_001 connection created while building against Gmail in Development has no bearing on whether u_8f2 is connected in Production — your user has to go through Arc0 Connect again once you point them at the real thing.

There's no environment-wide "promote to production" action. Production users connect the same way development ones did — through a connect link, in the production environment.

Next

On this page