## 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://edgetunnel-b2h.pages.dev/radar/concepts/aggregation-intervals/). When omitted, the interval is auto-selected from the requested date range; finer intervals are only available for shorter ranges. If the requested interval is too granular for the date range, the request is rejected. - `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). 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[[]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). Incompatible with the `tld` filter/dimension. - `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. Incompatible with the `tld` filter/dimension. - `LogAPI param.Field[[]CTTimeseriesParamsLogAPI]` Filters results by certificate log API (RFC6962 vs. static). Incompatible with the `tld` filter/dimension. - `const CTTimeseriesParamsLogAPIRfc6962 CTTimeseriesParamsLogAPI = "RFC6962"` - `const CTTimeseriesParamsLogAPIStatic CTTimeseriesParamsLogAPI = "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. - `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. Incompatible with the `log`, `logApi`, `logOperator`, and `entryType` filters/dimensions. - `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://edgetunnel-b2h.pages.dev/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` - `Tags []string` - `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://edgetunnel-b2h.pages.dev/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", "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" } ] } }, "success": true } ```