vophuthinh API Documentation

The vophuthinh.com API is a free, read-only JSON API with no authentication. The machine-readable spec is /openapi.json (OpenAPI 3.1). An MCP server is available at /api/mcp (Streamable HTTP); its manifest is /.well-known/mcp/server-card.json. Agents can also read llms.txt or request the home page with Accept: text/markdown.

Authentication

None. All GET endpoints are public. CORS allows any origin.

Endpoints

Versioning and deprecation

Current version: v1, served at /api/v1/* (unversioned /api/* stays as an alias). A breaking change ships under a new prefix (/v2/) and v1 stays available for at least 90 days, announced with Deprecation and Sunset response headers.

Request and response shapes

Examples

curl https://vophuthinh.com/api/v1/profile
curl "https://vophuthinh.com/api/v1/projects?category=llm"
curl -X POST https://vophuthinh.com/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
curl -X POST https://vophuthinh.com/api/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_projects","arguments":{"category":"llm"}}}'
curl -X POST https://vophuthinh.com/api/v1/contact \
  -H 'Content-Type: application/json' \
  -d '{"from_name":"Ada","email_id":"ada@example.com","message":"Hello"}'

Errors

Errors are JSON with the HTTP status set accordingly:

{"error":{"code":"not_found","message":"...","hint":"...","docs":"https://vophuthinh.com/docs"}}

Unknown paths return HTTP 404. Send Accept: text/markdown to get a Markdown error body.