Index: petify-backend/src/main/java/com/petify/petify/api/ClinicApplicationsController.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/api/ClinicApplicationsController.java	(revision fa32d0f462d925f109df1a21025f904e56606f8b)
+++ petify-backend/src/main/java/com/petify/petify/api/ClinicApplicationsController.java	(revision fa32d0f462d925f109df1a21025f904e56606f8b)
@@ -0,0 +1,70 @@
+package com.petify.petify.api;
+
+import com.petify.petify.domain.VetClinicApplication;
+import com.petify.petify.dto.CreateClinicApplicationRequest;
+import com.petify.petify.dto.VetClinicApplicationDTO;
+import com.petify.petify.repo.VetClinicApplicationRepository;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/api/clinic-applications")
+public class ClinicApplicationsController {
+
+    private final VetClinicApplicationRepository applicationRepository;
+
+    public ClinicApplicationsController(VetClinicApplicationRepository applicationRepository) {
+        this.applicationRepository = applicationRepository;
+    }
+
+    @PostMapping
+    public ResponseEntity<?> submitApplication(@RequestBody CreateClinicApplicationRequest request) {
+        try {
+            validate(request);
+
+            VetClinicApplication application = new VetClinicApplication();
+            application.setName(request.getName().trim());
+            application.setEmail(blankToNull(request.getEmail()));
+            application.setPhone(blankToNull(request.getPhone()));
+            application.setCity(request.getCity().trim());
+            application.setAddress(request.getAddress().trim());
+            application.setSubmittedAt(LocalDateTime.now());
+            application.setStatus("PENDING");
+            application.setReviewedAt(null);
+            application.setReviewedBy(null);
+            application.setDenialReason(null);
+
+            return ResponseEntity.status(HttpStatus.CREATED)
+                .body(new VetClinicApplicationDTO(applicationRepository.save(application)));
+        } catch (RuntimeException e) {
+            return ResponseEntity.badRequest().body(Map.of("error", e.getMessage()));
+        }
+    }
+
+    private void validate(CreateClinicApplicationRequest request) {
+        if (request == null) {
+            throw new RuntimeException("Application details are required");
+        }
+        if (request.getName() == null || request.getName().isBlank()) {
+            throw new RuntimeException("Clinic name is required");
+        }
+        if (request.getCity() == null || request.getCity().isBlank()) {
+            throw new RuntimeException("City is required");
+        }
+        if (request.getAddress() == null || request.getAddress().isBlank()) {
+            throw new RuntimeException("Address is required");
+        }
+        if ((request.getEmail() == null || request.getEmail().isBlank())
+            && (request.getPhone() == null || request.getPhone().isBlank())) {
+            throw new RuntimeException("Email or phone is required");
+        }
+    }
+
+    private String blankToNull(String value) {
+        return value == null || value.isBlank() ? null : value.trim();
+    }
+}
Index: petify-backend/src/main/java/com/petify/petify/config/SecurityConfig.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/config/SecurityConfig.java	(revision 92e7c7aeb21d4b882e2f8107b1676468ceb14aa7)
+++ petify-backend/src/main/java/com/petify/petify/config/SecurityConfig.java	(revision fa32d0f462d925f109df1a21025f904e56606f8b)
@@ -111,4 +111,5 @@
                         .requestMatchers(HttpMethod.GET,"/api/users/admin/listings").permitAll()
                         .requestMatchers(HttpMethod.GET, "/api/admin/clinic-applications").permitAll()
+                        .requestMatchers(HttpMethod.POST, "/api/clinic-applications").permitAll()
                         .requestMatchers(HttpMethod.PATCH, "/api/admin/clinic-applications/*/approve").permitAll()
                         .requestMatchers(HttpMethod.PATCH, "/api/admin/clinic-applications/*/deny").permitAll()
Index: petify-backend/src/main/java/com/petify/petify/dto/CreateClinicApplicationRequest.java
===================================================================
--- petify-backend/src/main/java/com/petify/petify/dto/CreateClinicApplicationRequest.java	(revision fa32d0f462d925f109df1a21025f904e56606f8b)
+++ petify-backend/src/main/java/com/petify/petify/dto/CreateClinicApplicationRequest.java	(revision fa32d0f462d925f109df1a21025f904e56606f8b)
@@ -0,0 +1,49 @@
+package com.petify.petify.dto;
+
+public class CreateClinicApplicationRequest {
+    private String name;
+    private String email;
+    private String phone;
+    private String city;
+    private String address;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+}
