Last updated: Jul 30, 2026

Environments

Environmentslink

Infraspeak provides separate environments for development and production use. Understanding the differences helps you build and test integrations safely.

Available Environmentslink

Environment Purpose
Production Live data, real operations
Sandbox Testing, development

Production Environmentlink

The production environment connects to your live Infraspeak data.

Base URL: https://api.infraspeak.com/v3

Characteristics:

  • All operations affect real data.
  • Work orders and other events trigger actual notifications.
  • Purchase orders process through real workflows.
  • Full rate limiting applies (60 requests/min).

When to use:

  • Production integrations.
  • Live data synchronization.
  • Real-time monitoring and alerting.

Sandbox Environmentlink

The sandbox provides a safe space for development and testing.

Base URL: https://api.sandbox.infraspeak.com/v3

Characteristics:

  • Isolated from production data.
  • Operations don't trigger real notifications.
  • Same rate limits as production.

When to use:

  • Initial integration development.
  • Testing new features before production.
  • Acceptance tests and validation.

Tokens Per Environmentlink

Each environment requires its own Personal Access Token. Tokens generated in production won't work in sandbox, and vice versa.

Switching Environmentslink

Change the base URL in your application configuration and configure the Personal Access Token that grants access to the desired environment.

Best Practiceslink

Use Environment Variableslink

Never hardcode environment URLs or tokens:

# Development (.env.local)
INFRASPEAK_API_URL=https://api.sandbox.infraspeak.com/v3
INFRASPEAK_TOKEN=sandbox_token_here

# Production (.env.production)
INFRASPEAK_API_URL=https://api.infraspeak.com/v3
INFRASPEAK_TOKEN=production_token_here

Validate Before Productionlink

Before deploying to production:

  1. Test all operations in sandbox first.
  2. Verify error handling with sandbox data.
  3. Confirm webhook endpoints receive test events.
  4. Ensure you handle throttling properly against sandbox when rate limits are exceeded.

Monitor API Usagelink

Track your API calls in both environments to avoid hitting rate limits:

import requests

response = requests.get(
  f"{INFRASPEAK_API_URL}/locations",
  headers={"Authorization": f"Bearer {INFRASPEAK_TOKEN}"} 
)

# Check rate limit headers
remaining = response.headers.get("X-Ratelimit-Remaining")

Environment Paritylink

Both environments maintain feature parity:

  • Same API endpoints
  • Same request/response formats
  • Same authentication mechanisms
  • Same rate limiting rules

The only differences are data isolation and the triggering of real-world side effects (notifications, external integrations).