Location Tracker API v1.0

Real-time family location tracking API — Built with Laravel 9 + Sanctum + Socket.IO

https://tracker.myappsstudio.com/public/api
No Token

👤 Quick User Switcher

DEV TOOL — Kisi bhi user ka token instantly get karo
⏳ Switching...
Click "Load All Users" to see all registered users...

🔐 Authentication

POST /auth/register PUBLIC Register / Login user (phone-based)
📥 Response (201)
{ "success": true, "data": { "user": {...}, "token": "1|abc...", "circles": [...] } }
📝 Request Form
nameRequired
string — max 255
phoneRequired
string — unique phone number
roleRequired
fcm_tokenOptional
string — push notification ke liye
circlesOptional
JSON array — register ke saath circles banao
GET /auth/me 🔒 Get current user profile + token info
📥 Response (200)
{ "success": true, "data": { "user": {..., "latest_location": {...}}, "token_info": {...} } }
📝 Request Form

🔒 Bearer token header se authenticate hoga. Koi body field nahi.

PUT /auth/profile 🔒 Update user profile (name, avatar)
📝 Request Form
nameOptional
avatar_urlOptional
string (URL) — profile picture link
PUT /auth/fcm-token 🔒 Update FCM push notification token
📝 Request Form
fcm_tokenRequired
string — from Firebase SDK
POST /auth/logout 🔒 Logout — delete current token
📝 Request Form

⚠️ Token server se delete ho jayega. Koi body field nahi.

Circles — CRUD

GET /circles 🔒 List all my circles
📝 Request Form

Koi parameter nahi. Bearer token se user identify hoga.

POST /circles 🔒 Create a new circle
📝 Request Form
nameRequired
string — circle name
GET /circles/{id} 🔒 Get circle details with members & places
📝 Request Form
{id}URL Param
integer — URL mein {id} replace hoga
PUT /circles/{id} 🔒 Update circle name (owner only)
📝 Request Form
{id}URL Param
URL mein circle ka ID
nameRequired
DELETE /circles/{id} 🔒 Delete circle (owner only)
📝 Request Form
{id}URL Param
⚠️ Circle permanently delete ho jayega!

Circle Actions

POST /circles/join 🔒 Join circle with invite code
📝 Request Form
invite_codeRequired
string — format: ABC-DEF (expires 24 hours)
POST /circles/{id}/leave 🔒 Leave a circle (non-owner)
📝 Request Form
{id}URL Param
Owner leave nahi kar sakta
POST /circles/{id}/remove-member 🔒 Remove a member (owner only)
📝 Request Form
{id}URL Param
Circle ka ID jis se member hatana hai
user_idRequired
integer — jis member ko remove karna hai us ka ID
POST /circles/{id}/regenerate-code 🔒 Regenerate invite code (owner only)
📝 Request Form
{id}URL Param
Purana code expire ho jayega, naya generate hoga
GET /circles/{id}/members-locations 🔒 Get all members' latest locations
📝 Request Form
{id}URL Param
Sab members ki live location aayegi
GET /circles/{id}/permissions 🔒 Get member permissions (owner only)
📥 Response (200)
{ "success": true, "data": [
  { "user_id": 1, "name": "Owner", "role": "admin", "is_owner": true,
    "can_invite": true, "can_add_places": true, "can_receive_member_alerts": true },
  { "user_id": 2, "name": "Member", "role": "member", "is_owner": false,
    "can_invite": false, "can_add_places": false, "can_receive_member_alerts": false }
] }
📝 Request Form
{id}URL Param
Circle ID — sirf owner dekh sakta hai
PUT /circles/{id}/permissions 🔒 Update member permissions (owner only)
📥 Response (200)
{ "success": true, "message": "Member permissions updated",
  "data": { "user_id": 2, "can_invite": true, "can_add_places": true, "can_receive_member_alerts": false } }
📝 Request Form
{id}URL Param
Circle ID — sirf owner update kar sakta hai
user_idRequired
Jis member ki permissions change karni hain
can_inviteOptional
Invite code share karne ki permission
can_add_placesOptional
Places add/update karne ki permission
can_receive_member_alertsOptional
Circle join/leave notifications receive karne ki permission
PUT /circles/{id}/location-sharing 🔒 Toggle apni location sharing on/off for a circle
📥 Response (200)
{ "success": true, "message": "Location sharing enabled for this circle",
  "data": { "circle_id": 1, "is_location_sharing": true } }
📝 Request Form
{id}URL Param
Circle ID jisme location sharing toggle karni hai
is_enabledRequired
Owner by default OFF hota hai — enable karna hoga

📍 Locations

POST /locations 🔒 Save single location (also emits Socket.IO)
📝 Request Form
latitudeRequired
number — -90 to 90
longitudeRequired
number — -180 to 180
battery_levelOptional
integer — 0 to 100
activity_typeOptional
is_movingOptional
recorded_atOptional
datetime — kab record huyi thi
POST /locations/batch 🔒 Save multiple locations (offline sync)
📝 Request Form
locationsRequired
JSON array — har item mein latitude, longitude, recorded_at required
GET /locations/history 🔒 Get location history (with date filter)
📝 Request Form — Query Parameters
fromOptional
date — YYYY-MM-DD se filter
toOptional
date — YYYY-MM-DD tak filter
limitOptional
integer — default: 100, max: 1000

🏠 Places / Geofences

GET /circles/{circleId}/places 🔒 List all places in a circle
📝 Request Form
{circleId}URL Param
Circle ka ID jis ke places chahiye
POST /circles/{circleId}/places 🔒 Create a new place/geofence
📝 Request Form
{circleId}URL Param
nameRequired
latitudeRequired
longitudeRequired
radiusRequired
integer (meters) — geofence ka radius
addressOptional
PUT /circles/{circleId}/places/{placeId} 🔒 Update a place
📝 Request Form
{circleId}URL Param
{placeId}URL Param
nameOptional
radiusOptional
meters
addressOptional
DELETE /circles/{circleId}/places/{placeId} 🔒 Delete a place
📝 Request Form
{circleId}URL Param
{placeId}URL Param
⚠️ Place permanently delete ho jayega

🔔 Notifications

⚙️ Alert Settings — Sender-Side Circle Selection

🛠️ Dev Tools — Direct DB Queries