# Public Content API

Flower's public content API provides unauthenticated, read-only access to company information and published writing.

## Agent interfaces

Browser WebMCP exposes four camelCase tools (`getFlowerCompanyOverview`, `listFlowerPosts`, `getFlowerPost`, `getFlowerApiStatus`) on pages that register it. The remote MCP service is the canonical cross-client surface and exposes six snake_case tools at https://mcp.flowercomputer.com/; its tools are `get_company_overview`, `list_posts`, `get_post`, `search_posts`, `get_contact_information`, `get_api_status`. Both interfaces are unauthenticated and read-only.

No enforced quota is currently advertised. Clients should avoid rapid polling and must honor any future `429 Too Many Requests` response, `Retry-After` header, and `RateLimit` headers.

## Endpoints

- [`/api/v1/site.json`](https://www.flowercomputer.com/api/v1/site.json) — Company description, current work, and public links.
- [`/api/v1/posts.json`](https://www.flowercomputer.com/api/v1/posts.json) — Published post metadata, newest first.
- [`/api/v1/posts/{slug}.json`](https://www.flowercomputer.com/api/v1/posts/introduction.json) — A published post and its Markdown body.
- [`/api/v1/status.json`](https://www.flowercomputer.com/api/v1/status.json) — Content API availability and version.

## Examples

### Learn what Flower does

**Ask:** What does Flower Computer Company do, and what is it currently building?

**Request:** `curl https://www.flowercomputer.com/api/v1/site.json`

**Expected result:** A JSON object containing Flower's canonical description, current and prior work, contact information, and stable public links.

### Find and retrieve a published post

**Ask:** Find Flower's published writing, then retrieve one post as Markdown.

**Requests:** First call `curl https://www.flowercomputer.com/api/v1/posts.json`. Choose a returned `slug`, then call `curl https://www.flowercomputer.com/api/v1/posts/{slug}.json`.

**Expected result:** The list returns valid post identifiers and canonical URLs. The detail request returns the selected post with its complete `contentMarkdown` body.

**Citation:** Cite the returned `htmlUrl`. Use `markdownUrl` when retaining readable-source provenance and `apiUrl` when retaining machine-retrieval provenance. Relative media references in `contentMarkdown` are source annotations; use `htmlUrl` for rendered media.

### Check API availability

**Ask:** Is Flower's public content API available, and which version is active?

**Request:** `curl https://www.flowercomputer.com/api/v1/status.json`

**Expected result:** A JSON object with `status: "ok"`, the service name, and the current API version.

## Discovery

- [OpenAPI 3.1 description](https://www.flowercomputer.com/api/openapi.json)
- [RFC 9727 API catalog](https://www.flowercomputer.com/.well-known/api-catalog)
- [ARD capability manifest](https://www.flowercomputer.com/.well-known/ai-catalog.json)
- [Versioning and deprecation policy](https://www.flowercomputer.com/api/versioning.md)
- [Flower public content Agent Skill](https://www.flowercomputer.com/.well-known/agent-skills/flower-public-content/SKILL.md) — Canonical selection, identifier, retry, and failure guidance.
