{
    "openapi": "3.1.0",
    "info": {
        "title": "SozAI public data API",
        "version": "1.0.0",
        "summary": "Keyless JSON about subtitle formats, the free tools on sozai.app, the transcript library and the product itself.",
        "description": "Read-only, keyless and CORS-open. Every response is a static JSON document regenerated daily from the same source the pages render from.\n\nThere is no authentication because there is nothing here to authenticate: no endpoint writes, spends, or reads anything about a user. Licensed CC BY 4.0 — reuse it, and attribute SozAI with a link.",
        "license": {
            "name": "Creative Commons Attribution 4.0 International",
            "identifier": "CC-BY-4.0",
            "url": "https://creativecommons.org/licenses/by/4.0/"
        },
        "contact": {
            "name": "Vast Flow, LLP",
            "url": "https://sozai.app/contacts/"
        }
    },
    "servers": [
        {
            "url": "https://sozai.app"
        }
    ],
    "paths": {
        "/api/v1/tools.json": {
            "get": {
                "operationId": "getTools",
                "summary": "Free tools on sozai.app",
                "description": "Every free tool sozai.app publishes: what it converts, what it produces, whether it runs in the visitor's browser, and the page it lives on.",
                "responses": {
                    "200": {
                        "description": "The dataset.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/subtitle-formats.json": {
            "get": {
                "operationId": "getSubtitleFormats",
                "summary": "Subtitle format reference",
                "description": "What each subtitle format can express, how its timestamps are written, and what is lost converting it to another.",
                "responses": {
                    "200": {
                        "description": "The dataset.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/transcript-library.json": {
            "get": {
                "operationId": "getTranscriptLibrary",
                "summary": "SozAI transcript library — index",
                "description": "Facets and counts over the YouTube transcripts published at sozai.app: how many there are, what they are about, what language they are in, and how to search them. The transcripts themselves are not in this file.",
                "responses": {
                    "200": {
                        "description": "The dataset.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/product.json": {
            "get": {
                "operationId": "getProduct",
                "summary": "SozAI — what the product does",
                "description": "The capabilities of the SozAI transcription app and the free web tools, each with the page that documents it, plus the limits of the free tier and an explicit list of what is not included.",
                "responses": {
                    "200": {
                        "description": "The dataset.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/index.json": {
            "get": {
                "operationId": "getIndex",
                "summary": "Entry point listing every dataset.",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/status.json": {
            "get": {
                "operationId": "getStatus",
                "summary": "When each dataset was last rebuilt, and its row count.",
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
