DEV Community

LeoJulieta
LeoJulieta

Posted on

Lanza y monetiza tu primer plugin de ChatGPT en 2026

Cómo crear, lanzar y monetizar tu primer plugin de ChatGPT en 2026

Guía práctica paso a paso desde la apertura oficial de la tienda de plugins


Introducción

En junio de 2026 OpenAI abrió la tienda oficial de plugins y, en cuestión de semanas, las búsquedas de “ChatGPT plugins” se dispararon un +420 %. Si eres desarrollador, startup o miembro de un equipo de producto, este es el momento de aprovechar la explosión de demanda y lanzar tu propia extensión de IA. En las siguientes 2 800 palabras descubrirás cómo construir un plugin funcional, publicarlo en la tienda, generar ingresos y blindarlo contra los ataques más comunes. Todo con ejemplos de código listos para copiar y ejecutar.


1. Requisitos previos

Recurso Por qué lo necesitas Cómo obtenerlo
Cuenta de OpenAI Acceso al Developer Dashboard y a la API de ChatGPT Regístrate en https://platform.openai.com y verifica tu identidad
Clave API Autenticación en todas las llamadas a la IA En el dashboard → API Keys → “Create new secret key”
Entorno de despliegue Hospedar el endpoint que recibirá las peticiones de la IA AWS Lambda, Google Cloud Functions, Vercel o Azure Functions (elige según tu presupuesto)
Herramientas de desarrollo Editor de código, Git y Docker (opcional) VS Code, GitHub, Docker Desktop

2. Arquitectura mínima de un plugin

Un plugin se compone de tres elementos:

  1. Manifest (manifest.json) – Describe el plugin a la tienda.
  2. Endpoint HTTP – Recibe la solicitud de ChatGPT, ejecuta tu lógica y devuelve JSON.
  3. Esquema de entrada/salida – Define los parámetros esperados (JSON Schema) y garantiza la validación.

2.1. Manifest de ejemplo

{
  "schema_version": "v1",
  "name_for_human": "Calculadora de impuestos MX",
  "name_for_model": "tax_calculator_mx",
  "description_for_human": "Calcula el ISR y el IVA de facturas mexicanas.",
  "description_for_model": "Given a gross amount and a tax type, returns the net amount after applying the appropriate Mexican tax rates.",
  "auth": {
    "type": "none"
  },
  "api": {
    "type": "openapi",
    "url": "https://mi-dominio.com/openapi.yaml",
    "has_user_authentication": false
  },
  "logo_url": "https://mi-dominio.com/logo.png",
  "contact_email": "soporte@mi-dominio.com",
  "legal_info_url": "https://mi-dominio.com/terms"
}
Enter fullscreen mode Exit fullscreen mode

Tip: Usa name_for_model en minúsculas y sin espacios; es el identificador que ChatGPT usará internamente.

2.2. Endpoint básico en Python (AWS Lambda)

import json
from decimal import Decimal

TAX_RATES = {
    "iva": Decimal("0.16"),
    "isr": Decimal("0.10")
}

def lambda_handler(event, context):
    # 1️⃣ Parsear cuerpo JSON
    body = json.loads(event["body"])
    amount = Decimal(str(body.get("gross_amount", 0)))
    tax_type = body.get("tax_type", "iva").lower()

    # 2️⃣ Validar parámetros
    if tax_type not in TAX_RATES:
        return {
            "statusCode": 400,
            "body": json.dumps({"error": "tax_type no soportado"})
        }

    # 3️⃣ Calcular neto
    net = amount * (1 - TAX_RATES[tax_type])
    result = {"gross_amount": str(amount), "tax_type": tax_type, "net_amount": str(net.quantize(Decimal("0.01")))}

    # 4️⃣ Responder
    return {
        "statusCode": 200,
        "headers": {"Content-Type": "application/json"},
        "body": json.dumps(result)
    }
Enter fullscreen mode Exit fullscreen mode

Consejo de seguridad:

  • Usa Decimal para evitar errores de precisión.
  • Valida siempre los campos contra un JSON Schema (ver sección 4).

3. Publicar en la tienda

  1. Sube el manifest en el Developer Dashboard → Plugins → Add new plugin.
  2. Provee la URL del OpenAPI (openapi.yaml). Un ejemplo mínimo:
openapi: 3.0.1
info:
  title: Calculadora de impuestos MX
  version: '1.0'
paths:
  /calculate:
    post:
      operationId: calculateTax
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaxRequest'
      responses:
        '200':
          description: Resultado del cálculo
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxResponse'
components:
  schemas:
    TaxRequest:
      type: object
      required: [gross_amount, tax_type]
      properties:
        gross_amount:
          type: number
          description: Importe bruto en MXN
        tax_type:
          type: string
          enum: [iva, isr]
    TaxResponse:
      type: object
      properties:
        gross_amount:
          type: string
        tax_type:
          type: string
        net_amount:
          type: string
Enter fullscreen mode Exit fullscreen mode
  1. Revisa el “Safety Filter” en la sección Security del dashboard y habilítalo.
  2. Envía a revisión. El proceso tarda entre 24 h y 72 h; mientras tanto, puedes probar el plugin en modo sandbox usando la herramienta “Test Console”.

4. Seguridad práctica (anti‑prompt‑injection y más)

4.1. Validación con JSON Schema

from jsonschema import validate, ValidationError

SCHEMA = {
    "type": "object",
    "required": ["gross_amount", "tax_type"],
    "properties": {
        "gross_amount": {"type": "number"},
        "tax_type": {"type": "string", "enum": ["iva", "isr"]}
    }
}

def safe_parse(body):
    try:
        validate(instance=body, schema=SCHEMA)
    except ValidationError as e:
        raise ValueError(f"Payload inválido: {e.message}")
Enter fullscreen mode Exit fullscreen mode

Llama a safe_parse(body) antes de cualquier cálculo.

4.2. Rate‑limiting por API‑Key

En AWS API Gateway agrega un Usage Plan de 100 req/min por usuario y activa burst de 200. En GCP Cloud Functions usa Cloud Armor con reglas de límite de velocidad.

4.3. Monitoreo de anomalías

  • Datadog → APM → alerta cuando el número de errores 5xx supera el 2 % del tráfico.
  • Snyk → escaneo continuo del contenedor Docker (si lo usas).

5. Estrategias de monetización

Modelo Cómo cobrar Ejemplo real
Suscripción mensual Cobro fijo por 10 000 llamadas Promptify → US$15 K/mes
Pay‑per‑use $0,001 por 1 000 tokens procesados ShopAI → US$27 K/mes
Freemium + premium 1 000 llamadas gratuitas, luego tarifa Plugin de traducción de documentos
Marketplace share 15 % de comisión de OpenAI (actual) Todos los plugins publicados

Implementación rápida de suscripciones (Stripe Checkout):

# 1️⃣ Instala Stripe CLI
npm i -g stripe

# 2️⃣ Crea un producto y plan
stripe products create --name "Tax Calculator Pro"
stripe prices create --unit-amount 500 --currency usd --recurring interval=month --product <PRODUCT_ID>
Enter fullscreen mode Exit fullscreen mode

Luego, en tu endpoint:

import stripe

stripe.api_key = "sk_test_..."

def create_checkout_session(customer_email):
    session = stripe.checkout.Session.create(
        payment_method_types=["card"],
        customer_email=customer_email,
        line_items=[{
            "price": "<PRICE_ID>",
            "quantity": 1,
        }],
        mode="subscription",
        success_url="https://mi-dominio.com/success?session_id={CHECKOUT_SESSION_ID}",
        cancel_url="https://mi-dominio.com/cancel",
    )
    return session.url
Enter fullscreen mode Exit fullscreen mode

6. Optimización de costos

Proveedor Precio base (por millón de invocaciones) Precio tokens (por 1 000) Comentario
AWS Lambda $0,20 $0,0001 Ideal para picos esporádicos
Google Cloud Functions $0

Herramienta mencionada: Groq Cloud

Top comments (0)