REST API v1.0
API Documentation
Integrate WiFiHapa into your applications. Manage routers, users, payments, and analytics programmatically.
Authentication
All API requests require an API key. Include it in the request header:
Authorization: Bearer YOUR_API_KEY
Get your API key from the Developer Settings page
Base URL
https://api.wifihapa.co.tz/v1/
Endpoints
๐ก Routers
GET
/routers
List all available routers near a location.
GET /v1/routers?lat=-6.7924&lon=39.2083&radius=100
GET
/routers/{id}
Get details of a specific router.
GET /v1/routers/123
โฑ๏ธ Sessions
POST
/sessions
Create a new WiFi session (purchase time).
POST /v1/sessions\n{\n "router_id": 123,\n "duration": "1h",\n "payment_method": "vodacom",\n "phone": "0712345678"\n}
GET
/sessions/{id}
Get session status and password.
GET /v1/sessions/456
DELETE
/sessions/{id}
End an active session.
DELETE /v1/sessions/456
๐ฐ Payments
POST
/payments/mpesa
Initiate M-Pesa payment.
POST /v1/payments/mpesa\n{\n "amount": 500,\n "phone": "0712345678",\n "session_id": 456\n}
GET
/payments/{id}/status
Check payment status.
GET /v1/payments/789/status
๐ Router Owner
GET
/owner/earnings
Get daily/weekly/monthly earnings summary.
GET /v1/owner/earnings?period=weekly
GET
/owner/users
List active and expired sessions on owned routers.
GET /v1/owner/users
PUT
/owner/routers/{id}/price
Update router hourly price.
PUT /v1/owner/routers/123/price\n{ "price": 550 }
๐ Webhooks
POST
/webhooks/register
Register a webhook URL for events.
POST /v1/webhooks/register\n{ "url": "https://yourdomain.com/webhook", "events": ["payment.success", "session.expired"] }
Response Codes
200 Success
201 Created
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
429 Rate Limit Exceeded
500 Internal Server Error
Rate Limits
Default rate limit: 100 requests per minute per API key
Enterprise plan: 1000 requests per minute