## Get time series of certificate distribution by dimension `client.radar.ct.timeseriesGroups("CA" | "CA_OWNER" | "DURATION" | 11 moredimension, CTTimeseriesGroupsParamsquery?, RequestOptionsoptions?): CTTimeseriesGroupsResponse` **get** `/radar/ct/timeseries_groups/{dimension}` Retrieves the distribution of certificates grouped by the specified dimension over time. ### Parameters - `dimension: "CA" | "CA_OWNER" | "DURATION" | 11 more` Specifies the certificate attribute by which to group the results. - `"CA"` - `"CA_OWNER"` - `"DURATION"` - `"ENTRY_TYPE"` - `"EXPIRATION_STATUS"` - `"HAS_IPS"` - `"HAS_WILDCARDS"` - `"LOG"` - `"LOG_API"` - `"LOG_OPERATOR"` - `"PUBLIC_KEY_ALGORITHM"` - `"SIGNATURE_ALGORITHM"` - `"TLD"` - `"VALIDATION_LEVEL"` - `query: CTTimeseriesGroupsParams` - `aggInterval?: "15m" | "1h" | "1d" | "1w"` 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/). - `"15m"` - `"1h"` - `"1d"` - `"1w"` - `ca?: Array` Filters results by certificate authority. - `caOwner?: Array` Filters results by certificate authority owner. - `dateEnd?: Array` End of the date range (inclusive). - `dateRange?: Array` 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?: Array` Start of the date range. - `duration?: Array<"LTE_3D" | "GT_3D_LTE_7D" | "GT_7D_LTE_10D" | 4 more>` Filters results by certificate duration. - `"LTE_3D"` - `"GT_3D_LTE_7D"` - `"GT_7D_LTE_10D"` - `"GT_10D_LTE_47D"` - `"GT_47D_LTE_100D"` - `"GT_100D_LTE_200D"` - `"GT_200D"` - `entryType?: Array<"PRECERTIFICATE" | "CERTIFICATE">` Filters results by entry type (certificate vs. pre-certificate). - `"PRECERTIFICATE"` - `"CERTIFICATE"` - `expirationStatus?: Array<"EXPIRED" | "VALID">` Filters results by expiration status (expired vs. valid). - `"EXPIRED"` - `"VALID"` - `format?: "JSON" | "CSV"` Format in which results will be returned. - `"JSON"` - `"CSV"` - `hasIps?: Array` Filters results based on whether the certificates are bound to specific IP addresses. - `hasWildcards?: Array` Filters results based on whether the certificates contain wildcard domains. - `limitPerGroup?: number` 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?: Array` Filters results by certificate log. - `logApi?: Array<"RFC6962" | "STATIC">` Filters results by certificate log API (RFC6962 vs. static). - `"RFC6962"` - `"STATIC"` - `logOperator?: Array` Filters results by certificate log operator. - `name?: Array` Array of names used to label the series in the response. - `normalization?: "RAW_VALUES" | "PERCENTAGE"` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"RAW_VALUES"` - `"PERCENTAGE"` - `publicKeyAlgorithm?: Array<"DSA" | "ECDSA" | "RSA">` Filters results by public key algorithm. - `"DSA"` - `"ECDSA"` - `"RSA"` - `signatureAlgorithm?: Array<"DSA_SHA_1" | "DSA_SHA_256" | "ECDSA_SHA_1" | 12 more>` Filters results by signature algorithm. - `"DSA_SHA_1"` - `"DSA_SHA_256"` - `"ECDSA_SHA_1"` - `"ECDSA_SHA_256"` - `"ECDSA_SHA_384"` - `"ECDSA_SHA_512"` - `"PSS_SHA_256"` - `"PSS_SHA_384"` - `"PSS_SHA_512"` - `"RSA_MD2"` - `"RSA_MD5"` - `"RSA_SHA_1"` - `"RSA_SHA_256"` - `"RSA_SHA_384"` - `"RSA_SHA_512"` - `tld?: Array` Filters results by top-level domain. - `uniqueEntries?: Array<"true" | "false">` Specifies whether to filter out duplicate certificates and pre-certificates. Set to true for unique entries only. - `"true"` - `"false"` - `validationLevel?: Array<"DOMAIN" | "ORGANIZATION" | "EXTENDED">` Filters results by validation level. - `"DOMAIN"` - `"ORGANIZATION"` - `"EXTENDED"` ### Returns - `CTTimeseriesGroupsResponse` - `meta: Meta` Metadata for the results. - `aggInterval: "FIFTEEN_MINUTES" | "ONE_HOUR" | "ONE_DAY" | 2 more` 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/). - `"FIFTEEN_MINUTES"` - `"ONE_HOUR"` - `"ONE_DAY"` - `"ONE_WEEK"` - `"ONE_MONTH"` - `confidenceInfo: ConfidenceInfo` - `annotations: Array` - `dataSource: "ALL" | "AI_BOTS" | "AI_GATEWAY" | 22 more` Data source for annotations. - `"ALL"` - `"AI_BOTS"` - `"AI_GATEWAY"` - `"BGP"` - `"BOTS"` - `"CONNECTION_ANOMALY"` - `"CT"` - `"DNS"` - `"DNS_MAGNITUDE"` - `"DNS_AS112"` - `"DOS"` - `"EMAIL_ROUTING"` - `"EMAIL_SECURITY"` - `"FW"` - `"FW_PG"` - `"HTTP"` - `"HTTP_CONTROL"` - `"HTTP_CRAWLER_REFERER"` - `"HTTP_ORIGINS"` - `"IQI"` - `"LEAKED_CREDENTIALS"` - `"NET"` - `"ROBOTS_TXT"` - `"SPEED"` - `"WORKERS_AI"` - `description: string` - `endDate: string` - `eventType: "EVENT" | "GENERAL" | "OUTAGE" | 3 more` Event type for annotations. - `"EVENT"` - `"GENERAL"` - `"OUTAGE"` - `"PARTIAL_PROJECTION"` - `"PIPELINE"` - `"TRAFFIC_ANOMALY"` - `isInstantaneous: boolean` Whether event is a single point in time or a time range. - `linkedUrl: string` - `startDate: string` - `level: number` Provides an indication of how much confidence Cloudflare has in the data. - `dateRange: Array` - `endTime: string` Adjusted end of date range. - `startTime: string` Adjusted start of date range. - `lastUpdated: string` Timestamp of the last dataset update. - `normalization: "PERCENTAGE" | "MIN0_MAX" | "MIN_MAX" | 5 more` Normalization method applied to the results. Refer to [Normalization methods](https://developers.cloudflare.com/radar/concepts/normalization/). - `"PERCENTAGE"` - `"MIN0_MAX"` - `"MIN_MAX"` - `"RAW_VALUES"` - `"PERCENTAGE_CHANGE"` - `"ROLLING_AVERAGE"` - `"OVERLAPPED_PERCENTAGE"` - `"RATIO"` - `units: Array` Measurement units for the results. - `name: string` - `value: string` - `serie_0: UnnamedSchemaRef7826220e105d84352ba1108d9ed88e55 | UnionMember1 | UnionMember2 | 5 more` - `UnnamedSchemaRef7826220e105d84352ba1108d9ed88e55` - `timestamps: Array` - `UnionMember1` - `rfc6962: Array` - `static: Array` - `UnionMember2` - `gt_121d: Array` - `gt_16d_lte_31d: Array` - `gt_31d_lte_91d: Array` - `gt_3d_lte_16d: Array` - `gt_91d_lte_121d: Array` - `lte_3d: Array` - `UnionMember3` - `CERTIFICATE: Array` - `PRECERTIFICATE: Array` - `UnionMember4` - `EXPIRED: Array` - `VALID: Array` - `UnionMember5` - `NEGATIVE: Array` - `POSITIVE: Array` - `UnionMember6` - `DSA: Array` - `ECDSA: Array` - `RSA: Array` - `UnionMember7` - `domain: Array` - `extended: Array` - `organization: Array` - `unknown: Array` ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const response = await client.radar.ct.timeseriesGroups('CA'); console.log(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 } ```