/api

REST API reference for api.mfm.dev · No auth required · JSON responses · v1

$ base url

https://api.mfm.dev

$ endpoints

GET/v1/services

List service summaries. Returns service_id, name, domains, freshness risk, and verification status.

?domain=auth_identity&freshness_risk=low&skip=0&limit=20
GET/v1/services/:id

Full manifest for a single service. Includes all four truth zones: canonical_facts, normalized_profile, editorial, trust.

POST/v1/discover

Query the catalog with hard filters and soft preferences. Returns ranked matches with match strength, per-match detail, and full query transparency (including eliminated services and why).

body: { required_capabilities?, required_domains?, required_frameworks?, required_auth_methods?, business_model?, trust_filter?, prefer?, exclude_services? }
GET/v1/taxonomy

List the controlled vocabulary used in manifests. Discover valid terms for capabilities, domains, and groups.

?domain=auth_identity&group=auth_protocol
GET/v1/taxonomy/:domain

All taxonomy terms for a specific domain.

GET/v1/guides/:service_id

List available implementation guides for a service. Returns framework names and metadata (no body).

GET/v1/guides/:service_id/:framework

Full implementation guide for a service+framework pair. Returns YAML frontmatter and the markdown body.

GET/health

Health check. Returns { status: 'ok' }.

$ quick examples

# List all services
curl https://api.mfm.dev/v1/services | jq '.[].service_id'

# Get a single manifest
curl https://api.mfm.dev/v1/services/stripe

# Discover: payment services with subscriptions + free tier preference
curl -X POST https://api.mfm.dev/v1/discover \
  -H "Content-Type: application/json" \
  -d '{
    "required_domains": ["payments_billing"],
    "required_capabilities": {
      "subscriptions": { "min_state": "native" }
    },
    "prefer": { "free_tier": true }
  }'

# Browse taxonomy
curl https://api.mfm.dev/v1/taxonomy?domain=auth_identity

$ POST /v1/discover — request body

{
  // Hard filters — eliminated if not met
  "required_capabilities": {
    "<capability_name>": { "min_state": "native" | "partial" | "beta" | ... }
  },
  "required_domains": ["auth_identity" | "payments_billing" | ...],
  "required_frameworks": ["nextjs", "react", ...],
  "required_auth_methods": ["oauth2", "api_key", ...],
  "required_payment_methods": ["card", "bank_transfer", ...],
  "business_model": "b2c" | "b2b" | "b2b2c" | "internal_workforce",
  "trust_filter": {
    "max_freshness_risk": "low" | "medium" | "high" | "stale",
    "min_verification_status": "initial_draft" | "agent_verified" | "cross_referenced" | "provider_confirmed"
  },
  "exclude_services": ["stripe", ...],

  // Soft preferences — affect ranking, not elimination
  "prefer": {
    "<capability_or_meta>": true | false
    // meta keys: "free_tier", "open_source"
  }
}