{
  "specVersion": "1.0",
  "host": {
    "displayName": "PinnFeed",
    "identifier": "pinnfeed.io",
    "documentationUrl": "https://pinnfeed.io/docs",
    "logoUrl": "https://pinnfeed.io/logo.png"
  },
  "entries": [
    {
      "identifier": "urn:air:pinnfeed.io:openapi:v1",
      "displayName": "PinnFeed OpenAPI 3.1",
      "description": "REST paths under /v1 plus /mcp; WebSocket notes in x-websocket. Auth: x-api-key, Bearer, or ?key= (ps_live_...).",
      "type": "application/json",
      "url": "https://pinnfeed.io/openapi.json",
      "tags": [
        "openapi",
        "rest",
        "pinnacle",
        "odds"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms:en",
      "displayName": "llms.txt (English)",
      "description": "Agent context file: product summary, claim, docs, pricing, guides, locale indexes.",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms.txt",
      "tags": [
        "llms.txt"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms:en-full",
      "displayName": "llms-full.txt (English)",
      "description": "Full-site Markdown bundle for agents.",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms-full.txt",
      "tags": [
        "llms.txt"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms:es",
      "displayName": "llms-es.txt",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms-es.txt",
      "tags": [
        "llms.txt",
        "es"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms:es-full",
      "displayName": "llms-es-full.txt",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms-es-full.txt",
      "tags": [
        "llms.txt",
        "es"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms:pt-br",
      "displayName": "llms-pt-br.txt",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms-pt-br.txt",
      "tags": [
        "llms.txt",
        "pt-br"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms:pt-br-full",
      "displayName": "llms-pt-br-full.txt",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms-pt-br-full.txt",
      "tags": [
        "llms.txt",
        "pt-br"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms:de",
      "displayName": "llms-de.txt",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms-de.txt",
      "tags": [
        "llms.txt",
        "de"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms:de-full",
      "displayName": "llms-de-full.txt",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms-de-full.txt",
      "tags": [
        "llms.txt",
        "de"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms:it",
      "displayName": "llms-it.txt",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms-it.txt",
      "tags": [
        "llms.txt",
        "it"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms:it-full",
      "displayName": "llms-it-full.txt",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms-it-full.txt",
      "tags": [
        "llms.txt",
        "it"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms:fr",
      "displayName": "llms-fr.txt",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms-fr.txt",
      "tags": [
        "llms.txt",
        "fr"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms:fr-full",
      "displayName": "llms-fr-full.txt",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms-fr-full.txt",
      "tags": [
        "llms.txt",
        "fr"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms:ja",
      "displayName": "llms-ja.txt",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms-ja.txt",
      "tags": [
        "llms.txt",
        "ja"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms:ja-full",
      "displayName": "llms-ja-full.txt",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms-ja-full.txt",
      "tags": [
        "llms.txt",
        "ja"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:pricing:md",
      "displayName": "pricing.md",
      "description": "Structured plan prices and limits in Markdown (EUR, VAT included).",
      "type": "text/markdown",
      "url": "https://pinnfeed.io/pricing.md",
      "tags": [
        "pricing"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:mcp:pinnfeed",
      "displayName": "PinnFeed MCP (Streamable HTTP)",
      "description": "Endpoint: POST https://pinnfeed.io/mcp (Streamable HTTP). Auth with the same API key schemes as REST: header x-api-key, Authorization: Bearer ps_live_..., or query ?key=. Tool list and shapes: /docs/mcp. No separate MCP server-card JSON is published.",
      "type": "text/html",
      "url": "https://pinnfeed.io/docs/mcp",
      "tags": [
        "mcp",
        "pinnacle",
        "odds"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:websocket:stream",
      "displayName": "PinnFeed odds WebSocket",
      "description": "Connect to wss://pinnfeed.io/v1/stream with x-api-key on the upgrade or ?key=. Builder (\u20ac99/mo) and above; Free/Hobby get 403 plan_lacks_ws. Protocol: /docs/websocket.",
      "type": "text/html",
      "url": "https://pinnfeed.io/docs/websocket",
      "tags": [
        "websocket",
        "pinnacle",
        "odds"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:docs:index",
      "displayName": "PinnFeed docs",
      "description": "Quickstart, authentication, WebSocket, schema, REST, MCP, limits, errors.",
      "type": "text/html",
      "url": "https://pinnfeed.io/docs",
      "tags": [
        "docs"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:skill:pinnfeed",
      "displayName": "PinnFeed product skill",
      "description": "Agent-facing skill: authenticate, call REST/WebSocket/MCP, respect plan limits, honest pricing claim.",
      "type": "application/agent-skills+md",
      "url": "https://pinnfeed.io/SKILL.md",
      "tags": [
        "skill",
        "agents"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:llms-api",
      "displayName": "llms-api.txt (compact API)",
      "description": "Endpoints, WebSocket, MCP, errors and plan limits for coding agents.",
      "type": "text/plain",
      "url": "https://pinnfeed.io/llms-api.txt",
      "tags": [
        "llms.txt",
        "api"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:agents-md",
      "displayName": "AGENTS.md",
      "description": "Drop-in agent context file for Cursor/Codex-style repos.",
      "type": "text/markdown",
      "url": "https://pinnfeed.io/AGENTS.md",
      "tags": [
        "agents"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:page:vibe-coding",
      "displayName": "Vibe coding hub",
      "description": "Prompts for Cursor, Claude, ChatGPT, Lovable, Replit, Bolt plus MCP snippets.",
      "type": "text/html",
      "url": "https://pinnfeed.io/vibe-coding",
      "tags": [
        "guides",
        "ai"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:page:quickstart-public",
      "displayName": "60-second quickstart",
      "description": "Key to first odds in curl, Python, Node and Sheets.",
      "type": "text/html",
      "url": "https://pinnfeed.io/quickstart",
      "tags": [
        "guides"
      ]
    },
    {
      "identifier": "urn:air:pinnfeed.io:postman",
      "displayName": "Postman collection",
      "description": "OpenAPI-derived REST + MCP requests with apiKey variable.",
      "type": "application/json",
      "url": "https://pinnfeed.io/postman/pinnfeed.postman_collection.json",
      "tags": [
        "openapi",
        "postman"
      ]
    }
  ]
}
