NL-Dating API Documentation

Version 2.15.0

Welcome to the NL-Dating API documentation. This RESTful API provides comprehensive endpoints for managing user profiles, matches, meetings, messaging, and more.

🔐 Authentication

All API endpoints require authentication using Laravel Sanctum Bearer tokens.

Authorization: Bearer {your-sanctum-token} Content-Type: application/json Accept: application/json

📱 Mobile Authentication

POST /api/mobile/auth/login

Authenticate a user and receive a Sanctum token

Request Body

{ "email": "user@example.com", "password": "your-password", "device_name": "iPhone 14" }

Response

{ "success": true, "data": { "token": "1|abcdef123456...", "user": { "id": 1, "name": "John Doe", "email": "user@example.com" } } }
POST /api/mobile/auth/register

Register a new user account

Request Body

{ "name": "John Doe", "email": "user@example.com", "password": "your-password", "password_confirmation": "your-password", "device_name": "iPhone 14" }
POST /api/mobile/auth/logout Auth Required

Logout and revoke the current token

👤 Profile Management

GET /api/user/profile Auth Required

Get complete user profile with all 32+ fields

Rate Limit: 100/min

Response

{ "status": "success", "data": { "id": 1, "basic_info": { "full_name": "John Doe", "age": 29, "gender": "male", "location": "Amsterdam", "biography": "Love traveling...", "profile_photo_url": "https://..." }, "personal_info": { "occupation": "Software Engineer", "education_level": "master", "height_cm": 180, "relationship_status": "single", "has_children": false, "body_type": "athletic" }, "lifestyle": { "smoking_habits": "never", "drinking_habits": "socially", "languages_spoken": ["English", "Dutch"] }, "meta": { "profile_completion": 95, "quality_score": { "overall_score": 87.5, "grade": "A" } } } }
PUT /api/user/profile Auth Required

Update user profile fields

Rate Limit: 60/min
GET /api/user/profile/completion Auth Required

Get detailed profile completion status with recommendations

Rate Limit: 100/min
GET /api/user/profile/quality Auth Required

Get profile quality assessment with improvement suggestions

Rate Limit: 100/min
PUT /api/user/profile/preferences Auth Required

Update dating preferences

Rate Limit: 60/min
PUT /api/user/profile/privacy Auth Required

Update privacy settings

Rate Limit: 60/min
GET /api/user/profile/validation-rules Auth Required

Get dynamic validation rules for frontend forms

Rate Limit: 200/min

📊 Dashboard

GET /api/user/dashboard Auth Required

Get comprehensive dashboard data

Rate Limit: 100/min

💕 Matching System

GET /api/user/matches/recent Auth Required

Get recent matches with compatibility scores

Rate Limit: 80/min
GET /api/user/matches/browse Auth Required

Browse all matches with filtering

Rate Limit: 80/min
GET /api/user/matches/{id} Auth Required

Get specific match details

Rate Limit: 80/min

📅 Meeting Management

GET /api/user/meetings/calendar Auth Required

Get calendar view of meetings

Rate Limit: 100/min
POST /api/user/meetings/schedule Auth Required

Schedule a new meeting

Rate Limit: 30/min
PUT /api/user/meetings/{id}/reschedule Auth Required

Reschedule an existing meeting

Rate Limit: 30/min
POST /api/user/meetings/{id}/cancel Auth Required

Cancel a meeting

Rate Limit: 30/min

💬 Messaging

GET /api/user/messages/conversations Auth Required

Get all conversations with latest messages

Rate Limit: 200/min
GET /api/user/messages/{matchId} Auth Required

Get messages for a specific match

Rate Limit: 200/min
POST /api/user/messages/send Auth Required

Send a new message

Rate Limit: 200/min

Request Body

{ "match_id": 123, "message": "Hello! How are you?" }

🔔 Notifications

GET /api/user/notifications/counts Auth Required

Get unread notification counts by type

Rate Limit: 120/min
GET /api/user/notifications/list Auth Required

Get paginated notifications

Rate Limit: 120/min
POST /api/user/notifications/mark-read Auth Required

Mark notifications as read

Rate Limit: 120/min

📱 Activity Feed

GET /api/user/activity Auth Required

Get user activity feed

Rate Limit: 60/min
GET /api/user/activity/statistics Auth Required

Get activity statistics

Rate Limit: 60/min

📈 User Statistics

GET /api/user/stats Auth Required

Get comprehensive user statistics

Rate Limit: 60/min

📸 Photo Management

GET /api/user/photos Auth Required

Get user photos

Rate Limit: 100/min
POST /api/user/photos/upload Auth Required

Upload a new photo

Rate Limit: 20/min

Request Body (multipart/form-data)

photo: [file] type: "selfie" | "full_body" | "activity" | "casual" is_primary: boolean
DELETE /api/user/photos/{id} Auth Required

Delete a photo

Rate Limit: 30/min

🔍 Discovery

GET /api/user/discover Auth Required

Discover potential matches based on preferences

Rate Limit: 100/min
POST /api/user/discover/like Auth Required

Like a discovered profile

Rate Limit: 200/min
POST /api/user/discover/pass Auth Required

Pass on a discovered profile

Rate Limit: 200/min

⭐ Premium Features

GET /api/user/premium/status Auth Required

Get premium subscription status

Rate Limit: 60/min
GET /api/user/premium/features Auth Required

Get available premium features

Rate Limit: 60/min