{
  "openapi": "3.0.3",
  "info": {
    "title": "Mohammad Asad Web Design API",
    "description": "API for Mohammad Asad web design services. Provides endpoints for contact form submissions, service inquiries, and project quotes with versioning, rate limiting, and comprehensive error handling.",
    "version": "1.0.0",
    "termsOfService": "https://mohammad-asad.vercel.app/terms",
    "contact": {
      "name": "Mohammad Asad",
      "email": "mohammadasad.contact@gmail.com",
      "url": "https://mohammad-asad.vercel.app"
    },
    "license": {
      "name": "Proprietary",
      "url": "https://mohammad-asad.vercel.app"
    },
    "x-api-versioning-policy": {
      "versioning": "url-path",
      "current": "v1",
      "deprecated": "",
      "deprecation-policy": "API versions are supported for at least 12 months after deprecation. Deprecation is announced via the Deprecation header and Link header pointing to the successor version.",
      "migration_guide": "https://mohammad-asad.vercel.app/docs#versioning"
    },
    "x-rate-limiting": {
      "policy": "Per-hour rate limiting with burst capacity",
      "headers": ["X-RateLimit-Limit", "X-RateLimit-Remaining", "X-RateLimit-Reset", "Retry-After"],
      "documentation": "https://mohammad-asad.vercel.app/docs#rate-limiting"
    }
  },
  "servers": [
    {
      "url": "https://mohammad-asad.vercel.app/api/v1",
      "description": "Production API v1 (current stable version)"
    },
    {
      "url": "https://mohammad-asad.vercel.app/api",
      "description": "Production API (deprecated, use /api/v1 instead)"
    }
  ],
  "paths": {
    "/v1/contact": {
      "post": {
        "operationId": "submitContactForm",
        "summary": "Submit contact form",
        "description": "Submit a contact form inquiry to Mohammad Asad web design services",
        "tags": ["Contact"],
        "requestBody": {
          "required": true,
          "description": "Contact form submission data",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ContactForm"
              },
              "example": {
                "name": "John Doe",
                "email": "john@example.com",
                "phone": "+1234567890",
                "subject": "Web Design Inquiry",
                "message": "I'm interested in getting a custom website designed for my business.",
                "service_interest": "web-design"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Contact form submitted successfully",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Rate limit per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining requests in current window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp when rate limit resets",
                "schema": {
                  "type": "integer"
                }
              },
              "X-API-Version": {
                "description": "API version",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ContactFormResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/quote": {
      "post": {
        "operationId": "requestQuote",
        "summary": "Request project quote",
        "description": "Submit a project quote request for web design services",
        "tags": ["Quotes"],
        "requestBody": {
          "required": true,
          "description": "Project quote request data",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuoteRequest"
              },
              "example": {
                "name": "Jane Smith",
                "email": "jane@company.com",
                "company": "Acme Corp",
                "project_type": "custom-website",
                "budget_range": "5000-10000",
                "timeline": "2-3 months",
                "description": "We need a custom e-commerce website with product catalog, shopping cart, and payment integration."
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Quote request submitted successfully",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Rate limit per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining requests in current window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp when rate limit resets",
                "schema": {
                  "type": "integer"
                }
              },
              "X-API-Version": {
                "description": "API version",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuoteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/services": {
      "get": {
        "operationId": "getServices",
        "summary": "Get available services",
        "description": "Retrieve list of available web design and development services",
        "tags": ["Services"],
        "responses": {
          "200": {
            "description": "Services retrieved successfully",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Rate limit per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining requests in current window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp when rate limit resets",
                "schema": {
                  "type": "integer"
                }
              },
              "X-API-Version": {
                "description": "API version",
                "schema": {
                  "type": "string"
                }
              },
              "Vary": {
                "description": "Content negotiation headers",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServicesResponse"
                }
              },
              "text/markdown": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/health": {
      "get": {
        "operationId": "healthCheck",
        "summary": "Health check endpoint",
        "description": "Check API health status",
        "tags": ["System"],
        "responses": {
          "200": {
            "description": "API is healthy",
            "headers": {
              "X-RateLimit-Limit": {
                "description": "Rate limit per hour",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining": {
                "description": "Remaining requests in current window",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Reset": {
                "description": "Unix timestamp when rate limit resets",
                "schema": {
                  "type": "integer"
                }
              },
              "X-API-Version": {
                "description": "API version",
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthResponse"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded",
            "headers": {
              "Retry-After": {
                "description": "Seconds to wait before retrying",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "500": {
            "description": "Server error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "x-rate-limits": {
    "description": "Rate limiting policy",
    "default": {
      "requests_per_hour": 100,
      "burst": 10
    },
    "endpoints": {
      "/v1/contact": {
        "requests_per_hour": 100,
        "burst": 10
      },
      "/v1/quote": {
        "requests_per_hour": 50,
        "burst": 5
      },
      "/v1/services": {
        "requests_per_hour": 200,
        "burst": 20
      },
      "/v1/health": {
        "requests_per_hour": 1000,
        "burst": 100
      }
    }
  },
  "components": {
    "schemas": {
      "ContactForm": {
        "type": "object",
        "required": ["name", "email", "message"],
        "description": "Contact form submission schema for inquiries and consultations",
        "properties": {
          "name": {
            "type": "string",
            "description": "Contact person's full name",
            "minLength": 2,
            "maxLength": 100,
            "example": "John Doe"
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Valid email address for communication",
            "example": "john@example.com"
          },
          "phone": {
            "type": "string",
            "description": "Optional phone number including country code",
            "example": "+1234567890"
          },
          "subject": {
            "type": "string",
            "description": "Brief subject line for the inquiry",
            "maxLength": 200,
            "example": "Web Design Project Inquiry"
          },
          "message": {
            "type": "string",
            "description": "Detailed message describing the inquiry or project requirements",
            "minLength": 10,
            "maxLength": 2000,
            "example": "I'm interested in getting a custom website designed for my business."
          },
          "service_interest": {
            "type": "string",
            "enum": ["web-design", "ui-ux", "web-development", "wordpress", "shopify", "maintenance", "other"],
            "description": "Primary service area of interest",
            "example": "web-design"
          }
        }
      },
      "ContactFormResponse": {
        "type": "object",
        "description": "Response schema for successful contact form submissions",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Indicates whether the submission was successful",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Human-readable success message",
            "example": "Thank you for your message. We will get back to you within 24 hours."
          },
          "reference_id": {
            "type": "string",
            "description": "Unique reference ID for tracking the submission",
            "example": "CON-1234567890-abc123"
          }
        }
      },
      "QuoteRequest": {
        "type": "object",
        "required": ["name", "email", "project_type", "budget_range"],
        "description": "Project quote request schema for detailed project proposals",
        "properties": {
          "name": {
            "type": "string",
            "description": "Contact person's full name",
            "minLength": 2,
            "maxLength": 100,
            "example": "Jane Smith"
          },
          "email": {
            "type": "string",
            "format": "email",
            "description": "Valid email address for communication",
            "example": "jane@company.com"
          },
          "company": {
            "type": "string",
            "description": "Company or organization name (optional)",
            "example": "Acme Corporation"
          },
          "project_type": {
            "type": "string",
            "enum": ["custom-website", "wordpress", "shopify", "ui-ux-design", "website-redesign", "maintenance"],
            "description": "Type of project being requested",
            "example": "custom-website"
          },
          "budget_range": {
            "type": "string",
            "enum": ["<1000", "1000-3000", "3000-5000", "5000-10000", "10000+"],
            "description": "Expected budget range in USD",
            "example": "5000-10000"
          },
          "timeline": {
            "type": "string",
            "description": "Expected project timeline or deadline",
            "example": "2-3 months"
          },
          "description": {
            "type": "string",
            "description": "Detailed project description including requirements, goals, and specific features needed",
            "minLength": 20,
            "maxLength": 5000,
            "example": "We need a custom e-commerce website with product catalog, shopping cart, and payment integration."
          }
        }
      },
      "QuoteResponse": {
        "type": "object",
        "description": "Response schema for successful quote requests",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Indicates whether the quote request was successful",
            "example": true
          },
          "message": {
            "type": "string",
            "description": "Human-readable success message with next steps",
            "example": "Quote request received. We will review and get back to you within 2 business days."
          },
          "reference_id": {
            "type": "string",
            "description": "Unique reference ID for tracking the quote request",
            "example": "QUOTE-1234567890-xyz789"
          }
        }
      },
      "ServicesResponse": {
        "type": "object",
        "description": "Response schema for services list endpoint",
        "properties": {
          "services": {
            "type": "array",
            "description": "Array of available web design and development services",
            "items": {
              "$ref": "#/components/schemas/Service"
            }
          }
        }
      },
      "Service": {
        "type": "object",
        "description": "Service information including details and pricing",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique service identifier for API references",
            "example": "web-design"
          },
          "name": {
            "type": "string",
            "description": "Human-readable service name",
            "example": "Custom Web Design"
          },
          "description": {
            "type": "string",
            "description": "Detailed description of the service and what it includes",
            "example": "Professional custom website design tailored to your brand and business needs."
          },
          "starting_price": {
            "type": "string",
            "description": "Starting price for the service in USD",
            "example": "$1,000"
          }
        }
      },
      "HealthResponse": {
        "type": "object",
        "description": "Response schema for health check endpoint",
        "properties": {
          "status": {
            "type": "string",
            "description": "Current health status of the API",
            "example": "healthy"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time",
            "description": "ISO 8601 timestamp of the health check",
            "example": "2024-08-23T12:00:00Z"
          },
          "version": {
            "type": "string",
            "description": "Current API version",
            "example": "1.0.0"
          },
          "api_version": {
            "type": "string",
            "description": "API version identifier",
            "example": "v1"
          },
          "documentation": {
            "type": "string",
            "description": "Link to API documentation",
            "example": "https://mohammad-asad.vercel.app/docs"
          }
        }
      },
      "Error": {
        "type": "object",
        "description": "Standard error response schema for all API error conditions",
        "properties": {
          "error": {
            "type": "object",
            "description": "Error object containing code, message, and resolution information",
            "properties": {
              "code": {
                "type": "string",
                "description": "Machine-readable error code for programmatic handling",
                "example": "INVALID_EMAIL"
              },
              "message": {
                "type": "string",
                "description": "Human-readable error message explaining what went wrong",
                "example": "Invalid email address format"
              },
              "details": {
                "type": "object",
                "description": "Additional error details for debugging or resolution",
                "example": {
                  "field": "email",
                  "constraint": "format",
                  "provided": "invalid-email"
                }
              },
              "documentation": {
                "type": "string",
                "description": "Link to API documentation for error resolution",
                "example": "https://mohammad-asad.vercel.app/docs"
              }
            }
          }
        }
      }
    }
  },
  "tags": [
    {
      "name": "Contact",
      "description": "Contact form submissions and inquiries",
      "x-displayName": "Contact Management"
    },
    {
      "name": "Quotes",
      "description": "Project quote requests and pricing",
      "x-displayName": "Quote Management"
    },
    {
      "name": "Services",
      "description": "Service information and pricing",
      "x-displayName": "Service Catalog"
    },
    {
      "name": "System",
      "description": "System health and status monitoring",
      "x-displayName": "System Status"
    }
  ],
  "x-ai-metadata": {
    "description": "AI/LLM integration metadata for function calling compatibility",
    "function_calling": {
      "supported": true,
      "tool_count": 4,
      "typed_schemas": true,
      "operation_ids_unique": true,
      "descriptions_comprehensive": true
    },
    "recommended_use_cases": [
      "Contact form submissions for web design inquiries",
      "Project quote requests for pricing information",
      "Service information retrieval for browsing offerings",
      "Health checks for API availability monitoring"
    ],
    "rate_limiting": "Implemented with standard headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, Retry-After)",
    "authentication": "Public endpoints (no authentication required for v1)",
    "content_negotiation": "Supports JSON and Markdown via Accept header"
  }
}