{
  "openapi": "3.1.0",
  "info": {
    "title": "SSL/TLS Security Analyzer API",
    "version": "0.0.2",
    "description": "Inspect TLS protocols, ciphers and certificate chains; grade domain security, batch scans and monitor expiry.",
    "x-pricing-model": "payg",
    "x-free-tier-calls": 0,
    "x-docs-url": "",
    "x-dakidarts-contract-status": "published",
    "x-dakidarts-execution-status": "source-only"
  },
  "servers": [
    {
      "url": "https://api.dakidarts.com/ssl-tls-security-analyzer",
      "description": "Dakidarts direct gateway"
    }
  ],
  "tags": [
    {
      "name": "Operations",
      "description": "Operations endpoints sourced from the SSL/TLS Security Analyzer API implementation."
    },
    {
      "name": "Analysis",
      "description": "Analysis endpoints sourced from the SSL/TLS Security Analyzer API implementation."
    },
    {
      "name": "Certificate",
      "description": "Certificate endpoints sourced from the SSL/TLS Security Analyzer API implementation."
    },
    {
      "name": "Expiry",
      "description": "Expiry endpoints sourced from the SSL/TLS Security Analyzer API implementation."
    },
    {
      "name": "Batch operations",
      "description": "Batch operations endpoints sourced from the SSL/TLS Security Analyzer API implementation."
    },
    {
      "name": "Ciphers",
      "description": "Ciphers endpoints sourced from the SSL/TLS Security Analyzer API implementation."
    },
    {
      "name": "Cipher",
      "description": "Cipher endpoints sourced from the SSL/TLS Security Analyzer API implementation."
    }
  ],
  "paths": {
    "/status": {
      "get": {
        "summary": "Status",
        "description": "Health check endpoint. Returns the service status, version, whether openssl is available, the Python runtime version, server time, and uptime. Makes zero network calls \u2014 instant and free.",
        "operationId": "ssl-tls-security-analyzer_get_status",
        "tags": [
          "Operations"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "status": "ok",
                    "service": "SSL/TLS Security Analyzer API",
                    "version": "0.0.2",
                    "server_time": "2026-08-26T10:00:00.000000+00:00",
                    "python_version": "3.14.5",
                    "uptime_seconds": 42,
                    "openssl_available": true
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "status": "ok",
          "service": "SSL/TLS Security Analyzer API",
          "version": "0.0.2",
          "server_time": "2026-08-26T10:00:00.000000+00:00",
          "python_version": "3.14.5",
          "uptime_seconds": 42,
          "openssl_available": true
        }
      }
    },
    "/analyze": {
      "get": {
        "summary": "Analyze Route",
        "description": "**Flagship endpoint.** Performs a comprehensive SSL/TLS security analysis of any hostname or IP address. Returns supported TLS protocol versions, all negotiated cipher suites, weak cipher detection, full parsed certificate details, certificate chain validation, hostname match verification, forward secrecy check, weak Diffie-Hellman detection, known vulnerability flags, and an overall letter grade from A to F. The grade uses a score-based heuristic with a transparent breakdown of every deduction in `grade_notes`.",
        "operationId": "ssl-tls-security-analyzer_get_analyze",
        "tags": [
          "Analysis"
        ],
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "Target domain or hostname (e.g., `example.com`).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "host",
            "in": "query",
            "required": false,
            "description": "Alias for `domain`.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "port",
            "in": "query",
            "required": false,
            "description": "Port to connect to.",
            "schema": {
              "type": "integer",
              "default": 443
            }
          },
          {
            "name": "timeout",
            "in": "query",
            "required": false,
            "description": "Connection timeout in seconds.",
            "schema": {
              "type": "integer",
              "default": 5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      },
      "post": {
        "summary": "Analyze Route",
        "description": "**Flagship endpoint.** Performs a comprehensive SSL/TLS security analysis of any hostname or IP address. Returns supported TLS protocol versions, all negotiated cipher suites, weak cipher detection, full parsed certificate details, certificate chain validation, hostname match verification, forward secrecy check, weak Diffie-Hellman detection, known vulnerability flags, and an overall letter grade from A to F. The grade uses a score-based heuristic with a transparent breakdown of every deduction in `grade_notes`.",
        "operationId": "ssl-tls-security-analyzer_post_analyze",
        "tags": [
          "Analysis"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string"
                  },
                  "host": {
                    "type": "string"
                  },
                  "port": {
                    "type": "integer",
                    "default": 443
                  },
                  "timeout": {
                    "type": "integer",
                    "default": 5
                  }
                },
                "required": [
                  "domain"
                ]
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/certificate": {
      "get": {
        "summary": "Certificate Route",
        "description": "Deep inspection of a server's SSL/TLS certificate and full certificate chain. Returns the complete leaf certificate (subject, issuer, common name, serial number, validity dates, expiry status, signature algorithm, Subject Alternative Names, key usage flags), the public key details (algorithm, bit size), the full certificate chain with chain-length count and a heuristic signing-order validation, self-signed detection, and hostname coverage verification (DNS SANs including wildcard support). This endpoint performs one handshake only \u2014 no protocol probing \u2014 making it the fastest way to inspect certificate health.",
        "operationId": "ssl-tls-security-analyzer_get_certificate",
        "tags": [
          "Certificate"
        ],
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "Target domain or hostname.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "port",
            "in": "query",
            "required": false,
            "description": "Port to connect to.",
            "schema": {
              "type": "integer",
              "default": 443
            }
          },
          {
            "name": "timeout",
            "in": "query",
            "required": false,
            "description": "Connection timeout in seconds.",
            "schema": {
              "type": "integer",
              "default": 5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "port": {
                      "type": "integer"
                    },
                    "chain": {
                      "description": "Dynamic source value; no concrete response example is published."
                    },
                    "domain": {
                      "description": "Dynamic source value; no concrete response example is published."
                    },
                    "fetched_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "certificate": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "hostname_valid": {
                      "description": "Dynamic source value; no concrete response example is published."
                    },
                    "certificate_key": {
                      "description": "Dynamic source value; no concrete response example is published."
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      },
      "post": {
        "summary": "Certificate Route",
        "description": "Deep inspection of a server's SSL/TLS certificate and full certificate chain. Returns the complete leaf certificate (subject, issuer, common name, serial number, validity dates, expiry status, signature algorithm, Subject Alternative Names, key usage flags), the public key details (algorithm, bit size), the full certificate chain with chain-length count and a heuristic signing-order validation, self-signed detection, and hostname coverage verification (DNS SANs including wildcard support). This endpoint performs one handshake only \u2014 no protocol probing \u2014 making it the fastest way to inspect certificate health.",
        "operationId": "ssl-tls-security-analyzer_post_certificate",
        "tags": [
          "Certificate"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "port": {
                      "type": "integer"
                    },
                    "chain": {
                      "description": "Dynamic source value; no concrete response example is published."
                    },
                    "domain": {
                      "description": "Dynamic source value; no concrete response example is published."
                    },
                    "fetched_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "certificate": {
                      "type": "object",
                      "additionalProperties": true
                    },
                    "hostname_valid": {
                      "description": "Dynamic source value; no concrete response example is published."
                    },
                    "certificate_key": {
                      "description": "Dynamic source value; no concrete response example is published."
                    }
                  },
                  "additionalProperties": true
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "domain": {
                    "type": "string"
                  },
                  "port": {
                    "type": "integer",
                    "default": 443
                  },
                  "timeout": {
                    "type": "integer",
                    "default": 5
                  }
                },
                "required": [
                  "domain"
                ]
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      }
    },
    "/expiry": {
      "get": {
        "summary": "Expiry Route",
        "description": "Fast, single-handshake certificate expiry check designed for monitoring crons and certificate-expiry alerting services. Returns only the fields relevant to expiry monitoring: domain, common name, issuer, serial number, validity dates, days until expiry, and expired status. This is the cheapest and lightest endpoint in the entire API \u2014 one Python SSL handshake, no openssl probes, no protocol scanning. Results are cached for only 2 minutes (vs 5 minutes for other endpoints) so monitoring data stays fresh. Ideal for running on a daily or hourly cron schedule.",
        "operationId": "ssl-tls-security-analyzer_get_expiry",
        "tags": [
          "Expiry"
        ],
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "Target domain or hostname.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "port",
            "in": "query",
            "required": false,
            "description": "Port to connect to.",
            "schema": {
              "type": "integer",
              "default": 443
            }
          },
          {
            "name": "timeout",
            "in": "query",
            "required": false,
            "description": "Connection timeout in seconds.",
            "schema": {
              "type": "integer",
              "default": 5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "port": 443,
                    "domain": "example.com",
                    "issuer": "SSL Corporation",
                    "expired": false,
                    "not_after": "2026-10-27T22:17:21+00:00",
                    "checked_at": "2026-08-26T10:00:00.000000+00:00",
                    "not_before": "2026-07-29T22:10:08+00:00",
                    "common_name": "example.com",
                    "serial_number": "0624D0AB311558780B7D...",
                    "days_until_expiry": 79
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "port": 443,
          "domain": "example.com",
          "issuer": "SSL Corporation",
          "expired": false,
          "not_after": "2026-10-27T22:17:21+00:00",
          "checked_at": "2026-08-26T10:00:00.000000+00:00",
          "not_before": "2026-07-29T22:10:08+00:00",
          "common_name": "example.com",
          "serial_number": "0624D0AB311558780B7D...",
          "days_until_expiry": 79
        }
      }
    },
    "/batch": {
      "get": {
        "summary": "Batch Route",
        "description": "Analyze up to 50 domains in parallel with a single API request. Each domain is scanned concurrently across 8 parallel workers. If a domain fails input validation (e.g. invalid hostname), it is returned as an error entry in the results \u2014 a single bad domain never fails the whole batch. Results are returned in the same order you submitted the domains. Each result in the array is a complete `/analyze` output (grade, protocols, ciphers, certificate, vulnerabilities, etc.) for that domain. This endpoint is ideal for bulk scanning, portfolio monitoring, and CI/CD certificate checks.",
        "operationId": "ssl-tls-security-analyzer_get_batch",
        "tags": [
          "Batch operations"
        ],
        "parameters": [
          {
            "name": "domains",
            "in": "query",
            "required": true,
            "description": "List of domains to scan. Repeat the parameter for multiple values. Max 50.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "port",
            "in": "query",
            "required": false,
            "description": "Port applied to all domains in the batch.",
            "schema": {
              "type": "integer",
              "default": 443
            }
          },
          {
            "name": "timeout",
            "in": "query",
            "required": false,
            "description": "Timeout applied to all domains in the batch.",
            "schema": {
              "type": "integer",
              "default": 5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true
      },
      "post": {
        "summary": "Batch Route",
        "description": "Analyze up to 50 domains in parallel with a single API request. Each domain is scanned concurrently across 8 parallel workers. If a domain fails input validation (e.g. invalid hostname), it is returned as an error entry in the results \u2014 a single bad domain never fails the whole batch. Results are returned in the same order you submitted the domains. Each result in the array is a complete `/analyze` output (grade, protocols, ciphers, certificate, vulnerabilities, etc.) for that domain. This endpoint is ideal for bulk scanning, portfolio monitoring, and CI/CD certificate checks.",
        "operationId": "ssl-tls-security-analyzer_post_batch",
        "tags": [
          "Batch operations"
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "total": 3,
                    "failed": 1,
                    "results": [
                      {
                        "port": 443,
                        "domain": "example.com",
                        "protocols": [
                          "TLSv1.2"
                        ],
                        "ssl_grade": "A",
                        "scanned_at": "2026-08-26T10:00:00.000000+00:00",
                        "certificate": {
                          "expired": false,
                          "common_name": "example.com",
                          "days_until_expiry": 79
                        },
                        "cipher_list": [
                          "ECDHE-RSA-AES128-GCM-SHA256"
                        ],
                        "duration_ms": 2350,
                        "grade_notes": [],
                        "tls_versions": [
                          "TLSv1.2"
                        ],
                        "weak_ciphers": [],
                        "best_protocol": "TLSv1.2",
                        "forward_secrecy": true,
                        "vulnerabilities": []
                      },
                      {
                        "port": 443,
                        "domain": "google.com",
                        "ssl_grade": "A",
                        "scanned_at": "2026-08-26T10:00:00.000000+00:00",
                        "duration_ms": 1800,
                        "tls_versions": [
                          "TLSv1.2",
                          "TLSv1.3"
                        ],
                        "best_protocol": "TLSv1.3",
                        "forward_secrecy": true
                      },
                      {
                        "error": "invalid domain or IP address",
                        "domain": "not a host!!",
                        "scanned_at": "2026-08-26T10:00:00.000000+00:00"
                      }
                    ],
                    "successful": 2
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "domains": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "port": {
                    "type": "integer",
                    "default": 443
                  },
                  "timeout": {
                    "type": "integer",
                    "default": 5
                  }
                },
                "required": [
                  "domains"
                ]
              }
            }
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "total": 3,
          "failed": 1,
          "results": [
            {
              "port": 443,
              "domain": "example.com",
              "protocols": [
                "TLSv1.2"
              ],
              "ssl_grade": "A",
              "scanned_at": "2026-08-26T10:00:00.000000+00:00",
              "certificate": {
                "expired": false,
                "common_name": "example.com",
                "days_until_expiry": 79
              },
              "cipher_list": [
                "ECDHE-RSA-AES128-GCM-SHA256"
              ],
              "duration_ms": 2350,
              "grade_notes": [],
              "tls_versions": [
                "TLSv1.2"
              ],
              "weak_ciphers": [],
              "best_protocol": "TLSv1.2",
              "forward_secrecy": true,
              "vulnerabilities": []
            },
            {
              "port": 443,
              "domain": "google.com",
              "ssl_grade": "A",
              "scanned_at": "2026-08-26T10:00:00.000000+00:00",
              "duration_ms": 1800,
              "tls_versions": [
                "TLSv1.2",
                "TLSv1.3"
              ],
              "best_protocol": "TLSv1.3",
              "forward_secrecy": true
            },
            {
              "error": "invalid domain or IP address",
              "domain": "not a host!!",
              "scanned_at": "2026-08-26T10:00:00.000000+00:00"
            }
          ],
          "successful": 2
        }
      }
    },
    "/ciphers": {
      "get": {
        "summary": "Ciphers Route",
        "description": "Enumerate all cipher suites a server supports for a given TLS version (TLS 1.2 or TLS 1.3) by testing every locally available cipher suite in parallel. The API builds a list of cipher suite names from the local openssl installation, then attempts a handshake for each one (up to `limit` attempts) using a thread pool of 8 parallel workers. Only suites the server actually accepts are returned in the `supported` array. This is the most resource-intensive endpoint \u2014 it makes dozens of TLS handshakes per call. Requires the openssl CLI on the server.",
        "operationId": "ssl-tls-security-analyzer_get_ciphers",
        "tags": [
          "Ciphers"
        ],
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "Target domain or hostname.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tls_version",
            "in": "query",
            "required": false,
            "description": "Which TLS version to test suites for. Accepts `TLSv1.2` or `TLSv1.3`.",
            "schema": {
              "type": "string",
              "default": "TLSv1.2"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Maximum number of suites to test. Range: 1\u2013250.",
            "schema": {
              "type": "integer",
              "default": 100
            }
          },
          {
            "name": "port",
            "in": "query",
            "required": false,
            "description": "Port to connect to.",
            "schema": {
              "type": "integer",
              "default": 443
            }
          },
          {
            "name": "timeout",
            "in": "query",
            "required": false,
            "description": "Per-connection timeout in seconds.",
            "schema": {
              "type": "integer",
              "default": 5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "notes": [],
                    "tested": 50,
                    "supported": [
                      "ECDHE-RSA-AES256-GCM-SHA384",
                      "ECDHE-RSA-CHACHA20-POLY1305"
                    ],
                    "tls_version": "TLSv1.2",
                    "supported_count": 2
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "notes": [],
          "tested": 50,
          "supported": [
            "ECDHE-RSA-AES256-GCM-SHA384",
            "ECDHE-RSA-CHACHA20-POLY1305"
          ],
          "tls_version": "TLSv1.2",
          "supported_count": 2
        }
      }
    },
    "/cipher/check": {
      "get": {
        "summary": "Cipher Check Route",
        "description": "Test whether a server supports one specific cipher suite with a single TLS handshake. Returns `supported: true` if the server negotiated the cipher, or `supported: false` if it rejected it. This is a fast, lightweight endpoint \u2014 one handshake, one result. Useful for verifying compliance with specific security standards, checking whether a particular cipher is available on a server, answering pinning questions, and debugging TLS handshake failures. Works for both TLS 1.2 and TLS 1.3 suites.",
        "operationId": "ssl-tls-security-analyzer_get_cipher_check",
        "tags": [
          "Cipher"
        ],
        "parameters": [
          {
            "name": "domain",
            "in": "query",
            "required": true,
            "description": "Target domain or hostname.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cipher",
            "in": "query",
            "required": true,
            "description": "Cipher suite name to test. Must contain only letters, numbers, underscores, and hyphens.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tls_version",
            "in": "query",
            "required": false,
            "description": "TLS version to test on. Must match the cipher's protocol. `TLSv1.2` or `TLSv1.3`.",
            "schema": {
              "type": "string",
              "default": "TLSv1.2"
            }
          },
          {
            "name": "port",
            "in": "query",
            "required": false,
            "description": "Port to connect to.",
            "schema": {
              "type": "integer",
              "default": 443
            }
          },
          {
            "name": "timeout",
            "in": "query",
            "required": false,
            "description": "Per-connection timeout in seconds.",
            "schema": {
              "type": "integer",
              "default": 5
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "example": {
                    "note": null,
                    "cipher": "ECDHE-RSA-AES256-GCM-SHA384",
                    "supported": true,
                    "tls_version": "TLSv1.2"
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client error"
          },
          "5XX": {
            "description": "Upstream or gateway error"
          },
          "503": {
            "description": "No live upstream is configured. Sample responses are preview-only."
          }
        },
        "x-dakidarts-execution-status": "source-only",
        "x-dakidarts-source-contract": true,
        "x-dakidarts-sample-response": {
          "note": null,
          "cipher": "ECDHE-RSA-AES256-GCM-SHA384",
          "supported": true,
          "tls_version": "TLSv1.2"
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "X-API-Key"
      }
    }
  },
  "security": [
    {
      "ApiKeyAuth": []
    }
  ]
}