The catalog and documentation are public and read-only. No account or API key is required for the operations in OpenAPI or the catalog MCP below. They expose visible products and public documents. Start with the homepage for an overview of the business and its audience.
REST: list and search products
GET /api/catalog?search=booking&page=1&pageSize=12
The response contains data (an array), catalogProducts (the same array), count, total, total_pages and page. Use page and pageSize to paginate. pageSize defaults to 12 and is capped at 50. Filters and sort options are typed and described in OpenAPI. Monetary fields are USD amounts, not cents. Only public product states can be requested.
REST: read one product
GET /api/catalog/{slug}
Resolve a slug from the list response. The response contains data and catalogProduct, both referring to the product. Unknown or non-public products return HTTP 404. Additional public fields may be present; only the documented stable fields should be required by clients.
MCP: catalog and documentation
Connect an MCP client supporting Streamable HTTP to /api/catalog/mcp on this site's origin. The server is stateless, returns JSON responses and needs no credentials. It provides these tools:
- saascode_search_catalog: search and paginate public products.
- saascode_get_catalog_product: retrieve a visible product by slug.
- saascode_read_public_document: read an identified public document, such as pricing, authentication, licenses or the site overview.
Discover input/output schemas with tools/list. Complete MCP initialization before using tools. POST requests use the protocol's Accept and Content-Type headers. GET and DELETE return 405 because the server does not offer a separate SSE stream or persistent sessions. Browser origins are checked; native MCP clients can connect without an Origin header.
The tool descriptor describes this server. It is an application descriptor, not an experimental MCP Server Card. The generic administrative MCP at /api/mcp is not this public server.
Errors and limits
REST catalog errors and unknown API paths return application/json with error (a legacy message string), code, message, hint and docs. Follow the hint before retrying. Unsupported write methods return HTTP 405 with Allow. A 429 includes Retry-After; wait before retrying. A 500 is a service failure, not evidence that a product is absent. Retry with backoff or contact support.
MCP follows JSON-RPC protocol errors and MCP tool errors. Tools are read-only. Invalid arguments, private products and document IDs outside the public registry are rejected. Respect limits returned by the service; do not use concurrency to evade them.
Markdown and discovery
Send Accept: text/markdown to the homepage, public product/article details, or the public overview/help/legal pages advertised with a Markdown alternate. HTML remains the default and q-values select a supported representation. Responses vary by Accept and Accept-Encoding. Framework navigation requests retain their representation.
Use /index.md for the homepage, /products/index.md for the catalog, /inside/index.md for editorial navigation, /plus.md, /support.md, /terms.md, /privacy.md and /about.md. Product/article/record detail URLs also have .md twins. Unsupported representations on negotiated pages return 406. Unknown pages requested as Markdown return a Markdown 404 with recovery links. Unknown API paths return JSON 404.
Member access and purchasing
The Growth overview describes SaaSCode's marketing workspace for catalog product owners. Read it with document ID growth in the public-document tool. Growth board actions, content generation and publication retain their authenticated dashboard permissions.
Genesis MCP is a separate member service at /api/genesis/mcp. It requires the member's Genesis key and existing membership checks. See the authentication guide; the public catalog server does not grant access to member data or administration.
Read the pricing guide and Terms before choosing a product or membership. Purchases take place through the normal website flow with the user's confirmation. No delegated payments, anonymous member access or OAuth authorization server are advertised by this public API.
