# CT ## 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 } ``` ## Get certificates time series `client.Radar.CT.Timeseries(ctx, query) (*CTTimeseriesResponse, error)` **get** `/radar/ct/timeseries` Retrieves certificate volume over time. ### Parameters - `query CTTimeseriesParams` - `AggInterval param.Field[CTTimeseriesParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const CTTimeseriesParamsAggInterval15m CTTimeseriesParamsAggInterval = "15m"` - `const CTTimeseriesParamsAggInterval1h CTTimeseriesParamsAggInterval = "1h"` - `const CTTimeseriesParamsAggInterval1d CTTimeseriesParamsAggInterval = "1d"` - `const CTTimeseriesParamsAggInterval1w CTTimeseriesParamsAggInterval = "1w"` - `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[[]CTTimeseriesParamsDuration]` Filters results by certificate duration. - `const CTTimeseriesParamsDurationLte3D CTTimeseriesParamsDuration = "LTE_3D"` - `const CTTimeseriesParamsDurationGt3DLte7D CTTimeseriesParamsDuration = "GT_3D_LTE_7D"` - `const CTTimeseriesParamsDurationGt7DLte10D CTTimeseriesParamsDuration = "GT_7D_LTE_10D"` - `const CTTimeseriesParamsDurationGt10DLte47D CTTimeseriesParamsDuration = "GT_10D_LTE_47D"` - `const CTTimeseriesParamsDurationGt47DLte100D CTTimeseriesParamsDuration = "GT_47D_LTE_100D"` - `const CTTimeseriesParamsDurationGt100DLte200D CTTimeseriesParamsDuration = "GT_100D_LTE_200D"` - `const CTTimeseriesParamsDurationGt200D CTTimeseriesParamsDuration = "GT_200D"` - `EntryType param.Field[[]CTTimeseriesParamsEntryType]` Filters results by entry type (certificate vs. pre-certificate). - `const CTTimeseriesParamsEntryTypePrecertificate CTTimeseriesParamsEntryType = "PRECERTIFICATE"` - `const CTTimeseriesParamsEntryTypeCertificate CTTimeseriesParamsEntryType = "CERTIFICATE"` - `ExpirationStatus param.Field[[]CTTimeseriesParamsExpirationStatus]` Filters results by expiration status (expired vs. valid). - `const CTTimeseriesParamsExpirationStatusExpired CTTimeseriesParamsExpirationStatus = "EXPIRED"` - `const CTTimeseriesParamsExpirationStatusValid CTTimeseriesParamsExpirationStatus = "VALID"` - `Format param.Field[CTTimeseriesParamsFormat]` Format in which results will be returned. - `const CTTimeseriesParamsFormatJson CTTimeseriesParamsFormat = "JSON"` - `const CTTimeseriesParamsFormatCsv CTTimeseriesParamsFormat = "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. - `Log param.Field[[]string]` Filters results by certificate log. - `LogAPI param.Field[[]CTTimeseriesParamsLogAPI]` Filters results by certificate log API (RFC6962 vs. static). - `const CTTimeseriesParamsLogAPIRfc6962 CTTimeseriesParamsLogAPI = "RFC6962"` - `const CTTimeseriesParamsLogAPIStatic CTTimeseriesParamsLogAPI = "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. - `PublicKeyAlgorithm param.Field[[]CTTimeseriesParamsPublicKeyAlgorithm]` Filters results by public key algorithm. - `const CTTimeseriesParamsPublicKeyAlgorithmDsa CTTimeseriesParamsPublicKeyAlgorithm = "DSA"` - `const CTTimeseriesParamsPublicKeyAlgorithmEcdsa CTTimeseriesParamsPublicKeyAlgorithm = "ECDSA"` - `const CTTimeseriesParamsPublicKeyAlgorithmRSA CTTimeseriesParamsPublicKeyAlgorithm = "RSA"` - `SignatureAlgorithm param.Field[[]CTTimeseriesParamsSignatureAlgorithm]` Filters results by signature algorithm. - `const CTTimeseriesParamsSignatureAlgorithmDsaSha1 CTTimeseriesParamsSignatureAlgorithm = "DSA_SHA_1"` - `const CTTimeseriesParamsSignatureAlgorithmDsaSha256 CTTimeseriesParamsSignatureAlgorithm = "DSA_SHA_256"` - `const CTTimeseriesParamsSignatureAlgorithmEcdsaSha1 CTTimeseriesParamsSignatureAlgorithm = "ECDSA_SHA_1"` - `const CTTimeseriesParamsSignatureAlgorithmEcdsaSha256 CTTimeseriesParamsSignatureAlgorithm = "ECDSA_SHA_256"` - `const CTTimeseriesParamsSignatureAlgorithmEcdsaSha384 CTTimeseriesParamsSignatureAlgorithm = "ECDSA_SHA_384"` - `const CTTimeseriesParamsSignatureAlgorithmEcdsaSha512 CTTimeseriesParamsSignatureAlgorithm = "ECDSA_SHA_512"` - `const CTTimeseriesParamsSignatureAlgorithmPssSha256 CTTimeseriesParamsSignatureAlgorithm = "PSS_SHA_256"` - `const CTTimeseriesParamsSignatureAlgorithmPssSha384 CTTimeseriesParamsSignatureAlgorithm = "PSS_SHA_384"` - `const CTTimeseriesParamsSignatureAlgorithmPssSha512 CTTimeseriesParamsSignatureAlgorithm = "PSS_SHA_512"` - `const CTTimeseriesParamsSignatureAlgorithmRSAMd2 CTTimeseriesParamsSignatureAlgorithm = "RSA_MD2"` - `const CTTimeseriesParamsSignatureAlgorithmRSAMd5 CTTimeseriesParamsSignatureAlgorithm = "RSA_MD5"` - `const CTTimeseriesParamsSignatureAlgorithmRSASha1 CTTimeseriesParamsSignatureAlgorithm = "RSA_SHA_1"` - `const CTTimeseriesParamsSignatureAlgorithmRSASha256 CTTimeseriesParamsSignatureAlgorithm = "RSA_SHA_256"` - `const CTTimeseriesParamsSignatureAlgorithmRSASha384 CTTimeseriesParamsSignatureAlgorithm = "RSA_SHA_384"` - `const CTTimeseriesParamsSignatureAlgorithmRSASha512 CTTimeseriesParamsSignatureAlgorithm = "RSA_SHA_512"` - `TLD param.Field[[]string]` Filters results by top-level domain. - `UniqueEntries param.Field[[]CTTimeseriesParamsUniqueEntry]` Specifies whether to filter out duplicate certificates and pre-certificates. Set to true for unique entries only. - `const CTTimeseriesParamsUniqueEntryTrue CTTimeseriesParamsUniqueEntry = "true"` - `const CTTimeseriesParamsUniqueEntryFalse CTTimeseriesParamsUniqueEntry = "false"` - `ValidationLevel param.Field[[]CTTimeseriesParamsValidationLevel]` Filters results by validation level. - `const CTTimeseriesParamsValidationLevelDomain CTTimeseriesParamsValidationLevel = "DOMAIN"` - `const CTTimeseriesParamsValidationLevelOrganization CTTimeseriesParamsValidationLevel = "ORGANIZATION"` - `const CTTimeseriesParamsValidationLevelExtended CTTimeseriesParamsValidationLevel = "EXTENDED"` ### Returns - `type CTTimeseriesResponse struct{…}` - `Meta CTTimeseriesResponseMeta` Metadata for the results. - `AggInterval CTTimeseriesResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const CTTimeseriesResponseMetaAggIntervalFifteenMinutes CTTimeseriesResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const CTTimeseriesResponseMetaAggIntervalOneHour CTTimeseriesResponseMetaAggInterval = "ONE_HOUR"` - `const CTTimeseriesResponseMetaAggIntervalOneDay CTTimeseriesResponseMetaAggInterval = "ONE_DAY"` - `const CTTimeseriesResponseMetaAggIntervalOneWeek CTTimeseriesResponseMetaAggInterval = "ONE_WEEK"` - `const CTTimeseriesResponseMetaAggIntervalOneMonth CTTimeseriesResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo CTTimeseriesResponseMetaConfidenceInfo` - `Annotations []CTTimeseriesResponseMetaConfidenceInfoAnnotation` - `DataSource CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceAll CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceAIBots CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceBGP CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceBots CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceCT CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceDNS CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceDos CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceFw CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceFwPg CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceHTTP CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceIQI CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceNet CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceSpeed CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI CTTimeseriesResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType CTTimeseriesResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsEventTypeEvent CTTimeseriesResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsEventTypeGeneral CTTimeseriesResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsEventTypeOutage CTTimeseriesResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection CTTimeseriesResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsEventTypePipeline CTTimeseriesResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const CTTimeseriesResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly CTTimeseriesResponseMetaConfidenceInfoAnnotationsEventType = "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 []CTTimeseriesResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization CTTimeseriesResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const CTTimeseriesResponseMetaNormalizationPercentage CTTimeseriesResponseMetaNormalization = "PERCENTAGE"` - `const CTTimeseriesResponseMetaNormalizationMin0Max CTTimeseriesResponseMetaNormalization = "MIN0_MAX"` - `const CTTimeseriesResponseMetaNormalizationMinMax CTTimeseriesResponseMetaNormalization = "MIN_MAX"` - `const CTTimeseriesResponseMetaNormalizationRawValues CTTimeseriesResponseMetaNormalization = "RAW_VALUES"` - `const CTTimeseriesResponseMetaNormalizationPercentageChange CTTimeseriesResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const CTTimeseriesResponseMetaNormalizationRollingAverage CTTimeseriesResponseMetaNormalization = "ROLLING_AVERAGE"` - `const CTTimeseriesResponseMetaNormalizationOverlappedPercentage CTTimeseriesResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const CTTimeseriesResponseMetaNormalizationRatio CTTimeseriesResponseMetaNormalization = "RATIO"` - `Units []CTTimeseriesResponseMetaUnit` Measurement units for the results. - `Name string` - `Value 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.Timeseries(context.TODO(), radar.CTTimeseriesParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "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" } ] } }, "success": true } ``` ## Get time series of certificate distribution by dimension `client.Radar.CT.TimeseriesGroups(ctx, dimension, query) (*CTTimeseriesGroupsResponse, error)` **get** `/radar/ct/timeseries_groups/{dimension}` Retrieves the distribution of certificates grouped by the specified dimension over time. ### Parameters - `dimension CTTimeseriesGroupsParamsDimension` Specifies the certificate attribute by which to group the results. - `const CTTimeseriesGroupsParamsDimensionCA CTTimeseriesGroupsParamsDimension = "CA"` - `const CTTimeseriesGroupsParamsDimensionCAOwner CTTimeseriesGroupsParamsDimension = "CA_OWNER"` - `const CTTimeseriesGroupsParamsDimensionDuration CTTimeseriesGroupsParamsDimension = "DURATION"` - `const CTTimeseriesGroupsParamsDimensionEntryType CTTimeseriesGroupsParamsDimension = "ENTRY_TYPE"` - `const CTTimeseriesGroupsParamsDimensionExpirationStatus CTTimeseriesGroupsParamsDimension = "EXPIRATION_STATUS"` - `const CTTimeseriesGroupsParamsDimensionHasIPs CTTimeseriesGroupsParamsDimension = "HAS_IPS"` - `const CTTimeseriesGroupsParamsDimensionHasWildcards CTTimeseriesGroupsParamsDimension = "HAS_WILDCARDS"` - `const CTTimeseriesGroupsParamsDimensionLog CTTimeseriesGroupsParamsDimension = "LOG"` - `const CTTimeseriesGroupsParamsDimensionLogAPI CTTimeseriesGroupsParamsDimension = "LOG_API"` - `const CTTimeseriesGroupsParamsDimensionLogOperator CTTimeseriesGroupsParamsDimension = "LOG_OPERATOR"` - `const CTTimeseriesGroupsParamsDimensionPublicKeyAlgorithm CTTimeseriesGroupsParamsDimension = "PUBLIC_KEY_ALGORITHM"` - `const CTTimeseriesGroupsParamsDimensionSignatureAlgorithm CTTimeseriesGroupsParamsDimension = "SIGNATURE_ALGORITHM"` - `const CTTimeseriesGroupsParamsDimensionTLD CTTimeseriesGroupsParamsDimension = "TLD"` - `const CTTimeseriesGroupsParamsDimensionValidationLevel CTTimeseriesGroupsParamsDimension = "VALIDATION_LEVEL"` - `query CTTimeseriesGroupsParams` - `AggInterval param.Field[CTTimeseriesGroupsParamsAggInterval]` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const CTTimeseriesGroupsParamsAggInterval15m CTTimeseriesGroupsParamsAggInterval = "15m"` - `const CTTimeseriesGroupsParamsAggInterval1h CTTimeseriesGroupsParamsAggInterval = "1h"` - `const CTTimeseriesGroupsParamsAggInterval1d CTTimeseriesGroupsParamsAggInterval = "1d"` - `const CTTimeseriesGroupsParamsAggInterval1w CTTimeseriesGroupsParamsAggInterval = "1w"` - `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[[]CTTimeseriesGroupsParamsDuration]` Filters results by certificate duration. - `const CTTimeseriesGroupsParamsDurationLte3D CTTimeseriesGroupsParamsDuration = "LTE_3D"` - `const CTTimeseriesGroupsParamsDurationGt3DLte7D CTTimeseriesGroupsParamsDuration = "GT_3D_LTE_7D"` - `const CTTimeseriesGroupsParamsDurationGt7DLte10D CTTimeseriesGroupsParamsDuration = "GT_7D_LTE_10D"` - `const CTTimeseriesGroupsParamsDurationGt10DLte47D CTTimeseriesGroupsParamsDuration = "GT_10D_LTE_47D"` - `const CTTimeseriesGroupsParamsDurationGt47DLte100D CTTimeseriesGroupsParamsDuration = "GT_47D_LTE_100D"` - `const CTTimeseriesGroupsParamsDurationGt100DLte200D CTTimeseriesGroupsParamsDuration = "GT_100D_LTE_200D"` - `const CTTimeseriesGroupsParamsDurationGt200D CTTimeseriesGroupsParamsDuration = "GT_200D"` - `EntryType param.Field[[]CTTimeseriesGroupsParamsEntryType]` Filters results by entry type (certificate vs. pre-certificate). - `const CTTimeseriesGroupsParamsEntryTypePrecertificate CTTimeseriesGroupsParamsEntryType = "PRECERTIFICATE"` - `const CTTimeseriesGroupsParamsEntryTypeCertificate CTTimeseriesGroupsParamsEntryType = "CERTIFICATE"` - `ExpirationStatus param.Field[[]CTTimeseriesGroupsParamsExpirationStatus]` Filters results by expiration status (expired vs. valid). - `const CTTimeseriesGroupsParamsExpirationStatusExpired CTTimeseriesGroupsParamsExpirationStatus = "EXPIRED"` - `const CTTimeseriesGroupsParamsExpirationStatusValid CTTimeseriesGroupsParamsExpirationStatus = "VALID"` - `Format param.Field[CTTimeseriesGroupsParamsFormat]` Format in which results will be returned. - `const CTTimeseriesGroupsParamsFormatJson CTTimeseriesGroupsParamsFormat = "JSON"` - `const CTTimeseriesGroupsParamsFormatCsv CTTimeseriesGroupsParamsFormat = "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[[]CTTimeseriesGroupsParamsLogAPI]` Filters results by certificate log API (RFC6962 vs. static). - `const CTTimeseriesGroupsParamsLogAPIRfc6962 CTTimeseriesGroupsParamsLogAPI = "RFC6962"` - `const CTTimeseriesGroupsParamsLogAPIStatic CTTimeseriesGroupsParamsLogAPI = "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[CTTimeseriesGroupsParamsNormalization]` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const CTTimeseriesGroupsParamsNormalizationRawValues CTTimeseriesGroupsParamsNormalization = "RAW_VALUES"` - `const CTTimeseriesGroupsParamsNormalizationPercentage CTTimeseriesGroupsParamsNormalization = "PERCENTAGE"` - `PublicKeyAlgorithm param.Field[[]CTTimeseriesGroupsParamsPublicKeyAlgorithm]` Filters results by public key algorithm. - `const CTTimeseriesGroupsParamsPublicKeyAlgorithmDsa CTTimeseriesGroupsParamsPublicKeyAlgorithm = "DSA"` - `const CTTimeseriesGroupsParamsPublicKeyAlgorithmEcdsa CTTimeseriesGroupsParamsPublicKeyAlgorithm = "ECDSA"` - `const CTTimeseriesGroupsParamsPublicKeyAlgorithmRSA CTTimeseriesGroupsParamsPublicKeyAlgorithm = "RSA"` - `SignatureAlgorithm param.Field[[]CTTimeseriesGroupsParamsSignatureAlgorithm]` Filters results by signature algorithm. - `const CTTimeseriesGroupsParamsSignatureAlgorithmDsaSha1 CTTimeseriesGroupsParamsSignatureAlgorithm = "DSA_SHA_1"` - `const CTTimeseriesGroupsParamsSignatureAlgorithmDsaSha256 CTTimeseriesGroupsParamsSignatureAlgorithm = "DSA_SHA_256"` - `const CTTimeseriesGroupsParamsSignatureAlgorithmEcdsaSha1 CTTimeseriesGroupsParamsSignatureAlgorithm = "ECDSA_SHA_1"` - `const CTTimeseriesGroupsParamsSignatureAlgorithmEcdsaSha256 CTTimeseriesGroupsParamsSignatureAlgorithm = "ECDSA_SHA_256"` - `const CTTimeseriesGroupsParamsSignatureAlgorithmEcdsaSha384 CTTimeseriesGroupsParamsSignatureAlgorithm = "ECDSA_SHA_384"` - `const CTTimeseriesGroupsParamsSignatureAlgorithmEcdsaSha512 CTTimeseriesGroupsParamsSignatureAlgorithm = "ECDSA_SHA_512"` - `const CTTimeseriesGroupsParamsSignatureAlgorithmPssSha256 CTTimeseriesGroupsParamsSignatureAlgorithm = "PSS_SHA_256"` - `const CTTimeseriesGroupsParamsSignatureAlgorithmPssSha384 CTTimeseriesGroupsParamsSignatureAlgorithm = "PSS_SHA_384"` - `const CTTimeseriesGroupsParamsSignatureAlgorithmPssSha512 CTTimeseriesGroupsParamsSignatureAlgorithm = "PSS_SHA_512"` - `const CTTimeseriesGroupsParamsSignatureAlgorithmRSAMd2 CTTimeseriesGroupsParamsSignatureAlgorithm = "RSA_MD2"` - `const CTTimeseriesGroupsParamsSignatureAlgorithmRSAMd5 CTTimeseriesGroupsParamsSignatureAlgorithm = "RSA_MD5"` - `const CTTimeseriesGroupsParamsSignatureAlgorithmRSASha1 CTTimeseriesGroupsParamsSignatureAlgorithm = "RSA_SHA_1"` - `const CTTimeseriesGroupsParamsSignatureAlgorithmRSASha256 CTTimeseriesGroupsParamsSignatureAlgorithm = "RSA_SHA_256"` - `const CTTimeseriesGroupsParamsSignatureAlgorithmRSASha384 CTTimeseriesGroupsParamsSignatureAlgorithm = "RSA_SHA_384"` - `const CTTimeseriesGroupsParamsSignatureAlgorithmRSASha512 CTTimeseriesGroupsParamsSignatureAlgorithm = "RSA_SHA_512"` - `TLD param.Field[[]string]` Filters results by top-level domain. - `UniqueEntries param.Field[[]CTTimeseriesGroupsParamsUniqueEntry]` Specifies whether to filter out duplicate certificates and pre-certificates. Set to true for unique entries only. - `const CTTimeseriesGroupsParamsUniqueEntryTrue CTTimeseriesGroupsParamsUniqueEntry = "true"` - `const CTTimeseriesGroupsParamsUniqueEntryFalse CTTimeseriesGroupsParamsUniqueEntry = "false"` - `ValidationLevel param.Field[[]CTTimeseriesGroupsParamsValidationLevel]` Filters results by validation level. - `const CTTimeseriesGroupsParamsValidationLevelDomain CTTimeseriesGroupsParamsValidationLevel = "DOMAIN"` - `const CTTimeseriesGroupsParamsValidationLevelOrganization CTTimeseriesGroupsParamsValidationLevel = "ORGANIZATION"` - `const CTTimeseriesGroupsParamsValidationLevelExtended CTTimeseriesGroupsParamsValidationLevel = "EXTENDED"` ### Returns - `type CTTimeseriesGroupsResponse struct{…}` - `Meta CTTimeseriesGroupsResponseMeta` Metadata for the results. - `AggInterval CTTimeseriesGroupsResponseMetaAggInterval` Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to [Aggregation intervals](https://developers.cloudflare.com/radar/concepts/aggregation-intervals/). - `const CTTimeseriesGroupsResponseMetaAggIntervalFifteenMinutes CTTimeseriesGroupsResponseMetaAggInterval = "FIFTEEN_MINUTES"` - `const CTTimeseriesGroupsResponseMetaAggIntervalOneHour CTTimeseriesGroupsResponseMetaAggInterval = "ONE_HOUR"` - `const CTTimeseriesGroupsResponseMetaAggIntervalOneDay CTTimeseriesGroupsResponseMetaAggInterval = "ONE_DAY"` - `const CTTimeseriesGroupsResponseMetaAggIntervalOneWeek CTTimeseriesGroupsResponseMetaAggInterval = "ONE_WEEK"` - `const CTTimeseriesGroupsResponseMetaAggIntervalOneMonth CTTimeseriesGroupsResponseMetaAggInterval = "ONE_MONTH"` - `ConfidenceInfo CTTimeseriesGroupsResponseMetaConfidenceInfo` - `Annotations []CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotation` - `DataSource CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource` Data source for annotations. - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceAll CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "ALL"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceAIBots CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "AI_BOTS"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceAIGateway CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "AI_GATEWAY"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceBGP CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "BGP"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceBots CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "BOTS"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceConnectionAnomaly CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "CONNECTION_ANOMALY"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceCT CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "CT"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceDNS CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "DNS"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceDNSMagnitude CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_MAGNITUDE"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceDNSAS112 CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "DNS_AS112"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceDos CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "DOS"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceEmailRouting CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_ROUTING"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceEmailSecurity CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "EMAIL_SECURITY"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceFw CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "FW"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceFwPg CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "FW_PG"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceHTTP CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceHTTPControl CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CONTROL"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceHTTPCrawlerReferer CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_CRAWLER_REFERER"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceHTTPOrigins CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "HTTP_ORIGINS"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceIQI CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "IQI"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceLeakedCredentials CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "LEAKED_CREDENTIALS"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceNet CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "NET"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceRobotsTXT CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "ROBOTS_TXT"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceSpeed CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "SPEED"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSourceWorkersAI CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsDataSource = "WORKERS_AI"` - `Description string` - `EndDate Time` - `EventType CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventType` Event type for annotations. - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventTypeEvent CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventType = "EVENT"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventTypeGeneral CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventType = "GENERAL"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventTypeOutage CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventType = "OUTAGE"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventTypePartialProjection CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventType = "PARTIAL_PROJECTION"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventTypePipeline CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventType = "PIPELINE"` - `const CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventTypeTrafficAnomaly CTTimeseriesGroupsResponseMetaConfidenceInfoAnnotationsEventType = "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 []CTTimeseriesGroupsResponseMetaDateRange` - `EndTime Time` Adjusted end of date range. - `StartTime Time` Adjusted start of date range. - `LastUpdated Time` Timestamp of the last dataset update. - `Normalization CTTimeseriesGroupsResponseMetaNormalization` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `const CTTimeseriesGroupsResponseMetaNormalizationPercentage CTTimeseriesGroupsResponseMetaNormalization = "PERCENTAGE"` - `const CTTimeseriesGroupsResponseMetaNormalizationMin0Max CTTimeseriesGroupsResponseMetaNormalization = "MIN0_MAX"` - `const CTTimeseriesGroupsResponseMetaNormalizationMinMax CTTimeseriesGroupsResponseMetaNormalization = "MIN_MAX"` - `const CTTimeseriesGroupsResponseMetaNormalizationRawValues CTTimeseriesGroupsResponseMetaNormalization = "RAW_VALUES"` - `const CTTimeseriesGroupsResponseMetaNormalizationPercentageChange CTTimeseriesGroupsResponseMetaNormalization = "PERCENTAGE_CHANGE"` - `const CTTimeseriesGroupsResponseMetaNormalizationRollingAverage CTTimeseriesGroupsResponseMetaNormalization = "ROLLING_AVERAGE"` - `const CTTimeseriesGroupsResponseMetaNormalizationOverlappedPercentage CTTimeseriesGroupsResponseMetaNormalization = "OVERLAPPED_PERCENTAGE"` - `const CTTimeseriesGroupsResponseMetaNormalizationRatio CTTimeseriesGroupsResponseMetaNormalization = "RATIO"` - `Units []CTTimeseriesGroupsResponseMetaUnit` Measurement units for the results. - `Name string` - `Value string` - `Serie0 CTTimeseriesGroupsResponseSerie0` - `type CTTimeseriesGroupsResponseSerie0UnnamedSchemaRef7826220e105d84352ba1108d9ed88e55 struct{…}` - `Timestamps []Time` - `type CTTimeseriesGroupsResponseSerie0Object struct{…}` - `Rfc6962 []string` - `Static []string` - `type CTTimeseriesGroupsResponseSerie0Object struct{…}` - `Gt121d []string` - `Gt16dLte31d []string` - `Gt31dLte91d []string` - `Gt3dLte16d []string` - `Gt91dLte121d []string` - `Lte3d []string` - `type CTTimeseriesGroupsResponseSerie0Object struct{…}` - `Certificate []string` - `Precertificate []string` - `type CTTimeseriesGroupsResponseSerie0Object struct{…}` - `Expired []string` - `Valid []string` - `type CTTimeseriesGroupsResponseSerie0Object struct{…}` - `Negative []string` - `Positive []string` - `type CTTimeseriesGroupsResponseSerie0Object struct{…}` - `Dsa []string` - `Ecdsa []string` - `RSA []string` - `type CTTimeseriesGroupsResponseSerie0Object 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.TimeseriesGroups( context.TODO(), radar.CTTimeseriesGroupsParamsDimensionCA, radar.CTTimeseriesGroupsParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Meta) } ``` #### Response ```json { "result": { "meta": { "aggInterval": "FIFTEEN_MINUTES", "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" } ] }, "serie_0": { "timestamps": [ "2023-08-08T10:15:00Z" ] } }, "success": true } ``` # Authorities ## Get certificate authority details `client.Radar.CT.Authorities.Get(ctx, caSlug, query) (*CTAuthorityGetResponse, error)` **get** `/radar/ct/authorities/{ca_slug}` Retrieves the requested CA information. ### Parameters - `caSlug string` Certificate authority SHA256 fingerprint. - `query CTAuthorityGetParams` - `Format param.Field[CTAuthorityGetParamsFormat]` Format in which results will be returned. - `const CTAuthorityGetParamsFormatJson CTAuthorityGetParamsFormat = "JSON"` - `const CTAuthorityGetParamsFormatCsv CTAuthorityGetParamsFormat = "CSV"` ### Returns - `type CTAuthorityGetResponse struct{…}` - `CertificateAuthority CTAuthorityGetResponseCertificateAuthority` - `AppleStatus CTAuthorityGetResponseCertificateAuthorityAppleStatus` The inclusion status of a Certificate Authority (CA) in the trust store. - `const CTAuthorityGetResponseCertificateAuthorityAppleStatusIncluded CTAuthorityGetResponseCertificateAuthorityAppleStatus = "INCLUDED"` - `const CTAuthorityGetResponseCertificateAuthorityAppleStatusNotYetIncluded CTAuthorityGetResponseCertificateAuthorityAppleStatus = "NOT_YET_INCLUDED"` - `const CTAuthorityGetResponseCertificateAuthorityAppleStatusNotIncluded CTAuthorityGetResponseCertificateAuthorityAppleStatus = "NOT_INCLUDED"` - `const CTAuthorityGetResponseCertificateAuthorityAppleStatusNotBefore CTAuthorityGetResponseCertificateAuthorityAppleStatus = "NOT_BEFORE"` - `const CTAuthorityGetResponseCertificateAuthorityAppleStatusRemoved CTAuthorityGetResponseCertificateAuthorityAppleStatus = "REMOVED"` - `const CTAuthorityGetResponseCertificateAuthorityAppleStatusDisabled CTAuthorityGetResponseCertificateAuthorityAppleStatus = "DISABLED"` - `const CTAuthorityGetResponseCertificateAuthorityAppleStatusBlocked CTAuthorityGetResponseCertificateAuthorityAppleStatus = "BLOCKED"` - `AuthorityKeyIdentifier string` The authorityKeyIdentifier value extracted from the certificate PEM. - `CertificateRecordType CTAuthorityGetResponseCertificateAuthorityCertificateRecordType` Specifies the type of certificate in the trust chain. - `const CTAuthorityGetResponseCertificateAuthorityCertificateRecordTypeRootCertificate CTAuthorityGetResponseCertificateAuthorityCertificateRecordType = "ROOT_CERTIFICATE"` - `const CTAuthorityGetResponseCertificateAuthorityCertificateRecordTypeIntermediateCertificate CTAuthorityGetResponseCertificateAuthorityCertificateRecordType = "INTERMEDIATE_CERTIFICATE"` - `ChromeStatus CTAuthorityGetResponseCertificateAuthorityChromeStatus` The inclusion status of a Certificate Authority (CA) in the trust store. - `const CTAuthorityGetResponseCertificateAuthorityChromeStatusIncluded CTAuthorityGetResponseCertificateAuthorityChromeStatus = "INCLUDED"` - `const CTAuthorityGetResponseCertificateAuthorityChromeStatusNotYetIncluded CTAuthorityGetResponseCertificateAuthorityChromeStatus = "NOT_YET_INCLUDED"` - `const CTAuthorityGetResponseCertificateAuthorityChromeStatusNotIncluded CTAuthorityGetResponseCertificateAuthorityChromeStatus = "NOT_INCLUDED"` - `const CTAuthorityGetResponseCertificateAuthorityChromeStatusNotBefore CTAuthorityGetResponseCertificateAuthorityChromeStatus = "NOT_BEFORE"` - `const CTAuthorityGetResponseCertificateAuthorityChromeStatusRemoved CTAuthorityGetResponseCertificateAuthorityChromeStatus = "REMOVED"` - `const CTAuthorityGetResponseCertificateAuthorityChromeStatusDisabled CTAuthorityGetResponseCertificateAuthorityChromeStatus = "DISABLED"` - `const CTAuthorityGetResponseCertificateAuthorityChromeStatusBlocked CTAuthorityGetResponseCertificateAuthorityChromeStatus = "BLOCKED"` - `Country string` The two-letter ISO country code where the CA organization is based. - `CountryName string` The full country name corresponding to the country code. - `MicrosoftStatus CTAuthorityGetResponseCertificateAuthorityMicrosoftStatus` The inclusion status of a Certificate Authority (CA) in the trust store. - `const CTAuthorityGetResponseCertificateAuthorityMicrosoftStatusIncluded CTAuthorityGetResponseCertificateAuthorityMicrosoftStatus = "INCLUDED"` - `const CTAuthorityGetResponseCertificateAuthorityMicrosoftStatusNotYetIncluded CTAuthorityGetResponseCertificateAuthorityMicrosoftStatus = "NOT_YET_INCLUDED"` - `const CTAuthorityGetResponseCertificateAuthorityMicrosoftStatusNotIncluded CTAuthorityGetResponseCertificateAuthorityMicrosoftStatus = "NOT_INCLUDED"` - `const CTAuthorityGetResponseCertificateAuthorityMicrosoftStatusNotBefore CTAuthorityGetResponseCertificateAuthorityMicrosoftStatus = "NOT_BEFORE"` - `const CTAuthorityGetResponseCertificateAuthorityMicrosoftStatusRemoved CTAuthorityGetResponseCertificateAuthorityMicrosoftStatus = "REMOVED"` - `const CTAuthorityGetResponseCertificateAuthorityMicrosoftStatusDisabled CTAuthorityGetResponseCertificateAuthorityMicrosoftStatus = "DISABLED"` - `const CTAuthorityGetResponseCertificateAuthorityMicrosoftStatusBlocked CTAuthorityGetResponseCertificateAuthorityMicrosoftStatus = "BLOCKED"` - `MozillaStatus CTAuthorityGetResponseCertificateAuthorityMozillaStatus` The inclusion status of a Certificate Authority (CA) in the trust store. - `const CTAuthorityGetResponseCertificateAuthorityMozillaStatusIncluded CTAuthorityGetResponseCertificateAuthorityMozillaStatus = "INCLUDED"` - `const CTAuthorityGetResponseCertificateAuthorityMozillaStatusNotYetIncluded CTAuthorityGetResponseCertificateAuthorityMozillaStatus = "NOT_YET_INCLUDED"` - `const CTAuthorityGetResponseCertificateAuthorityMozillaStatusNotIncluded CTAuthorityGetResponseCertificateAuthorityMozillaStatus = "NOT_INCLUDED"` - `const CTAuthorityGetResponseCertificateAuthorityMozillaStatusNotBefore CTAuthorityGetResponseCertificateAuthorityMozillaStatus = "NOT_BEFORE"` - `const CTAuthorityGetResponseCertificateAuthorityMozillaStatusRemoved CTAuthorityGetResponseCertificateAuthorityMozillaStatus = "REMOVED"` - `const CTAuthorityGetResponseCertificateAuthorityMozillaStatusDisabled CTAuthorityGetResponseCertificateAuthorityMozillaStatus = "DISABLED"` - `const CTAuthorityGetResponseCertificateAuthorityMozillaStatusBlocked CTAuthorityGetResponseCertificateAuthorityMozillaStatus = "BLOCKED"` - `Name string` The full name of the certificate authority (CA). - `Owner string` The organization that owns and operates the CA. - `ParentName string` The name of the parent/root certificate authority that issued this intermediate certificate. - `ParentSha256Fingerprint string` The SHA-256 fingerprint of the parent certificate. - `Related []CTAuthorityGetResponseCertificateAuthorityRelated` CAs from the same owner. - `CertificateRecordType CTAuthorityGetResponseCertificateAuthorityRelatedCertificateRecordType` Specifies the type of certificate in the trust chain. - `const CTAuthorityGetResponseCertificateAuthorityRelatedCertificateRecordTypeRootCertificate CTAuthorityGetResponseCertificateAuthorityRelatedCertificateRecordType = "ROOT_CERTIFICATE"` - `const CTAuthorityGetResponseCertificateAuthorityRelatedCertificateRecordTypeIntermediateCertificate CTAuthorityGetResponseCertificateAuthorityRelatedCertificateRecordType = "INTERMEDIATE_CERTIFICATE"` - `Name string` The full name of the certificate authority (CA). - `RevocationStatus CTAuthorityGetResponseCertificateAuthorityRelatedRevocationStatus` The current revocation status of a Certificate Authority (CA) certificate. - `const CTAuthorityGetResponseCertificateAuthorityRelatedRevocationStatusNotRevoked CTAuthorityGetResponseCertificateAuthorityRelatedRevocationStatus = "NOT_REVOKED"` - `const CTAuthorityGetResponseCertificateAuthorityRelatedRevocationStatusRevoked CTAuthorityGetResponseCertificateAuthorityRelatedRevocationStatus = "REVOKED"` - `const CTAuthorityGetResponseCertificateAuthorityRelatedRevocationStatusParentCERTRevoked CTAuthorityGetResponseCertificateAuthorityRelatedRevocationStatus = "PARENT_CERT_REVOKED"` - `Sha256Fingerprint string` The SHA-256 fingerprint of the intermediate certificate. - `RevocationStatus CTAuthorityGetResponseCertificateAuthorityRevocationStatus` The current revocation status of a Certificate Authority (CA) certificate. - `const CTAuthorityGetResponseCertificateAuthorityRevocationStatusNotRevoked CTAuthorityGetResponseCertificateAuthorityRevocationStatus = "NOT_REVOKED"` - `const CTAuthorityGetResponseCertificateAuthorityRevocationStatusRevoked CTAuthorityGetResponseCertificateAuthorityRevocationStatus = "REVOKED"` - `const CTAuthorityGetResponseCertificateAuthorityRevocationStatusParentCERTRevoked CTAuthorityGetResponseCertificateAuthorityRevocationStatus = "PARENT_CERT_REVOKED"` - `Sha256Fingerprint string` The SHA-256 fingerprint of the intermediate certificate. - `SubjectKeyIdentifier string` The subjectKeyIdentifier value extracted from the certificate PEM. - `ValidFrom string` The start date of the certificate’s validity period (ISO format). - `ValidTo string` The end date of the certificate’s validity period (ISO format). ### 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"), ) authority, err := client.Radar.CT.Authorities.Get( context.TODO(), "24EDD4E503A8D3FDB5FFB4AF66C887359901CBE687A5A0760D10A08EED99A7C3", radar.CTAuthorityGetParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", authority.CertificateAuthority) } ``` #### Response ```json { "result": { "certificateAuthority": { "appleStatus": "INCLUDED", "authorityKeyIdentifier": "1TkcnFtvBKqilUzvIN0pdKTFRXE", "certificateRecordType": "ROOT_CERTIFICATE", "chromeStatus": "INCLUDED", "country": "PT", "countryName": "Portugal", "microsoftStatus": "INCLUDED", "mozillaStatus": "INCLUDED", "name": "MULTICERT Advanced Certification Authority 005", "owner": "MULTICERT", "parentName": "MULTICERT Root Certification Authority 01", "parentSha256Fingerprint": "604D32D036895AED3BFEFAEB727C009EC0F2B3CDFA42A1C71730E6A72C3BE9D4", "related": [ { "certificateRecordType": "ROOT_CERTIFICATE", "name": "MULTICERT Advanced Certification Authority 005", "revocationStatus": "NOT_REVOKED", "sha256Fingerprint": "24EDD4E503A8D3FDB5FFB4AF66C887359901CBE687A5A0760D10A08EED99A7C3" } ], "revocationStatus": "NOT_REVOKED", "sha256Fingerprint": "24EDD4E503A8D3FDB5FFB4AF66C887359901CBE687A5A0760D10A08EED99A7C3", "subjectKeyIdentifier": "VbqXmCURhMmiMtD7nFY6iCr4z", "validFrom": "2019-12-09", "validTo": "2032-06-08" } }, "success": true } ``` ## List certificate authorities `client.Radar.CT.Authorities.List(ctx, query) (*CTAuthorityListResponse, error)` **get** `/radar/ct/authorities` Retrieves a list of certificate authorities. ### Parameters - `query CTAuthorityListParams` - `Format param.Field[CTAuthorityListParamsFormat]` Format in which results will be returned. - `const CTAuthorityListParamsFormatJson CTAuthorityListParamsFormat = "JSON"` - `const CTAuthorityListParamsFormatCsv CTAuthorityListParamsFormat = "CSV"` - `Limit param.Field[int64]` Limits the number of objects returned in the response. - `Offset param.Field[int64]` Skips the specified number of objects before fetching the results. ### Returns - `type CTAuthorityListResponse struct{…}` - `CertificateAuthorities []CTAuthorityListResponseCertificateAuthority` - `CertificateRecordType CTAuthorityListResponseCertificateAuthoritiesCertificateRecordType` Specifies the type of certificate in the trust chain. - `const CTAuthorityListResponseCertificateAuthoritiesCertificateRecordTypeRootCertificate CTAuthorityListResponseCertificateAuthoritiesCertificateRecordType = "ROOT_CERTIFICATE"` - `const CTAuthorityListResponseCertificateAuthoritiesCertificateRecordTypeIntermediateCertificate CTAuthorityListResponseCertificateAuthoritiesCertificateRecordType = "INTERMEDIATE_CERTIFICATE"` - `Country string` The two-letter ISO country code where the CA organization is based. - `CountryName string` The full country name corresponding to the country code. - `Name string` The full name of the certificate authority (CA). - `Owner string` The organization that owns and operates the CA. - `ParentName string` The name of the parent/root certificate authority that issued this intermediate certificate. - `ParentSha256Fingerprint string` The SHA-256 fingerprint of the parent certificate. - `RevocationStatus CTAuthorityListResponseCertificateAuthoritiesRevocationStatus` The current revocation status of a Certificate Authority (CA) certificate. - `const CTAuthorityListResponseCertificateAuthoritiesRevocationStatusNotRevoked CTAuthorityListResponseCertificateAuthoritiesRevocationStatus = "NOT_REVOKED"` - `const CTAuthorityListResponseCertificateAuthoritiesRevocationStatusRevoked CTAuthorityListResponseCertificateAuthoritiesRevocationStatus = "REVOKED"` - `const CTAuthorityListResponseCertificateAuthoritiesRevocationStatusParentCERTRevoked CTAuthorityListResponseCertificateAuthoritiesRevocationStatus = "PARENT_CERT_REVOKED"` - `Sha256Fingerprint string` The SHA-256 fingerprint of the intermediate certificate. ### 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"), ) authorities, err := client.Radar.CT.Authorities.List(context.TODO(), radar.CTAuthorityListParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", authorities.CertificateAuthorities) } ``` #### Response ```json { "result": { "certificateAuthorities": [ { "certificateRecordType": "ROOT_CERTIFICATE", "country": "PT", "countryName": "Portugal", "name": "MULTICERT Advanced Certification Authority 005", "owner": "MULTICERT", "parentName": "MULTICERT Root Certification Authority 01", "parentSha256Fingerprint": "24EDD4E503A8D3FDB5FFB4AF66C887359901CBE687A5A0760D10A08EED99A7C3", "revocationStatus": "NOT_REVOKED", "sha256Fingerprint": "24EDD4E503A8D3FDB5FFB4AF66C887359901CBE687A5A0760D10A08EED99A7C3" } ] }, "success": true } ``` # Logs ## Get certificate log details `client.Radar.CT.Logs.Get(ctx, logSlug, query) (*CTLogGetResponse, error)` **get** `/radar/ct/logs/{log_slug}` Retrieves the requested certificate log information. ### Parameters - `logSlug string` Certificate log slug. - `query CTLogGetParams` - `Format param.Field[CTLogGetParamsFormat]` Format in which results will be returned. - `const CTLogGetParamsFormatJson CTLogGetParamsFormat = "JSON"` - `const CTLogGetParamsFormatCsv CTLogGetParamsFormat = "CSV"` ### Returns - `type CTLogGetResponse struct{…}` - `CertificateLog CTLogGetResponseCertificateLog` - `API CTLogGetResponseCertificateLogAPI` The API standard that the certificate log follows. - `const CTLogGetResponseCertificateLogAPIRfc6962 CTLogGetResponseCertificateLogAPI = "RFC6962"` - `const CTLogGetResponseCertificateLogAPIStatic CTLogGetResponseCertificateLogAPI = "STATIC"` - `AvgThroughput float64` The average throughput of the CT log, measured in certificates per hour (certs/hour). - `Description string` A brief description of the certificate log. - `EndExclusive Time` The end date and time for when the log will stop accepting certificates. - `LastUpdate Time` Timestamp of the most recent update to the CT log. - `Operator string` The organization responsible for operating the certificate log. - `Performance CTLogGetResponseCertificateLogPerformance` Log performance metrics, including averages and per-endpoint details. - `Endpoints []CTLogGetResponseCertificateLogPerformanceEndpoint` - `Endpoint CTLogGetResponseCertificateLogPerformanceEndpointsEndpoint` The certificate log endpoint names used in performance metrics. - `const CTLogGetResponseCertificateLogPerformanceEndpointsEndpointAddChainNew CTLogGetResponseCertificateLogPerformanceEndpointsEndpoint = "add-chain (new)"` - `const CTLogGetResponseCertificateLogPerformanceEndpointsEndpointAddChainOld CTLogGetResponseCertificateLogPerformanceEndpointsEndpoint = "add-chain (old)"` - `const CTLogGetResponseCertificateLogPerformanceEndpointsEndpointAddPreChainNew CTLogGetResponseCertificateLogPerformanceEndpointsEndpoint = "add-pre-chain (new)"` - `const CTLogGetResponseCertificateLogPerformanceEndpointsEndpointAddPreChainOld CTLogGetResponseCertificateLogPerformanceEndpointsEndpoint = "add-pre-chain (old)"` - `const CTLogGetResponseCertificateLogPerformanceEndpointsEndpointGetEntries CTLogGetResponseCertificateLogPerformanceEndpointsEndpoint = "get-entries"` - `const CTLogGetResponseCertificateLogPerformanceEndpointsEndpointGetRoots CTLogGetResponseCertificateLogPerformanceEndpointsEndpoint = "get-roots"` - `const CTLogGetResponseCertificateLogPerformanceEndpointsEndpointGetSth CTLogGetResponseCertificateLogPerformanceEndpointsEndpoint = "get-sth"` - `ResponseTime float64` - `Uptime float64` - `ResponseTime float64` - `Uptime float64` - `Related []CTLogGetResponseCertificateLogRelated` Logs from the same operator. - `Description string` A brief description of the certificate log. - `EndExclusive Time` The end date and time for when the log will stop accepting certificates. - `Slug string` A URL-friendly, kebab-case identifier for the certificate log. - `StartInclusive Time` The start date and time for when the log starts accepting certificates. - `State CTLogGetResponseCertificateLogRelatedState` The current state of the certificate log. More details about log states can be found here: https://googlechrome.github.io/CertificateTransparency/log_states.html - `const CTLogGetResponseCertificateLogRelatedStateUsable CTLogGetResponseCertificateLogRelatedState = "USABLE"` - `const CTLogGetResponseCertificateLogRelatedStatePending CTLogGetResponseCertificateLogRelatedState = "PENDING"` - `const CTLogGetResponseCertificateLogRelatedStateQualified CTLogGetResponseCertificateLogRelatedState = "QUALIFIED"` - `const CTLogGetResponseCertificateLogRelatedStateReadOnly CTLogGetResponseCertificateLogRelatedState = "READ_ONLY"` - `const CTLogGetResponseCertificateLogRelatedStateRetired CTLogGetResponseCertificateLogRelatedState = "RETIRED"` - `const CTLogGetResponseCertificateLogRelatedStateRejected CTLogGetResponseCertificateLogRelatedState = "REJECTED"` - `Slug string` A URL-friendly, kebab-case identifier for the certificate log. - `StartInclusive Time` The start date and time for when the log starts accepting certificates. - `State CTLogGetResponseCertificateLogState` The current state of the certificate log. More details about log states can be found here: https://googlechrome.github.io/CertificateTransparency/log_states.html - `const CTLogGetResponseCertificateLogStateUsable CTLogGetResponseCertificateLogState = "USABLE"` - `const CTLogGetResponseCertificateLogStatePending CTLogGetResponseCertificateLogState = "PENDING"` - `const CTLogGetResponseCertificateLogStateQualified CTLogGetResponseCertificateLogState = "QUALIFIED"` - `const CTLogGetResponseCertificateLogStateReadOnly CTLogGetResponseCertificateLogState = "READ_ONLY"` - `const CTLogGetResponseCertificateLogStateRetired CTLogGetResponseCertificateLogState = "RETIRED"` - `const CTLogGetResponseCertificateLogStateRejected CTLogGetResponseCertificateLogState = "REJECTED"` - `StateTimestamp Time` Timestamp of when the log state was last updated. - `SubmittableCERTCount string` Number of certificates that are eligible for inclusion to this log but have not been included yet. Based on certificates signed by trusted root CAs within the log's accepted date range. - `SubmittedCERTCount string` Number of certificates already included in this CT log. - `URL string` The URL for the certificate log. ### 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"), ) log, err := client.Radar.CT.Logs.Get( context.TODO(), "argon2024", radar.CTLogGetParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", log.CertificateLog) } ``` #### Response ```json { "result": { "certificateLog": { "api": "RFC6962", "avgThroughput": 0, "description": "Google 'Argon2024' log", "endExclusive": "2025-01-01T00:00:00Z", "lastUpdate": "2025-01-01T00:00:00Z", "operator": "Google", "performance": { "endpoints": [ { "endpoint": "add-chain (new)", "responseTime": 0, "uptime": 0 } ], "responseTime": 0, "uptime": 0 }, "related": [ { "description": "Google 'Argon2024' log", "endExclusive": "2025-01-01T00:00:00Z", "slug": "argon2024", "startInclusive": "2024-01-01T00:00:00Z", "state": "USABLE" } ], "slug": "argon2024", "startInclusive": "2024-01-01T00:00:00Z", "state": "USABLE", "stateTimestamp": "2025-02-01T08:53:20Z", "submittableCertCount": "10", "submittedCertCount": "10", "url": "https://ct.googleapis.com/logs/us1/argon2024/" } }, "success": true } ``` ## List certificate logs `client.Radar.CT.Logs.List(ctx, query) (*CTLogListResponse, error)` **get** `/radar/ct/logs` Retrieves a list of certificate logs. ### Parameters - `query CTLogListParams` - `Format param.Field[CTLogListParamsFormat]` Format in which results will be returned. - `const CTLogListParamsFormatJson CTLogListParamsFormat = "JSON"` - `const CTLogListParamsFormatCsv CTLogListParamsFormat = "CSV"` - `Limit param.Field[int64]` Limits the number of objects returned in the response. - `Offset param.Field[int64]` Skips the specified number of objects before fetching the results. ### Returns - `type CTLogListResponse struct{…}` - `CertificateLogs []CTLogListResponseCertificateLog` - `API CTLogListResponseCertificateLogsAPI` The API standard that the certificate log follows. - `const CTLogListResponseCertificateLogsAPIRfc6962 CTLogListResponseCertificateLogsAPI = "RFC6962"` - `const CTLogListResponseCertificateLogsAPIStatic CTLogListResponseCertificateLogsAPI = "STATIC"` - `Description string` A brief description of the certificate log. - `EndExclusive Time` The end date and time for when the log will stop accepting certificates. - `Operator string` The organization responsible for operating the certificate log. - `Slug string` A URL-friendly, kebab-case identifier for the certificate log. - `StartInclusive Time` The start date and time for when the log starts accepting certificates. - `State CTLogListResponseCertificateLogsState` The current state of the certificate log. More details about log states can be found here: https://googlechrome.github.io/CertificateTransparency/log_states.html - `const CTLogListResponseCertificateLogsStateUsable CTLogListResponseCertificateLogsState = "USABLE"` - `const CTLogListResponseCertificateLogsStatePending CTLogListResponseCertificateLogsState = "PENDING"` - `const CTLogListResponseCertificateLogsStateQualified CTLogListResponseCertificateLogsState = "QUALIFIED"` - `const CTLogListResponseCertificateLogsStateReadOnly CTLogListResponseCertificateLogsState = "READ_ONLY"` - `const CTLogListResponseCertificateLogsStateRetired CTLogListResponseCertificateLogsState = "RETIRED"` - `const CTLogListResponseCertificateLogsStateRejected CTLogListResponseCertificateLogsState = "REJECTED"` - `StateTimestamp Time` Timestamp of when the log state was last updated. - `URL string` The URL for the certificate log. ### 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"), ) logs, err := client.Radar.CT.Logs.List(context.TODO(), radar.CTLogListParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", logs.CertificateLogs) } ``` #### Response ```json { "result": { "certificateLogs": [ { "api": "RFC6962", "description": "Google 'Argon2024' log", "endExclusive": "2025-01-01T00:00:00Z", "operator": "Google", "slug": "argon2024", "startInclusive": "2024-01-01T00:00:00Z", "state": "USABLE", "stateTimestamp": "2025-02-01T08:53:20Z", "url": "https://ct.googleapis.com/logs/us1/argon2024/" } ] }, "success": true } ```