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