## Get certificate distribution by dimension `client.Radar.CT.Summary(ctx, dimension, query) (*CTSummaryResponse, error)` **get** `/radar/ct/summary/{dimension}` Retrieves an aggregated summary of certificates grouped by the specified dimension. ### Parameters - `dimension CTSummaryParamsDimension` Specifies the certificate attribute by which to group the results. - `const CTSummaryParamsDimensionCA CTSummaryParamsDimension = "CA"` - `const CTSummaryParamsDimensionCAOwner CTSummaryParamsDimension = "CA_OWNER"` - `const CTSummaryParamsDimensionDuration CTSummaryParamsDimension = "DURATION"` - `const CTSummaryParamsDimensionEntryType CTSummaryParamsDimension = "ENTRY_TYPE"` - `const CTSummaryParamsDimensionExpirationStatus CTSummaryParamsDimension = "EXPIRATION_STATUS"` - `const CTSummaryParamsDimensionHasIPs CTSummaryParamsDimension = "HAS_IPS"` - `const CTSummaryParamsDimensionHasWildcards CTSummaryParamsDimension = "HAS_WILDCARDS"` - `const CTSummaryParamsDimensionLog CTSummaryParamsDimension = "LOG"` - `const CTSummaryParamsDimensionLogAPI CTSummaryParamsDimension = "LOG_API"` - `const CTSummaryParamsDimensionLogOperator CTSummaryParamsDimension = "LOG_OPERATOR"` - `const CTSummaryParamsDimensionPublicKeyAlgorithm CTSummaryParamsDimension = "PUBLIC_KEY_ALGORITHM"` - `const CTSummaryParamsDimensionSignatureAlgorithm CTSummaryParamsDimension = "SIGNATURE_ALGORITHM"` - `const CTSummaryParamsDimensionTLD CTSummaryParamsDimension = "TLD"` - `const CTSummaryParamsDimensionValidationLevel CTSummaryParamsDimension = "VALIDATION_LEVEL"` - `query CTSummaryParams` - `CA param.Field[[]string]` Filters results by certificate authority. - `CAOwner param.Field[[]string]` Filters results by certificate authority owner. - `DateEnd param.Field[[]Time]` End of the date range (inclusive). - `DateRange param.Field[[]string]` Filters results by date range. For example, use `7d` and `7dcontrol` to compare this week with the previous week. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. - `Duration param.Field[[]CTSummaryParamsDuration]` Filters results by certificate duration. - `const CTSummaryParamsDurationLte3D CTSummaryParamsDuration = "LTE_3D"` - `const CTSummaryParamsDurationGt3DLte7D CTSummaryParamsDuration = "GT_3D_LTE_7D"` - `const CTSummaryParamsDurationGt7DLte10D CTSummaryParamsDuration = "GT_7D_LTE_10D"` - `const CTSummaryParamsDurationGt10DLte47D CTSummaryParamsDuration = "GT_10D_LTE_47D"` - `const CTSummaryParamsDurationGt47DLte100D CTSummaryParamsDuration = "GT_47D_LTE_100D"` - `const CTSummaryParamsDurationGt100DLte200D CTSummaryParamsDuration = "GT_100D_LTE_200D"` - `const CTSummaryParamsDurationGt200D CTSummaryParamsDuration = "GT_200D"` - `EntryType param.Field[[]CTSummaryParamsEntryType]` Filters results by entry type (certificate vs. pre-certificate). - `const CTSummaryParamsEntryTypePrecertificate CTSummaryParamsEntryType = "PRECERTIFICATE"` - `const CTSummaryParamsEntryTypeCertificate CTSummaryParamsEntryType = "CERTIFICATE"` - `ExpirationStatus param.Field[[]CTSummaryParamsExpirationStatus]` Filters results by expiration status (expired vs. valid). - `const CTSummaryParamsExpirationStatusExpired CTSummaryParamsExpirationStatus = "EXPIRED"` - `const CTSummaryParamsExpirationStatusValid CTSummaryParamsExpirationStatus = "VALID"` - `Format param.Field[CTSummaryParamsFormat]` Format in which results will be returned. - `const CTSummaryParamsFormatJson CTSummaryParamsFormat = "JSON"` - `const CTSummaryParamsFormatCsv CTSummaryParamsFormat = "CSV"` - `HasIPs param.Field[[]bool]` Filters results based on whether the certificates are bound to specific IP addresses. - `HasWildcards param.Field[[]bool]` Filters results based on whether the certificates contain wildcard domains. - `LimitPerGroup param.Field[int64]` Limits the number of objects per group to the top items within the specified time range. When item count exceeds the limit, extra items appear grouped under an "other" category. - `Log param.Field[[]string]` Filters results by certificate log. - `LogAPI param.Field[[]CTSummaryParamsLogAPI]` Filters results by certificate log API (RFC6962 vs. static). - `const CTSummaryParamsLogAPIRfc6962 CTSummaryParamsLogAPI = "RFC6962"` - `const CTSummaryParamsLogAPIStatic CTSummaryParamsLogAPI = "STATIC"` - `LogOperator param.Field[[]string]` Filters results by certificate log operator. - `Name param.Field[[]string]` Array of names used to label the series in the response. - `Normalization param.Field[CTSummaryParamsNormalization]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const CTSummaryParamsNormalizationRawValues CTSummaryParamsNormalization = "RAW_VALUES"` - `const CTSummaryParamsNormalizationPercentage CTSummaryParamsNormalization = "PERCENTAGE"` - `PublicKeyAlgorithm param.Field[[]CTSummaryParamsPublicKeyAlgorithm]` Filters results by public key algorithm. - `const CTSummaryParamsPublicKeyAlgorithmDsa CTSummaryParamsPublicKeyAlgorithm = "DSA"` - `const CTSummaryParamsPublicKeyAlgorithmEcdsa CTSummaryParamsPublicKeyAlgorithm = "ECDSA"` - `const CTSummaryParamsPublicKeyAlgorithmRSA CTSummaryParamsPublicKeyAlgorithm = "RSA"` - `SignatureAlgorithm param.Field[[]CTSummaryParamsSignatureAlgorithm]` Filters results by signature algorithm. - `const CTSummaryParamsSignatureAlgorithmDsaSha1 CTSummaryParamsSignatureAlgorithm = "DSA_SHA_1"` - `const CTSummaryParamsSignatureAlgorithmDsaSha256 CTSummaryParamsSignatureAlgorithm = "DSA_SHA_256"` - `const CTSummaryParamsSignatureAlgorithmEcdsaSha1 CTSummaryParamsSignatureAlgorithm = "ECDSA_SHA_1"` - `const CTSummaryParamsSignatureAlgorithmEcdsaSha256 CTSummaryParamsSignatureAlgorithm = "ECDSA_SHA_256"` - `const CTSummaryParamsSignatureAlgorithmEcdsaSha384 CTSummaryParamsSignatureAlgorithm = "ECDSA_SHA_384"` - `const CTSummaryParamsSignatureAlgorithmEcdsaSha512 CTSummaryParamsSignatureAlgorithm = "ECDSA_SHA_512"` - `const CTSummaryParamsSignatureAlgorithmPssSha256 CTSummaryParamsSignatureAlgorithm = "PSS_SHA_256"` - `const CTSummaryParamsSignatureAlgorithmPssSha384 CTSummaryParamsSignatureAlgorithm = "PSS_SHA_384"` - `const CTSummaryParamsSignatureAlgorithmPssSha512 CTSummaryParamsSignatureAlgorithm = "PSS_SHA_512"` - `const CTSummaryParamsSignatureAlgorithmRSAMd2 CTSummaryParamsSignatureAlgorithm = "RSA_MD2"` - `const CTSummaryParamsSignatureAlgorithmRSAMd5 CTSummaryParamsSignatureAlgorithm = "RSA_MD5"` - `const CTSummaryParamsSignatureAlgorithmRSASha1 CTSummaryParamsSignatureAlgorithm = "RSA_SHA_1"` - `const CTSummaryParamsSignatureAlgorithmRSASha256 CTSummaryParamsSignatureAlgorithm = "RSA_SHA_256"` - `const CTSummaryParamsSignatureAlgorithmRSASha384 CTSummaryParamsSignatureAlgorithm = "RSA_SHA_384"` - `const CTSummaryParamsSignatureAlgorithmRSASha512 CTSummaryParamsSignatureAlgorithm = "RSA_SHA_512"` - `TLD param.Field[[]string]` Filters results by top-level domain. - `UniqueEntries param.Field[[]CTSummaryParamsUniqueEntry]` Specifies whether to filter out duplicate certificates and pre-certificates. Set to true for unique entries only. - `const CTSummaryParamsUniqueEntryTrue CTSummaryParamsUniqueEntry = "true"` - `const CTSummaryParamsUniqueEntryFalse CTSummaryParamsUniqueEntry = "false"` - `ValidationLevel param.Field[[]CTSummaryParamsValidationLevel]` Filters results by validation level. - `const CTSummaryParamsValidationLevelDomain CTSummaryParamsValidationLevel = "DOMAIN"` - `const CTSummaryParamsValidationLevelOrganization CTSummaryParamsValidationLevel = "ORGANIZATION"` - `const CTSummaryParamsValidationLevelExtended CTSummaryParamsValidationLevel = "EXTENDED"` ### Returns - `type CTSummaryResponse struct{…}` - `Meta CTSummaryResponseMeta` Metadata for the results. - `ConfidenceInfo CTSummaryResponseMetaConfidenceInfo` - `Annotations []CTSummaryResponseMetaConfidenceInfoAnnotation` - `DataSource CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceAll CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceAIBots CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceBGP CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceBots CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceCT CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceDNS CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceDos CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceFw CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceFwPg CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTP CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceIQI CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceNet CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceSpeed CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI CTSummaryResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType CTSummaryResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const CTSummaryResponseMetaConfidenceInfoAnnotationsEventTypeEvent CTSummaryResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsEventTypeGeneral CTSummaryResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsEventTypeOutage CTSummaryResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection CTSummaryResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsEventTypePipeline CTSummaryResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const CTSummaryResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly CTSummaryResponseMetaConfidenceInfoAnnotationsEventType = "TRAFFIC_ANOMALY"` - `IsInstantaneous bool` Whether event is a single point in time or a time range. - `LinkedURL string` - `StartDate Time` - `Level int64` Provides an indication of how much confidence Cloudflare has in the data. - `DateRange []CTSummaryResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization CTSummaryResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const CTSummaryResponseMetaNormalizationPercentage CTSummaryResponseMetaNormalization = "PERCENTAGE"` - `const CTSummaryResponseMetaNormalizationMin0Max CTSummaryResponseMetaNormalization = "MIN0_MAX"` - `const CTSummaryResponseMetaNormalizationMinMax CTSummaryResponseMetaNormalization = "MIN_MAX"` - `const CTSummaryResponseMetaNormalizationRawValues CTSummaryResponseMetaNormalization = "RAW_VALUES"` - `const CTSummaryResponseMetaNormalizationPercentageChange CTSummaryResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const CTSummaryResponseMetaNormalizationRollingAverage CTSummaryResponseMetaNormalization = "ROLLING_AVERAGE"` - `const CTSummaryResponseMetaNormalizationOverlappedPercentage CTSummaryResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const CTSummaryResponseMetaNormalizationRatio CTSummaryResponseMetaNormalization = "RATIO"` - `Units []CTSummaryResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Summary0 CTSummaryResponseSummary0Union` - `type CTSummaryResponseSummary0Map map[string, string]` - `type CTSummaryResponseSummary0Object struct{…}` - `Rfc6962 string` - `Static string` - `type CTSummaryResponseSummary0Object struct{…}` - `Gt121d string` - `Gt16dLte31d string` - `Gt31dLte91d string` - `Gt3dLte16d string` - `Gt91dLte121d string` - `Lte3d string` - `type CTSummaryResponseSummary0Object struct{…}` - `Certificate string` - `Precertificate string` - `type CTSummaryResponseSummary0Object struct{…}` - `Expired string` - `Valid string` - `type CTSummaryResponseSummary0Object struct{…}` - `Negative string` - `Positive string` - `type CTSummaryResponseSummary0Object struct{…}` - `Dsa string` - `Ecdsa string` - `RSA string` - `type CTSummaryResponseSummary0Object struct{…}` - `Domain string` - `Extended string` - `Organization string` - `Unknown string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/radar" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Radar.CT.Summary( context.TODO(), radar.CTSummaryParamsDimensionCA, radar.CTSummaryParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "confidenceInfo": { "annotations": [ { "dataSource": "ALL", "description": "Cable cut in Tonga", "endDate": "2019-12-27T18:11:19.117Z", "eventType": "EVENT", "isInstantaneous": true, "linkedUrl": "https://example.com", "startDate": "2019-12-27T18:11:19.117Z" } ], "level": 0 }, "dateRange": [ { "endTime": "2022-09-17T10:22:57.555Z", "startTime": "2022-09-16T10:22:57.555Z" } ], "lastUpdated": "2019-12-27T18:11:19.117Z", "normalization": "PERCENTAGE", "units": [ { "name": "*", "value": "requests" } ] }, "summary_0": { "DigiCert": "10.274394", "GoDaddy": "8.381743", "Internet Security Research Group": "63.40249" } }, "success": true } ```