Skip to main content
Every Edpire org comes with a sandbox environment — a fully isolated instance of the API pre-loaded with sample data. Build and debug your integration without risk to production learner records.

How it works

Sandbox and production share the same API surface. The only difference is the API key prefix:
Key prefixEnvironmentDatabase
edp_live_...ProductionYour org’s live data
edp_test_...SandboxIsolated, pre-seeded test data
Swap your key. Every API call, webhook, and SDK behavior works identically.

Get a sandbox key

  1. Go to app.edpire.com → Settings → Sandbox
  2. Click Create sandbox key
  3. Name it and select the scopes you need
  4. Copy the key — shown once, just like production keys
You can have up to 3 sandbox keys per org. Use separate keys for different environments (local dev, CI, staging).

Pre-seeded sample data

Your sandbox is pre-populated the first time you create a sandbox key:
ResourceDetails
2 sample assessmentsOne multiple-choice quiz, one open-response exercise — both published with share codes
1 sample collectionContains both assessments, in order
3 sample submissionsFor learner_ref: "test-learner-1", across both assessments with varied scores
Use the pre-seeded submissions to test your results and analytics endpoints immediately:
curl https://app.edpire.com/api/v1/learners/test-learner-1/results \
  -H "Authorization: Bearer edp_test_<your-sandbox-key>"

Webhook echo viewer

Sandbox webhook events are automatically captured in a built-in echo viewer — no need to run a local receiver during development.
  1. Go to Settings → Sandbox → Events
  2. Make any API call with your sandbox key that triggers an event (e.g., submit an assessment)
  3. The event appears in the viewer with full payload
You can also register your own webhook endpoint (e.g. via ngrok) against sandbox keys — the echo viewer and your endpoint both receive the same events.

Reset sandbox data

If your sandbox gets messy, reset it to a clean state:
  1. Go to Settings → Sandbox → Reset data
  2. Click Reset — all sandbox submissions are wiped and the seeder re-runs
# Or via API (requires write:assessments scope on a sandbox key)
POST https://app.edpire.com/api/v1/sandbox/reset
Authorization: Bearer edp_test_<your-key>
Reset only affects sandbox data. Production data is completely unaffected.

Differences from production

FeatureSandboxProduction
Data isolationFully isolated DBLive data
Rate limitsMore relaxed100 req/min
Webhook echoAlways on (dashboard viewer)Register your own endpoint
Pre-seeded data2 assessments, 3 submissionsYour real content
Data resetOn demandNot available

Example: switch environments

const client = new EdpireClient({
  // Switch between sandbox and production by changing the key only
  apiKey: process.env.NODE_ENV === "production"
    ? process.env.EDPIRE_API_KEY        // edp_live_...
    : process.env.EDPIRE_API_KEY_TEST,  // edp_test_...
})
See Testing for the full testing workflow including local webhook testing with ngrok.