{
  "openapi": "3.1.0",
  "info": {
    "title": "AI Content Drop — Public Content Surface",
    "version": "1.1.0",
    "summary": "Read-only endpoints for retrieving AI Content Drop content as plain text, markdown, or XML.",
    "description": "The unauthenticated, read-only content surface of https://aicontentdrop.com — what an AI agent or crawler reads instead of parsing HTML. No account, key, or negotiation required.\n\nThese endpoints return text, markdown, and XML rather than JSON, which is why they live in their own document: the JSON REST API (generation, account, model catalogue) is described separately at https://aicontentdrop.com/openapi.json.\n\nMarkdown convention: any public page can be retrieved as markdown either by appending `.md` to its path, or by requesting the normal URL with `Accept: text/markdown`. Both return the same body, and responses carry `Vary: Accept`.\n\nUsage rights are declared as Content Signals in /robots.txt: ai-train=yes, search=yes, ai-input=yes for crawlers that cite or link back; training-only crawlers (CCBot, Bytespider) are disallowed.",
    "contact": {
      "name": "AI Content Drop support",
      "email": "support@aicontentdrop.com",
      "url": "https://aicontentdrop.com/contact"
    },
    "license": {
      "name": "Content usage terms",
      "url": "https://aicontentdrop.com/terms-of-use"
    }
  },
  "servers": [
    {
      "url": "https://aicontentdrop.com",
      "description": "Production"
    }
  ],
  "externalDocs": {
    "description": "Site overview for agents (llms.txt)",
    "url": "https://aicontentdrop.com/llms.txt"
  },
  "tags": [
    {
      "name": "discovery",
      "description": "Site-level descriptions and crawl directives"
    },
    {
      "name": "content",
      "description": "Article and page content as markdown"
    }
  ],
  "paths": {
    "/llms.txt": {
      "get": {
        "tags": [
          "discovery"
        ],
        "operationId": "getLlmsTxt",
        "summary": "Curated site overview",
        "description": "Structured summary of what the product is, its features, pricing, and links, per the llms.txt convention (https://llmstxt.org). Start here.",
        "responses": {
          "200": {
            "description": "Plain-text overview",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/llms-full.txt": {
      "get": {
        "tags": [
          "discovery"
        ],
        "operationId": "getLlmsFullTxt",
        "summary": "Full text of every public article",
        "description": "The complete public corpus as markdown in one file — roughly 288,000 words across 148 routes, each section prefixed with its source URL. Large (about 1.8 MB); prefer a single page's .md twin when you only need one article.",
        "responses": {
          "200": {
            "description": "Concatenated markdown corpus",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/auth.md": {
      "get": {
        "tags": [
          "discovery"
        ],
        "operationId": "getAuthMd",
        "summary": "Agent registration and authentication instructions",
        "description": "What an agent may and may not do on a user's behalf, per the auth.md convention (https://auth-md.com). Read this before attempting any write, signup, or purchase.",
        "responses": {
          "200": {
            "description": "Markdown instructions",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/robots.txt": {
      "get": {
        "tags": [
          "discovery"
        ],
        "operationId": "getRobotsTxt",
        "summary": "Crawl directives and content-usage signals",
        "description": "Standard robots.txt (RFC 9309) plus Content-Signal declarations (https://contentsignals.org) stating that indexing, grounding AI answers, and model training are all permitted on public content.",
        "responses": {
          "200": {
            "description": "Crawl directives",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/sitemap.xml": {
      "get": {
        "tags": [
          "discovery"
        ],
        "operationId": "getSitemap",
        "summary": "Primary XML sitemap",
        "description": "Canonical URL list. Two further sitemaps exist: /sitemap-tools.xml (free tool pages) and /sitemap-video.xml (video objects on blog posts).",
        "responses": {
          "200": {
            "description": "Sitemap XML",
            "content": {
              "application/xml": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/blog/{slug}.md": {
      "get": {
        "tags": [
          "content"
        ],
        "operationId": "getBlogPostMarkdown",
        "summary": "One blog article as markdown",
        "description": "Markdown twin of https://aicontentdrop.com/blog/{slug}. Headings, tables, and links are preserved; navigation, scripts, and styling are stripped. Equivalent to requesting the HTML URL with `Accept: text/markdown`. Slugs are listed in /sitemap.xml.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Article slug, e.g. kling-vs-sora-comparison",
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9-]+$"
            },
            "example": "kling-vs-sora-comparison"
          }
        ],
        "responses": {
          "200": {
            "description": "Article markdown",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "No such article, or no markdown twin for it",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/tools/{slug}.md": {
      "get": {
        "tags": [
          "content"
        ],
        "operationId": "getToolPageMarkdown",
        "summary": "One free tool page as markdown",
        "description": "Markdown twin of https://aicontentdrop.com/tools/{slug}. The tools themselves are browser-side and require no account; this returns the page's explanatory content, not a callable tool.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "description": "Tool slug, e.g. hashtag-generator",
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9-]+$"
            },
            "example": "hashtag-generator"
          }
        ],
        "responses": {
          "200": {
            "description": "Tool page markdown",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "description": "No such tool, or no markdown twin for it",
            "content": {
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {}
}
