API Reference

API Documentation

Complete reference for the DispatchIQ REST API. Base URL: https://api.dispatchiq.com

Authentication

All API requests require a Bearer token in the Authorization header. Obtain your API key from the developer dashboard.

Authorization: Bearer diq_sk_live_your_api_key_here
Rate limit: 1,000 req/minJSON responsesTLS 1.2+ required

Endpoints

Jobs

Create, manage, and query service jobs.

POST/v1/jobs
GET/v1/jobs
GET/v1/jobs/:id
PATCH/v1/jobs/:id
POST/v1/jobs/:id/cancel

Dispatch

AI-powered technician matching and routing.

POST/v1/dispatch/match
POST/v1/dispatch/assign
GET/v1/dispatch/availability
POST/v1/dispatch/emergency

Scan

AI hazard detection and photo analysis.

POST/v1/scan
GET/v1/scan/:id
POST/v1/scan/batch
GET/v1/scan/:id/report

Verification

AI work verification via before/after photos.

POST/v1/verify
GET/v1/verify/:id
POST/v1/verify/:id/dispute

Payments

Stripe Connect payment processing and escrow.

POST/v1/payments/charge
POST/v1/payments/:id/release
POST/v1/payments/:id/refund
GET/v1/payments

Technicians

Technician profiles, merit scores, and credentials.

GET/v1/technicians
GET/v1/technicians/:id
GET/v1/technicians/:id/passport
GET/v1/technicians/:id/reviews

Fleet

DIQ Fleet logistics and driver dispatch.

POST/v1/fleet/rides
POST/v1/fleet/hotshot
GET/v1/fleet/rides/:id
GET/v1/fleet/drivers

Webhooks

Event subscriptions for real-time updates.

POST/v1/webhooks
GET/v1/webhooks
DELETE/v1/webhooks/:id
GET/v1/webhooks/:id/logs

Example: Create a Job

Request

curl -X POST https://api.dispatchiq.com/v1/jobs \
  -H "Authorization: Bearer diq_sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "category": "plumbing",
    "description": "Leaking kitchen faucet, dripping constantly",
    "address": "123 Main St, Troy, MI 48084",
    "urgency": "standard",
    "photos": ["https://storage.dispatchiq.com/uploads/abc123.jpg"],
    "contact": {
      "name": "Jane Smith",
      "phone": "+15551234567"
    }
  }'

Response 200 OK

{
  "id": "job_abc123def456",
  "object": "job",
  "status": "pending_match",
  "category": "plumbing",
  "description": "Leaking kitchen faucet, dripping constantly",
  "address": {
    "line1": "123 Main St",
    "city": "Troy",
    "state": "MI",
    "zip": "48084"
  },
  "urgency": "standard",
  "estimated_price_cents": 15000,
  "matched_technician": null,
  "verification_status": null,
  "payment_status": "pending",
  "created_at": "2025-01-15T10:30:00Z",
  "updated_at": "2025-01-15T10:30:00Z"
}

Error Codes

Code
Status
Description
400
Bad Request
Invalid request body or parameters
401
Unauthorized
Missing or invalid API key
403
Forbidden
Insufficient permissions
404
Not Found
Resource does not exist
409
Conflict
Resource state conflict (e.g., job already assigned)
429
Rate Limited
Too many requests, retry after cooldown
500
Server Error
Internal server error, contact support

Need help integrating? Reach out to our developer support team.