{
  "$schema": "https://urbld.com/.well-known/ai-capabilities.schema.json",
  "specVersion": "0.1",
  "name": "URBLD",
  "legalName": "URBLD",
  "url": "https://urbld.com",
  "description": "URBLD is the operating system and AI-agent infrastructure layer for service businesses. It runs the full lead-to-payment lifecycle (CRM, scheduling, contracts, jobs, invoicing, payments, follow-ups) on a single connected thread and exposes those operations to AI agents through a governed capability manifest.",
  "category": "BusinessOperatingSystem",
  "audience": [
    "contractors",
    "field service businesses",
    "roofing",
    "hvac",
    "plumbing",
    "electrical",
    "general construction",
    "landscaping",
    "cleaning",
    "pest control",
    "restaurants",
    "telemarketing"
  ],
  "documentation": "https://urbld.com/docs",
  "openapi": "https://urbld.com/openapi.json",
  "sitemap": "https://urbld.com/sitemap.xml",
  "llmsTxt": "https://urbld.com/llms.txt",
  "authentication": {
    "type": "oauth2",
    "flows": ["authorization_code", "client_credentials"],
    "scopes": [
      "leads.read",
      "leads.write",
      "customers.read",
      "customers.write",
      "jobs.read",
      "jobs.write",
      "estimates.read",
      "estimates.write",
      "contracts.read",
      "contracts.write",
      "invoices.read",
      "invoices.write",
      "payments.read",
      "communications.read",
      "communications.write",
      "scheduling.read",
      "scheduling.write"
    ]
  },
  "rateLimits": {
    "defaultRequestsPerMinute": 120,
    "burst": 300,
    "notes": "Per-workspace limits scale with subscription tier. AI agents authenticated via client_credentials share the workspace bucket."
  },
  "capabilities": [
    {
      "id": "leads.capture",
      "name": "Capture Lead",
      "description": "Create a new lead with contact info, source, and intent metadata; deduplicated by phone/email inside the tenant.",
      "domain": "crm"
    },
    {
      "id": "leads.qualify",
      "name": "Qualify Lead",
      "description": "Advance a lead through the qualification workstation, log call outcomes, and route qualified leads to appointment booking."
    },
    {
      "id": "customers.upsert",
      "name": "Upsert Customer",
      "description": "Create or update a customer record with lifecycle_number continuity from the originating lead.",
      "domain": "crm"
    },
    {
      "id": "scheduling.getAvailability",
      "name": "Get Availability",
      "description": "Return open appointment slots for a given service, technician skill set, and territory, honoring business hours and existing bookings.",
      "domain": "scheduling"
    },
    {
      "id": "scheduling.book",
      "name": "Book Appointment",
      "description": "Book an appointment, assign a technician or sales rep, and trigger dispatch notifications.",
      "domain": "scheduling"
    },
    {
      "id": "estimates.create",
      "name": "Create Estimate",
      "description": "Generate a line-item estimate from a job scope, calculator output, or measurement report."
    },
    {
      "id": "contracts.send",
      "name": "Send Contract",
      "description": "Compose an e-signature contract package from an accepted estimate and route it to the customer."
    },
    {
      "id": "jobs.create",
      "name": "Create Job",
      "description": "Convert a signed contract into a job with schedule, crew, materials, and warranty terms."
    },
    {
      "id": "invoices.issue",
      "name": "Issue Invoice",
      "description": "Issue a milestone or final invoice, sync to accounts receivable, and optionally push to QuickBooks."
    },
    {
      "id": "payments.record",
      "name": "Record Payment",
      "description": "Record a customer payment or reconcile a Stripe / ACH webhook against an open invoice."
    },
    {
      "id": "followups.schedule",
      "name": "Schedule Follow-Up",
      "description": "Queue a follow-up (SMS, email, call task) tied to a lead, estimate, or job with owner assignment and PNS recovery scripts."
    },
    {
      "id": "communications.send",
      "name": "Send Communication",
      "description": "Send an SMS or email through the unified inbox, threaded to the correct lead / customer / job."
    },
    {
      "id": "communications.list",
      "name": "List Communications",
      "description": "Fetch the threaded communication history for a lead, customer, or job."
    },
    {
      "id": "jarvis.ask",
      "name": "Ask Jarvis",
      "description": "Query the Jarvis manager agent for tenant-grounded metrics, lists, or workflow assistance. All results are backed by tool calls — no hallucinated counts."
    }
  ],
  "tools": [
    {
      "id": "jarvis",
      "name": "Jarvis",
      "description": "URBLD's built-in AI manager. Grounded on the tenant's own data via a locked capability catalog with per-role authorization."
    },
    {
      "id": "governor",
      "name": "Governor",
      "description": "Executive risk engine that continuously evaluates operational KPIs and surfaces escalations."
    },
    {
      "id": "aiReceptionist",
      "name": "AI Receptionist",
      "description": "Voice and SMS receptionist that qualifies inbound leads, books appointments, and hands off to humans."
    },
    {
      "id": "aiFollowUp",
      "name": "AI Follow-Up",
      "description": "Automated PNS recovery and multi-touch follow-up engine with per-lead script selection."
    },
    {
      "id": "aiPhotoEstimator",
      "name": "AI Photo Estimator",
      "description": "Vision-based estimator that converts uploaded photos into scoped line items."
    }
  ],
  "agentPolicies": {
    "authorization": "Every agent capability is gated by the intersection of the caller's API scopes and the target user role inside URBLD.",
    "tenancy": "All operations are strictly org-scoped; cross-tenant access is impossible via the API.",
    "audit": "Every destructive mutation writes to the tenant-visible audit log with the resolved agent identity."
  },
  "contact": {
    "support": "https://urbld.com/contact",
    "security": "https://urbld.com/security"
  }
}
