{
  "openapi": "3.0.1",
  "info": {
    "title": "Subdomain Finder, crt.sh Certificate Transparency Logs Search",
    "description": "Subdomain finder past the crt.sh query limits: 7,236 subdomains of mercedes-benz.com where one crt.sh query returns 4. Certificate transparency logs search with duplicates merged, expiring and self-signed certificates flagged, and a watch mode for new certificates.",
    "version": "0.1",
    "x-build-id": "quLjnk3PAseE91YfU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/snow_leo_data~crtsh-subdomain-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-snow_leo_data-crtsh-subdomain-finder",
        "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/snow_leo_data~crtsh-subdomain-finder/runs": {
      "post": {
        "operationId": "runs-sync-snow_leo_data-crtsh-subdomain-finder",
        "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/snow_leo_data~crtsh-subdomain-finder/run-sync": {
      "post": {
        "operationId": "run-sync-snow_leo_data-crtsh-subdomain-finder",
        "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",
        "properties": {
          "domains": {
            "title": "Domains",
            "type": "array",
            "description": "One or more domains. URLs, e-mail addresses and a leading *. are cleaned automatically. Each domain is searched together with all of its subdomains.",
            "items": {
              "type": "string"
            }
          },
          "output": {
            "title": "What to return",
            "enum": [
              "subdomains",
              "certificates",
              "both"
            ],
            "type": "string",
            "description": "subdomains: one row per unique host name found in any certificate. certificates: one row per unique certificate (a precertificate and its final certificate are merged). both: both kinds of rows.",
            "default": "subdomains"
          },
          "filter": {
            "title": "Only rows that are",
            "enum": [
              "all",
              "valid",
              "expiring",
              "expired",
              "suspicious",
              "wildcard"
            ],
            "type": "string",
            "description": "Keep only matching rows. The per-domain summary row is always delivered, so a filter never turns a run into an empty dataset.",
            "default": "all"
          },
          "includeSummary": {
            "title": "Add a summary row per domain",
            "type": "boolean",
            "description": "Counts of valid, expiring, expired and self-signed certificates, issuer shares, suspicious subdomains, related domains sharing certificates, and how completely crt.sh answered.",
            "default": true
          },
          "expiringWithinDays": {
            "title": "Expiring within (days)",
            "minimum": 1,
            "maximum": 825,
            "type": "integer",
            "description": "A certificate whose expiry date falls within this many days is marked EXPIRING.",
            "default": 30
          },
          "suspiciousKeywords": {
            "title": "Extra suspicious keywords",
            "type": "array",
            "description": "Added to the built-in list (dev, staging, test, vpn, admin, jenkins, gitlab, backup, ftp, internal and others). A host name is suspicious when one of its labels, split on dots, hyphens and underscores, equals a keyword.",
            "items": {
              "type": "string"
            }
          },
          "replaceDefaultKeywords": {
            "title": "Use only my keywords",
            "type": "boolean",
            "description": "Ignore the built-in keyword list and match only the keywords given above.",
            "default": false
          },
          "monitorMode": {
            "title": "Monitor mode: only what is new since the last run",
            "type": "boolean",
            "description": "Remembers every certificate and host name already delivered and returns only new ones on later runs. Schedule the actor daily to get new subdomains and new certificates as they appear. The first run delivers everything and records it.",
            "default": false
          },
          "monitorName": {
            "title": "Watchlist name",
            "type": "string",
            "description": "Memory is kept per watchlist name, so separate schedules do not interfere. Letters, digits and hyphens.",
            "default": "default"
          },
          "emitSeenInMonitor": {
            "title": "Also return rows already seen",
            "type": "boolean",
            "description": "In monitor mode, deliver previously seen rows too, each marked change_type SEEN.",
            "default": false
          },
          "fetchFingerprints": {
            "title": "Download certificates for SHA-256 fingerprints",
            "type": "boolean",
            "description": "Downloads each certificate from crt.sh to add SHA-256 and SHA-1 fingerprints, public key algorithm and size, signature algorithm, and an exact self-signed check. One extra request per certificate, currently valid certificates first.",
            "default": false
          },
          "maxFingerprintsPerDomain": {
            "title": "Maximum certificates to download per domain",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Caps the extra requests made by the fingerprint step.",
            "default": 25
          },
          "includeSubdomains": {
            "title": "Include subdomains",
            "type": "boolean",
            "description": "Off: only certificates naming the exact domain.",
            "default": true
          },
          "includeExpired": {
            "title": "Include expired certificates",
            "type": "boolean",
            "description": "Off: only currently valid certificates (one fast query per domain).",
            "default": true
          },
          "sliceLargeDomains": {
            "title": "Slice large domains",
            "type": "boolean",
            "description": "crt.sh silently keeps only the oldest certificates when a domain has too many, and answers HTTP 404 when a query runs too long. When that happens the actor splits the search into subdomain zones. Turn off to run a single query per domain.",
            "default": true
          },
          "maxQueriesPerDomain": {
            "title": "Maximum crt.sh queries per domain",
            "minimum": 2,
            "maximum": 400,
            "type": "integer",
            "description": "Upper bound for slicing. Small domains need 2 queries.",
            "default": 40
          },
          "maxMinutesPerDomain": {
            "title": "Maximum minutes per domain",
            "minimum": 1,
            "maximum": 180,
            "type": "integer",
            "description": "Slicing stops after this time and the summary row reports the result as partial.",
            "default": 15
          },
          "maxRowsPerDomain": {
            "title": "Maximum rows per domain",
            "minimum": 0,
            "type": "integer",
            "description": "0 means no limit. The summary row is not counted.",
            "default": 0
          },
          "compactOutput": {
            "title": "Compact output",
            "type": "boolean",
            "description": "Drop empty fields and long lists such as every crt.sh entry id and the full issuer distinguished name. Handy for AI agents and spreadsheets.",
            "default": false
          },
          "requestTimeoutSecs": {
            "title": "Request timeout",
            "minimum": 15,
            "maximum": 180,
            "type": "integer",
            "description": "crt.sh itself gives up on a query after about 60 seconds, so values below 65 cut off answers that were about to arrive.",
            "default": 70
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}