API Documentation
REST API with JSON responses. All endpoints require an API key. Base URL: https://api.dialed.fyi/v1
All API requests require a Bearer token in the Authorization header. Your API key is available in the dashboard after signup.
# All requests
Authorization: Bearer dial_live_xxxxxxxxxxxx
Content-Type: application/jsonKeys are prefixed with dial_live_ for production and dial_test_ for the sandbox environment. Test keys return realistic but synthetic data.
Rate limits are applied per API key. Responses include headers indicating your current usage.
| Plan | Requests/min | Requests/day | Historical depth |
|---|---|---|---|
| Starter ($299) | 60 | 10,000 | 30 days |
| Pro ($599) | 300 | 100,000 | 90 days |
| Enterprise | Unlimited | Unlimited | All history |
# Rate limit response headers
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 58
X-RateLimit-Reset: 1744358460/v1/gas-pricesReturns the latest gas prices for stations in a given city, plus 30–90 days of history depending on your plan.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
city | string | Yes | City slug (e.g. honolulu) |
grade | string | No | regular | mid | premium | diesel |
limit | integer | No | Results per page (default 20, max 100) |
// GET /v1/gas-prices?city=honolulu { "data": [ { "business": "Costco Honolulu", "address": "525 Alakawa St", "called_at": "2026-04-11T06:02Z", "payload": { "regular": 4.29, "premium": 4.69, "diesel": 4.89 } } ], "meta": { "total": 24, "updated": "2026-04-11T06:02Z" } }
/v1/wait-timesReturns current wait times for urgent care centers and restaurants. Updated every 2 hours for medical, every 30 minutes for restaurants during peak hours.
| Parameter | Type | Required | Description |
|---|---|---|---|
city | string | Yes | City slug |
category | string | No | urgent_care | restaurant |
// GET /v1/wait-times?city=honolulu&category=urgent_care { "business": "Straub Medical Center", "wait_minutes": 22, "walkins_open": true, "called_at": "2026-04-11T08:47Z" }
/v1/availabilityReturns appointment availability for medical providers, dental offices, and service businesses. Includes next available slot and whether new patients are accepted.
// GET /v1/availability?city=honolulu&category=dental { "business": "Mahina Dental Group", "next_available": "2026-04-14", "new_patients": true, "insurance": ["HMSA", "Kaiser"] }
/v1/callsRequest an immediate call to a specific business. Pro and Enterprise plans only. Returns a call ID you can poll or subscribe to via webhook. Results typically available within 5 minutes.
// POST /v1/calls // Request body { "business_id": "biz_4f9a2c", "category": "gas_station", "priority": "high", "webhook_url": "https://your-endpoint.com/hook" } // 202 Accepted response { "call_id": "c_9d3f1a2b", "status": "queued", "eta_seconds": 180 }
All errors return a JSON body with a machine-readable code and human-readable message.
| HTTP Status | Code | Description |
|---|---|---|
| 400 | invalid_params | Missing or malformed query parameters |
| 401 | unauthorized | Missing or invalid API key |
| 403 | plan_limit | Feature not available on current plan |
| 404 | not_found | Business or resource not found |
| 429 | rate_limited | Rate limit exceeded — check X-RateLimit headers |
| 500 | internal_error | Unexpected server error — retry with backoff |
| 503 | call_unavailable | Business could not be reached for on-demand call |