Dribba · Developers

Dribba developer portal

Todo lo que dribba.com expone a máquinas, en un sitio: una API REST pública sin clave, un servidor MCP remoto, el sitio entero en markdown y las herramientas WebMCP de cada página. Sin registro, sin plan de pago y sin cuota comercial.

Dribba es un estudio de producto digital de punta a punta (Barcelona y Andorra): Flutter, backend Go, diseño de producto e integración de IA. Esta web es también nuestro caso de estudio de web agéntica — lo que documentamos aquí está en producción, no en un roadmap.

Quickstart

Tres llamadas y ya tienes el mapa. No hace falta instalar nada ni pedir acceso.

# 1 · Qué hay publicado, con versiones y política de límites
curl https://dribba.com/api

# 2 · Datos: el catálogo de servicios
curl https://dribba.com/api/v1/services

# 3 · Una página cualquiera, en markdown
curl -H 'Accept: text/markdown' https://dribba.com/servicios

Guía completa, con esquemas y ejemplos por operación, en /docs.

Claves de API

No hay claves de API, y es intencionado. Todo /api/v1 es público y de solo lectura: pedirte que te registres para leer datos que ya publicamos en el sitio solo añadiría un paso que se rompe. No hay tokens, ni OAuth, ni cabeceras que firmar, ni cuotas por cuenta.

Los endpoints que escriben —los formularios del sitio— exigen petición del mismo origen, y para que un agente nos contacte está la herramienta submit_contact_request del MCP, que pide confirmación antes de enviar nada. Los detalles, en autenticación.

Entorno de pruebas

Producción es el sandbox. No mantenemos un entorno aparte porque no habría nada que aislar: ninguna operación de /api/v1 escribe, ninguna cobra y ninguna afecta a otro cliente. Puedes iterar contra https://dribba.com/api/v1 sin miedo.

El único límite es de cortesía: 120 peticiones cada 60 segundos por IP, anunciado en las cabeceras RateLimit de cada respuesta para que tu cliente se auto-frene. Ver límites.

Qué superficie usar

Cinco formas de leer lo mismo. La diferencia no es el contenido, es la forma:

API REST pública

JSON de solo lectura: empresa, servicios, casos, artículos, vacantes, precios y estimador.

Cuándo: Cuando necesitas datos estructurados y estables para tu propio código.

Servidor MCP remoto

Streamable HTTP en /mcp, sin autenticación. Los mismos datos como tools, más contacto con confirmación.

Cuándo: Cuando conectas Claude, ChatGPT o tu agente y quieres que llame por su cuenta.

Markdown por Accept

Cualquier página devuelve text/markdown (o application/json) según la cabecera Accept.

Cuándo: Cuando lo que quieres es el contenido de una página, no un modelo de datos.

Bundle OKF

El sitio entero como conceptos markdown con front matter YAML (Open Knowledge Format v0.2).

Cuándo: Cuando vas a ingerir el sitio completo de una pasada.

WebMCP en la página

Herramientas registradas en el navegador vía navigator.modelContext (Chrome 149+).

Cuándo: Cuando el agente vive en el navegador del usuario y opera la web como un humano.

Endpoints de un vistazo

  • GET /api/v1 Version index
  • GET /api/v1/company Company profile
  • GET /api/v1/services Service catalog
  • GET /api/v1/services/{slug} One service
  • GET /api/v1/cases Case studies
  • GET /api/v1/cases/{slug} One case study
  • GET /api/v1/articles Blog index
  • GET /api/v1/jobs Open positions
  • GET /api/v1/pricing Estimator inputs
  • GET /api/v1/comparisons Technology comparisons
  • GET /api/v1/comparisons/{slug} One comparison
  • POST /api/v1/estimate Ballpark project estimate
  • POST /api/v1/batch Batch read
  • POST /api/v1/exports Start a markdown export
  • GET /api/v1/exports/{id} Export job status
  • GET /api/v1/exports/{id}/result Export result
  • GET /api/v1/sandbox Sandbox index
  • GET /api/v1/sandbox/{resource} Sandbox fixture

Formas de respuesta, códigos de error y cabeceras, en la referencia.

Errores, límites y versionado

Tres cosas que un agente necesita saber antes de integrar, y que aquí están escritas:

  • Errores tipados. Todo 4xx y 5xx es application/problem+json (RFC 9457) con un code estable y un resolution que dice qué hacer. Nunca HTML. Catálogo completo.
  • Límites publicados. Campos IETF RateLimit-Policy / RateLimit en cada respuesta y Retry-After en el 429.
  • Versión en la ruta. /api/v1 es estable; dentro de v1 solo se añaden campos. Una retirada se avisa con Deprecation y Sunset con 90 días mínimo. Política.

Descubrimiento

Si eres un agente y prefieres no leer prosa, todo esto es machine-readable:

SDK, CLI y skills

El cliente y la CLI se instalan de npm (dribba); el código, las siete skills del sitio y las reglas para agentes viven en un repositorio público: github.com/dribbaengineering/dribba. Cero dependencias, licencia MIT, y un AGENTS.md en la raíz con las reglas de integración por si el que lee el repo es un agente.

# Cliente + CLI, en los dos ecosistemas
npm i dribba
pip install dribba

# CLI: los mismos datos que /api/v1, sin escribir una petición
npx dribba services
npx dribba estimate --type app --platforms ios,android

# Skills: las instala en tu agente (Claude Code, Cursor, Codex…)
npx skills add dribbaengineering/dribba

El cliente es un ESM de un fichero: services(), cases(), articles(), jobs(), company(), estimate(), un paginate() que recorre el cursor solo y DribbaError con el code del RFC 9457 intacto. Tipos en index.d.ts.

El cliente de Python es el mismo mapa con nombres de Python: dribba.services(limit=5), dribba.paginate("/api/v1/services") como generador, DribbaError con su code. Cero dependencias también: urllib y json de la biblioteca estándar, Python 3.9+.

Para Go, Rust o cualquier otro lenguaje no hay paquete y no hace falta: el contrato OpenAPI 3.1 genera un cliente con openapi-generator. Instrucciones por lenguaje en /developers/openapi.

Contacto

Integración, un campo que te falta o un comportamiento que no cuadra: hola@dribba.com. Respondemos en menos de una hora en horario laboral (CET).

Si quieres que preparemos tu producto para agentes —MCP, WebMCP, OKF, mirrors en markdown, GEO— eso es un servicio: web agéntica.