{
  "manifest_version": "1.2",
  "name": "SHIFT_",
  "description": "SHIFT_ is an agentic-first, multi-persona platform designed to power the next generation of independent service professionals and contractors. Montreal-built, Canada-only at launch. $1 per booking, no subscription, no listing fee, no commission.",
  "version": "1.2",
  "last_updated": "2026-09-03",
  "url": "https://shiftsyndicate.ca",
  "contact": "hello@shiftsyndicate.ca",
  "logo": "https://shiftsyndicate.ca/images/shift-logo.png",
  "category": [
    "beauty",
    "wellness",
    "booking",
    "marketplace",
    "professional-services"
  ],
  "region": "CA",
  "language": [
    "en"
  ],
  "capabilities": {
    "booking": true,
    "professional_search": true,
    "availability_check": true,
    "booking_management": true,
    "professional_tools": true,
    "ai_assistant": true,
    "voice_assistant": true,
    "payments": true,
    "notifications": true,
    "mobile_apps": true,
    "two_sided_ratings": true,
    "venue_space_booking": true,
    "account_deletion": true,
    "report_and_block": true,
    "client_calling_card": true,
    "referrals": true
  },
  "ai_assistant": {
    "name": "Agent Shift",
    "description": "AI booking assistant running on frontier LLMs, with voice and text interfaces. Public access available — no authentication required to chat. Voice uses a speech-to-text → agent loop → text-to-speech cascade pipeline.",
    "chat_endpoint": "https://shiftsyndicate.ca/chat",
    "voice_endpoint": "https://shiftsyndicate.ca/voice",
    "public_access": true,
    "authenticated_features": [
      "create_booking",
      "cancel_booking",
      "view_bookings",
      "manage_schedule",
      "view_client_roster",
      "view_metrics"
    ]
  },
  "api": {
    "status": "live",
    "version": "v1",
    "base_url": "https://shiftsyndicate.ca/api/v1",
    "documentation": "https://shiftsyndicate.ca/api/v1/docs",
    "endpoints": [
      "GET /professionals",
      "GET /professionals/{id}",
      "GET /professionals/{id}/availability",
      "POST /bookings",
      "GET /bookings/{id}",
      "GET /bookings"
    ]
  },
  "authentication": {
    "methods": [
      {
        "type": "api_key",
        "header": "X-Shift-API-Key",
        "description": "API key generated by a professional in their dashboard (Professional → Integrations). Also accepted as a Bearer token. SHA-256 hashed at rest, one-time display, up to 10 keys per account, individually revocable."
      },
      {
        "type": "device_code",
        "status": "live",
        "description": "Interactive sign-in for AI agents (start_login / check_login MCP tools). Returns a short code + URL; the user authorizes in a browser, then the agent receives a session_key for user-delegated and professional tools. No long-lived credential is shared with the agent."
      },
      {
        "type": "bearer_user_token",
        "header": "Authorization",
        "description": "Firebase ID token for authenticated user actions (e.g. direct create_booking)."
      },
      {
        "type": "oauth2",
        "status": "planned",
        "description": "OAuth 2.0 authorization code flow for user-delegated agent access (Q4 2026)."
      }
    ],
    "end_user_sign_in": [
      "email_password",
      "google",
      "apple"
    ]
  },
  "agent_protocols": {
    "mcp": {
      "status": "live",
      "endpoint": "https://mcp.shiftsyndicate.ca/mcp",
      "description": "Remote MCP server — connect from Claude Desktop's custom connector dialog or any MCP-compatible client. Full tool input schemas (parameters, types, required fields) are served by the MCP server itself during the tools/list handshake; the lists below are advertised names by access tier.",
      "tools": {
        "public": [
          "search_professionals",
          "get_professional",
          "get_services",
          "check_availability",
          "get_platform_info",
          "get_faq",
          "list_sectors",
          "get_quick_links",
          "start_login",
          "check_login"
        ],
        "api_key": [
          "get_booking",
          "list_bookings"
        ],
        "user_token": [
          "create_booking"
        ],
        "session": [
          "create_booking_with_session",
          "list_bookings_with_session",
          "cancel_booking",
          "get_my_schedule",
          "get_client_roster",
          "get_pro_metrics",
          "update_availability",
          "sign_out",
          "ask_agent_shift",
          "run_platform_command",
          "accept_booking",
          "decline_booking",
          "list_my_invoices",
          "get_my_professionals",
          "get_balance_owed"
        ]
      },
      "write_tools": [
        "create_booking",
        "create_booking_with_session",
        "cancel_booking",
        "update_availability",
        "accept_booking",
        "decline_booking"
      ],
      "human_in_the_loop": "All booking creation and cancellation require an authenticated session and explicit user confirmation before execution.",
      "key_url": "https://shiftsyndicate.ca/professional/integrations"
    },
    "a2a": {
      "status": "planned",
      "description": "Google Agent-to-Agent protocol support for cross-platform agent negotiation.",
      "estimated": "Q4 2026"
    }
  },
  "booking_workflow": {
    "steps": [
      "Search professionals by specialty/location",
      "Get profile, services, and pricing",
      "Check real-time availability",
      "Authenticate the user (device-code sign-in or Bearer token)",
      "Create booking (with explicit user confirmation)",
      "Receive confirmation via SMS, email, and in-app notification",
      "Optional: cancel or manage the booking"
    ],
    "confirmation_channels": [
      "sms",
      "email",
      "in_app"
    ]
  },
  "data": {
    "llms_txt": "https://shiftsyndicate.ca/llms.txt",
    "robots_txt": "https://shiftsyndicate.ca/robots.txt",
    "sitemap": "https://shiftsyndicate.ca/sitemap.xml",
    "privacy_policy": "https://shiftsyndicate.ca/privacy",
    "terms_of_service": "https://shiftsyndicate.ca/terms"
  },
  "client_access": {
    "model": "invitation_or_professional_link",
    "description": "Clients join through their professional: an invitation code/link, a booking link or QR the professional shares (starting a booking creates the account), or a referral link from one of that professional's clients. No open walk-in client registration. Professionals and organizations self-register and are approved by SHIFT."
  },
  "apps": {
    "web": "https://shiftsyndicate.ca",
    "ios": "TestFlight beta",
    "android": "Google Play internal testing",
    "public_launch": "v1.0",
    "languages_shipped": [
      "en"
    ],
    "languages_in_progress": [
      "fr"
    ]
  }
}
