Coming Soon

This feature is under development. Sign up for our mailing list to be notified when it launches.

Join Mailing List Back to Home

API Documentation

Integrate Waveshed propagation modeling into your applications with our REST API. Available on Pro and Enterprise plans.

Authentication

All API requests require an API key passed in the Authorization header. Generate API keys from your account settings.

# Include your API key in every request
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.waveshed.io/api/v1/credits

Keep your API keys secret. Do not share them in client-side code, public repositories, or unsecured locations. Rotate keys regularly from your settings page.

Base URL

https://api.waveshed.io/api/v1

All endpoints are relative to this base URL. HTTPS is required.

Rate Limits

PlanRequests / minConcurrent sims
Pro603
Enterprise30010

Rate limit headers (X-RateLimit-Remaining, X-RateLimit-Reset) are included in every response.

Endpoint Reference

POST /api/v1/simulate

Start a new propagation simulation

Request Body

{
  "name": "Coverage analysis",
  "tx_lat": 47.0563,
  "tx_lon": 8.4846,
  "tx_height": 30,
  "frequency": 433,
  "erp": 10,
  "rx_height": 1.5,
  "model": "los",
  "resolution": 30,
  "max_range": 20
}

Response

{
  "id": "sim_abc123",
  "status": "pending",
  "created_at": "2026-05-08T12:00:00Z"
}
GET /api/v1/status/:id

Get simulation status and results

Response

{
  "id": "sim_abc123",
  "status": "completed",
  "params": { "tx_lat": 47.0563, "tx_lon": 8.4846, ... },
  "credits_charged": 1,
  "result_url": "/results/sim_abc123.tif",
  "created_at": "2026-05-08T12:00:00Z",
  "completed_at": "2026-05-08T12:00:12Z"
}
GET /api/v1/simulations

List all simulations for the authenticated user

Response

{
  "simulations": [...],
  "total": 42
}
DELETE /api/v1/simulations/:id

Delete a simulation and its results

Response

(204 No Content)
GET /api/v1/credits

Get current credit balance and usage

Response

{
  "balance": 147,
  "plan": "pro",
  "used_this_month": 53,
  "limit": 200
}
POST /api/v1/credits/purchase

Purchase additional simulation credits

Request Body

{
  "pack": "100"
}

Response

{
  "checkout_url": "https://checkout.stripe.com/..."
}

Error Codes

CodeMeaning
400Bad Request - Invalid parameters
401Unauthorized - Missing or invalid API key
403Forbidden - Insufficient plan or credits
404Not Found - Simulation does not exist
429Rate Limited - Too many requests
500Server Error - Something went wrong on our end