{"openapi":"3.1.0","jsonSchemaDialect":"https://json-schema.org/draft/2020-12/schema","info":{"title":"Titanos Public API","version":"1.0.0","description":"Minimal public OpenAPI surface for Titanos discovery and agent-readiness. It only documents read-only endpoints that are publicly reachable today."},"servers":[{"url":"https://www.titanos.com.br"}],"externalDocs":{"description":"Documentacao publica","url":"https://www.titanos.com.br/docs"},"tags":[{"name":"plans","description":"Public plan and access catalog"},{"name":"billing","description":"Public billing helpers"},{"name":"blog","description":"Public newsletter and editorial content"}],"components":{"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"},"message":{"type":"string"},"docs":{"type":"string","format":"uri"}}},"SuccessEnvelope":{"type":"object","properties":{"success":{"type":"boolean"}}},"PublicPlan":{"type":"object","properties":{"id":{"type":"string"},"planCode":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"price":{"type":"number"},"credits":{"type":"number"}}},"PublicPlanList":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelope"},{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PublicPlan"}}}}]},"GenericPublicList":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelope"},{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","additionalProperties":true}}}}]},"GenericPublicObject":{"allOf":[{"$ref":"#/components/schemas/SuccessEnvelope"},{"type":"object","properties":{"data":{"type":"object","additionalProperties":true}}}]},"StripePublishableKeyResponse":{"type":"object","properties":{"publishableKey":{"type":"string"}}},"BlogPostSummary":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"slug":{"type":"string"},"summary":{"type":"string"},"coverImage":{"type":["string","null"]},"coverImageAlt":{"type":["string","null"]},"readingTimeMin":{"type":["integer","null"]},"viewCount":{"type":["integer","null"]},"publishedAt":{"type":["string","null"],"format":"date-time"},"categoryName":{"type":["string","null"]},"categorySlug":{"type":["string","null"]},"categoryColor":{"type":["string","null"]}}},"BlogPostDetail":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"slug":{"type":"string"},"summary":{"type":["string","null"]},"content":{"type":["string","null"]},"coverImage":{"type":["string","null"]},"coverImageAlt":{"type":["string","null"]},"readingTimeMin":{"type":["integer","null"]},"seoTitle":{"type":["string","null"]},"seoDescription":{"type":["string","null"]},"viewCount":{"type":["integer","null"]},"likeCount":{"type":["integer","null"]},"publishedAt":{"type":["string","null"],"format":"date-time"},"updatedAt":{"type":["string","null"],"format":"date-time"},"categoryId":{"type":["string","null"]},"categoryName":{"type":["string","null"]},"categorySlug":{"type":["string","null"]},"categoryColor":{"type":["string","null"]}}},"BlogCategory":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":["string","null"]},"color":{"type":["string","null"]},"icon":{"type":["string","null"]},"postCount":{"type":["integer","null"]}}},"BlogPostsResponse":{"type":"object","properties":{"posts":{"type":"array","items":{"$ref":"#/components/schemas/BlogPostSummary"}},"total":{"type":"integer"},"page":{"type":"integer"},"limit":{"type":"integer"}}},"BlogPostResponse":{"type":"object","properties":{"post":{"$ref":"#/components/schemas/BlogPostDetail"},"relatedPosts":{"type":"array","items":{"$ref":"#/components/schemas/BlogPostSummary"}}}}},"responses":{"NotFoundJson":{"description":"Recurso nao encontrado","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/api/plans/public":{"get":{"tags":["plans"],"operationId":"listPublicPlans","summary":"List public subscription plans","responses":{"200":{"description":"Public plans","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPlanList"}}}}}}},"/api/plans/areas":{"get":{"tags":["plans"],"operationId":"listPlanAreas","summary":"List public plan areas catalog","responses":{"200":{"description":"Plan areas catalog","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericPublicList"}}}}}}},"/api/plans/access":{"get":{"tags":["plans"],"operationId":"listPlanAccessMatrix","summary":"List public plan access matrix","responses":{"200":{"description":"Plan access matrix","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericPublicObject"}}}}}}},"/api/credit-packs":{"get":{"tags":["billing"],"operationId":"listCreditPacks","summary":"List public credit packs","responses":{"200":{"description":"Credit pack tiers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericPublicList"}}}}}}},"/api/stripe/publishable-key":{"get":{"tags":["billing"],"operationId":"getStripePublishableKey","summary":"Return the public Stripe publishable key","responses":{"200":{"description":"Publishable key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StripePublishableKeyResponse"}}}}}}},"/api/blog/posts":{"get":{"tags":["blog"],"operationId":"listBlogPosts","summary":"List published blog posts","parameters":[{"name":"page","in":"query","schema":{"type":"integer"}},{"name":"limit","in":"query","schema":{"type":"integer"}},{"name":"category","in":"query","schema":{"type":"string"}},{"name":"search","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Published posts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostsResponse"}}}}}}},"/api/blog/post/{slug}":{"get":{"tags":["blog"],"operationId":"getBlogPostBySlug","summary":"Get a published blog post by slug","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Blog post payload","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostResponse"}}}},"404":{"$ref":"#/components/responses/NotFoundJson"}}}},"/api/blog/categories":{"get":{"tags":["blog"],"operationId":"listBlogCategories","summary":"List active blog categories","responses":{"200":{"description":"Blog categories","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BlogCategory"}}}}}}}},"/api/blog/popular":{"get":{"tags":["blog"],"operationId":"listPopularBlogPosts","summary":"List popular blog posts","responses":{"200":{"description":"Popular blog posts","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BlogPostSummary"}}}}}}}}}}