{
    "openapi": "3.1.0",
    "info": {
        "title": "GingerLive public API",
        "summary": "Read-only public facts about GingerLive livestream advertising.",
        "description": "Read-only HTTP API for GingerLive. Returns the same public company facts, ad formats, network stats, campaign case studies, and streamer-program information as the GingerLive MCP server.\n\nThere is no write API, no campaign-management API, no webhooks, and no API keys. To start a campaign, a human emails info@gingerlive.io or uses https://gingerlive.io/brands/#contact.\n\nMCP (Streamable HTTP, no auth): https://mcp.gingerlive.io/mcp\nHuman docs: https://gingerlive.io/developers/",
        "version": "1.0.0",
        "contact": {
            "name": "GingerLive",
            "email": "info@gingerlive.io",
            "url": "https://gingerlive.io/contact/"
        },
        "license": {
            "name": "Public facts; all rights reserved on the product",
            "url": "https://gingerlive.io/privacy/"
        }
    },
    "servers": [
        {
            "url": "https://gingerlive.io",
            "description": "Production"
        }
    ],
    "tags": [
        {
            "name": "Company",
            "description": "Who GingerLive is and how to reach the team."
        },
        {
            "name": "Offering",
            "description": "Ad formats, network reach, and the streamer program."
        },
        {
            "name": "Evidence",
            "description": "Published campaign case studies."
        },
        {
            "name": "Meta",
            "description": "This specification."
        }
    ],
    "paths": {
        "/api/v1/company": {
            "get": {
                "operationId": "getCompanyOverview",
                "tags": [
                    "Company"
                ],
                "summary": "Company overview",
                "description": "What GingerLive is: positioning, platforms, contact, headquarters, and canonical site links. Equivalent to the MCP tool get_company_overview.",
                "responses": {
                    "200": {
                        "description": "Company overview.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CompanyOverview"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "The request was malformed (bad path or parameter).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No resource at this path (or unknown case-study slug).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "405": {
                        "description": "Method not allowed. Public API is GET/HEAD/OPTIONS only.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "406": {
                        "description": "Accept header cannot be satisfied. Send application/json or */*.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/stats": {
            "get": {
                "operationId": "getNetworkStats",
                "tags": [
                    "Offering"
                ],
                "summary": "Network reach stats",
                "description": "Public network numbers: streamer count, annual unique reach, hours watched, view-through rate, plus measurement partners. Equivalent to the MCP tool get_network_stats.",
                "responses": {
                    "200": {
                        "description": "Network stats and measurement partners.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/NetworkStatsResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "The request was malformed (bad path or parameter).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No resource at this path (or unknown case-study slug).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "405": {
                        "description": "Method not allowed. Public API is GET/HEAD/OPTIONS only.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "406": {
                        "description": "Accept header cannot be satisfied. Send application/json or */*.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/formats": {
            "get": {
                "operationId": "listAdFormats",
                "tags": [
                    "Offering"
                ],
                "summary": "Livestream ad formats",
                "description": "Ad formats GingerLive offers to brands, with format badges (unskippable, adblock-safe, etc.). Equivalent to the MCP tool list_ad_formats.",
                "responses": {
                    "200": {
                        "description": "Ad formats.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AdFormatsResponse"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "The request was malformed (bad path or parameter).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No resource at this path (or unknown case-study slug).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "405": {
                        "description": "Method not allowed. Public API is GET/HEAD/OPTIONS only.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "406": {
                        "description": "Accept header cannot be satisfied. Send application/json or */*.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/case-studies": {
            "get": {
                "operationId": "listCaseStudies",
                "tags": [
                    "Evidence"
                ],
                "summary": "List campaign case studies",
                "description": "Published GingerLive campaign case studies with slug, title, date, excerpt and URL. Call getCaseStudy with a slug for the full write-up. Equivalent to the MCP tool list_case_studies.",
                "responses": {
                    "200": {
                        "description": "Case study index.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CaseStudyList"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "The request was malformed (bad path or parameter).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No resource at this path (or unknown case-study slug).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "405": {
                        "description": "Method not allowed. Public API is GET/HEAD/OPTIONS only.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "406": {
                        "description": "Accept header cannot be satisfied. Send application/json or */*.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/case-studies/{slug}": {
            "get": {
                "operationId": "getCaseStudy",
                "tags": [
                    "Evidence"
                ],
                "summary": "Get one case study",
                "description": "Full write-up for one published case study, identified by the slug returned from listCaseStudies. Equivalent to the MCP tool get_case_study.",
                "parameters": [
                    {
                        "name": "slug",
                        "in": "path",
                        "required": true,
                        "description": "Case-study slug, lowercase hyphenated, e.g. turknet-x-gingerlive-case-study-gen-z-livestream-advertising-campaign.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[a-z0-9-]+$",
                            "minLength": 1,
                            "maxLength": 200
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One case study.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CaseStudy"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "The request was malformed (bad path or parameter).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No resource at this path (or unknown case-study slug).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "405": {
                        "description": "Method not allowed. Public API is GET/HEAD/OPTIONS only.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "406": {
                        "description": "Accept header cannot be satisfied. Send application/json or */*.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/streamer-program": {
            "get": {
                "operationId": "getStreamerProgramInfo",
                "tags": [
                    "Offering"
                ],
                "summary": "Streamer monetization program",
                "description": "How a streamer joins and monetizes with GingerLive: cost, steps, platforms, and the sign-up URL. Equivalent to the MCP tool get_streamer_program_info.",
                "responses": {
                    "200": {
                        "description": "Streamer program.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/StreamerProgram"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "The request was malformed (bad path or parameter).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No resource at this path (or unknown case-study slug).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "405": {
                        "description": "Method not allowed. Public API is GET/HEAD/OPTIONS only.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "406": {
                        "description": "Accept header cannot be satisfied. Send application/json or */*.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/openapi.json": {
            "get": {
                "operationId": "getOpenApiSpec",
                "tags": [
                    "Meta"
                ],
                "summary": "OpenAPI 3.1 specification",
                "description": "This document. Also available at /api/v1/openapi.json. Use it for LLM function-calling: every operation has a unique operationId, a description, typed parameters, and response schemas.",
                "responses": {
                    "200": {
                        "description": "OpenAPI 3.1 document.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "The request was malformed (bad path or parameter).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No resource at this path (or unknown case-study slug).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "405": {
                        "description": "Method not allowed. Public API is GET/HEAD/OPTIONS only.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "406": {
                        "description": "Accept header cannot be satisfied. Send application/json or */*.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v1/openapi.json": {
            "get": {
                "operationId": "getOpenApiSpecAlias",
                "tags": [
                    "Meta"
                ],
                "summary": "OpenAPI 3.1 specification (alias)",
                "description": "Alias of GET /openapi.json so agents that look under /api/ also find the spec.",
                "responses": {
                    "200": {
                        "description": "OpenAPI 3.1 document.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    },
                    "400": {
                        "description": "The request was malformed (bad path or parameter).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "No resource at this path (or unknown case-study slug).",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "405": {
                        "description": "Method not allowed. Public API is GET/HEAD/OPTIONS only.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    },
                    "406": {
                        "description": "Accept header cannot be satisfied. Send application/json or */*.",
                        "content": {
                            "application/problem+json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Problem"
                                }
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "Problem": {
                "type": "object",
                "required": [
                    "type",
                    "title",
                    "status",
                    "detail",
                    "code",
                    "hint"
                ],
                "properties": {
                    "type": {
                        "type": "string",
                        "format": "uri",
                        "description": "URI identifying this problem type."
                    },
                    "title": {
                        "type": "string"
                    },
                    "status": {
                        "type": "integer"
                    },
                    "detail": {
                        "type": "string"
                    },
                    "code": {
                        "type": "string",
                        "description": "Stable machine-readable error code."
                    },
                    "instance": {
                        "type": "string"
                    },
                    "hint": {
                        "type": "string",
                        "description": "What the client should do next."
                    }
                }
            },
            "CompanyOverview": {
                "type": "object",
                "required": [
                    "name",
                    "summary",
                    "platforms",
                    "contactEmail"
                ],
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "legalName": {
                        "type": "string"
                    },
                    "summary": {
                        "type": "string"
                    },
                    "platforms": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "contactEmail": {
                        "type": "string",
                        "format": "email"
                    },
                    "headquarters": {
                        "type": "string"
                    },
                    "social": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        }
                    },
                    "links": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        }
                    },
                    "measurement": {
                        "type": "object"
                    }
                }
            },
            "NetworkStatsResponse": {
                "type": "object",
                "required": [
                    "stats"
                ],
                "properties": {
                    "stats": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "required": [
                                "value",
                                "label"
                            ],
                            "properties": {
                                "value": {
                                    "type": "string"
                                },
                                "label": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "measurement": {
                        "type": "object"
                    }
                }
            },
            "AdFormatsResponse": {
                "type": "object",
                "required": [
                    "formats"
                ],
                "properties": {
                    "formats": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "required": [
                                "title",
                                "description"
                            ],
                            "properties": {
                                "title": {
                                    "type": "string"
                                },
                                "description": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "badges": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "CaseStudyListItem": {
                "type": "object",
                "required": [
                    "slug",
                    "title",
                    "url"
                ],
                "properties": {
                    "slug": {
                        "type": "string"
                    },
                    "title": {
                        "type": "string"
                    },
                    "url": {
                        "type": "string",
                        "format": "uri"
                    },
                    "date": {
                        "type": "string"
                    },
                    "excerpt": {
                        "type": "string"
                    }
                }
            },
            "CaseStudyList": {
                "type": "object",
                "required": [
                    "caseStudies"
                ],
                "properties": {
                    "caseStudies": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CaseStudyListItem"
                        }
                    }
                }
            },
            "CaseStudy": {
                "type": "object",
                "required": [
                    "slug",
                    "title",
                    "url",
                    "body"
                ],
                "properties": {
                    "slug": {
                        "type": "string"
                    },
                    "title": {
                        "type": "string"
                    },
                    "url": {
                        "type": "string",
                        "format": "uri"
                    },
                    "date": {
                        "type": "string"
                    },
                    "body": {
                        "type": "string",
                        "description": "Markdown write-up."
                    }
                }
            },
            "StreamerProgram": {
                "type": "object",
                "required": [
                    "cost",
                    "signupUrl"
                ],
                "properties": {
                    "cost": {
                        "type": "string"
                    },
                    "howItWorks": {
                        "type": "array",
                        "items": {
                            "type": "object"
                        }
                    },
                    "platforms": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "signupUrl": {
                        "type": "string",
                        "format": "uri"
                    },
                    "moreInfoUrl": {
                        "type": "string",
                        "format": "uri"
                    }
                }
            }
        }
    },
    "externalDocs": {
        "description": "GingerLive developer resources",
        "url": "https://gingerlive.io/developers/"
    }
}
