{"openapi":"3.1.0","info":{"title":"Excelsior Creative Public Website API","version":"1.0.0","description":"The intentionally public, read-only API contract for searching published Excelsior Creative website content. Administrative, contact, generation, cron, revalidation, Payload CMS, and authenticated operations are not part of this contract.","contact":{"name":"Excelsior Creative","url":"https://excelsiorcreative.com/contact","email":"hello@excelsiorcreative.com"}},"servers":[{"url":"https://excelsiorcreative.com","description":"Production website"}],"paths":{"/api/search":{"get":{"operationId":"searchPublishedContent","summary":"Search published website content","description":"Searches the public article, project, and industry indexes. An empty or omitted query returns an empty results array.","tags":["Public search"],"parameters":[{"name":"q","in":"query","required":false,"description":"Plain-text search query.","schema":{"type":"string","minLength":1,"maxLength":200},"example":"automation"}],"responses":{"200":{"description":"Matching published content, ordered by search priority.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"500":{"description":"The public search index could not be queried.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"schemas":{"SearchResponse":{"type":"object","additionalProperties":false,"required":["results"],"properties":{"results":{"type":"array","maxItems":20,"items":{"$ref":"#/components/schemas/SearchResult"}}}},"SearchResult":{"type":"object","required":["id","doc","updatedAt","createdAt"],"properties":{"id":{"oneOf":[{"type":"integer"},{"type":"string"}]},"title":{"type":["string","null"]},"excerpt":{"type":["string","null"]},"priority":{"type":["number","null"]},"doc":{"$ref":"#/components/schemas/SearchDocumentReference"},"updatedAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"SearchDocumentReference":{"type":"object","additionalProperties":false,"required":["relationTo","value"],"properties":{"relationTo":{"type":"string","enum":["articles","projects","industry-landing-pages"]},"value":{"oneOf":[{"type":"integer"},{"type":"object","description":"A populated published CMS document. Its exact fields depend on relationTo.","additionalProperties":true}]}}},"ErrorResponse":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"string","example":"Failed to search"}}}}},"tags":[{"name":"Public search","description":"Read-only discovery of published website content."}]}