Skip to content
Start here

Get certificates time series

GET/radar/ct/timeseries

Retrieves certificate volume over time.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
Accepted Permissions (at least one required)
User Details WriteUser Details Read
Query ParametersExpand Collapse
aggInterval: optional "15m" or "1h" or "1d" or "1w"

Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to 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.

One of the following:
"15m"
"1h"
"1d"
"1w"
ca: optional array of string

Filters results by certificate authority.

caOwner: optional array of string

Filters results by certificate authority owner.

dateEnd: optional array of string

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: optional array of string

Filters results by relative date range ending at the current time, with each value producing a separate series. Use <n>d for days (up to 364d) or <n>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: optional array of string

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: optional array of "LTE_3D" or "GT_3D_LTE_7D" or "GT_7D_LTE_10D" or 4 more

Filters results by certificate duration.

One of the following:
"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: optional array of "PRECERTIFICATE" or "CERTIFICATE"

Filters results by entry type (certificate vs. pre-certificate). Incompatible with the tld filter/dimension.

One of the following:
"PRECERTIFICATE"
"CERTIFICATE"
expirationStatus: optional array of "EXPIRED" or "VALID"

Filters results by expiration status (expired vs. valid).

One of the following:
"EXPIRED"
"VALID"
format: optional "JSON" or "CSV"

Format in which results will be returned.

One of the following:
"JSON"
"CSV"
hasIps: optional array of boolean

Filters results based on whether the certificates are bound to specific IP addresses.

hasWildcards: optional array of boolean

Filters results based on whether the certificates contain wildcard domains.

log: optional array of string

Filters results by certificate log. Incompatible with the tld filter/dimension.

logApi: optional array of "RFC6962" or "STATIC"

Filters results by certificate log API (RFC6962 vs. static). Incompatible with the tld filter/dimension.

One of the following:
"RFC6962"
"STATIC"
logOperator: optional array of string

Filters results by certificate log operator. Incompatible with the tld filter/dimension.

name: optional array of string

Array of names used to label the series in the response.

publicKeyAlgorithm: optional array of "DSA" or "ECDSA" or "RSA"

Filters results by public key algorithm.

One of the following:
"DSA"
"ECDSA"
"RSA"
signatureAlgorithm: optional array of "DSA_SHA_1" or "DSA_SHA_256" or "ECDSA_SHA_1" or 12 more

Filters results by signature algorithm.

One of the following:
"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: optional array of string

Filters results by top-level domain. Incompatible with the log, logApi, logOperator, and entryType filters/dimensions.

uniqueEntries: optional array of "true" or "false"

Specifies whether to filter out duplicate certificates and pre-certificates. Set to true for unique entries only.

One of the following:
"true"
"false"
validationLevel: optional array of "DOMAIN" or "ORGANIZATION" or "EXTENDED"

Filters results by validation level.

One of the following:
"DOMAIN"
"ORGANIZATION"
"EXTENDED"
ReturnsExpand Collapse
result: object { meta }
meta: object { aggInterval, confidenceInfo, dateRange, 3 more }

Metadata for the results.

aggInterval: "FIFTEEN_MINUTES" or "ONE_HOUR" or "ONE_DAY" or 2 more

Aggregation interval of the results (e.g., in 15 minutes or 1 hour intervals). Refer to Aggregation intervals.

One of the following:
"FIFTEEN_MINUTES"
"ONE_HOUR"
"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
confidenceInfo: object { annotations, level }
annotations: array of object { dataSource, description, endDate, 5 more }
dataSource: "ALL" or "AI_BOTS" or "AI_GATEWAY" or 22 more

Data source for annotations.

One of the following:
"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
formatdate-time
eventType: "EVENT" or "GENERAL" or "OUTAGE" or 3 more

Event type for annotations.

One of the following:
"EVENT"
"GENERAL"
"OUTAGE"
"PARTIAL_PROJECTION"
"PIPELINE"
"TRAFFIC_ANOMALY"
isInstantaneous: boolean

Whether event is a single point in time or a time range.

linkedUrl: string
formaturi
startDate: string
formatdate-time
tags: optional array of string
level: number

Provides an indication of how much confidence Cloudflare has in the data.

dateRange: array of object { endTime, startTime }
endTime: string

Adjusted end of date range.

formatdate-time
startTime: string

Adjusted start of date range.

formatdate-time
lastUpdated: string

Timestamp of the last dataset update.

formatdate-time
normalization: "PERCENTAGE" or "MIN0_MAX" or "MIN_MAX" or 5 more

Normalization method applied to the results. Refer to Normalization methods.

One of the following:
"PERCENTAGE"
"MIN0_MAX"
"MIN_MAX"
"RAW_VALUES"
"PERCENTAGE_CHANGE"
"ROLLING_AVERAGE"
"OVERLAPPED_PERCENTAGE"
"RATIO"
units: array of object { name, value }

Measurement units for the results.

name: string
value: string
success: boolean

Get certificates time series

curl https://api.cloudflare.com/client/v4/radar/ct/timeseries \
    -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
{
  "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
}
Returns Examples
{
  "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
}