OpenAPI Demo

Public Portfolio API

A static, read-only JSON API for public portfolio data. It exposes profile, CV, project, and blog metadata while excluding private contact messages, admin data, analytics, secrets, and write operations.

Endpoints

Root Profile JSON

Machine-readable public profile for crawlers and agents.

GET
/profile.json

Root CV JSON

Machine-readable public CV data.

GET
/cv.json

Root Projects JSON

Machine-readable public project status data.

GET
/projects.json

Root Certificates JSON

Completed hands-on credential evidence.

GET
/certificates.json

Well-Known Portfolio JSON

Public portfolio manifest with projects, endpoints, and claim policy.

GET
/.well-known/portfolio.json

Public Search Index

Public-only search records for the portfolio assistant.

GET
/public/search-index.json

API Search Index

Versioned alias of the public-only search records.

GET
/api/v1/search-index.json

API Profile

Versioned public profile, focus areas, languages, and links.

GET
/api/v1/profile.json

API CV

Versioned professional experience, selected technical projects, education, skills, and publications data.

GET
/api/v1/cv.json

API Projects

Versioned project summaries, statuses, and technology tags.

GET
/api/v1/projects.json

API Certificates

Versioned completed hands-on credential evidence.

GET
/api/v1/certificates.json

API Portfolio

Versioned machine-readable portfolio manifest.

GET
/api/v1/portfolio.json

OpenAPI

OpenAPI 3.1 document for this read-only API.

GET
/openapi.json

Examples

curl

curl https://robinhuang.nz/api/v1/profile.json

JavaScript

const profile = await fetch('/api/v1/profile.json').then((r) => r.json())

Python

import requests
profile = requests.get('https://robinhuang.nz/api/v1/profile.json', timeout=10).json()

Security Model

  • Read-only GET endpoints generated at build time.
  • No authentication tokens, cookies, sessions, or credentials.
  • No public write routes, comments, uploads, or user-submitted data.
  • No private contact inbox, admin records, analytics, or repository files.
  • Responses are same-origin static JSON with short cache revalidation.