diff --git a/src/requester/instance-id.c b/src/requester/instance-id.c
index 82e3ed1..10d5988 100644
--- a/src/requester/instance-id.c
+++ b/src/requester/instance-id.c
@@ -1,5 +1,6 @@
 // NOLINTNEXTLINE(bugprone-reserved-identifier,cert-dcl37-c,cert-dcl51-cpp)
 #define _GNU_SOURCE
+#include "config.h"
 #include "libpldm/instance-id.h"
 #include "libpldm/pldm.h"
 #include <errno.h>
@@ -30,6 +31,7 @@
 	return (cur + 1) % PLDM_INST_ID_MAX;
 }
 
+LIBPLDM_ABI_STABLE
 int pldm_instance_db_init(struct pldm_instance_db **ctx, const char *dbpath)
 {
 	struct pldm_instance_db *l_ctx;
@@ -78,12 +80,14 @@
 	return 0;
 }
 
+LIBPLDM_ABI_STABLE
 int pldm_instance_db_init_default(struct pldm_instance_db **ctx)
 {
 	return pldm_instance_db_init(ctx,
 				     "/usr/share/libpldm/instance-db/default");
 }
 
+LIBPLDM_ABI_STABLE
 int pldm_instance_db_destroy(struct pldm_instance_db *ctx)
 {
 	if (!ctx) {
@@ -94,6 +98,7 @@
 	return 0;
 }
 
+LIBPLDM_ABI_STABLE
 int pldm_instance_id_alloc(struct pldm_instance_db *ctx, pldm_tid_t tid,
 			   pldm_instance_id_t *iid)
 {
@@ -182,6 +187,7 @@
 	return -EAGAIN;
 }
 
+LIBPLDM_ABI_STABLE
 int pldm_instance_id_free(struct pldm_instance_db *ctx, pldm_tid_t tid,
 			  pldm_instance_id_t iid)
 {
diff --git a/src/requester/pldm.c b/src/requester/pldm.c
index 21e402e..b50dbbf 100644
--- a/src/requester/pldm.c
+++ b/src/requester/pldm.c
@@ -1,3 +1,4 @@
+#include "config.h"
 #include "libpldm/requester/pldm.h"
 #include "base.h"
 #include "libpldm/transport.h"
@@ -25,6 +26,7 @@
  */
 static struct pldm_transport_mctp_demux *open_transport;
 
+LIBPLDM_ABI_STABLE
 pldm_requester_rc_t pldm_open(void)
 {
 	int fd;
@@ -86,6 +88,7 @@
 		return rc;                                                       \
 	} while (0)
 
+LIBPLDM_ABI_STABLE
 pldm_requester_rc_t pldm_recv_any(mctp_eid_t eid, int mctp_fd,
 				  uint8_t **pldm_resp_msg, size_t *resp_msg_len)
 {
@@ -93,6 +96,7 @@
 		    (void **)pldm_resp_msg, resp_msg_len);
 }
 
+LIBPLDM_ABI_STABLE
 pldm_requester_rc_t pldm_recv(mctp_eid_t eid, int mctp_fd,
 			      __attribute__((unused)) uint8_t instance_id,
 			      uint8_t **pldm_resp_msg, size_t *resp_msg_len)
@@ -108,6 +112,7 @@
 	return rc;
 }
 
+LIBPLDM_ABI_STABLE
 pldm_requester_rc_t pldm_send_recv(mctp_eid_t eid, int mctp_fd,
 				   const uint8_t *pldm_req_msg,
 				   size_t req_msg_len, uint8_t **pldm_resp_msg,
@@ -117,6 +122,7 @@
 		    req_msg_len, (void **)pldm_resp_msg, resp_msg_len);
 }
 
+LIBPLDM_ABI_STABLE
 pldm_requester_rc_t pldm_send(mctp_eid_t eid, int mctp_fd,
 			      const uint8_t *pldm_req_msg, size_t req_msg_len)
 {
@@ -126,6 +132,7 @@
 
 /* Adding this here for completeness in the case we can't smoothly
  * transition apps over to the new api */
+LIBPLDM_ABI_STABLE
 void pldm_close(void)
 {
 	if (open_transport) {
