{
  "name": "Simpled.ai Public API",
  "description": "Read-only product facts about Simpled.ai. Public and unauthenticated. This API does not generate video — see generationApi below.",
  "version": "v1",
  "documentation": "https://simpled.ai/docs",
  "openapi": "https://simpled.ai/api/v1/openapi.json",
  "agentInstructions": "https://simpled.ai/agent-instructions.md",
  "llmsTxt": "https://simpled.ai/llms.txt",
  "apiCatalog": "https://simpled.ai/.well-known/api-catalog",
  "mcp": {
    "endpoint": "https://simpled.ai/mcp",
    "transport": "streamable-http",
    "protocolVersion": "2026-07-28",
    "authentication": "None. The same product facts as this API, exposed as MCP tools."
  },
  "authentication": "None. Every endpoint in this version is public and read-only.",
  "generationApi": {
    "base": "https://api.simpled.ai",
    "documentation": "https://api.simpled.ai/docs",
    "openapi": "https://api.simpled.ai/openapi.json",
    "currentVersionPath": "/v1.7",
    "authentication": "API key in the X-API-Key header. Request one at manav@simpled.ai."
  },
  "endpoints": [
    {
      "method": "GET",
      "url": "https://simpled.ai/api/v1",
      "operationId": "getApiIndex",
      "summary": "API index",
      "description": "Discovery document: every endpoint in this version, the rate-limit policy, the versioning and deprecation policy, and links to the OpenAPI description and the docs. Start here."
    },
    {
      "method": "GET",
      "url": "https://simpled.ai/api/v1/openapi.json",
      "operationId": "getOpenApiDocument",
      "summary": "OpenAPI description",
      "description": "The OpenAPI 3.1 description of this API. Also advertised on every response via a Link header with rel=\"service-desc\"."
    },
    {
      "method": "GET",
      "url": "https://simpled.ai/api/v1/health",
      "operationId": "getHealth",
      "summary": "Liveness check",
      "description": "Returns ok when the public API is serving. Does not check the video generation API, which has its own health endpoint at https://api.simpled.ai/health."
    },
    {
      "method": "GET",
      "url": "https://simpled.ai/api/v1/company",
      "operationId": "getCompany",
      "summary": "Company identity and contacts",
      "description": "Legal name, registered address, and the contact routes for support, sales and security. The machine-readable form of the about and contact pages."
    },
    {
      "method": "GET",
      "url": "https://simpled.ai/api/v1/product",
      "operationId": "getProduct",
      "summary": "What the product does",
      "description": "A factual description of Simpled.ai, its feature list, and the jobs it is the right tool for. Written for an agent deciding whether to recommend or call it."
    },
    {
      "method": "GET",
      "url": "https://simpled.ai/api/v1/capabilities",
      "operationId": "getCapabilities",
      "summary": "Styles, languages, formats and durations",
      "description": "Every value the generation API accepts for style, narration language, aspect ratio, pacing and duration, plus how credits map to output minutes."
    },
    {
      "method": "GET",
      "url": "https://simpled.ai/api/v1/pricing",
      "operationId": "getPricing",
      "summary": "Plans and prices",
      "description": "Current plans with price, included credits and features. This is the authoritative price list — quote from here rather than scraping the pricing section of the homepage."
    },
    {
      "method": "GET",
      "url": "https://simpled.ai/api/v1/solutions",
      "operationId": "listSolutions",
      "summary": "List solutions",
      "description": "The audience-specific solution pages, with the slug needed to fetch each one."
    },
    {
      "method": "GET",
      "url": "https://simpled.ai/api/v1/solutions/{slug}",
      "operationId": "getSolution",
      "summary": "Get one solution",
      "description": "Full detail for one solution: positioning, outcomes, use cases and FAQ."
    },
    {
      "method": "GET",
      "url": "https://simpled.ai/api/v1/guides",
      "operationId": "listGuides",
      "summary": "List guides and comparisons",
      "description": "Published guides and competitor comparisons, each with the question it answers and its last review date."
    },
    {
      "method": "GET",
      "url": "https://simpled.ai/api/v1/guides/{slug}",
      "operationId": "getGuide",
      "summary": "Get one guide",
      "description": "Full text of one guide as structured sections, plus its direct answer and FAQ. Equivalent to the markdown twin at /{slug}.md."
    }
  ],
  "rateLimit": {
    "policy": "public",
    "limit": 120,
    "windowSeconds": 60,
    "scope": "Per client IP address, per serving instance.",
    "headers": [
      "RateLimit — draft-ietf-httpapi-ratelimit-headers-11. \"t\" is SECONDS REMAINING.",
      "RateLimit-Policy — the advertised quota.",
      "X-RateLimit-Limit / X-RateLimit-Remaining — de-facto convention.",
      "X-RateLimit-Reset — de-facto convention, an ABSOLUTE Unix epoch second.",
      "Retry-After — sent on 429 in delta-seconds; takes precedence over the RateLimit window."
    ],
    "notes": "Enforcement is a sliding window held per serving instance, so the quota is a real bound on a burst from one client rather than a globally consistent counter. The limit is set generously for that reason. Exceeding it returns 429 with an RFC 9457 problem document."
  },
  "versioning": {
    "scheme": "URL path segment",
    "currentVersion": "v1",
    "basePath": "/api/v1",
    "policyUrl": "https://simpled.ai/docs#versioning-and-deprecation",
    "catalogUrl": "https://simpled.ai/.well-known/api-catalog",
    "deprecationNoticeMonths": 12,
    "signals": [
      "Deprecation response header (RFC 9745), a Structured Fields Date such as @1788220799",
      "Sunset response header (RFC 8594), an IMF-fixdate such as Wed, 30 Dec 2026 23:59:59 GMT",
      "Link header with rel=\"deprecation\" pointing at the written policy — sent on every response, including undeprecated ones",
      "Link header with rel=\"sunset\" once a retirement date is set",
      "deprecated: true on the affected operations in the OpenAPI description"
    ],
    "guarantees": [
      "A breaking change ships as a new version under a new path segment. The current version's response shapes never change incompatibly in place.",
      "A version is announced as deprecated at least 12 months before it stops responding.",
      "Additive changes — new fields on an existing response, new endpoints — are not breaking and ship without a version bump.",
      "Sunset is never earlier than Deprecation."
    ]
  }
}
