Index: frontend/src/pages/PublishSong.tsx
===================================================================
--- frontend/src/pages/PublishSong.tsx	(revision 8dd3e225d135d25c1720d89f383ea1b8819c0874)
+++ frontend/src/pages/PublishSong.tsx	(revision 27660af8b50619221470b2bbb054bcc3db8ed385)
@@ -2,67 +2,12 @@
 import { Link, useNavigate } from "react-router-dom";
 import { toast } from "react-toastify";
+import axiosInstance from "../api/axiosInstance";
 import { useAuth } from "../context/authContext";
-
-interface Contributor {
-	username: string;
-	fullName: string;
-	role: string;
-}
-
-interface ArtistSearchResult {
-	username: string;
-	fullName: string;
-	profilePhoto?: string;
-}
-
-interface SongEntry {
-	title: string;
-	link: string;
-	contributors: Contributor[];
-}
-
-const ROLE_OPTIONS = [
-	{ value: "FEATURED", label: "Featured" },
-	{ value: "PRODUCER", label: "Producer" },
-	{ value: "SONGWRITER", label: "Songwriter" },
-	{ value: "COMPOSER", label: "Composer" },
-	{ value: "MIXER", label: "Mixer" },
-	{ value: "ENGINEER", label: "Engineer" },
-];
-
-const GENRE_OPTIONS = [
-	"Pop",
-	"Rock",
-	"Hip-Hop",
-	"R&B",
-	"Electronic",
-	"Jazz",
-	"Classical",
-	"Country",
-	"Folk",
-	"Latin",
-	"Metal",
-	"Punk",
-	"Indie",
-	"Alternative",
-	"Blues",
-	"Soul",
-	"Reggae",
-	"Funk",
-	"Disco",
-	"House",
-	"Techno",
-	"Ambient",
-	"Other",
-];
-
-// Mock artist search results
-const MOCK_ARTISTS: ArtistSearchResult[] = [
-	{ username: "john_doe", fullName: "John Doe" },
-	{ username: "jane_smith", fullName: "Jane Smith" },
-	{ username: "mike_producer", fullName: "Mike the Producer" },
-	{ username: "sarah_vocals", fullName: "Sarah Vocals" },
-	{ username: "alex_beats", fullName: "Alex Beats" },
-];
+import { GENRE_OPTIONS, ROLE_OPTIONS } from "../utils/consts";
+import type {
+	ArtistSearchResult,
+	Contributor,
+	SongEntry,
+} from "../utils/types";
 
 const MAX_CONTRIBUTORS = 5;
@@ -145,12 +90,10 @@
 		setIsSearching(true);
 		try {
-			// TODO: replace with api call
-			// const response = await axiosInstance.get(`/users/search?type=ARTIST&q=${encodeURIComponent(query)}`);
-			// setSearchResults(response.data);
-
-			// Mock search - filter by name
-			await new Promise((resolve) => setTimeout(resolve, 200));
-			const filtered = MOCK_ARTISTS.filter(
-				(artist) =>
+			const response = await axiosInstance.get(
+				`/users/search?type=ARTIST&q=${encodeURIComponent(query)}&limit=5`,
+			);
+
+			const filtered = response.data.filter(
+				(artist: ArtistSearchResult) =>
 					artist.fullName.toLowerCase().includes(query.toLowerCase()) ||
 					artist.username.toLowerCase().includes(query.toLowerCase()),
@@ -276,7 +219,9 @@
 
 			// TODO: replace with api call
-			await new Promise((resolve) => setTimeout(resolve, 200));
-			const filtered = MOCK_ARTISTS.filter(
-				(artist) =>
+			const response = await axiosInstance.get(
+				`/users/search?type=ARTIST&q=${encodeURIComponent(query)}&limit=5`,
+			);
+			const filtered = response.data.filter(
+				(artist: ArtistSearchResult) =>
 					artist.fullName.toLowerCase().includes(query.toLowerCase()) ||
 					artist.username.toLowerCase().includes(query.toLowerCase()),
Index: frontend/src/utils/consts.ts
===================================================================
--- frontend/src/utils/consts.ts	(revision 27660af8b50619221470b2bbb054bcc3db8ed385)
+++ frontend/src/utils/consts.ts	(revision 27660af8b50619221470b2bbb054bcc3db8ed385)
@@ -0,0 +1,34 @@
+export const ROLE_OPTIONS = [
+	{ value: "FEATURED", label: "Featured" },
+	{ value: "PRODUCER", label: "Producer" },
+	{ value: "SONGWRITER", label: "Songwriter" },
+	{ value: "COMPOSER", label: "Composer" },
+	{ value: "MIXER", label: "Mixer" },
+	{ value: "ENGINEER", label: "Engineer" },
+];
+
+export const GENRE_OPTIONS = [
+	"Pop",
+	"Rock",
+	"Hip-Hop",
+	"R&B",
+	"Electronic",
+	"Jazz",
+	"Classical",
+	"Country",
+	"Folk",
+	"Latin",
+	"Metal",
+	"Punk",
+	"Indie",
+	"Alternative",
+	"Blues",
+	"Soul",
+	"Reggae",
+	"Funk",
+	"Disco",
+	"House",
+	"Techno",
+	"Ambient",
+	"Other",
+];
Index: frontend/src/utils/types.ts
===================================================================
--- frontend/src/utils/types.ts	(revision 8dd3e225d135d25c1720d89f383ea1b8819c0874)
+++ frontend/src/utils/types.ts	(revision 27660af8b50619221470b2bbb054bcc3db8ed385)
@@ -117,2 +117,20 @@
 	releaseDate: string;
 }
+
+export interface Contributor {
+	username: string;
+	fullName: string;
+	role: string;
+}
+
+export interface ArtistSearchResult {
+	username: string;
+	fullName: string;
+	profilePhoto?: string;
+}
+
+export interface SongEntry {
+	title: string;
+	link: string;
+	contributors: Contributor[];
+}
