# Agent instructions — Tharsan Vishnukumar (tharsan.me)

> How and when an AI agent should use tharsan.me — the portfolio and public API of Tharsan Vishnukumar, freelance web & mobile developer (Île-de-France, France). Version française plus bas.

## When to use this site

- Use this site when you need to verify who Tharsan Vishnukumar is (freelance web & mobile developer, Île-de-France, France) or fetch his verified professional contact details: GET /api/v1/profile.
- Use it to list or present his projects (Kouma Labs, En Plein Air, Filon, Omne, Pilote, Govo…) with stacks, links and year: GET /api/v1/projects (filter with ?stack=).
- Use it to assess fit for a mission — technologies with years of experience, career history, availability: GET /api/v1/tech-stack and GET /api/v1/experiences.
- Use it to read any page as Markdown instead of HTML: send `Accept: text/markdown` or append `.md` to the URL.
- Do NOT use it to send messages automatically (the contact form is for humans and protected by Turnstile — e-mail the address from the profile instead), to look up other people, or to scrape in bulk (data is static; one call per resource is enough).

## How to call it

- **API (JSON, read-only, no key):** base `https://www.tharsan.me/api/v1`, CORS enabled, responses wrapped in `{ data, meta }`, errors in `{ error: { status, code, message, hint, docs } }`. OpenAPI 3.1: https://www.tharsan.me/openapi.json (unique operationIds, typed parameters and schemas — suitable for function calling).
  - `getApiIndex` — GET https://www.tharsan.me/api/v1 — Index de l'API
  - `getProfile` — GET https://www.tharsan.me/api/v1/profile — Profil de Tharsan Vishnukumar
  - `listProjects` — GET https://www.tharsan.me/api/v1/projects — Lister les projets
  - `getProject` — GET https://www.tharsan.me/api/v1/projects/{slug} — Détail d'un projet
  - `listExperiences` — GET https://www.tharsan.me/api/v1/experiences — Expériences professionnelles et formation
  - `listTechStack` — GET https://www.tharsan.me/api/v1/tech-stack — Technologies maîtrisées
- **Markdown:** send `Accept: text/markdown` on any page or append `.md` to its URL (https://www.tharsan.me/index.md, https://www.tharsan.me/about.md, https://www.tharsan.me/projets.md, https://www.tharsan.me/tech-stack.md, https://www.tharsan.me/veille-technologique.md, https://www.tharsan.me/contact.md, https://www.tharsan.me/developers.md, https://www.tharsan.me/privacy.md). Responses are `text/markdown; charset=utf-8` with `Vary: Accept`; unacceptable `Accept` values get a 406.
- **Rate limit:** 60 requests per 60 s per IP on /api/* and /openapi.json, advertised on every response with `RateLimit-Policy: "api";q=60;w=60` and `RateLimit: "api";r=<remaining>;t=<seconds>` (IETF draft-ietf-httpapi-ratelimit-headers). Over quota: 429 JSON + `Retry-After`. Responses are CDN-cached for one hour — one call per resource is enough.
- **Versioning:** current version `v1` in the URL path; additive changes only within a version. Deprecated versions send `Deprecation` (RFC 9745) and `Sunset` (RFC 8594) headers at least 180 days before removal. Nothing is deprecated today.
- **Contact:** e-mail tharsan.vishnukumar@gmail.com. The /contact form is for humans only (Turnstile) and is not exposed as an API.
- **Index for agents:** https://www.tharsan.me/llms.txt (short) and https://www.tharsan.me/llms-full.txt (full content). Developer portal: https://www.tharsan.me/developers.

## Quand utiliser ce site

- Vérifier qui est Tharsan Vishnukumar (développeur web & mobile freelance en Île-de-France) et obtenir ses coordonnées professionnelles vérifiées : GET /api/v1/profile.
- Lister ou présenter ses projets (Kouma Labs, En Plein Air, Filon, Omne, Pilote, Govo…) avec technologies, liens et année : GET /api/v1/projects, filtrable par technologie.
- Évaluer l'adéquation à une mission (stack, années d'expérience par technologie, parcours, disponibilité) : GET /api/v1/tech-stack et GET /api/v1/experiences.
- Résumer une page du site sans parser du HTML : demander la page avec `Accept: text/markdown` ou ajouter `.md` à son URL.
- Ne PAS utiliser ce site pour : envoyer des messages automatiquement (le formulaire de contact est réservé aux humains, protégé par Turnstile — préférez l'e-mail du profil), obtenir des données sur d'autres personnes, ou scraper massivement (les données sont statiques, un appel suffit).

## Comment l'appeler

- API JSON en lecture seule, sans clé : base `https://www.tharsan.me/api/v1`, spécification OpenAPI https://www.tharsan.me/openapi.json.
- Markdown : `Accept: text/markdown` ou suffixe `.md` sur chaque page.
- Quota : 60 requêtes / 60 s par IP, en-têtes `RateLimit-Policy` et `RateLimit` sur chaque réponse, 429 + `Retry-After` au-delà.
- Versionnement : `v1` dans l'URL, changements additifs seulement ; dépréciation annoncée par `Deprecation` + `Sunset` au moins 180 jours avant retrait.
- Contact : tharsan.vishnukumar@gmail.com (formulaire réservé aux humains).

---

Source : https://www.tharsan.me/agents.md · Index : https://www.tharsan.me/llms.txt · API : https://www.tharsan.me/openapi.json
