---
title: "Bulk generate separated personas and missions"
method: POST
path: "/personas/generate-bulk"
tags: ["Personas"]
---

# Bulk generate separated personas and missions

`POST /personas/generate-bulk`

Generate separated persona and mission information for all provided persona types and mission types.
Returns personas and missions in separated structures for independent management.

**Key Feature**: This endpoint generates ALL combinations of provided persona types and mission types, 
returning them in a structured format where:
- Personas are keyed by persona type name
- Missions are keyed by mission type name

## Query parameters

- `projectId` string

## Request body

- object
  - `projectReference` string — Project reference for context identification (alternative to projectId query parameter)
  - `flowReferenceId` string, required — Flow reference ID for AI agent and tool discovery
  - `allMissionTypes` object[], required — All mission types to generate missions for
    - `name` string, required — Mission type name
    - `description` string, required — Mission type description
    - `successCriteria` object[], required — Success criteria templates
      - `name` string, required
      - `description` string, required
  - `allPersonaTypes` object[], required — All persona types to generate personas for
    - `name` string, required — Persona type name
    - `description` string, required — Persona type description
  - `numberOfSuccessCriteria` integer, required — Number of success criteria to generate per mission
  - `requestedPackages` integer, required — Number of packages to generate per type combination

## Response `200`

Bulk personas and missions generated successfully

- object
  - `success` boolean, required — Whether the generation was successful
  - `personas` object, required — Personas organized by persona type name as keys
  - `missions` object, required — Missions organized by mission type name as keys
  - `metadata` object — Optional metadata about the generation
    - `requestId` string — Request identifier
    - `processedAt` string — Timestamp when processed
    - `model` string — LLM model used
    - `personaTypesCount` integer — Number of persona types processed
    - `missionTypesCount` integer — Number of mission types processed

## Other responses

- `400` — Bad Request - Invalid input parameters
- `401` — Unauthorized - Invalid or missing authentication
- `403` — Forbidden - Insufficient permissions
- `500` — Internal Server Error - Server error

---

[API](https://skmtc.net/cognigy/apis/simulator-openapi-rest-ful-api-reference.md) · [All operations](https://skmtc.net/cognigy/apis/simulator-openapi-rest-ful-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cognigy/simulator-openapi-rest-ful-api-reference/revisions/85b2872bdfb7/schema)
