{"openapi":"3.1.1","jsonSchemaDialect":"https://json-schema.org/draft/2020-12/schema","info":{"title":"J Craft Public Agent API","version":"1.0.0","description":"A public, read-only API for retrieving official J Craft company, Torpedo, and resource-discovery information. It does not expose enquiry, configuration, CRM, or other transactional website operations.","contact":{"name":"J Craft Boats","email":"sales@j-craftboats.com","url":"https://j-craftboats.com/developers"},"license":{"name":"Proprietary","identifier":"LicenseRef-Proprietary"}},"servers":[{"url":"https://j-craftboats.com","description":"J Craft production website"}],"externalDocs":{"description":"J Craft API, MCP, and agent documentation","url":"https://j-craftboats.com/developers"},"security":[],"tags":[{"name":"Public content","description":"Read-only, cacheable public company and product information for agents."}],"paths":{"/api/v1/site-context":{"get":{"operationId":"getJCraftSiteContext","summary":"Get official J Craft site context","description":"Returns a compact, structured overview of J Craft Boats, the J Craft Torpedo, recommended agent use cases, limitations, and canonical public resources.","tags":["Public content"],"responses":{"200":{"description":"Official public J Craft site context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SiteContextResponse"}}}},"405":{"description":"Structured error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/resources/{resourceId}":{"get":{"operationId":"getJCraftResource","summary":"Resolve a J Craft public resource","description":"Resolves a stable resource identifier to its official J Craft URL, title, description, and media type. Use it before navigating to detailed product or company content.","tags":["Public content"],"parameters":[{"name":"resourceId","in":"path","required":true,"description":"Stable identifier for the official J Craft resource to resolve.","schema":{"type":"string","enum":["torpedo","craftsmanship","heritage","service","events","journal","developers","agent-index","full-context"]}}],"responses":{"200":{"description":"The requested public resource descriptor.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"404":{"description":"Structured error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"405":{"description":"Structured error with a stable code and recovery guidance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"Contact":{"type":"object","additionalProperties":false,"required":["contactType","email","telephone"],"properties":{"contactType":{"type":"string","description":"Purpose of this contact channel."},"email":{"type":"string","format":"email","description":"Public J Craft sales email address."},"telephone":{"type":"string","description":"Public J Craft sales telephone number."}}},"Organization":{"type":"object","additionalProperties":false,"required":["name","legalName","description","url","foundingYear","foundingLocation","contact"],"properties":{"name":{"type":"string","description":"Public organization name."},"legalName":{"type":"string","description":"Registered organization name."},"description":{"type":"string","description":"Concise public description of J Craft Boats."},"url":{"type":"string","format":"uri","description":"Canonical organization website."},"foundingYear":{"type":"integer","description":"Year J Craft was founded."},"foundingLocation":{"type":"string","description":"Place where J Craft was founded."},"contact":{"$ref":"#/components/schemas/Contact"}}},"Product":{"type":"object","additionalProperties":false,"required":["name","category","length","description","url"],"properties":{"name":{"type":"string","description":"Published product name."},"category":{"type":"string","description":"Published product category."},"length":{"type":"string","description":"Published nominal boat length."},"description":{"type":"string","description":"Concise product description."},"url":{"type":"string","format":"uri","description":"Canonical product page."}}},"Resource":{"type":"object","additionalProperties":false,"required":["id","title","description","url","mediaType"],"properties":{"id":{"type":"string","enum":["torpedo","craftsmanship","heritage","service","events","journal","developers","agent-index","full-context"],"description":"Stable resource identifier."},"title":{"type":"string","description":"Human-readable resource name."},"description":{"type":"string","description":"What the resource is useful for."},"url":{"type":"string","format":"uri","description":"Canonical resource URL."},"mediaType":{"type":"string","enum":["text/html","text/markdown","text/plain"],"description":"Primary response media type."}}},"SiteContext":{"type":"object","additionalProperties":false,"required":["apiVersion","organization","product","recommendedUse","limitations","resources"],"properties":{"apiVersion":{"type":"string","description":"Version of this public response contract."},"organization":{"$ref":"#/components/schemas/Organization"},"product":{"$ref":"#/components/schemas/Product"},"recommendedUse":{"type":"array","description":"Specific tasks for which agents should use these resources.","items":{"type":"string"}},"limitations":{"type":"array","description":"Important boundaries on the public API and its information.","items":{"type":"string"}},"resources":{"type":"array","description":"Canonical public J Craft resources.","items":{"$ref":"#/components/schemas/Resource"}}}},"SiteContextResponse":{"type":"object","additionalProperties":false,"required":["ok","data"],"properties":{"ok":{"type":"boolean","const":true,"description":"Indicates a successful API request."},"data":{"$ref":"#/components/schemas/SiteContext"}}},"ResourceResponse":{"type":"object","additionalProperties":false,"required":["ok","data"],"properties":{"ok":{"type":"boolean","const":true,"description":"Indicates a successful API request."},"data":{"$ref":"#/components/schemas/Resource"}}},"Error":{"type":"object","additionalProperties":false,"required":["code","message","resolution"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Human-readable explanation of the error."},"resolution":{"type":"string","description":"Concrete guidance for recovering from the error."}}},"ErrorResponse":{"type":"object","additionalProperties":false,"required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false,"description":"Indicates an unsuccessful API request."},"error":{"$ref":"#/components/schemas/Error"}}}}}}