Every API here is available over the APIs.io API and to AI agents over MCP.
{
"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, reference clients, 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"
}
},
"clients": {
"type": "array",
"items": {
"type": "string"
},
"description": "Reference brands shown on gingerlive.io."
},
"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/"
}
}