API Documentation
Everything you need to integrate with the HelloSIM API
https://api.hellosim.net/api/v1Quick Start
The HelloSIM API uses REST over HTTPS. All requests must include a Content-Type: application/json header. Authentication uses httpOnly JWT cookies — tokens are set automatically on login.
# Login to get JWT cookies
curl -X POST https://api.hellosim.net/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"email":"[email protected]","password":"your-password"}' \
-c cookies.txt
# Use cookies for authenticated requests
curl https://api.hellosim.net/api/v1/esims/me -b cookies.txt
Authentication
Register, login, and manage user sessions
/auth/registerCreate a new user account
Request Body:
{ email, password, firstName, lastName }/auth/loginLogin and receive JWT tokens
Request Body:
{ email, password }/auth/refreshRefresh access token using refresh token
Request Body:
{}/auth/logoutLogout and invalidate tokens
Request Body:
{}/auth/meGet current user profile
/auth/forgot-passwordRequest a password reset email
Request Body:
{ email }/auth/reset-passwordReset password with token
Request Body:
{ token, newPassword }Authentication Flow
Register or Login
POST to
/auth/registeror/auth/login. Tokens are set as httpOnly cookies automatically.Make Requests
Include cookies with every request. Access token expires in 15 minutes.
Auto-Refresh
When access token expires, POST to
/auth/refreshwith the refresh cookie. New tokens are returned.Logout
POST to
/auth/logoutto clear all tokens.
Error Handling
All errors follow a consistent format:
{ "success": false, "error": { "statusCode": 400, "message": "Validation failed" } }
| Code | Meaning |
|---|---|
| 400 | Bad Request — invalid parameters |
| 401 | Unauthorized — missing or invalid token |
| 403 | Forbidden — insufficient permissions |
| 404 | Not Found — resource does not exist |
| 429 | Too Many Requests — rate limit exceeded |
| 500 | Internal Server Error |
Rate Limits
- General: 60 requests per minute per IP
- Auth endpoints: 5 requests per minute (login, register, forgot-password)
- Password reset: 3 requests per minute
Exceeding limits returns 429 Too Many Requests. Implement exponential backoff in your integration.