{"openapi":"3.1.0","info":{"title":"BrandGhost Public Informational API","version":"current","description":"Read-only public product information. No API key, customer account access, or writes. Successful responses may be cached for 300 seconds. Best-effort per-instance limit: 30 requests per client in 60 seconds; shared across agent endpoints. Errors are not cached. Query strings are truncated, not rejected for length."},"servers":[{"url":"https://www.brandghost.ai"}],"security":[],"externalDocs":{"url":"https://www.brandghost.ai/agents"},"paths":{"/api/agent/overview":{"get":{"operationId":"understand_brandghost","summary":"Understand BrandGhost","description":"Get BrandGhost's public company positioning, products, capabilities, and intended customers.","parameters":[],"responses":{"200":{"description":"Public informational result; an unmatched query is still a successful HTTP response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Overview"}}}},"429":{"description":"Best-effort per-instance rate limit exceeded. Retry after the Retry-After delay.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds until this client's current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"500":{"description":"Unexpected server failure; no internal error details are exposed.","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}}}}},"/api/agent/products":{"get":{"operationId":"get_brandghost_products","summary":"BrandGhost Products","description":"List BrandGhost's current public products and product areas.","parameters":[],"responses":{"200":{"description":"Public informational result; an unmatched query is still a successful HTTP response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Products"}}}},"429":{"description":"Best-effort per-instance rate limit exceeded. Retry after the Retry-After delay.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds until this client's current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"500":{"description":"Unexpected server failure; no internal error details are exposed.","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}}}}},"/api/agent/product":{"get":{"operationId":"get_brandghost_product_details","summary":"BrandGhost Product Details","description":"Look up a product by id or loose name. Unknown or empty queries return HTTP 200 with found: false and availableProducts.","parameters":[{"name":"product","in":"query","required":false,"description":"Product id or name, such as launchpad. The server truncates to 120 characters; omitted input is an empty query.","schema":{"type":"string"}}],"responses":{"200":{"description":"Public informational result; an unmatched query is still a successful HTTP response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductLookup"}}}},"429":{"description":"Best-effort per-instance rate limit exceeded. Retry after the Retry-After delay.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds until this client's current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"500":{"description":"Unexpected server failure; no internal error details are exposed.","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}}}}},"/api/agent/use-case":{"get":{"operationId":"find_brandghost_use_case","summary":"Find BrandGhost Use Case","description":"Find deterministic informational guidance for a business type. Unmatched or empty input returns HTTP 200 with matched: false, not a validation error.","parameters":[{"name":"business_type","in":"query","required":false,"description":"Industry or company type. The server truncates to 200 characters; omitted input is empty.","schema":{"type":"string"}},{"name":"problem","in":"query","required":false,"description":"Optional business problem. The server truncates to 400 characters.","schema":{"type":"string"}}],"responses":{"200":{"description":"Public informational result; an unmatched query is still a successful HTTP response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UseCase"}}}},"429":{"description":"Best-effort per-instance rate limit exceeded. Retry after the Retry-After delay.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds until this client's current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"500":{"description":"Unexpected server failure; no internal error details are exposed.","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}}}}},"/api/agent/pricing":{"get":{"operationId":"get_brandghost_pricing","summary":"BrandGhost Pricing","description":"Get current public plans, prices, limits, and plan-selection guidance. Custom pricing has a null numeric price, not zero.","parameters":[],"responses":{"200":{"description":"Public informational result; an unmatched query is still a successful HTTP response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pricing"}}}},"429":{"description":"Best-effort per-instance rate limit exceeded. Retry after the Retry-After delay.","headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds until this client's current window resets."}},"content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}},"500":{"description":"Unexpected server failure; no internal error details are exposed.","content":{"application/json":{"schema":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string"},"message":{"type":"string"}}}}}}}}}},"components":{"schemas":{"Overview":{"type":"object","required":["company","description","oneLiner","differentiator","problemsSolved","idealCustomers","coreProducts","coreCapabilities","channels","website"],"properties":{"company":{"type":"string"},"description":{"type":"string"},"oneLiner":{"type":"string"},"differentiator":{"type":"string"},"problemsSolved":{"type":"array","items":{"type":"string"}},"idealCustomers":{"type":"array","items":{"type":"string"}},"coreCapabilities":{"type":"array","items":{"type":"string"}},"website":{"type":"string"},"coreProducts":{"type":"array","items":{"type":"object","required":["id","name","area"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"area":{"type":"string"}}}},"channels":{"type":"array","items":{"type":"object","required":["abbr","name","where"],"properties":{"abbr":{"type":"string"},"name":{"type":"string"},"where":{"type":"string"}}}}}},"Products":{"type":"object","required":["products"],"properties":{"products":{"type":"array","items":{"type":"object","required":["id","name","area","description"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"area":{"type":"string"}}}}}},"ProductLookup":{"oneOf":[{"type":"object","required":["found","product"],"properties":{"found":{"const":true},"product":{"type":"object","required":["id","name","area","description","problemsSolved","capabilities","intendedCustomer","exampleUseCases"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"area":{"type":"string"},"problemsSolved":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","items":{"type":"string"}},"intendedCustomer":{"type":"string"},"exampleUseCases":{"type":"array","items":{"type":"string"}}}}}},{"type":"object","required":["found","message","availableProducts"],"properties":{"found":{"const":false},"message":{"type":"string"},"availableProducts":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}}]},"UseCase":{"type":"object","required":["matched","businessType","score","challenges","howItHelps","relevantProducts","disclaimer"],"properties":{"matched":{"type":"boolean"},"businessType":{"type":["string","null"]},"score":{"type":"integer"},"challenges":{"type":"array","items":{"type":"string"}},"howItHelps":{"type":"array","items":{"type":"string"}},"disclaimer":{"type":"string"},"relevantProducts":{"type":"array","items":{"type":"object","required":["id","name","description"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"}}}}}},"Pricing":{"type":"object","required":["currency","note","plans","guidance"],"properties":{"currency":{"type":"string"},"note":{"type":"string"},"guidance":{"type":"string"},"plans":{"type":"array","items":{"type":"object","required":["id","name","price","priceLabel","cadence","bestFor","highlights","cta","limits"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"price":{"type":["number","null"]},"priceLabel":{"type":"string"},"cadence":{"enum":["free","per month","custom"]},"bestFor":{"type":"string"},"highlights":{"type":"array","items":{"type":"string"}},"cta":{"type":"string"},"limits":{"type":"object","required":["blogPosts","socialPosts","socialAccounts","monthlyCredits"],"properties":{"blogPosts":{"type":"integer"},"socialPosts":{"type":"integer"},"socialAccounts":{"type":["integer","null"],"description":"Null means unlimited."},"monthlyCredits":{"type":"integer"}}}}}}}}}}}