# info.description
Public, unauthenticated portfolio API. Send a contact message or check health. MCP tools are advertised separately. /api and /api/v1 advertise payment discovery with a zero-amount challenge.

# paths./api.get.x-payment-info.offers[].description
Protocol discovery only. This origin does not collect payment for public portfolio APIs.

# paths./api.get.x-payment-info.offers[].description
Protocol discovery only. This origin does not collect payment for public portfolio APIs.

# paths./api.get.x-payment-info.offers[].description
Protocol discovery only. This origin does not collect payment for public portfolio APIs.

# paths./api.get.x-payment-info.offers[].description
Protocol discovery only. This origin does not collect payment for public portfolio APIs.

# paths./api.get.responses.402.description
Payment Required — x402 / MPP discovery challenge. Amount is 0; this origin does not collect payment.

# paths./api/v1.get.x-payment-info.offers[].description
Protocol discovery only. This origin does not collect payment for public portfolio APIs.

# paths./api/v1.get.x-payment-info.offers[].description
Protocol discovery only. This origin does not collect payment for public portfolio APIs.

# paths./api/v1.get.x-payment-info.offers[].description
Protocol discovery only. This origin does not collect payment for public portfolio APIs.

# paths./api/v1.get.x-payment-info.offers[].description
Protocol discovery only. This origin does not collect payment for public portfolio APIs.

# paths./api/v1.get.responses.402.description
Payment Required — x402 / MPP discovery challenge. Amount is 0; this origin does not collect payment.

# paths./api/v1/catalog.get.summary
ACP product feed of professional services and portfolio work

# paths./api/v1/catalog.get.responses.200.description
Catalog of services and projects. Checkout is not available.

# paths./mcp.post.summary
Model Context Protocol Streamable HTTP endpoint