🚀 Babsy API

Complete API Documentation for the Babsy Babysitting Platform

📋 API Information

Base URL:

api.babsy.ch

Authentication: JWT Token required for most endpoints

Content-Type: application/json

📊 API Statistics

94
Total Endpoints
40
GET Requests
37
POST Requests
12
PUT Requests
4
DELETE Requests
94
Auth Required
0
Public Endpoints
13
API Groups

📈 API Group Breakdown

5
Authentication
16
User Management
1
System Runners
7
Parent Management
6
Babysitter Management
4
Kid Management
16
Booking Management
3
Chat System
6
Job Management
4
Notifications
20
Other
1
App Version Check
5
App Version Management

Authentication

POST /register

📝 Description

Register a new user account

🔐 Authentication

No authentication required

📋 Parameters

  • email
    string Required
  • password
    string Required
  • firstname
    string Required
  • lastname
    string Required
  • role
    string Required

💡 Example Request

POST /register { "email": "user@example.com", "password": "password123", "firstname": "John", "lastname": "Doe", "role": "user" }

✅ Success Response

{ "success": true, "data": { "user": { "id": 1, "email": "user@example.com", "firstname": "John", "lastname": "Doe", "role": "user" }, "token": "jwt_token_here" } }

❌ Error Response

{ "success": false, "message": "Validation failed", "errors": { "email": ["The email field is required."] } }
POST /login

📝 Description

Authenticate user and get JWT token

🔐 Authentication

No authentication required

📋 Parameters

  • email
    string Required
  • password
    string Required

💡 Example Request

POST /login { "email": "user@example.com", "password": "password123" }

✅ Success Response

{ "success": true, "data": { "user": { "id": 1, "email": "user@example.com", "firstname": "John", "lastname": "Doe" }, "token": "jwt_token_here" } }

❌ Error Response

{ "success": false, "message": "Invalid credentials" }
POST /logout

📝 Description

API endpoint for /logout

🔐 Authentication

JWT Token required

POST /refresh

📝 Description

API endpoint for /refresh

🔐 Authentication

JWT Token required

POST /me

📝 Description

API endpoint for /me

🔐 Authentication

JWT Token required

User Management

GET /user

📝 Description

API endpoint for /user

🔐 Authentication

JWT Token required

POST /user/delete

📝 Description

API endpoint for /user/delete

🔐 Authentication

JWT Token required

POST /user/update-picture

📝 Description

API endpoint for /user/update-picture

🔐 Authentication

JWT Token required

GET /user/user-info

📝 Description

Get current user information

🔐 Authentication

JWT Token required

💡 Example Request

GET /user/user-info Authorization: Bearer jwt_token_here

✅ Success Response

{ "success": true, "data": { "user": { "id": 1, "email": "user@example.com", "firstname": "John", "lastname": "Doe", "role": "user" } } }

❌ Error Response

{ "success": false, "message": "Unauthorized" }
POST /user/babysitter/profile

📝 Description

API endpoint for /user/babysitter/profile

🔐 Authentication

JWT Token required

POST /user/parent/profile

📝 Description

API endpoint for /user/parent/profile

🔐 Authentication

JWT Token required

POST /user/add-device-info

📝 Description

API endpoint for /user/add-device-info

🔐 Authentication

JWT Token required

PUT /user/change-device-language

📝 Description

API endpoint for /user/change-device-language

🔐 Authentication

JWT Token required

POST /user/change-profile-picture-background

📝 Description

API endpoint for /user/change-profile-picture-background

🔐 Authentication

JWT Token required

POST /user/add-favorite

📝 Description

API endpoint for /user/add-favorite

🔐 Authentication

JWT Token required

GET /user/get-favorites

📝 Description

API endpoint for /user/get-favorites

🔐 Authentication

JWT Token required

DELETE /user/delete-favorites

📝 Description

API endpoint for /user/delete-favorites

🔐 Authentication

JWT Token required

PUT /user/reset-password

📝 Description

API endpoint for /user/reset-password

🔐 Authentication

JWT Token required

PUT /user/change-email

📝 Description

API endpoint for /user/change-email

🔐 Authentication

JWT Token required

DELETE /user/remove

📝 Description

API endpoint for /user/remove

🔐 Authentication

JWT Token required

GET /user/{id}

📝 Description

API endpoint for /user/{id}

🔐 Authentication

JWT Token required

System Runners

GET /runners/notifications

📝 Description

API endpoint for /runners/notifications

🔐 Authentication

JWT Token required

Parent Management

GET /parent

📝 Description

API endpoint for /parent

🔐 Authentication

JWT Token required

POST /parent/update

📝 Description

API endpoint for /parent/update

🔐 Authentication

JWT Token required

POST /parent/set-parent-role

📝 Description

API endpoint for /parent/set-parent-role

🔐 Authentication

JWT Token required

POST /parent/kids

📝 Description

API endpoint for /parent/kids

🔐 Authentication

JWT Token required

PUT /parent/kids

📝 Description

API endpoint for /parent/kids

🔐 Authentication

JWT Token required

GET /parent/kids

📝 Description

API endpoint for /parent/kids

🔐 Authentication

JWT Token required

GET /parent/{id}

📝 Description

API endpoint for /parent/{id}

🔐 Authentication

JWT Token required

Babysitter Management

GET /babysitter/all

📝 Description

API endpoint for /babysitter/all

🔐 Authentication

JWT Token required

POST /babysitter/create-schedule

📝 Description

API endpoint for /babysitter/create-schedule

🔐 Authentication

JWT Token required

POST /babysitter/set-sitter-role

📝 Description

API endpoint for /babysitter/set-sitter-role

🔐 Authentication

JWT Token required

GET /babysitter/get-next-interview

📝 Description

API endpoint for /babysitter/get-next-interview

🔐 Authentication

JWT Token required

PUT /babysitter/accept-request

📝 Description

API endpoint for /babysitter/accept-request

🔐 Authentication

JWT Token required

POST /babysitter/update

📝 Description

API endpoint for /babysitter/update

🔐 Authentication

JWT Token required

Kid Management

GET /kid/all/{id}

📝 Description

API endpoint for /kid/all/{id}

🔐 Authentication

JWT Token required

GET /kid/{kid_id}

📝 Description

API endpoint for /kid/{kid_id}

🔐 Authentication

JWT Token required

POST /kid/insert

📝 Description

API endpoint for /kid/insert

🔐 Authentication

JWT Token required

POST /kid/update

📝 Description

API endpoint for /kid/update

🔐 Authentication

JWT Token required

Booking Management

POST /bookings

📝 Description

Create a new booking request

🔐 Authentication

JWT Token required

📋 Parameters

  • parent_id
    integer Required
  • babysitter_id
    integer Required
  • date
    date Required
  • start_time
    time Required
  • end_time
    time Required
  • description
    string Optional

💡 Example Request

POST /bookings { "parent_id": 1, "babysitter_id": 2, "date": "2024-01-15", "start_time": "14:00", "end_time": "18:00", "description": "Looking after kids" }

✅ Success Response

{ "success": true, "data": { "booking": { "id": 1, "parent_id": 1, "babysitter_id": 2, "status": "pending" } } }

❌ Error Response

{ "success": false, "message": "Validation failed", "errors": { "date": ["The date field is required."] } }
DELETE /bookings

📝 Description

Create a new booking request

🔐 Authentication

JWT Token required

📋 Parameters

  • parent_id
    integer Required
  • babysitter_id
    integer Required
  • date
    date Required
  • start_time
    time Required
  • end_time
    time Required
  • description
    string Optional

💡 Example Request

POST /bookings { "parent_id": 1, "babysitter_id": 2, "date": "2024-01-15", "start_time": "14:00", "end_time": "18:00", "description": "Looking after kids" }

✅ Success Response

{ "success": true, "data": { "booking": { "id": 1, "parent_id": 1, "babysitter_id": 2, "status": "pending" } } }

❌ Error Response

{ "success": false, "message": "Validation failed", "errors": { "date": ["The date field is required."] } }
GET /bookings/all

📝 Description

Get paginated bookings with related parent, parent address, working times, and babysitter requests

🔐 Authentication

JWT Token required

📋 Parameters

  • page
    integer Optional
  • per_page
    integer Optional

💡 Example Request

GET /bookings/all?page=1&per_page=20 Authorization: Bearer jwt_token_here

✅ Success Response

{ "success": true, "data": { "items": [ { "id": 1, "parent_id": 3, "cost": "35", "booking_type": "part_time", "operation_date": "2026-04-15", "parent": { "id": 3, "firstname": "John", "lastname": "Doe", "address": { "city": "Zurich" } }, "working_times": [ { "working_day_id": 1, "morning": 1, "afternoon": 0, "night": 0 } ], "requests": [ { "id": 11, "status": "requested", "babysitter": { "id": 8, "firstname": "Anna", "lastname": "Smith" } } ] } ], "pagination": { "current_page": 1, "per_page": 20, "total": 120, "last_page": 6, "has_more_pages": true } } }

❌ Error Response

{ "success": false, "message": "Unauthorized" }
PUT /bookings/edit-cost

📝 Description

API endpoint for /bookings/edit-cost

🔐 Authentication

JWT Token required

PUT /bookings/change-status

📝 Description

API endpoint for /bookings/change-status

🔐 Authentication

JWT Token required

PUT /bookings/set-paid

📝 Description

API endpoint for /bookings/set-paid

🔐 Authentication

JWT Token required

PUT /bookings/set-closed

📝 Description

API endpoint for /bookings/set-closed

🔐 Authentication

JWT Token required

GET /bookings/stats

📝 Description

Get booking statistics for homepage dashboard

🔐 Authentication

JWT Token required

💡 Example Request

GET /bookings/stats Authorization: Bearer jwt_token_here

✅ Success Response

{ "success": true, "data": { "total_bookings": 150, "booking_requests_by_status": { "requested": 25, "interviewing": 15, "booked": 80, "closed": 30 }, "time_based_stats": { "today": 5, "this_week": 20, "this_month": 75 }, "user_stats": { "total_babysitters": 45, "total_parents": 120 }, "booking_requests": { "total_requests": 200, "pending_requests": 25, "accepted_requests": 80 } } }

❌ Error Response

{ "success": false, "message": "Unable to fetch booking statistics" }
GET /bookings/parent/created-bookings

📝 Description

API endpoint for /bookings/parent/created-bookings

🔐 Authentication

JWT Token required

GET /bookings/parent/requested-bookings

📝 Description

API endpoint for /bookings/parent/requested-bookings

🔐 Authentication

JWT Token required

GET /bookings/parent/interviewing-bookings

📝 Description

API endpoint for /bookings/parent/interviewing-bookings

🔐 Authentication

JWT Token required

GET /bookings/parent/booked-bookings

📝 Description

API endpoint for /bookings/parent/booked-bookings

🔐 Authentication

JWT Token required

GET /bookings/parent/closed-bookings

📝 Description

API endpoint for /bookings/parent/closed-bookings

🔐 Authentication

JWT Token required

PUT /bookings/parent/set-interview-date

📝 Description

API endpoint for /bookings/parent/set-interview-date

🔐 Authentication

JWT Token required

GET /bookings/parent/get-next-interview

📝 Description

API endpoint for /bookings/parent/get-next-interview

🔐 Authentication

JWT Token required

PUT /bookings/babysitter/apply

📝 Description

API endpoint for /bookings/babysitter/apply

🔐 Authentication

JWT Token required

Chat System

POST /chat/send-message

📝 Description

Send a message in chat

🔐 Authentication

JWT Token required

📋 Parameters

  • receiver_id
    integer Required
  • message
    string Required

💡 Example Request

POST /chat/send-message { "receiver_id": 2, "message": "Hello, are you available?" }

✅ Success Response

{ "success": true, "data": { "message": { "id": 1, "sender_id": 1, "receiver_id": 2, "message": "Hello, are you available?", "created_at": "2024-01-15T10:30:00Z" } } }

❌ Error Response

{ "success": false, "message": "Message could not be sent" }
GET /chat/get-chat-list

📝 Description

API endpoint for /chat/get-chat-list

🔐 Authentication

JWT Token required

GET /chat/get-messages

📝 Description

API endpoint for /chat/get-messages

🔐 Authentication

JWT Token required

Job Management

GET /jobs/all

📝 Description

API endpoint for /jobs/all

🔐 Authentication

JWT Token required

POST /jobs/apply

📝 Description

API endpoint for /jobs/apply

🔐 Authentication

JWT Token required

GET /jobs/requested

📝 Description

API endpoint for /jobs/requested

🔐 Authentication

JWT Token required

GET /jobs/interviewing

📝 Description

API endpoint for /jobs/interviewing

🔐 Authentication

JWT Token required

GET /jobs/booked

📝 Description

API endpoint for /jobs/booked

🔐 Authentication

JWT Token required

GET /jobs/closed

📝 Description

API endpoint for /jobs/closed

🔐 Authentication

JWT Token required

Notifications

POST /notification/update-fcm-token

📝 Description

API endpoint for /notification/update-fcm-token

🔐 Authentication

JWT Token required

GET /notifications

📝 Description

API endpoint for /notifications

🔐 Authentication

JWT Token required

POST /notifications

📝 Description

API endpoint for /notifications

🔐 Authentication

JWT Token required

PATCH /notifications/read-all

📝 Description

API endpoint for /notifications/read-all

🔐 Authentication

JWT Token required

Other

POST /send-email

📝 Description

API endpoint for /send-email

🔐 Authentication

JWT Token required

GET /ahv-table

📝 Description

API endpoint for /ahv-table

🔐 Authentication

JWT Token required

GET /onboarding

📝 Description

API endpoint for /onboarding

🔐 Authentication

JWT Token required

GET /onboarding/languages

📝 Description

API endpoint for /onboarding/languages

🔐 Authentication

JWT Token required

GET /onboarding/superbabsy-timeslots

📝 Description

API endpoint for /onboarding/superbabsy-timeslots

🔐 Authentication

JWT Token required

GET /onboarding/date-slots

📝 Description

API endpoint for /onboarding/date-slots

🔐 Authentication

JWT Token required

POST /onboarding/time-slots

📝 Description

API endpoint for /onboarding/time-slots

🔐 Authentication

JWT Token required

POST /onboarding/available-superbabsy

📝 Description

API endpoint for /onboarding/available-superbabsy

🔐 Authentication

JWT Token required

GET /onboarding/check-appointment

📝 Description

API endpoint for /onboarding/check-appointment

🔐 Authentication

JWT Token required

POST /onboarding/book-appointment

📝 Description

API endpoint for /onboarding/book-appointment

🔐 Authentication

JWT Token required

POST /onboarding/upload-id-images

📝 Description

API endpoint for /onboarding/upload-id-images

🔐 Authentication

JWT Token required

POST /onboarding/upload-cv

📝 Description

API endpoint for /onboarding/upload-cv

🔐 Authentication

JWT Token required

POST /onboarding/upload-family-picture

📝 Description

API endpoint for /onboarding/upload-family-picture

🔐 Authentication

JWT Token required

GET /onboarding/user/files

📝 Description

API endpoint for /onboarding/user/files

🔐 Authentication

JWT Token required

DELETE /onboarding/user/files

📝 Description

API endpoint for /onboarding/user/files

🔐 Authentication

JWT Token required

GET /onboarding/calendar/{hash}.ics

📝 Description

API endpoint for /onboarding/calendar/{hash}.ics

🔐 Authentication

JWT Token required

GET /onboarding/progress

📝 Description

API endpoint for /onboarding/progress

🔐 Authentication

JWT Token required

POST /onboarding/save-step

📝 Description

API endpoint for /onboarding/save-step

🔐 Authentication

JWT Token required

POST /onboarding/complete

📝 Description

API endpoint for /onboarding/complete

🔐 Authentication

JWT Token required

GET /

📝 Description

API endpoint for /

🔐 Authentication

JWT Token required

App Version Check

POST /check-app-version

📝 Description

Check if app version needs force update

🔐 Authentication

No authentication required

📋 Parameters

  • platform
    string Required
  • app_version
    string Required

💡 Example Request

POST /check-app-version { "platform": "android", "app_version": "1.0.0" }

✅ Success Response

{ "success": true, "data": { "force_update": false, "update_available": true, "message": "A new version is available. Please update for the best experience.", "store_url": "https://play.google.com/store/apps/details?id=com.babsy.app", "current_version": "1.1.0", "minimum_version": "1.0.0" } }

❌ Error Response

{ "success": false, "message": "Validation failed", "errors": { "platform": ["The platform field is required."] } }

App Version Management

GET /admin/app-versions

📝 Description

Get all app versions for all platforms

🔐 Authentication

Admin access required

💡 Example Request

GET /admin/app-versions

✅ Success Response

{ "success": true, "data": [ { "id": 1, "platform": "android", "current_version": "1.1.0", "minimum_version": "1.0.0", "force_update": false, "update_message": "A new version is available", "store_url": "https://play.google.com/store/apps/details?id=com.babsy.app" }, { "id": 2, "platform": "ios", "current_version": "1.1.0", "minimum_version": "1.0.0", "force_update": false, "update_message": "A new version is available", "store_url": "https://apps.apple.com/app/babsy/id123456789" } ] }

❌ Error Response

{ "success": false, "message": "Unauthorized access" }
GET /admin/app-versions/{platform}

📝 Description

Get app version for specific platform

🔐 Authentication

Admin access required

📋 Parameters

  • platform
    string Required

💡 Example Request

GET /admin/app-versions/android

✅ Success Response

{ "success": true, "data": { "id": 1, "platform": "android", "current_version": "1.1.0", "minimum_version": "1.0.0", "force_update": false, "update_message": "A new version is available", "store_url": "https://play.google.com/store/apps/details?id=com.babsy.app" } }

❌ Error Response

{ "success": false, "message": "Platform not found" }
PUT /admin/app-versions/update

📝 Description

Update app version settings

🔐 Authentication

Admin access required

📋 Parameters

  • platform
    string Required
  • current_version
    string Required
  • minimum_version
    string Required
  • force_update
    boolean Optional
  • update_message
    string Optional
  • store_url
    string Optional

💡 Example Request

PUT /admin/app-versions/update { "platform": "android", "current_version": "1.2.0", "minimum_version": "1.1.0", "force_update": false, "update_message": "New features available!", "store_url": "https://play.google.com/store/apps/details?id=com.babsy.app" }

✅ Success Response

{ "success": true, "data": { "id": 1, "platform": "android", "current_version": "1.2.0", "minimum_version": "1.1.0", "force_update": false, "update_message": "New features available!", "store_url": "https://play.google.com/store/apps/details?id=com.babsy.app" } }

❌ Error Response

{ "success": false, "message": "Validation failed", "errors": { "platform": ["The platform field is required."] } }
POST /admin/app-versions/force-update

📝 Description

Enable force update for a platform

🔐 Authentication

Admin access required

📋 Parameters

  • platform
    string Required
  • minimum_version
    string Required
  • update_message
    string Required
  • store_url
    string Optional

💡 Example Request

POST /admin/app-versions/force-update { "platform": "android", "minimum_version": "1.1.0", "update_message": "Critical security update required. Please update immediately.", "store_url": "https://play.google.com/store/apps/details?id=com.babsy.app" }

✅ Success Response

{ "success": true, "data": { "id": 1, "platform": "android", "current_version": "1.2.0", "minimum_version": "1.1.0", "force_update": true, "update_message": "Critical security update required. Please update immediately.", "store_url": "https://play.google.com/store/apps/details?id=com.babsy.app" } }

❌ Error Response

{ "success": false, "message": "Validation failed", "errors": { "platform": ["The platform field is required."] } }
POST /admin/app-versions/disable-force-update

📝 Description

Disable force update for a platform

🔐 Authentication

Admin access required

📋 Parameters

  • platform
    string Required

💡 Example Request

POST /admin/app-versions/disable-force-update { "platform": "android" }

✅ Success Response

{ "success": true, "data": { "id": 1, "platform": "android", "current_version": "1.2.0", "minimum_version": "1.1.0", "force_update": false, "update_message": "New features available!", "store_url": "https://play.google.com/store/apps/details?id=com.babsy.app" } }

❌ Error Response

{ "success": false, "message": "Platform not found" }