diff --git a/api_logs/api-logs.go b/api_logs/api-logs.go
index 91d04220559ba059938dff2af85a135b32eaf190..ce1cc05825934fbfbb60ef352feb76ea43cac137 100644
--- a/api_logs/api-logs.go
+++ b/api_logs/api-logs.go
@@ -2,8 +2,8 @@ package api_logs
 
 import (
 	"github.com/thoas/go-funk"
+	"gitlab.com/uafrica/go-utils/string_utils"
 	"net/url"
-	"strconv"
 	"strings"
 	"time"
 
@@ -37,14 +37,24 @@ func GenerateIncomingAPILog(startTime time.Time, requestID *string, claim map[st
 	userID, _ := claim["UserID"].(int64)
 	username, _ := claim["Username"].(string)
 	accountID, _ := claim["AccountID"].(int64)
+	providerID, _ := claim["ProviderID"].(int64)
+
 	if accountID == 0 {
 		if accountIDParam, ok := req.QueryStringParameters["account_id"]; ok {
-			if i64, err := strconv.ParseInt(accountIDParam, 10, 64); err == nil && i64 > 0 {
+			if i64, err := string_utils.StringToInt64(accountIDParam); err == nil && i64 > 0 {
 				accountID = i64
 			}
 		}
 	}
 
+	if providerID == 0 {
+		if providerIDParam, ok := req.QueryStringParameters["provider_id"]; ok {
+			if i64, err := string_utils.StringToInt64(providerIDParam); err == nil && i64 > 0 {
+				providerID = i64
+			}
+		}
+	}
+
 	typeString := "api-incoming"
 	if funk.Contains(req.Path, "webhook") {
 		typeString = "webhook-incoming"
@@ -67,6 +77,7 @@ func GenerateIncomingAPILog(startTime time.Time, requestID *string, claim map[st
 		UserID:              userID,
 		Username:            username,
 		AccountID:           accountID,
+		ProviderID:          providerID,
 		Request: ApiLogRequest{
 			Headers:         req.Headers,
 			QueryParameters: req.QueryStringParameters,
@@ -99,6 +110,8 @@ func GenerateOutgoingAPILog(startTime time.Time, requestID *string, claim map[st
 	userID, _ := claim["UserID"].(int64)
 	username, _ := claim["Username"].(string)
 	accountID, _ := claim["AccountID"].(int64)
+	providerID, _ := claim["ProviderID"].(int64)
+
 	params := map[string]string{}
 	parsedURL, err := url.Parse(urlString)
 	if err == nil {
@@ -125,6 +138,7 @@ func GenerateOutgoingAPILog(startTime time.Time, requestID *string, claim map[st
 		UserID:       userID,
 		Username:     username,
 		AccountID:    accountID,
+		ProviderID:   providerID,
 		Request: ApiLogRequest{
 			Headers:         requestHeaders,
 			QueryParameters: params,
@@ -155,6 +169,7 @@ type ApiLog struct {
 	InitialAuthUsername string         `json:"initial_auth_username,omitempty"`
 	InitialAuthType     string         `json:"initial_auth_type,omitempty"`
 	AccountID           int64          `json:"account_id,omitempty"`
+	ProviderID          int64          `json:"provider_id,omitempty"`
 	UserID              int64          `json:"user_id,omitempty"`
 	Username            string         `json:"username,omitempty"`
 	SourceIP            string         `json:"source_ip,omitempty"`  //only logged for incoming API