{
  "openapi": "3.1.0",
  "info": {
    "title": "captionrich public API",
    "version": "1.0.0",
    "summary": "Read-only product facts for AI agents and developers",
    "description": "Unauthenticated, CORS-enabled JSON describing captionrich: plans and limits, features, use cases, competitor comparisons, caption styles, and FAQs. Video editing itself runs in the user's browser and has no server API. See also /llms.txt, /llms-full.txt, and the MCP server at /api/mcp.",
    "contact": {
      "email": "support@captionrich.com",
      "url": "https://captionrich.com/for-agents"
    },
    "termsOfService": "https://captionrich.com/terms"
  },
  "servers": [
    {
      "url": "https://captionrich.com/api/public/v1"
    }
  ],
  "tags": [
    {
      "name": "captionrich"
    }
  ],
  "paths": {
    "/product": {
      "get": {
        "operationId": "getProduct",
        "summary": "What captionrich is, platforms, support, and links to every agent resource",
        "tags": [
          "captionrich"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Product"
                }
              }
            }
          }
        }
      }
    },
    "/plans": {
      "get": {
        "operationId": "getPlans",
        "summary": "Every plan with USD prices and the exact limits the server enforces",
        "tags": [
          "captionrich"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Plan"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/features": {
      "get": {
        "operationId": "getFeatures",
        "summary": "All editing and caption features with bullets and FAQs",
        "tags": [
          "captionrich"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Feature"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/use-cases": {
      "get": {
        "operationId": "getUseCases",
        "summary": "Workflows by platform (TikTok, Shorts, Reels) and audience (podcasters, agencies…)",
        "tags": [
          "captionrich"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UseCase"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/comparisons": {
      "get": {
        "operationId": "getComparisons",
        "summary": "Fact-based comparisons against Descript, CapCut, Veed, Submagic, Opus Clip, Zeemo, Zubtitle — including where the competitor wins",
        "tags": [
          "captionrich"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Comparison"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/caption-styles": {
      "get": {
        "operationId": "getCaptionStyles",
        "summary": "The animated caption styles available in the editor",
        "tags": [
          "captionrich"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CaptionStyle"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/faqs": {
      "get": {
        "operationId": "getFaqSet",
        "summary": "Homepage and pricing FAQs (the same text shown on the site)",
        "tags": [
          "captionrich"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FaqSet"
                }
              }
            }
          }
        }
      }
    },
    "/posts": {
      "get": {
        "operationId": "getPosts",
        "summary": "Blog posts (guides and explainers) with the full article as Markdown",
        "tags": [
          "captionrich"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Post"
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Faq": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string"
          },
          "a": {
            "type": "string"
          }
        },
        "required": [
          "q",
          "a"
        ]
      },
      "Product": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "summary": {
            "type": "string"
          },
          "platforms": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "languages": {
            "type": "string"
          },
          "captionStyleCount": {
            "type": "integer"
          },
          "support": {
            "type": "string"
          },
          "agentResources": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "format": "uri"
            }
          }
        }
      },
      "Plan": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "enum": [
              "free",
              "pro",
              "max_pro"
            ]
          },
          "name": {
            "type": "string"
          },
          "priceUsd": {
            "type": "object",
            "properties": {
              "monthly": {
                "type": "number"
              },
              "yearly": {
                "type": "number"
              }
            }
          },
          "limits": {
            "type": "object",
            "properties": {
              "videosPerMonth": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "maxVideoMinutes": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "autoClipperRunsPerMonth": {
                "type": "integer"
              },
              "autoClipperMaxSourceHours": {
                "type": "number"
              },
              "aiTokensPerMonth": {
                "type": "integer"
              },
              "cloudProjects": {
                "type": "integer"
              }
            }
          },
          "summary": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "Feature": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "lead": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "bullets": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "faqs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Faq"
            }
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "UseCase": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "group": {
            "type": "string",
            "enum": [
              "Creators",
              "Business"
            ]
          },
          "title": {
            "type": "string"
          },
          "lead": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "bullets": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "features": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "faqs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Faq"
            }
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "Comparison": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "competitor": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "quickAnswer": {
            "type": "string"
          },
          "factsVerified": {
            "type": "string"
          },
          "factsVerifiedIso": {
            "type": "string",
            "format": "date"
          },
          "table": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "label": {
                  "type": "string"
                },
                "captionrich": {
                  "type": "string"
                },
                "competitor": {
                  "type": "string"
                }
              }
            }
          },
          "captionrichWins": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "competitorWins": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "verdict": {
            "type": "string"
          },
          "autoClipper": {
            "type": "object",
            "properties": {
              "heading": {
                "type": "string"
              },
              "body": {
                "type": "string"
              }
            }
          },
          "relatedFeatures": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "faqs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Faq"
            }
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "CaptionStyle": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "category": {
            "type": "string",
            "enum": [
              "Minimal",
              "Dynamic",
              "Cinematic",
              "Trendy",
              "Energy"
            ]
          },
          "description": {
            "type": "string"
          }
        }
      },
      "Post": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "answer": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "publishedAt": {
            "type": "string",
            "format": "date"
          },
          "updatedAt": {
            "type": "string",
            "format": "date"
          },
          "keyTakeaways": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "markdown": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "FaqSet": {
        "type": "object",
        "properties": {
          "homepage": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Faq"
            }
          },
          "pricing": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Faq"
            }
          }
        }
      }
    }
  }
}