diff --git a/pkg/service/script_policy.go b/pkg/service/script_policy.go
index 044a925..9471736 100644
--- a/pkg/service/script_policy.go
+++ b/pkg/service/script_policy.go
@@ -13,7 +13,7 @@ import (
 // Create a new script policy.
 //
 // POST /script-policy
-func (svc *Service) CreateScriptPolicy(ctx context.Context, req *api.ScriptPolicyCreate) (*api.ID, error) {
+func (svc *Service) CreateScriptPolicy(ctx context.Context, req *api.ScriptPolicyCreate) (*api.ScriptPolicyID, error) {
 	userInfo, ok := ctx.Value("UserInfo").(UserInfoHandle)
 	if !ok {
 		return nil, ErrUserInfo
@@ -44,8 +44,8 @@ func (svc *Service) CreateScriptPolicy(ctx context.Context, req *api.ScriptPolic
 		return nil, err
 	}
 
-	return &api.ID{
-		ID: script.ID,
+	return &api.ScriptPolicyID{
+		ScriptPolicyID: script.ID,
 	}, nil
 }
 
diff --git a/pkg/service/scripts.go b/pkg/service/scripts.go
index bd40ded..c8907f4 100644
--- a/pkg/service/scripts.go
+++ b/pkg/service/scripts.go
@@ -13,7 +13,7 @@ import (
 // Create a new script.
 //
 // POST /scripts
-func (svc *Service) CreateScript(ctx context.Context, req *api.ScriptCreate) (*api.ID, error) {
+func (svc *Service) CreateScript(ctx context.Context, req *api.ScriptCreate) (*api.ScriptID, error) {
 	userInfo, ok := ctx.Value("UserInfo").(UserInfoHandle)
 	if !ok {
 		return nil, ErrUserInfo
@@ -39,8 +39,8 @@ func (svc *Service) CreateScript(ctx context.Context, req *api.ScriptCreate) (*a
 		return nil, err
 	}
 
-	return &api.ID{
-		ID: script.ID,
+	return &api.ScriptID{
+		ScriptID: script.ID,
 	}, nil
 }
 
diff --git a/pkg/service_internal/mapfixes.go b/pkg/service_internal/mapfixes.go
index c8a8c79..b792f72 100644
--- a/pkg/service_internal/mapfixes.go
+++ b/pkg/service_internal/mapfixes.go
@@ -80,7 +80,7 @@ func (svc *Service) ActionMapfixUploaded(ctx context.Context, params internal.Ac
 }
 
 // POST /mapfixes
-func (svc *Service) CreateMapfix(ctx context.Context, request *internal.MapfixCreate) (*internal.ID, error) {
+func (svc *Service) CreateMapfix(ctx context.Context, request *internal.MapfixCreate) (*internal.MapfixID, error) {
 	// Check if an active mapfix with the same asset id exists
 	{
 		filter := datastore.Optional()
@@ -125,7 +125,7 @@ func (svc *Service) CreateMapfix(ctx context.Context, request *internal.MapfixCr
 	if err != nil {
 		return nil, err
 	}
-	return &internal.ID{
-		ID: mapfix.ID,
+	return &internal.MapfixID{
+		MapfixID: mapfix.ID,
 	}, nil
 }
diff --git a/pkg/service_internal/script_policy.go b/pkg/service_internal/script_policy.go
index e38b4bf..d61955d 100644
--- a/pkg/service_internal/script_policy.go
+++ b/pkg/service_internal/script_policy.go
@@ -13,7 +13,7 @@ import (
 // Create a new script policy.
 //
 // POST /script-policy
-func (svc *Service) CreateScriptPolicy(ctx context.Context, req *api.ScriptPolicyCreate) (*api.ID, error) {
+func (svc *Service) CreateScriptPolicy(ctx context.Context, req *api.ScriptPolicyCreate) (*api.ScriptPolicyID, error) {
 	from_script, err := svc.DB.Scripts().Get(ctx, req.FromScriptID)
 	if err != nil {
 		return nil, err
@@ -31,8 +31,8 @@ func (svc *Service) CreateScriptPolicy(ctx context.Context, req *api.ScriptPolic
 		return nil, err
 	}
 
-	return &api.ID{
-		ID: script.ID,
+	return &api.ScriptPolicyID{
+		ScriptPolicyID: script.ID,
 	}, nil
 }
 
diff --git a/pkg/service_internal/scripts.go b/pkg/service_internal/scripts.go
index cf4191d..2b964f1 100644
--- a/pkg/service_internal/scripts.go
+++ b/pkg/service_internal/scripts.go
@@ -13,7 +13,7 @@ import (
 // Create a new script.
 //
 // POST /scripts
-func (svc *Service) CreateScript(ctx context.Context, req *api.ScriptCreate) (*api.ID, error) {
+func (svc *Service) CreateScript(ctx context.Context, req *api.ScriptCreate) (*api.ScriptID, error) {
 	script, err := svc.DB.Scripts().Create(ctx, model.Script{
 		ID:           0,
 		Name:         req.Name,
@@ -26,8 +26,8 @@ func (svc *Service) CreateScript(ctx context.Context, req *api.ScriptCreate) (*a
 		return nil, err
 	}
 
-	return &api.ID{
-		ID: script.ID,
+	return &api.ScriptID{
+		ScriptID: script.ID,
 	}, nil
 }
 
diff --git a/pkg/service_internal/submissions.go b/pkg/service_internal/submissions.go
index 02a5533..3322230 100644
--- a/pkg/service_internal/submissions.go
+++ b/pkg/service_internal/submissions.go
@@ -80,7 +80,7 @@ func (svc *Service) ActionSubmissionUploaded(ctx context.Context, params interna
 }
 
 // POST /submissions
-func (svc *Service) CreateSubmission(ctx context.Context, request *internal.SubmissionCreate) (*internal.ID, error) {
+func (svc *Service) CreateSubmission(ctx context.Context, request *internal.SubmissionCreate) (*internal.SubmissionID, error) {
 	// Check if an active submission with the same asset id exists
 	{
 		filter := datastore.Optional()
@@ -124,7 +124,7 @@ func (svc *Service) CreateSubmission(ctx context.Context, request *internal.Subm
 	if err != nil {
 		return nil, err
 	}
-	return &internal.ID{
-		ID: submission.ID,
+	return &internal.SubmissionID{
+		SubmissionID: submission.ID,
 	}, nil
 }