{
  "openapi": "3.0.1",
  "info": {
    "title": "SSL Certificate Checker: Expiry, Chain & CT, No Login",
    "description": "Bulk SSL/TLS certificate checker: validity verdict, days to expiry, issuer, SANs, TLS version and cipher grade, chain, optional check of each TLS version (1.0 to 1.3) and Certificate Transparency history for up to 5,000 domains or host:port values. No login, no API key.",
    "version": "0.1",
    "x-build-id": "A8pKQeebevcyObi49"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/cliqtomedia~ssl-certificate-inspector/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-cliqtomedia-ssl-certificate-inspector",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/cliqtomedia~ssl-certificate-inspector/runs": {
      "post": {
        "operationId": "runs-sync-cliqtomedia-ssl-certificate-inspector",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/cliqtomedia~ssl-certificate-inspector/run-sync": {
      "post": {
        "operationId": "run-sync-cliqtomedia-ssl-certificate-inspector",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "required": [
          "domains"
        ],
        "properties": {
          "domains": {
            "title": "Domains",
            "type": "array",
            "description": "Up to 5,000 host names, host:port values, URLs or public IP addresses, one per line (e.g. apify.com, mail.example.com:993, https://shop.example.org/page). Each host name is checked as given (www.example.com and example.com are different checks). Duplicates are checked once; invalid values are listed in RUN_SUMMARY and not charged.",
            "items": {
              "type": "string"
            }
          },
          "port": {
            "title": "Default port",
            "minimum": 1,
            "maximum": 65535,
            "type": "integer",
            "description": "Port used for values without their own port. 443 for HTTPS; 993/995/465 for mail over TLS, 8443 for admin panels.",
            "default": 443
          },
          "warnDays": {
            "title": "Expiry warning (days)",
            "minimum": 0,
            "maximum": 365,
            "type": "integer",
            "description": "A valid certificate with fewer days left than this gets certStatus expiring_soon and expiringSoon true, and is listed in RUN_SUMMARY.attention.",
            "default": 30
          },
          "includeChain": {
            "title": "Certificate chain",
            "type": "boolean",
            "description": "Add the chain (intermediates and root) with subject, issuer, dates and fingerprints. Off keeps rows smaller; chainLength is always filled.",
            "default": true
          },
          "checkTlsVersions": {
            "title": "Check each TLS version",
            "type": "boolean",
            "description": "Try TLS 1.0, 1.1, 1.2 and 1.3 one by one and list the versions the server accepts (supportedTlsVersions, deprecatedTlsEnabled). Up to 3 extra handshakes per host: slower, no extra charge.",
            "default": false
          },
          "includeCtHistory": {
            "title": "Certificate Transparency history",
            "type": "boolean",
            "description": "Add certificates logged for each host name on crt.sh (issuer, dates, names, serial). crt.sh is a free community service and answers slowly (often 5-20 s per host); the Actor asks it one host at a time, so turn this on for lists of up to a few hundred hosts. Charged only when crt.sh lists certificates.",
            "default": false
          },
          "ctHistoryLimit": {
            "title": "CT history: certificates per host",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Newest logged certificates kept per host when CT history is on. ctCertificatesFound always shows the full count.",
            "default": 20
          },
          "ctMaxHosts": {
            "title": "CT history: max hosts per run",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "crt.sh answers slowly and allows about 5 requests a minute, so CT history is looked up one host at a time for the first N certificates read. Other hosts get the full TLS check without CT (not charged for CT). 50 hosts need about 11 minutes; raise the run timeout for more.",
            "default": 50
          },
          "connectTimeoutSecs": {
            "title": "Connection timeout (seconds)",
            "minimum": 3,
            "maximum": 15,
            "type": "integer",
            "description": "How long to wait for a TLS answer from each host before marking it unreachable (3-15 s).",
            "default": 10
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}