{
  "schema": "agent-catalog/1.0",
  "name": "NetShow.AI",
  "version": "1.0.0",
  "description": "AI-native agent building platform. Build, deploy, and manage AI agents powered by OpenAI GPT-5.4, Anthropic Claude 4.6, and Google Gemini.",
  "homepage": "https://app.netshow.pro",
  "documentation": "https://app.netshow.pro/docs/api-reference",
  "openapi": "https://app.netshow.pro/openapi.yaml",
  "catalog_url": "https://app.netshow.pro/agent-catalog.json",
  "updated_at": "2026-03-10T00:00:00Z",
  "contact": {
    "url": "https://app.netshow.pro",
    "support": "https://app.netshow.pro/dashboard"
  },
  "authentication": {
    "type": "bearer",
    "description": "Laravel Sanctum Bearer token. Obtain from Settings → API Tokens at https://app.netshow.pro or via POST /api/user/login.",
    "header": "Authorization",
    "format": "Bearer <token>"
  },
  "base_urls": {
    "production": "https://app.netshow.pro/api",
    "development": "https://dev.netshow.pro/api"
  },
  "providers": [
    {
      "name": "openai",
      "display_name": "OpenAI",
      "models": ["gpt-5.2", "gpt-5.4", "gpt-realtime-1.5"],
      "capabilities": ["chat", "voice_realtime", "reasoning", "vision"]
    },
    {
      "name": "anthropic",
      "display_name": "Anthropic",
      "models": ["claude-sonnet-4-6", "claude-opus-4-6"],
      "capabilities": ["chat", "tools", "thinking", "long_context"]
    },
    {
      "name": "google",
      "display_name": "Google",
      "models": ["gemini"],
      "capabilities": ["multimodal", "long_context"]
    },
    {
      "name": "elevenlabs",
      "display_name": "ElevenLabs",
      "capabilities": ["tts", "voice_cloning", "lip_sync_timestamps"]
    },
    {
      "name": "twilio",
      "display_name": "Twilio",
      "capabilities": ["phone_calls", "sms", "media_streams"]
    }
  ],
  "capabilities": [
    {
      "id": "claude_agent_sdk",
      "name": "Claude Agent SDK",
      "category": "ai_inference",
      "description": "Send prompts to Anthropic Claude Sonnet 4.6 or Opus 4.6. Supports adaptive thinking, tool registry, named profiles, and Sonnet→Opus escalation bridge for complex tasks.",
      "endpoints": [
        {
          "method": "POST",
          "path": "/api/anthropic/prompt",
          "summary": "Send a prompt to Claude",
          "auth": "bearer"
        },
        {
          "method": "POST",
          "path": "/api/anthropic/tools/execute",
          "summary": "Execute a single Claude tool_use block",
          "auth": "bearer"
        },
        {
          "method": "POST",
          "path": "/api/anthropic/tools/batch",
          "summary": "Execute multiple Claude tool_use blocks in sequence",
          "auth": "bearer"
        }
      ],
      "profiles": [
        { "name": "sonnetFast", "model": "claude-sonnet-4-6", "use_case": "Latency-sensitive" },
        { "name": "sonnetBalanced", "model": "claude-sonnet-4-6", "use_case": "General-purpose (default)" },
        { "name": "sonnetStrong", "model": "claude-sonnet-4-6", "use_case": "Complex coding, debugging" },
        { "name": "opusDeep", "model": "claude-opus-4-6", "use_case": "Deep architecture, long-horizon" }
      ],
      "features": ["adaptive_thinking", "tool_use", "sonnet_to_opus_bridge", "batch_tools"]
    },
    {
      "id": "openai_chat",
      "name": "OpenAI Chat Proxy",
      "category": "ai_inference",
      "description": "Server-side proxy for OpenAI chat completions. API keys never exposed to browser. Returns raw OpenAI response shape.",
      "endpoints": [
        {
          "method": "POST",
          "path": "/api/ai/chat",
          "summary": "OpenAI chat completions (GPT-5.2 default)",
          "auth": "bearer",
          "rate_limit": "30/min"
        }
      ]
    },
    {
      "id": "brain_bridge",
      "name": "Brain Bridge",
      "category": "ai_reasoning",
      "description": "Core intelligence escalation system. Routes complex questions to GPT-5.4 for deep reasoning. Used by voice agents, call center agents, and embed widgets. Returns concise, context-optimized answers.",
      "endpoints": [
        {
          "method": "POST",
          "path": "/api/chat/consult-brain",
          "summary": "Route question to GPT-5.4 for deep reasoning",
          "auth": "bearer",
          "rate_limit": "20/min"
        }
      ],
      "profiles": [
        { "name": "voice_companion", "reasoning": "low", "use_case": "Fast relational voice agent" },
        { "name": "sales_agent", "reasoning": "medium", "use_case": "Customer-facing sales" },
        { "name": "default", "reasoning": "medium", "use_case": "General-purpose" }
      ],
      "features": ["vision_support", "call_correlation", "multi_context"]
    },
    {
      "id": "voice_realtime_webrtc",
      "name": "Voice AI (WebRTC)",
      "category": "voice",
      "description": "Sub-200ms voice conversations via OpenAI Realtime API and WebRTC. Browser-based ephemeral token flow. Built-in consult_brain and consult_brain_vision tools.",
      "endpoints": [
        {
          "method": "POST",
          "path": "/api/realtime/session",
          "summary": "Create ephemeral WebRTC session token",
          "auth": "bearer",
          "rate_limit": "20/min"
        },
        {
          "method": "POST",
          "path": "/api/realtime/tool",
          "summary": "Handle tool call from browser Realtime session",
          "auth": "bearer",
          "rate_limit": "20/min"
        }
      ],
      "voices": ["alloy", "ash", "ballad", "coral", "echo", "fable", "onyx", "nova", "sage", "shimmer"],
      "features": ["brain_bridge_integration", "vision_support", "custom_personas", "instruction_injection_protection"]
    },
    {
      "id": "phone_realtime_twilio",
      "name": "Phone AI Agents (Twilio)",
      "category": "voice",
      "description": "Twilio Media Streams bridge connecting phone calls to OpenAI Realtime API for voice AI agents. Supports outbound calls, inbound webhooks, SMS tools, and call forwarding.",
      "endpoints": [
        {
          "method": "POST",
          "path": "/api/phone-realtime/initiate",
          "summary": "Initiate an outbound AI phone call",
          "auth": "bearer",
          "rate_limit": "20/min"
        },
        {
          "method": "WS",
          "path": "/api/phone-realtime/media",
          "summary": "Twilio Media Stream WebSocket (wss://)",
          "auth": "twilio_signature"
        }
      ],
      "features": ["outbound_calls", "inbound_calls", "sms_tool", "call_forwarding", "email_tool", "call_recording"]
    },
    {
      "id": "agent_management",
      "name": "Agent Management",
      "category": "platform",
      "description": "Create, configure, and manage AI agents. 300+ templates for web agents, voice agents, call center agents, and more.",
      "endpoints": [
        {
          "method": "GET",
          "path": "/api/agent/{name}",
          "summary": "Get agent configuration",
          "auth": "bearer"
        },
        {
          "method": "GET",
          "path": "/api/agent_data/{id}",
          "summary": "Get embed-safe agent config (public)",
          "auth": "none"
        },
        {
          "method": "POST",
          "path": "/api/agent/get_agent_list_zapier",
          "summary": "List agents for Zapier integration",
          "auth": "bearer"
        }
      ],
      "features": ["300_templates", "zapier_integration", "embed_tokens", "type_variants"]
    },
    {
      "id": "agent_commerce",
      "name": "Agent Commerce",
      "category": "monetization",
      "description": "Stripe-powered monetization for AI agents. Agents can sell products, subscriptions, and services. Includes wallet, transaction history, and payment rail management.",
      "endpoints": [
        {
          "method": "GET",
          "path": "/api/agent/{agentId}/commerce/status",
          "summary": "Commerce status",
          "auth": "bearer"
        },
        {
          "method": "GET",
          "path": "/api/agent/{agentId}/commerce/products",
          "summary": "List products",
          "auth": "bearer"
        },
        {
          "method": "POST",
          "path": "/api/agent/{agentId}/commerce/checkout",
          "summary": "Create Stripe checkout session",
          "auth": "bearer"
        }
      ],
      "features": ["stripe_checkout", "subscriptions", "agent_wallet", "mcp_commerce_public_api"]
    },
    {
      "id": "embed_system",
      "name": "Embeddable Widget",
      "category": "integration",
      "description": "Embed NetShow AI agents on any external website as an iframe widget. Supports voice and chat modes. Single iframe or floating JS widget.",
      "embed_url": "https://app.netshow.pro/dashboard/chats/embed_chat?token=YOUR_TOKEN",
      "parameters": {
        "token": "Agent embed token (from Widget tab in agent settings)",
        "chat_enabled": "0 = voice only, 1 = chat enabled"
      },
      "features": ["iframe_embed", "floating_js_widget", "voice_support", "chat_support", "token_based_auth"]
    },
    {
      "id": "chat_sessions",
      "name": "Chat Sessions",
      "category": "platform",
      "description": "Conversation session tracking, message storage, visitor identity resolution, and session handoff between agents.",
      "endpoints": [
        {
          "method": "POST",
          "path": "/api/create-session",
          "summary": "Create a chat session",
          "auth": "bearer",
          "rate_limit": "30/min"
        },
        {
          "method": "POST",
          "path": "/api/save-message/{sessionId}",
          "summary": "Save message to transcript",
          "auth": "bearer"
        },
        {
          "method": "GET",
          "path": "/api/session/active",
          "summary": "List active sessions",
          "auth": "bearer"
        }
      ]
    },
    {
      "id": "text_to_speech",
      "name": "Text-to-Speech & Transcription",
      "category": "voice",
      "description": "ElevenLabs TTS with word-level timestamps for avatar lip-sync. OpenAI Whisper for audio transcription.",
      "endpoints": [
        {
          "method": "POST",
          "path": "/api/avatar/tts",
          "summary": "Generate ElevenLabs speech with lip-sync timestamps",
          "auth": "none",
          "rate_limit": "10/min"
        },
        {
          "method": "GET",
          "path": "/api/avatar/voices",
          "summary": "List available ElevenLabs voices",
          "auth": "none"
        },
        {
          "method": "POST",
          "path": "/api/whisper/transcribe",
          "summary": "Transcribe audio with OpenAI Whisper",
          "auth": "bearer",
          "rate_limit": "20/min"
        }
      ]
    },
    {
      "id": "mcp_tools",
      "name": "MCP Tool Execution",
      "category": "platform",
      "description": "Model Context Protocol tool execution. Execute registered tools (web_search, calculator, code_review, etc.) and manage per-agent tool permissions.",
      "endpoints": [
        {
          "method": "POST",
          "path": "/api/mcp/server/execute_tool",
          "summary": "Execute a registered MCP tool",
          "auth": "bearer",
          "rate_limit": "30/min"
        },
        {
          "method": "GET",
          "path": "/api/mcp/server/enabled_agent_tools/{userId}/{agentId}/{agentType}",
          "summary": "Get tools enabled for a specific agent",
          "auth": "bearer"
        }
      ]
    },
    {
      "id": "workflow_automation",
      "name": "Workflow Automation",
      "category": "platform",
      "description": "Multi-step workflow automation with visual node editor, conditional logic, and execution history tracking.",
      "endpoints": [
        {
          "method": "GET",
          "path": "/api/workflows",
          "summary": "List workflows",
          "auth": "bearer"
        },
        {
          "method": "POST",
          "path": "/api/workflows",
          "summary": "Create workflow",
          "auth": "bearer"
        },
        {
          "method": "POST",
          "path": "/api/workflows/execute",
          "summary": "Execute workflow",
          "auth": "bearer"
        }
      ]
    },
    {
      "id": "live_handoff",
      "name": "Live Agent Handoff",
      "category": "call_center",
      "description": "Transfer conversations from AI to human operators. Check operator availability, request handoff, and return to AI after resolution.",
      "endpoints": [
        {
          "method": "POST",
          "path": "/api/live-handoff/request",
          "summary": "Request a live human agent",
          "auth": "none",
          "rate_limit": "20/min"
        },
        {
          "method": "GET",
          "path": "/api/live-handoff/status",
          "summary": "Check operator availability",
          "auth": "none"
        }
      ]
    },
    {
      "id": "health_check",
      "name": "Health Check",
      "category": "infrastructure",
      "description": "Public health endpoint for monitoring API availability.",
      "endpoints": [
        {
          "method": "GET",
          "path": "/api/health",
          "summary": "Platform health status",
          "auth": "none"
        }
      ]
    }
  ],
  "rate_limits": {
    "description": "Rate limits use Laravel throttle middleware, counted per authenticated user (or IP for public endpoints).",
    "limits": [
      { "group": "User registration", "limit": "5/min", "auth": false },
      { "group": "Avatar TTS", "limit": "10/min", "auth": false },
      { "group": "Realtime session + tools", "limit": "20/min", "auth": true },
      { "group": "Brain Bridge", "limit": "20/min", "auth": true },
      { "group": "Live handoff", "limit": "20/min", "auth": false },
      { "group": "Whisper transcription", "limit": "20/min", "auth": true },
      { "group": "Chat sessions", "limit": "30/min", "auth": true },
      { "group": "OpenAI chat proxy", "limit": "30/min", "auth": true },
      { "group": "MCP tool execution", "limit": "30/min", "auth": true },
      { "group": "Commerce webhook (Stripe)", "limit": "60/min", "auth": false }
    ],
    "retry_header": "Retry-After",
    "retry_status": 429
  },
  "use_cases": [
    "Customer support automation",
    "Sales development representatives (AI SDR)",
    "Voice AI call center agents",
    "Lead qualification and routing",
    "Product knowledge bases",
    "Employee onboarding assistants",
    "Real estate and property management agents",
    "Healthcare appointment scheduling",
    "Legal intake and FAQ agents",
    "E-commerce shopping assistants",
    "Educational tutoring agents",
    "Developer documentation assistants"
  ],
  "integrations": [
    "Twilio (voice + SMS)",
    "Stripe (payments)",
    "ElevenLabs (voice synthesis)",
    "Zapier (workflow automation)",
    "Any website (embed widget)"
  ],
  "agent_discovery": {
    "description": "This catalog is designed to help AI agents discover and interact with NetShow.AI programmatically.",
    "machine_readable_formats": [
      {
        "format": "OpenAPI 3.1",
        "url": "https://app.netshow.pro/openapi.yaml",
        "content_type": "application/yaml"
      },
      {
        "format": "Agent Catalog JSON",
        "url": "https://app.netshow.pro/agent-catalog.json",
        "content_type": "application/json"
      }
    ],
    "quick_start": "POST https://app.netshow.pro/api/chat/consult-brain with {\"question\": \"your question\", \"agent_profile\": \"default\"} and Authorization: Bearer <token>",
    "get_token": "POST https://app.netshow.pro/api/user/login with {\"email\": \"...\", \"password\": \"...\"}"
  }
}
