---
title: "Get security update summaries by key"
method: GET
path: "/Updates({key})"
tags: ["Updates"]
---

# Get security update summaries by key

`GET /Updates({key})`

Get a list of Microsoft security updates by update ID, vulnerability ID ([CVE](https://cve.mitre.org/about)), or
year. Each includes a link to the update details, formatted according to the [Common Vulnerability Reporting
Framework](https://www.icasi.org/cvrf). This list can be manipulated using
[OData URL filtering](https://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part2-url-conventions/odata-v4.0-errata03-os-part2-url-conventions-complete.html#_Toc453752356)
on current and initial release dates.

## Query parameters

- `key` string
- `options` UpdateODataQueryOptions
  - `request` HttpRequest
    - `httpContext` HttpContext
      - `features` TypeObjectKeyValuePair[], nullable
        - `key` Type
          - `name` string, nullable
          - `customAttributes` CustomAttributeData[], nullable
            - `attributeType` Type — recursive
            - `constructor` ConstructorInfo
              - …
            - `constructorArguments` CustomAttributeTypedArgument[], nullable
              - …
            - `namedArguments` CustomAttributeNamedArgument[], nullable
              - …
          - `isCollectible` boolean
          - `metadataToken` integer
          - `isInterface` boolean
          - `memberType` 'Constructor' | 'Event' | 'Field' | 'Method' | 'Property' | 'TypeInfo' | 'Custom' | 'NestedType' | 'All'
          - `namespace` string, nullable
          - `assemblyQualifiedName` string, nullable
          - `fullName` string, nullable
          - `assembly` Assembly
            - `definedTypes` TypeInfo[], nullable
              - …
            - `exportedTypes` Type[], nullable
            - `codeBase` string, nullable
            - `entryPoint` MethodInfo
              - …
            - `fullName` string, nullable
            - `imageRuntimeVersion` string, nullable
            - `isDynamic` boolean
            - `location` string, nullable
            - `reflectionOnly` boolean
            - `isCollectible` boolean
            - `isFullyTrusted` boolean
            - `customAttributes` CustomAttributeData[], nullable
              - …
            - `escapedCodeBase` string, nullable
            - `manifestModule` Module
              - …
            - `modules` Module[], nullable
              - …
            - `globalAssemblyCache` boolean
            - `hostContext` integer
            - `securityRuleSet` 'None' | 'Level1' | 'Level2'
          - `module` Module
            - `assembly` Assembly
              - …
            - `fullyQualifiedName` string, nullable
            - `name` string, nullable
            - `mdStreamVersion` integer
            - `moduleVersionId` string, uuid
            - `scopeName` string, nullable
            - `moduleHandle` ModuleHandle
              - …
            - `customAttributes` CustomAttributeData[], nullable
              - …
            - `metadataToken` integer
          - `isNested` boolean
          - `declaringType` Type — recursive
          - `declaringMethod` MethodBase
            - `memberType` 'Constructor' | 'Event' | 'Field' | 'Method' | 'Property' | 'TypeInfo' | 'Custom' | 'NestedType' | 'All'
            - `name` string, nullable
            - `declaringType` Type — recursive
            - `reflectedType` Type — recursive
            - `module` Module
              - …
            - `customAttributes` CustomAttributeData[], nullable
              - …
            - `isCollectible` boolean
            - `metadataToken` integer
            - `attributes` 'ReuseSlot' | 'Private' | 'FamANDAssem' | 'Assembly' | 'Family' | 'FamORAssem' | 'Public' | 'MemberAccessMask' | 'UnmanagedExport' | 'Static' | 'Final' | 'Virtual' | 'HideBySig' | 'NewSlot' | 'CheckAccessOnOverride' | 'Abstract' | 'SpecialName' | 'RTSpecialName' | 'PinvokeImpl' | 'HasSecurity' | 'RequireSecObject' | 'ReservedMask'
            - `methodImplementationFlags` 'IL' | 'Native' | 'OPTIL' | 'Runtime' | 'Unmanaged' | 'NoInlining' | 'ForwardRef' | 'Synchronized' | 'NoOptimization' | 'PreserveSig' | 'AggressiveInlining' | 'AggressiveOptimization' | 'InternalCall' | 'MaxMethodImplVal'
            - `callingConvention` 'Standard' | 'VarArgs' | 'Any' | 'HasThis' | 'ExplicitThis'
            - `isAbstract` boolean
            - `isConstructor` boolean
            - `isFinal` boolean
            - `isHideBySig` boolean
            - `isSpecialName` boolean
            - `isStatic` boolean
            - `isVirtual` boolean
            - `isAssembly` boolean
            - `isFamily` boolean
            - `isFamilyAndAssembly` boolean
            - `isFamilyOrAssembly` boolean
            - `isPrivate` boolean
            - `isPublic` boolean
            - `isConstructedGenericMethod` boolean
            - `isGenericMethod` boolean
            - `isGenericMethodDefinition` boolean
            - `containsGenericParameters` boolean
            - `methodHandle` RuntimeMethodHandle
              - …
            - `isSecurityCritical` boolean
            - `isSecuritySafeCritical` boolean
            - `isSecurityTransparent` boolean
          - `reflectedType` Type — recursive
          - `underlyingSystemType` Type — recursive
          - `isTypeDefinition` boolean
          - `isArray` boolean
          - `isByRef` boolean
          - `isPointer` boolean
          - `isConstructedGenericType` boolean
          - `isGenericParameter` boolean
          - `isGenericTypeParameter` boolean
          - `isGenericMethodParameter` boolean
          - `isGenericType` boolean
          - `isGenericTypeDefinition` boolean
          - `isSZArray` boolean
          - `isVariableBoundArray` boolean
          - `isByRefLike` boolean
          - `hasElementType` boolean
          - `genericTypeArguments` Type[], nullable
          - `genericParameterPosition` integer
          - `genericParameterAttributes` 'None' | 'Covariant' | 'Contravariant' | 'VarianceMask' | 'ReferenceTypeConstraint' | 'NotNullableValueTypeConstraint' | 'DefaultConstructorConstraint' | 'SpecialConstraintMask'
          - `attributes` 'NotPublic' | 'Public' | 'NestedPublic' | 'NestedPrivate' | 'NestedFamily' | 'NestedAssembly' | 'NestedFamANDAssem' | 'NestedFamORAssem' | 'SequentialLayout' | 'ExplicitLayout' | 'LayoutMask' | 'Interface' | 'Abstract' | 'Sealed' | 'SpecialName' | 'RTSpecialName' | 'Import' | 'Serializable' | 'WindowsRuntime' | 'UnicodeClass' | 'AutoClass' | 'CustomFormatClass' | 'HasSecurity' | 'ReservedMask' | 'BeforeFieldInit' | 'CustomFormatMask'
          - `isAbstract` boolean
          - `isImport` boolean
          - `isSealed` boolean
          - `isSpecialName` boolean
          - `isClass` boolean
          - `isNestedAssembly` boolean
          - `isNestedFamANDAssem` boolean
          - `isNestedFamily` boolean
          - `isNestedFamORAssem` boolean
          - `isNestedPrivate` boolean
          - `isNestedPublic` boolean
          - `isNotPublic` boolean
          - `isPublic` boolean
          - `isAutoLayout` boolean
          - `isExplicitLayout` boolean
          - `isLayoutSequential` boolean
          - `isAnsiClass` boolean
          - `isAutoClass` boolean
          - `isUnicodeClass` boolean
          - `isCOMObject` boolean
          - `isContextful` boolean
          - `isEnum` boolean
          - `isMarshalByRef` boolean
          - `isPrimitive` boolean
          - `isValueType` boolean
          - `isSignatureType` boolean
          - `isSecurityCritical` boolean
          - `isSecuritySafeCritical` boolean
          - `isSecurityTransparent` boolean
          - `structLayoutAttribute` StructLayoutAttribute
            - `typeId` unknown
            - `value` 'Sequential' | 'Explicit' | 'Auto'
          - `typeInitializer` ConstructorInfo
            - `name` string, nullable
            - `declaringType` Type — recursive
            - `reflectedType` Type — recursive
            - `module` Module
              - …
            - `customAttributes` CustomAttributeData[], nullable
              - …
            - `isCollectible` boolean
            - `metadataToken` integer
            - `attributes` 'ReuseSlot' | 'Private' | 'FamANDAssem' | 'Assembly' | 'Family' | 'FamORAssem' | 'Public' | 'MemberAccessMask' | 'UnmanagedExport' | 'Static' | 'Final' | 'Virtual' | 'HideBySig' | 'NewSlot' | 'CheckAccessOnOverride' | 'Abstract' | 'SpecialName' | 'RTSpecialName' | 'PinvokeImpl' | 'HasSecurity' | 'RequireSecObject' | 'ReservedMask'
            - `methodImplementationFlags` 'IL' | 'Native' | 'OPTIL' | 'Runtime' | 'Unmanaged' | 'NoInlining' | 'ForwardRef' | 'Synchronized' | 'NoOptimization' | 'PreserveSig' | 'AggressiveInlining' | 'AggressiveOptimization' | 'InternalCall' | 'MaxMethodImplVal'
            - `callingConvention` 'Standard' | 'VarArgs' | 'Any' | 'HasThis' | 'ExplicitThis'
            - `isAbstract` boolean
            - `isConstructor` boolean
            - `isFinal` boolean
            - `isHideBySig` boolean
            - `isSpecialName` boolean
            - `isStatic` boolean
            - `isVirtual` boolean
            - `isAssembly` boolean
            - `isFamily` boolean
            - `isFamilyAndAssembly` boolean
            - `isFamilyOrAssembly` boolean
            - `isPrivate` boolean
            - `isPublic` boolean
            - `isConstructedGenericMethod` boolean
            - `isGenericMethod` boolean
            - `isGenericMethodDefinition` boolean
            - `containsGenericParameters` boolean
            - `methodHandle` RuntimeMethodHandle
              - …
            - `isSecurityCritical` boolean
            - `isSecuritySafeCritical` boolean
            - `isSecurityTransparent` boolean
            - `memberType` 'Constructor' | 'Event' | 'Field' | 'Method' | 'Property' | 'TypeInfo' | 'Custom' | 'NestedType' | 'All'
          - `typeHandle` RuntimeTypeHandle
            - `value` IntPtr
          - `guid` string, uuid
          - `baseType` Type — recursive
          - `isSerializable` boolean
          - `containsGenericParameters` boolean
          - `isVisible` boolean
        - `value` unknown
      - `request` HttpRequest — recursive
      - `response` HttpResponse
        - `httpContext` HttpContext — recursive
        - `statusCode` integer
        - `headers` object, nullable
        - `body` Stream
          - `canRead` boolean
          - `canWrite` boolean
          - `canSeek` boolean
          - `canTimeout` boolean
          - `length` integer
          - `position` integer
          - `readTimeout` integer
          - `writeTimeout` integer
        - `bodyWriter` PipeWriter
          - `canGetUnflushedBytes` boolean
          - `unflushedBytes` integer
        - `contentLength` integer, nullable
        - `contentType` string, nullable
        - `cookies` IResponseCookies
        - `hasStarted` boolean
      - `connection` ConnectionInfo
        - `id` string, nullable
        - `remoteIpAddress` IPAddress
          - `addressFamily` 'Unspecified' | 'Unix' | 'InterNetwork' | 'ImpLink' | 'Pup' | 'Chaos' | 'NS' | 'Osi' | 'Ecma' | 'DataKit' | 'Ccitt' | 'Sna' | 'DecNet' | 'DataLink' | 'Lat' | 'HyperChannel' | 'AppleTalk' | 'NetBios' | 'VoiceView' | 'FireFox' | 'Banyan' | 'Atm' | 'InterNetworkV6' | 'Cluster' | 'Ieee12844' | 'Irda' | 'NetworkDesigners' | 'Max' | 'Packet' | 'ControllerAreaNetwork' | 'Unknown'
          - `scopeId` integer
          - `isIPv6Multicast` boolean
          - `isIPv6LinkLocal` boolean
          - `isIPv6SiteLocal` boolean
          - `isIPv6Teredo` boolean
          - `isIPv6UniqueLocal` boolean
          - `isIPv4MappedToIPv6` boolean
          - `address` integer
        - `remotePort` integer
        - `localIpAddress` IPAddress
          - `addressFamily` 'Unspecified' | 'Unix' | 'InterNetwork' | 'ImpLink' | 'Pup' | 'Chaos' | 'NS' | 'Osi' | 'Ecma' | 'DataKit' | 'Ccitt' | 'Sna' | 'DecNet' | 'DataLink' | 'Lat' | 'HyperChannel' | 'AppleTalk' | 'NetBios' | 'VoiceView' | 'FireFox' | 'Banyan' | 'Atm' | 'InterNetworkV6' | 'Cluster' | 'Ieee12844' | 'Irda' | 'NetworkDesigners' | 'Max' | 'Packet' | 'ControllerAreaNetwork' | 'Unknown'
          - `scopeId` integer
          - `isIPv6Multicast` boolean
          - `isIPv6LinkLocal` boolean
          - `isIPv6SiteLocal` boolean
          - `isIPv6Teredo` boolean
          - `isIPv6UniqueLocal` boolean
          - `isIPv4MappedToIPv6` boolean
          - `address` integer
        - `localPort` integer
        - `clientCertificate` X509Certificate2
          - `handle` IntPtr
          - `issuer` string, nullable
          - `subject` string, nullable
          - `archived` boolean
          - `extensions` X509Extension[], nullable
            - `oid` Oid
              - …
            - `rawData` string, byte, nullable
            - `critical` boolean
          - `friendlyName` string, nullable
          - `hasPrivateKey` boolean
          - `privateKey` AsymmetricAlgorithm
            - `keySize` integer
            - `legalKeySizes` KeySizes[], nullable
              - …
            - `signatureAlgorithm` string, nullable
            - `keyExchangeAlgorithm` string, nullable
          - `issuerName` X500DistinguishedName
            - `oid` Oid
              - …
            - `rawData` string, byte, nullable
            - `name` string, nullable
          - `notAfter` string, date-time
          - `notBefore` string, date-time
          - `publicKey` PublicKey
            - `encodedKeyValue` AsnEncodedData
              - …
            - `encodedParameters` AsnEncodedData
              - …
            - `key` AsymmetricAlgorithm
              - …
            - `oid` Oid
              - …
          - `rawData` string, byte, nullable
          - `serialNumber` string, nullable
          - `signatureAlgorithm` Oid
            - `value` string, nullable
            - `friendlyName` string, nullable
          - `subjectName` X500DistinguishedName
            - `oid` Oid
              - …
            - `rawData` string, byte, nullable
            - `name` string, nullable
          - `thumbprint` string, nullable
          - `version` integer
      - `webSockets` WebSocketManager
        - `isWebSocketRequest` boolean
        - `webSocketRequestedProtocols` string[], nullable
      - `user` ClaimsPrincipal
        - `claims` Claim[], nullable
          - `issuer` string, nullable
          - `originalIssuer` string, nullable
          - `properties` object, nullable
          - `subject` ClaimsIdentity
            - `authenticationType` string, nullable
            - `isAuthenticated` boolean
            - `actor` ClaimsIdentity — recursive
            - `bootstrapContext` unknown
            - `claims` Claim[], nullable
            - `label` string, nullable
            - `name` string, nullable
            - `nameClaimType` string, nullable
            - `roleClaimType` string, nullable
          - `type` string, nullable
          - `value` string, nullable
          - `valueType` string, nullable
        - `identities` ClaimsIdentity[], nullable
          - `authenticationType` string, nullable
          - `isAuthenticated` boolean
          - `actor` ClaimsIdentity — recursive
          - `bootstrapContext` unknown
          - `claims` Claim[], nullable
            - `issuer` string, nullable
            - `originalIssuer` string, nullable
            - `properties` object, nullable
            - `subject` ClaimsIdentity — recursive
            - `type` string, nullable
            - `value` string, nullable
            - `valueType` string, nullable
          - `label` string, nullable
          - `name` string, nullable
          - `nameClaimType` string, nullable
          - `roleClaimType` string, nullable
        - `identity` IIdentity
          - `name` string, nullable
          - `authenticationType` string, nullable
          - `isAuthenticated` boolean
      - `items` object, nullable
      - `requestServices` IServiceProvider
      - `requestAborted` CancellationToken
        - `isCancellationRequested` boolean
        - `canBeCanceled` boolean
        - `waitHandle` WaitHandle
          - `handle` IntPtr
          - `safeWaitHandle` SafeWaitHandle
            - `isClosed` boolean
            - `isInvalid` boolean
      - `traceIdentifier` string, nullable
      - `session` ISession
        - `isAvailable` boolean
        - `id` string, nullable
        - `keys` string[], nullable
    - `method` string, nullable
    - `scheme` string, nullable
    - `isHttps` boolean
    - `host` HostString
      - `value` string, nullable
      - `hasValue` boolean
      - `host` string, nullable
      - `port` integer, nullable
    - `pathBase` PathString
      - `value` string, nullable
      - `hasValue` boolean
    - `path` PathString
      - `value` string, nullable
      - `hasValue` boolean
    - `queryString` QueryString
      - `value` string, nullable
      - `hasValue` boolean
    - `query` StringStringValuesKeyValuePair[], nullable
      - `key` string, nullable
      - `value` string[]
    - `protocol` string, nullable
    - `headers` object, nullable
    - `cookies` StringStringKeyValuePair[], nullable
      - `key` string, nullable
      - `value` string, nullable
    - `contentLength` integer, nullable
    - `contentType` string, nullable
    - `body` Stream
      - `canRead` boolean
      - `canWrite` boolean
      - `canSeek` boolean
      - `canTimeout` boolean
      - `length` integer
      - `position` integer
      - `readTimeout` integer
      - `writeTimeout` integer
    - `bodyReader` PipeReader
    - `hasFormContentType` boolean
    - `form` StringStringValuesKeyValuePair[], nullable
      - `key` string, nullable
      - `value` string[]
    - `routeValues` object, nullable
  - `context` ODataQueryContext
    - `defaultQueryConfigurations` DefaultQueryConfigurations
      - `enableExpand` boolean
      - `enableSelect` boolean
      - `enableCount` boolean
      - `enableOrderBy` boolean
      - `enableFilter` boolean
      - `maxTop` integer, nullable
      - `enableSkipToken` boolean
    - `model` IEdmModel
      - `schemaElements` IEdmSchemaElement[], nullable
        - `schemaElementKind` 'None' | 'TypeDefinition' | 'Term' | 'Action' | 'EntityContainer' | 'Function'
        - `namespace` string, nullable
        - `name` string, nullable
      - `vocabularyAnnotations` IEdmVocabularyAnnotation[], nullable
        - `qualifier` string, nullable
        - `term` IEdmTerm
          - `type` IEdmTypeReference
            - `isNullable` boolean
            - `definition` IEdmType
              - …
          - `appliesTo` string, nullable
          - `defaultValue` string, nullable
          - `schemaElementKind` 'None' | 'TypeDefinition' | 'Term' | 'Action' | 'EntityContainer' | 'Function'
          - `namespace` string, nullable
          - `name` string, nullable
        - `target` IEdmVocabularyAnnotatable
        - `value` IEdmExpression
          - `expressionKind` 'None' | 'BinaryConstant' | 'BooleanConstant' | 'DateTimeOffsetConstant' | 'DecimalConstant' | 'FloatingConstant' | 'GuidConstant' | 'IntegerConstant' | 'StringConstant' | 'DurationConstant' | 'Null' | 'Record' | 'Collection' | 'Path' | 'If' | 'Cast' | 'IsType' | 'FunctionApplication' | 'LabeledExpressionReference' | 'Labeled' | 'PropertyPath' | 'NavigationPropertyPath' | 'DateConstant' | 'TimeOfDayConstant' | 'EnumMember' | 'AnnotationPath'
      - `referencedModels` IEdmModel[], nullable
      - `declaredNamespaces` string[], nullable
      - `directValueAnnotationsManager` IEdmDirectValueAnnotationsManager
      - `entityContainer` IEdmEntityContainer
        - `elements` IEdmEntityContainerElement[], nullable
          - `containerElementKind` 'None' | 'EntitySet' | 'ActionImport' | 'FunctionImport' | 'Singleton'
          - `container` IEdmEntityContainer — recursive
          - `name` string, nullable
        - `schemaElementKind` 'None' | 'TypeDefinition' | 'Term' | 'Action' | 'EntityContainer' | 'Function'
        - `namespace` string, nullable
        - `name` string, nullable
    - `elementType` IEdmType
      - `typeKind` 'None' | 'Primitive' | 'Entity' | 'Complex' | 'Collection' | 'EntityReference' | 'Enum' | 'TypeDefinition' | 'Untyped' | 'Path'
    - `navigationSource` IEdmNavigationSource
      - `navigationPropertyBindings` IEdmNavigationPropertyBinding[], nullable
        - `navigationProperty` IEdmNavigationProperty
          - `partner` IEdmNavigationProperty — recursive
          - `onDelete` 'None' | 'Cascade'
          - `containsTarget` boolean
          - `referentialConstraint` IEdmReferentialConstraint
            - `propertyPairs` EdmReferentialConstraintPropertyPair[], nullable
              - …
- … truncated; see the full OpenAPI document linked below

## Response `200`

Success

- Update[]
  - `id` string, required
  - `alias` string, required
  - `documentTitle` string, required
  - `severity` string, nullable
  - `initialReleaseDate` string, date-time, required
  - `currentReleaseDate` string, date-time, required
  - `cvrfUrl` string, required

---

[API](https://skmtc.dev/azure/apis/msrc-cvrf-api.md) · [All operations](https://skmtc.dev/azure/apis/msrc-cvrf-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/azure/msrc-cvrf-api/revisions/20f54c86263a/schema)
