# Desenvolvedores

API pública de Lucas Cavalheri: os dados deste portfólio em JSON, somente leitura, sem chave e sem
cadastro. Respostas cacheadas por uma hora na borda.

## Comece por aqui

    curl -s https://lucascavalheri.com.br/api/index.json

## Recursos

- `GET /api/index.json` — índice, versão e política de uso
- `GET /api/perfil.json` — identidade, localização e disponibilidade
- `GET /api/projetos.json` — projetos com stack e links
- `GET /api/experiencia.json` — cargos, períodos e stack
- `GET /api/stack.json` — tecnologias por categoria
- `GET /api/contato.json` — canais e tempo de resposta
- `GET /openapi.json` — especificação OpenAPI 3.1, também em /api/openapi.json

Toda operação é GET, idempotente, com operationId próprio e schema de resposta tipado na
especificação: dá para registrar direto como ferramenta de function calling.

## Erros

Erro sob /api/ volta em JSON, com código estável, mensagem e dica:

    {
      "erro": {
        "status": 404,
        "codigo": "recurso_nao_encontrado",
        "mensagem": "O recurso /api/inexistente.json não existe nesta API.",
        "dica": "Consulte /api/index.json para a lista de recursos, ou /openapi.json para a especificação completa.",
        "caminho": "/api/inexistente.json",
        "documentacao": "https://lucascavalheri.com.br/desenvolvedores",
        "indice": "https://lucascavalheri.com.br/api/index.json"
      }
    }

## Markdown

Qualquer página responde markdown com `Accept: text/markdown` ou pelo sufixo `.md`, e a resposta
traz `Vary: Accept`.

## Descoberta para agentes

- Catálogo: https://lucascavalheri.com.br/.well-known/api-catalog
- MCP: https://lucascavalheri.com.br/mcp — cartão em /.well-known/mcp/server-card.json
- ARD: https://lucascavalheri.com.br/.well-known/ai-catalog.json
- Skills: https://lucascavalheri.com.br/.well-known/agent-skills/index.json
- auth.md: https://lucascavalheri.com.br/auth.md — a API é pública; token opcional e ignorado

## CLI

    npx lucascavalheri            # perfil
    npx lucascavalheri projetos   # projetos com stack
    npx lucascavalheri contato    # canais de contato
    npx lucascavalheri --json     # saída crua, para pipe

## Licença

Dados sob CC BY 4.0: use, cite a fonte. Sem limite de requisição declarado; para volume alto, baixe
o JSON e sirva do seu lado.

---

Outras páginas deste site:

- [Início](https://lucascavalheri.com.br/) — Perfil, projetos, experiência e stack
- [Sobre](https://lucascavalheri.com.br/sobre) — Trajetória, como trabalho e o que procuro
- [Contato](https://lucascavalheri.com.br/contato) — E-mail, WhatsApp, redes e tempo de resposta
- [Open source](https://lucascavalheri.com.br/open-source) — Projetos com código aberto e contribuições em repositórios de terceiros
- [Usos](https://lucascavalheri.com.br/usos) — Lista completa de linguagens, frameworks e ferramentas
- [Identidade](https://lucascavalheri.com.br/identidade) — Cores, fontes e tokens do site, nos temas claro e escuro
- [Desenvolvedores](https://lucascavalheri.com.br/desenvolvedores) — API pública em JSON, especificação OpenAPI e CLI
- [Privacidade](https://lucascavalheri.com.br/privacidade) — Que dados o site coleta, e quais não coleta

Qualquer página responde em markdown com `Accept: text/markdown` ou pelo sufixo `.md`.
