## 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). Alternative to `dateRange`; provide together with `dateStart`. When requesting comparison series, every series must resolve to the same duration as the main series. Each `dateStart`/`dateEnd` is floored to the nearest 15 minutes before evaluation, so windows whose durations match only before alignment may be rejected. - `DateRange param.Field[[]string]` Filters results by relative date range ending at the current time, with each value producing a separate series. Use `d` for days (up to `364d`) or `w` for weeks (up to `52w`). Append `control` to request the equivalent previous period for comparison: the comparison window is shifted back by the current window's length rounded up to a whole number of weeks, so it keeps the same weekday alignment and does not overlap the current window (e.g. `7dcontrol` covers days -14 to -7, `10dcontrol` covers days -24 to -14). For example, pass `7d` and `7dcontrol` to compare this week with the previous week. All series must resolve to the same duration as the main series; relative ranges (including `control`) satisfy this automatically. Use this parameter or set specific start and end dates (`dateStart` and `dateEnd` parameters). - `DateStart param.Field[[]Time]` Start of the date range. Alternative to `dateRange`; provide together with `dateEnd`. When requesting comparison series, every series must resolve to the same duration as the main series. Each `dateStart`/`dateEnd` is floored to the nearest 15 minutes before evaluation, so windows whose durations match only before alignment may be rejected. - `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). Incompatible with the `tld` filter/dimension. - `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. Only supported on high-cardinality dimensions; otherwise the request is rejected. Minimum value is 2. - `Log param.Field[[]string]` Filters results by certificate log. Incompatible with the `tld` filter/dimension. - `LogAPI param.Field[[]CTSummaryParamsLogAPI]` Filters results by certificate log API (RFC6962 vs. static). Incompatible with the `tld` filter/dimension. - `const CTSummaryParamsLogAPIRfc6962 CTSummaryParamsLogAPI = "RFC6962"` - `const CTSummaryParamsLogAPIStatic CTSummaryParamsLogAPI = "STATIC"` - `LogOperator param.Field[[]string]` Filters results by certificate log operator. Incompatible with the `tld` filter/dimension. - `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://edgetunnel-b2h.pages.dev/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. Incompatible with the `log`, `logApi`, `logOperator`, and `entryType` filters/dimensions. - `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` - `Tags []string` - `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://edgetunnel-b2h.pages.dev/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", "tags": [ "BOT_CLASS" ] } ], "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 } ```