──────────────────────────────────────────────────────────────────────────────── FluffyStack JSON API Programmatic access to the cloud catalogue. Base: https://api.fluffystack.dev/v1 ──────────────────────────────────────────────────────────────────────────────── Sister surface You're reading the JSON API reference rendered for terminals. The same catalogue is also reachable through this hostname (text.fluffystack.dev) with shorter URLs and ANSI / HTML / Markdown output. Endpoint names match between the two; only the prefix and filter style differ: # JSON API — versioned, query-param filters, JSON-only: $ curl https://api.fluffystack.dev/v1/services/aws-ec2 # Text site — bare paths, content-negotiated: $ curl https://text.fluffystack.dev/aws/ec2 Use the JSON API when you're writing code; the text site when you're typing curl or piping output into AI / wikis. Authentication None. All endpoints are open. Just curl them. Rate limits Read endpoints: not rate-limited (cached at the edge for 5 min). Mutations: 10 req/min/IP across POST routes. Endpoints GET  /v1/providers Every cloud provider in the catalogue. $ curl https://api.fluffystack.dev/v1/providers GET  /v1/categories Service categories. $ curl https://api.fluffystack.dev/v1/categories GET  /v1/services List + search services. Params: provider, category, q, freeTier, page, limit. $ curl "https://api.fluffystack.dev/v1/services?provider=aws&category=database" GET  /v1/services/:slug Single service detail with sub-services, equivalents, policy ids. $ curl https://api.fluffystack.dev/v1/services/aws-ec2 GET  /v1/compare Side-by-side compare. Params: ids (comma-separated slugs, max 10; text-mode display caps at 8 for 80-col legibility). $ curl "https://api.fluffystack.dev/v1/compare?ids=aws-ec2,azure-virtual-machines" POST /v1/policies/aws-scp Generate an AWS Service Control Policy from approved service ids. $ curl -X POST https://api.fluffystack.dev/v1/policies/aws-scp \ -H "Content-Type: application/json" \ -d '{"approvedServiceIds": ["aws-ec2", "aws-s3"]}' POST /v1/policies/azure-policy Generate an Azure Policy initiative from approved service ids. POST /v1/policies/gcp-org-policy Generate a GCP organisation policy restriction from approved service ids. POST /v1/export/markdown Render approved services list as Markdown (for runbooks). POST /v1/lists Save an approved-services list, get a shareable URL slug. GET  /v1/lists/:id Retrieve a saved approved-services list by id. $ curl https://api.fluffystack.dev/v1/lists/abc123 GET  /v1/status Catalogue status: counts, last-updated timestamp. $ curl https://api.fluffystack.dev/v1/status GET  /v1/health Cheap health probe for monitoring. $ curl https://api.fluffystack.dev/v1/health Full reference (with response shapes): https://fluffystack.dev/help#api JSON discovery doc: curl https://api.fluffystack.dev OpenAPI 3.1 spec (for code generators): curl https://api.fluffystack.dev/openapi.json ─── try `curl text.fluffystack.dev/help` for the full route list ───