diff --git a/include/libpldm/base.h b/include/libpldm/base.h
index 26e0825..7580efb 100644
--- a/include/libpldm/base.h
+++ b/include/libpldm/base.h
@@ -11,6 +11,8 @@
 
 #include "pldm_types.h"
 
+typedef uint8_t pldm_tid_t;
+
 /** @brief PLDM Types
  */
 enum pldm_supported_types {
diff --git a/include/libpldm/meson.build b/include/libpldm/meson.build
index 0d25754..b3da4b2 100644
--- a/include/libpldm/meson.build
+++ b/include/libpldm/meson.build
@@ -29,6 +29,7 @@
 
 if get_option('requester-api').enabled()
    libpldm_headers += files(
+    'requester/instance-id.h',
     'requester/pldm.h'
     )
 endif
diff --git a/include/libpldm/requester/instance-id.h b/include/libpldm/requester/instance-id.h
new file mode 100644
index 0000000..eebaecb
--- /dev/null
+++ b/include/libpldm/requester/instance-id.h
@@ -0,0 +1,92 @@
+#ifndef INSTANCE_ID_H
+#define INSTANCE_ID_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "libpldm/base.h"
+#include <stdint.h>
+
+typedef uint8_t pldm_instance_id_t;
+struct pldm_instance_db;
+
+#ifdef __STDC_HOSTED__
+/**
+ * @brief Instantiates an instance ID database object for a given database path
+ *
+ * @param[out] ctx - *ctx must be NULL, and will point to a PLDM instance ID
+ * 		     database object on success.
+ * @param[in] dbpath - the path to the instance ID database file to use
+ *
+ * @return int - Returns 0 on success. Returns -EINVAL if ctx is NULL or *ctx
+ * 		 is not NULL. Returns -ENOMEM if memory couldn't be allocated.
+ *		 Returns the errno if the database couldn't be opened.
+ * */
+int pldm_instance_db_init(struct pldm_instance_db **ctx, const char *dbpath);
+
+/**
+ * @brief Instantiates an instance ID database object for the default database
+ * 	  path
+ *
+ * @param[out] ctx - *ctx will point to a PLDM instance ID database object on
+ * 	       success.
+ *
+ * @return int - Returns 0 on success. Returns -EINVAL if ctx is NULL or *ctx
+ * 		 is not NULL. Returns -ENOMEM if memory couldn't be allocated.
+ * 		 Returns the errno if the database couldn't be opened.
+ * */
+int pldm_instance_db_init_default(struct pldm_instance_db **ctx);
+
+/**
+ * @brief Destroys an instance ID database object
+ *
+ * @param[in] ctx - PLDM instance ID database object
+ *
+ * @return int - Returns 0 on success or if *ctx is NULL. No specific errors are
+ *		 specified.
+ * */
+int pldm_instance_db_destroy(struct pldm_instance_db *ctx);
+
+/**
+ * @brief Allocates an instance ID for a destination TID from the instance ID
+ * 	  database
+ *
+ * @param[in] ctx - PLDM instance ID database object
+ * @param[in] tid - PLDM TID
+ * @param[in] iid - caller owned pointer to a PLDM instance ID object. On
+ * 	      success, this points to an instance ID to use for a PLDM request
+ * 	      message.
+ *
+ * @return int - Returns 0 on success if we were able to allocate an instance
+ * 		 ID. Returns -EINVAL if the iid pointer is NULL. Returns -EAGAIN
+ *		 if a successive call may succeed. Returns -EPROTO if the
+ *		 operation has entered an undefined state.
+ */
+int pldm_instance_id_alloc(struct pldm_instance_db *ctx, pldm_tid_t tid,
+			   pldm_instance_id_t *iid);
+
+/**
+ * @brief Frees an instance ID previously allocated by pldm_instance_id_alloc
+ *
+ * @param[in] ctx - PLDM instance ID database object
+ * @param[in] tid - PLDM TID
+ * @param[in] iid - If this instance ID was not previously allocated by
+ * 	      pldm_instance_id_alloc then EINVAL is returned.
+ *
+ * @return int - Returns 0 on success. Returns -EINVAL if the iid supplied was
+ * 		 not previously allocated by pldm_instance_id_alloc or it has
+ * 		 previously been freed. Returns -EAGAIN if a successive call may
+ * 		 succeed. Returns -EPROTO if the operation has entered an
+ *		 undefined state.
+ */
+int pldm_instance_id_free(struct pldm_instance_db *ctx, pldm_tid_t tid,
+			  pldm_instance_id_t iid);
+
+#endif /* __STDC_HOSTED__*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* INSTANCE_ID_H */
