---
title: "Create External Tool Rules Batch"
method: POST
path: "/rules/v1/rule/external-tool/batch"
---

# Create External Tool Rules Batch

`POST /rules/v1/rule/external-tool/batch`

## Request

- Base URL: `https://api.qualityclouds.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.qualityclouds.ai/rules/v1/rule/external-tool/batch`
- Auth: one of:
  - HTTP bearer
  - OpenID Connect (`https://account.qualityclouds.com//realms/ai-production/.well-known/openid-configuration`)

Endpoint para crear múltiples reglas external-tool en batch.

Procesa cada regla independientemente con partial success:
- Reglas válidas: se crean (status=created)
- Reglas duplicadas: se marcan como ya existentes (status=already_exists)
- Reglas inválidas: se marcan como fallidas con detalle del error (status=failed)

Performance:
- 1 HTTP request → 1 conexión DB
- N commits secuenciales dentro de la misma sesión
- No sobrecarga el pool de conexiones

Returns:
    HTTP 200 con resultados detallados (siempre retorna 200, errores en body)

## Request body

- ExternalToolRulesBatchInput: Input model para el endpoint batch de reglas external-tool.
  - `rules` ExternalToolRuleInput[], required: Lista de reglas external-tool a crear
    - `rule_slug` string, required
    - `version` string, required
    - `name` string, required
    - `description` string, required
    - `severity` string, required
    - `impact_area` string, required
    - `estimated_time_to_fix` integer, required
    - `platforms` string[], required
    - `ce_types` string[], required
    - `file_extensions` string[], required
    - `repository_ids` integer[], required
    - `org_uuids` string[], required
    - `is_common` boolean
    - `payload` object, required
    - `file_extensions_ids` string[]
    - `path_patterns` string[]
    - `impact` string, nullable
    - `action` string, nullable

## Response `200`

Successful Response

- ExternalToolRulesBatchResponse: Respuesta del endpoint batch con estadísticas agregadas y resultados detallados. Principio SOLID: OCP - Open/Closed Principle. Extensible para agregar nuevas métricas sin modificar la estructura base.
  - `total_requested` integer, required: Total de reglas solicitadas
  - `created` integer, required: Reglas creadas exitosamente
  - `skipped` integer, required: Reglas que ya existían
  - `failed` integer, required: Reglas que fallaron
  - `results` RuleCreationResult[], required: Detalle de cada regla procesada
    - `rule_slug` string, required: Rule slug identificador
    - `status` 'created' | 'already_exists' | 'failed', required: Estado de la operación
    - `id` string, nullable: ID de la regla si fue creada o existe
    - `error` string, nullable: Mensaje de error si falló

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `422`: Validation Error

---

[API](https://skmtc.dev/qualityclouds/apis/qai-orchestrator-api.md) · [All operations](https://skmtc.dev/qualityclouds/apis/qai-orchestrator-api/llms.txt) · [OpenAPI document](https://skmtc.dev/qualityclouds/apis/qai-orchestrator-api/revisions/250c849925af?raw)
