{
  "schema_version": "1.0",
  "name": "Sloppybee",
  "description": "Create shareable task lists instantly. No signup required.",
  "logo_url": "https://sloppybee.com/sloppybee-logo-redesigned.png",
  "contact_email": "support@sloppybee.com",
  "homepage": "https://sloppybee.com",
  "api": {
    "type": "openapi",
    "url": "https://sloppybee.com/api/openapi.yaml",
    "base_url": "https://jividmjmugtygaqtigml.supabase.co/functions/v1"
  },
  "authentication": {
    "type": "bearer",
    "header": "Authorization",
    "key_prefix": "sb_live_",
    "obtain_key_url": "https://sloppybee.com/developers#get-api-key",
    "agent_self_register_url": "https://jividmjmugtygaqtigml.supabase.co/functions/v1/agent-register"
  },
  "tools": [
    {
      "name": "register_agent",
      "description": "Self-register as an AI agent and receive a scoped sb_agent_ API key (20 req/hour, expires in 7 days). No email or captcha required.",
      "endpoint": "/agent-register",
      "method": "POST"
    },
    {
      "name": "create_list",
      "description": "Create a shareable task list with optional AI-generated tasks",
      "endpoint": "/api-v1-lists-create",
      "method": "POST"
    },
    {
      "name": "get_list",
      "description": "Retrieve an existing task list by its slug",
      "endpoint": "/api-v1-lists-get",
      "method": "POST"
    },
    {
      "name": "generate_tasks",
      "description": "Generate task suggestions using AI without creating a list",
      "endpoint": "/api-v1-tasks-generate",
      "method": "POST"
    }
  ],
  "integrations": {
    "openai_plugin": "https://sloppybee.com/.well-known/ai-plugin.json",
    "openai_tools": "https://sloppybee.com/api/openai-tools.json",
    "anthropic_tools": "https://sloppybee.com/api/anthropic-tools.json",
    "google_tools": "https://sloppybee.com/api/google-tools.json",
    "langchain_tools": "https://sloppybee.com/api/langchain-tools.json",
    "vercel_ai_tools": "https://sloppybee.com/api/vercel-ai-tools.json",
    "mistral_tools": "https://sloppybee.com/api/mistral-tools.json",
    "agent_handshake": "https://jividmjmugtygaqtigml.supabase.co/functions/v1/agent-handshake",
    "mcp_server_hosted": "https://jividmjmugtygaqtigml.supabase.co/functions/v1/mcp-server",
    "mcp_server_npm": "npm:@sloppybee/mcp-server",
    "mcp_server_github": "https://github.com/walter7007/mcp-server",
    "llm_context": "https://sloppybee.com/llm.txt",
    "llm_full": "https://sloppybee.com/llm-full.txt"
  },
  "rate_limits": {
    "free_tier": "100 requests/hour",
    "info": "Contact support@sloppybee.com for higher limits"
  },
  "conventions": {
    "idempotency": {
      "header": "Idempotency-Key",
      "applies_to": ["/api-v1-lists-create"],
      "ttl_hours": 24,
      "min_length": 8,
      "max_length": 200,
      "recommended_format": "uuid-v4",
      "replay_indicator_header": "Idempotent-Replay",
      "description": "Send the same Idempotency-Key with a retried request to receive the original response without creating a duplicate. Replays return the header `Idempotent-Replay: true` and `receipt.idempotent_replay: true`."
    },
    "retry_after": {
      "header": "Retry-After",
      "unit": "seconds",
      "returned_on_status": [429],
      "description": "When rate-limited, agents should wait `Retry-After` seconds before retrying."
    },
    "request_id": {
      "response_header": "X-Request-Id",
      "body_field": "receipt.request_id",
      "description": "Every response carries a unique request id. Use it for logs, audit, and support correspondence."
    },
    "receipt": {
      "body_field": "receipt",
      "fields": [
        "request_id",
        "endpoint",
        "timestamp",
        "duration_ms",
        "api_key_prefix",
        "api_key_type",
        "idempotent_replay"
      ],
      "description": "Machine-readable audit block returned with every successful response so agents can prove what they did."
    }
  },
  "capabilities": [
    "task-list-creation",
    "ai-task-generation",
    "shareable-urls",
    "password-protection",
    "real-time-collaboration",
    "agent-self-registration",
    "idempotent-writes",
    "request-receipts",
    "retry-after-headers"
  ]
}
