---
title: "Developers — Ronan Rodrigo Nunes"
description: "Developer portal: API quickstart, endpoints, MCP server, NLWeb ask and sandbox."
canonical: "https://ronanrodrigo.dev/developers"
markdown: "https://ronanrodrigo.dev/developers.md"
last-updated: "2026-10-20"
---
# Developer portal — ronanrodrigo.dev

APIs públicas read-only, sem auth, sem API key. Todo GET é sandbox seguro.

## Quickstart

```sh
curl https://ronanrodrigo.dev/notes/index.json
curl -X POST https://ronanrodrigo.dev/ask -H "Content-Type: application/json" -d '{"query":"observabilidade"}'
```

## Documentação

- API docs: https://ronanrodrigo.dev/api-docs (+ /api-docs.md)
- OpenAPI 3.1: https://ronanrodrigo.dev/openapi.json
- Auth docs: https://ronanrodrigo.dev/auth.md
- Pricing: https://ronanrodrigo.dev/pricing (+ /pricing.md)

## Máquina

- NLWeb: POST https://ronanrodrigo.dev/ask (SSE com prefer.streaming:true)
- MCP (dados): POST https://ronanrodrigo.dev/mcp (JSON-RPC 2.0); manifesto /.well-known/mcp
- MCP (docs): POST https://ronanrodrigo.dev/mcp/learn
- Agent plugin: /plugin.json + /mcp.json
- Contexto: /notes/llms.txt, /lab/llms.txt, /developers/llms.txt

## Rate limits

GET nunca é limitado. POST em /ask, /mcp, /mcp/learn e /api/jobs tem fair use de 60 req/min por IP (best-effort por instância). Toda resposta de API — sucesso ou erro — traz RateLimit-Limit, RateLimit-Remaining (cota cheia em leitura; decisão real num POST aceito; 0 no 429), RateLimit-Reset (segundos até reiniciar) e RateLimit-Policy (60;w=60). Excesso responde 429 JSON com Retry-After (RFC 6585) espelhando RateLimit-Reset. Convenções completas em /openapi.json.
