developers

APIs, OpenAPI specification, Model Context Protocol server, and client SDKs for engineers and AI agents.

All read-only REST and agent interfaces operate without keys, credentials, or rate penalties. Live endpoints serve deterministic data with sub-second latency.


Official SDKs

npm install @ashwingopalsamy/sdk
import { AshwinGopalsamyClient } from "@ashwingopalsamy/sdk";

const client = new AshwinGopalsamyClient();
const profile = await client.getProfile();
const results = await client.searchSite("rate limiters", 5);
pip install ashwingopalsamy
from ashwingopalsamy import Client

client = Client()
profile = client.get_profile()
results = client.search_site("rate limiters", limit=5)
go get github.com/ashwingopalsamy/ashwingopalsamy.in/packages/go
import (
    "context"
    ashwingopalsamy "github.com/ashwingopalsamy/ashwingopalsamy.in/packages/go"
)

client := ashwingopalsamy.NewClient()
profile, err := client.GetProfile(ctx)
results, err := client.SearchSite(ctx, "rate limiters", 5)
gem install ashwingopalsamy
require "ashwingopalsamy"

client = AshwinGopalsamy::Client.new
profile = client.get_profile
results = client.search_site("rate limiters", limit: 5)

CLI Tool

Inspect profile facts, technical notes, and search index directly from your terminal:

NPX / Node.jsZero-install Node CLI for profile inspection, global search, and note retrieval.
npx ashwingopalsamy profile
npx ashwingopalsamy search "rate limiters"
npx ashwingopalsamy note designing-rate-limiters-for-payment-systems
Curl / POSIX ShellLightweight POSIX shell runner for Unix environments without Node installed.
curl -sSL https://ashwingopalsamy.in/cli.sh | sh -s -- profile
curl -sSL https://ashwingopalsamy.in/cli.sh | sh -s -- search "ISO 8583"

REST Endpoints

GET/api/v1/profile

Authoritative career summary, current role, location, and verified profile facts.

GET/api/v1/search?query={q}&limit={n}

Search technical notes, craft projects, and reading list entries.

GET/api/v1/content?kind={kind}&limit={n}

List public entries by kind (note, craft, book, watch, or all).

GET/api/v1/notes/{slug}

Retrieve raw Markdown content and metadata for a published note.

GET/api/v1/status

API operational status, versioning policy, and capability catalog.


Protocol Interfaces

Model Context Protocol (MCP)

/mcp
Streamable HTTP · JSON-RPC 2.0

Production MCP endpoint offering native tool execution (search_site, get_profile, list_content, get_note_markdown), resources, and prompt templates for autonomous AI agents.

npx -y @modelcontextprotocol/inspector https://ashwingopalsamy.in/mcp

Agent-to-Agent (A2A)

/a2a
JSON-RPC 2.0 Task Routing

Direct agent message exchange protocol for task delegation, profile extraction, and capability handoff.

curl -s -X POST https://ashwingopalsamy.in/a2a -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"message/send","params":{"message":{"parts":[{"kind":"text","text":"profile"}]}}}'

OpenAPI Specification

/openapi.json
OpenAPI 3.1.0

Complete machine-readable REST API schema defining strongly typed parameters, request contracts, and response schemas.

curl -s https://ashwingopalsamy.in/openapi.json

Web Bot Auth Directory (RFC 9421)

/.well-known/http-message-signatures-directory
RFC 9421 · Ed25519 JWK

Cryptographic public signature keys directory for verifying authentic bot identities and mitigating spoofing.

curl -s https://ashwingopalsamy.in/.well-known/http-message-signatures-directory

Headers & Rate Limits

Standard IETF RateLimit headers are returned on all endpoints (120 req/min sliding window):

RateLimit-Limit120
Maximum requests permitted per sliding window (120 per minute).
RateLimit-Remaining0..120
Remaining request budget available in the active window.
RateLimit-Reset60s
Seconds remaining until current window quota fully resets.
RateLimit-Policy120;w=60
Standard IETF quota policy descriptor (120 req / 60s window).
X-RateLimit-*Legacy
Compatibility headers provided for legacy HTTP clients and proxies.
API-Version2026-08-22
Contract release timestamp defining endpoint behavior.

Versioning & Errors (RFC 9457)

Explicit path versioning (/api/v1) paired with RFC 9457 Problem Details for typed error responses:

{
  "type": "https://ashwingopalsamy.in/developers#errors",
  "title": "Resource Not Found",
  "status": 404,
  "detail": "Note slug 'non-existent' was not found in published index.",
  "code": "note_not_found",
  "resolution_hint": "Check /api/v1/content?kind=note for a complete list of valid note slugs."
}

Permissions

site.readRead-Only
Unrestricted read access to public profiles, craft projects, and technical notes.
profile.readRead-Only
Access verified identity facts, career history, and current employment metadata.
content.searchRead-Only
Execute semantic and keyword queries across technical notes and library entries.
notes.readRead-Only
Retrieve raw Markdown source and frontmatter for published technical notes.

Discovery Index