{
  "$schema": "https://loomworks.solutions/.well-known/ai-catalog.json",
  "name": "Loomworks Solutions LLC — AI Agent Catalog",
  "description": "Machine-readable catalog of agent-facing endpoints for discovering Loomworks Solutions LLC services, pricing, and availability, and for submitting a real project proposal programmatically.",
  "business": {
    "legalName": "Loomworks Solutions LLC",
    "alternateName": "Loomworks",
    "url": "https://loomworks.solutions",
    "email": "hello@loomworks.solutions",
    "telephone": "+17573486081",
    "address": {
      "addressLocality": "Wake Forest",
      "addressRegion": "NC",
      "postalCode": "27587",
      "addressCountry": "US"
    }
  },
  "links": {
    "llmsTxt": "https://loomworks.solutions/llms.txt",
    "website": "https://loomworks.solutions"
  },
  "endpoints": [
    {
      "path": "/api/ai/services",
      "method": "GET",
      "description": "Structured list of the services Loomworks offers, with descriptions, feature lists, and canonical URLs.",
      "request": null,
      "response": {
        "services": [
          {
            "key": "string",
            "name": "string",
            "description": "string",
            "features": [
              "string"
            ],
            "url": "string (absolute URL)"
          }
        ]
      },
      "auth": "none",
      "rate_limit": "None — cached JSON, safe to poll."
    },
    {
      "path": "/api/ai/pricing",
      "method": "GET",
      "description": "Published pricing bands, the flat hourly rate the fixed-scope quote is built from, and the paid discovery consultation.",
      "request": null,
      "response": {
        "hourlyRateUsd": "number",
        "model": "string",
        "bands": [
          {
            "name": "string",
            "rangeUsd": "string",
            "timeline": "string",
            "includes": [
              "string"
            ]
          }
        ],
        "paidConsultation": {
          "priceUsd": "number",
          "description": "string",
          "url": "string (absolute URL)"
        }
      },
      "auth": "none",
      "rate_limit": "None — cached JSON, safe to poll."
    },
    {
      "path": "/api/ai/availability",
      "method": "GET",
      "description": "Whether Loomworks is currently accepting new project inquiries, and the typical turnaround to a written fixed-scope quote.",
      "request": null,
      "response": {
        "accepting": "boolean",
        "leadTimeDays": "number",
        "note": "string"
      },
      "auth": "none",
      "rate_limit": "None — cached JSON, safe to poll."
    },
    {
      "path": "/api/ai/proposal",
      "method": "POST",
      "description": "Submit a real project proposal on behalf of a prospect. Creates an engagement and emails a magic link to contact_email — that email is the human-verification gate. A human must click the emailed link before the engagement proceeds; nothing in the response is itself a valid credential.",
      "request": {
        "company": "string, required",
        "contact_email": "string (email), required",
        "project_description": "string, required",
        "budget_range": "string, optional",
        "timeline": "string, optional",
        "agent_identity": "string, optional — name/version of the calling agent, for operator context"
      },
      "response": {
        "engagement_id": "string",
        "status": "'magic_link_sent'",
        "human_handoff_url": "string (absolute URL) — NOT a sign-in link, safe to share",
        "note": "string"
      },
      "auth": "none",
      "rate_limit": "3 requests/hour per IP and per contact_email, 30-minute block on exceeding either."
    }
  ]
}