staticdata.dev
Menu
Datasets About Contact

TLS Versions

The complete lineage of SSL and TLS protocol versions — SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, and TLS 1.3 — with the year each was introduced, its defining RFC, and whether it has been formally deprecated. TLS 1.0 and 1.1 were deprecated by RFC 8996 in 2021; SSL 2.0 and 3.0 were deprecated earlier by RFCs 6176 and 7568 respectively.

Quick fetch

Stable URL. CORS-enabled. No auth.

bash
curl https://staticdata.dev/v1/tls-versions.json

Or use as a typed import: import { tlsVersions } from "https://staticdata.dev/v1/tls-versions.ts"

Formats

  • JSON 731 B

    /v1/tls-versions.json

    Open

    min: 513 B · /v1/tls-versions.min.json

  • CSV 244 B

    /v1/tls-versions.csv

    Open
  • TypeScript 931 B

    /v1/tls-versions.ts

    export const tlsVersions

    type TlsVersion = (typeof tlsVersions)[number]

    Open

Schema

Each record in the dataset has the following shape.

Schema
Field Type Description Example
version string Protocol version identifier TLS 1.3
name string Human-readable protocol name TLS 1.3
year number Year the version was published or released 2018
rfc string | null Defining RFC identifier, or null if not formally specified RFC 8446
deprecated boolean Whether the version has been formally deprecated false

Preview

First 6 records.

Data preview
versionnameyearrfcdeprecated
SSL 2.0SSL 2.01995true
SSL 3.0SSL 3.01996RFC 6101true
TLS 1.0TLS 1.01999RFC 2246true
TLS 1.1TLS 1.12006RFC 4346true
TLS 1.2TLS 1.22008RFC 5246false
TLS 1.3TLS 1.32018RFC 8446false

Showing 6 of 6. View full data:  JSON · CSV

Fetch examples

Drop-in snippets in five languages.

curl
curl -sSL https://staticdata.dev/v1/tls-versions.json | jq '.[0]'
JavaScript
import type { TlsVersion } from "https://staticdata.dev/v1/tls-versions.ts";

const res = await fetch("https://staticdata.dev/v1/tls-versions.min.json");
if (!res.ok) throw new Error(`Fetch failed: ${res.status}`);
const tlsVersions: TlsVersion[] = await res.json();
console.log(tlsVersions[0]);
Python
import urllib.request, json

with urllib.request.urlopen("https://staticdata.dev/v1/tls-versions.min.json") as r:
    tlsVersions = json.load(r)

print(tlsVersions[0])
Go
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
)

func main() {
	resp, err := http.Get("https://staticdata.dev/v1/tls-versions.min.json")
	if err != nil { panic(err) }
	defer resp.Body.Close()

	var data []map[string]any
	if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
		panic(err)
	}
	fmt.Println(data[0])
}
Rust
use serde_json::Value;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let body = ureq::get("https://staticdata.dev/v1/tls-versions.min.json").call()?.into_string()?;
    let data: Vec<Value> = serde_json::from_str(&body)?;
    println!("{:?}", data.first());
    Ok(())
}

Sources and methodology

SSL (Secure Sockets Layer) was developed by Netscape in the mid-1990s. SSL 2.0 (1995) was the first publicly released version but contained serious cryptographic weaknesses and was deprecated by RFC 6176 (2011). SSL 3.0 (1996) — documented retroactively in RFC 6101 — was a significant redesign but was rendered insecure by the POODLE attack and deprecated by RFC 7568 (2015). The IETF took over protocol development with TLS 1.0 (RFC 2246, 1999), which was largely based on SSL 3.0 with minor changes.

TLS 1.1 (RFC 4346, 2006) added protections against CBC padding attacks. TLS 1.2 (RFC 5246, 2008) introduced per-record pseudorandom function (PRF) algorithm agility, SHA-256 as the default hash, and removed reliance on MD5/SHA-1 combinations. TLS 1.3 (RFC 8446, 2018) was a major overhaul: it removed weak cipher suites and legacy features, reduced the handshake to one round-trip (with optional 0-RTT resumption), and mandated forward secrecy. RFC 8996 (2021) formally deprecated TLS 1.0 and TLS 1.1.

Data is curated from IETF RFCs and the official deprecation documents. The rfc field holds the original defining RFC; TLS 1.3 has since been republished as RFC 9846 (July 2026), which obsoletes RFC 8446 and also RFC 5246. TLS 1.2 is not deprecated as of October 2026. The rfc field for SSL 2.0 is null because it was a proprietary Netscape specification never published as an RFC; all other versions have a canonical RFC document.

Versioning

URLs under /v1/ are stable: field names and types will not change in a way that breaks consumers. Values can be corrected or records added when the upstream source changes; schema-incompatible updates ship under a new version path. See the tls-versions changelog for this dataset's history.

Related datasets

More Web datasets