# info.description
Public API and machine-readable endpoints for sahilfruitwala.com. Provides structured endpoints for AI agents, crawlers, and clients to access biography, resume, writings, projects, and contact submission.

# paths./api/contact.post.description
Submits a contact inquiry to Sahil Fruitwala. Validates input schema, enforces human submission delay, rate limits, and optional Turnstile challenge.

# paths./api/contact.post.responses.200.description
Message successfully accepted or delivered

# paths./api/contact.post.responses.400.description
Invalid input, malformed JSON, or failed verification

# paths./api/contact.post.responses.415.description
Unsupported media type (Content-Type must be application/json)

# paths./openapi.json.get.description
Returns the complete OpenAPI 3.1.0 specification for sahilfruitwala.com in JSON format.

# paths./openapi.json.get.responses.200.description
OpenAPI 3.1 specification document in JSON format

# paths./openapi.yaml.get.description
Returns the complete OpenAPI 3.1.0 specification for sahilfruitwala.com in YAML format.

# paths./openapi.yaml.get.responses.200.description
OpenAPI 3.1 specification document in YAML format

# paths./llms.txt.get.description
Structured markdown index conforming to the llmstxt.org specification for LLMs and AI agents.

# paths./about.md.get.description
Full biography, career highlights, receipts, and social links in clean markdown format.

# paths./resume.md.get.description
Full-stack software engineering resume with experience, skills, projects, and education in markdown format.

# paths./rss.xml.get.description
RSS 2.0 XML feed of published posts and articles.

# paths./sitemap.xml.get.description
Standard sitemap indexing all public pages on sahilfruitwala.com.

# paths./robots.txt.get.description
Crawler directives and AI agent permissions for web indexing.

# components.schemas.ContactRequest.properties.message.example
Hi Sahil, I saw your open source work on MicroPNG and wanted to connect.

# components.schemas.ContactRequest.properties.requestId.description
Client-generated UUID v4 for idempotency tracking

# components.schemas.ContactRequest.properties.startedAt.description
Unix epoch timestamp in milliseconds when user began form entry (must be >= 3 seconds before submit)

# components.schemas.ContactRequest.properties.website.description
Honeypot field for spam detection (must be empty)

# components.schemas.ContactSuccessResponse.properties.id.description
Dispatched message ID or status identifier

# components.schemas.ApiErrorResponse.properties.message.example
The request body failed schema validation.

# components.schemas.ApiErrorResponse.properties.hint.description
Actionable resolution hint for clients and AI agents

# components.schemas.ApiErrorResponse.properties.hint.example
Ensure name, email, message, and a valid UUID requestId are provided.

# components.schemas.ApiErrorResponse.properties.details.description
Field-level validation error details when applicable