diff --git a/semantic_router/index/pinecone.py b/semantic_router/index/pinecone.py
index dfc5aaefffa4b5876fb59b6044ecbae81a857b92..732e1f35eaf79c1dad477706e68a4d0201f9b305 100644
--- a/semantic_router/index/pinecone.py
+++ b/semantic_router/index/pinecone.py
@@ -462,9 +462,9 @@ class PineconeIndex(BaseIndex):
     def query(
         self,
         vector: np.ndarray,
-        sparse_vector: Optional[dict] = None,
         top_k: int = 5,
         route_filter: Optional[List[str]] = None,
+        **kwargs: Any,
     ) -> Tuple[np.ndarray, List[str]]:
         if self.index is None:
             raise ValueError("Index is not populated.")
@@ -475,7 +475,7 @@ class PineconeIndex(BaseIndex):
             filter_query = None
         results = self.index.query(
             vector=[query_vector_list],
-            sparse_vector=sparse_vector,
+            sparse_vector=kwargs.get('sparse_vector', None),
             top_k=top_k,
             filter=filter_query,
             include_metadata=True,
@@ -488,9 +488,9 @@ class PineconeIndex(BaseIndex):
     async def aquery(
         self,
         vector: np.ndarray,
-        sparse_vector: Optional[dict] = None,
         top_k: int = 5,
         route_filter: Optional[List[str]] = None,
+        **kwargs: Any,
     ) -> Tuple[np.ndarray, List[str]]:
         if self.async_client is None or self.host is None:
             raise ValueError("Async client or host are not initialized.")
@@ -501,7 +501,7 @@ class PineconeIndex(BaseIndex):
             filter_query = None
         results = await self._async_query(
             vector=query_vector_list,
-            sparse_vector=sparse_vector,
+            sparse_vector=kwargs.get('sparse_vector', None),
             namespace=self.namespace or "",
             filter=filter_query,
             top_k=top_k,