diff --git a/encoding/openapi/build.go b/encoding/openapi/build.go
index 6a32f5d..8d690d1 100644
--- a/encoding/openapi/build.go
+++ b/encoding/openapi/build.go
@@ -212,6 +212,7 @@
 
 	b.setValueType(v)
 	b.format = extractFormat(v)
+	b.deprecated = getDeprecated(v)
 
 	if b.core == nil || len(b.core.values) > 1 {
 		isRef := b.value(v, nil)
@@ -952,6 +953,7 @@
 	singleFields *oaSchema
 	current      *oaSchema
 	allOf        []*oaSchema
+	deprecated   bool
 
 	// Building structural schema
 	core       *builder
@@ -1072,6 +1074,9 @@
 		b.singleFields.kvs = append(b.singleFields.kvs, t.kvs...)
 		t = b.singleFields
 	}
+	if b.deprecated {
+		t.Set("deprecated", true)
+	}
 	setType(t, b)
 	sortSchema(t)
 	return t
diff --git a/encoding/openapi/testdata/simple-filter.json b/encoding/openapi/testdata/simple-filter.json
index 0acf4a4..76b3d29 100644
--- a/encoding/openapi/testdata/simple-filter.json
+++ b/encoding/openapi/testdata/simple-filter.json
@@ -12,7 +12,8 @@
                "mediumNum",
                "smallNum",
                "float",
-               "double"
+               "double",
+               "deprecatedField"
             ],
             "properties": {
                "mediumNum": {
@@ -29,6 +30,11 @@
                "double": {
                   "type": "number",
                   "format": "double"
+               },
+               "deprecatedField": {
+                  "type": "string",
+                  "format": "string",
+                  "deprecated": true
                }
             }
          }
diff --git a/encoding/openapi/testdata/simple.cue b/encoding/openapi/testdata/simple.cue
index 0504d4c..003be57 100644
--- a/encoding/openapi/testdata/simple.cue
+++ b/encoding/openapi/testdata/simple.cue
@@ -4,4 +4,6 @@
 
 	float:  float32
 	double: float64
+
+	deprecatedField: string @protobuf(5,deprecated)
 }
diff --git a/encoding/openapi/testdata/simple.json b/encoding/openapi/testdata/simple.json
index 8ccb0f3..c2e88d3 100644
--- a/encoding/openapi/testdata/simple.json
+++ b/encoding/openapi/testdata/simple.json
@@ -12,7 +12,8 @@
                "mediumNum",
                "smallNum",
                "float",
-               "double"
+               "double",
+               "deprecatedField"
             ],
             "properties": {
                "mediumNum": {
@@ -31,6 +32,11 @@
                "double": {
                   "type": "number",
                   "format": "double"
+               },
+               "deprecatedField": {
+                  "type": "string",
+                  "format": "string",
+                  "deprecated": true
                }
             }
          }
diff --git a/encoding/openapi/types.go b/encoding/openapi/types.go
index d46fd2b..209dda6 100644
--- a/encoding/openapi/types.go
+++ b/encoding/openapi/types.go
@@ -62,6 +62,13 @@
 	return cueToOpenAPI[s]
 }
 
+func getDeprecated(v cue.Value) bool {
+	// only looking at protobuf attribute for now.
+	a := v.Attribute("protobuf")
+	r, _ := a.Flag(1, "deprecated")
+	return r
+}
+
 func simplify(b *builder, t *OrderedMap) {
 	if b.format == "" {
 		return
