Skip to content

Characters

Characters are the core resource in Mindforge. A character is an AI agent with identity — it has a name, personality, voice, knowledge, and capabilities. Characters can be game NPCs, museum guides, brand mascots, app companions, or anything else that needs to feel like a someone rather than a something.

The Character object

json
{
  "id": "character_PuTlWmWuynYZu8sP",
  "createdAt": "2026-01-15T12:00:00Z",
  "projectId": "project_abc123",
  "name": "Atlas",
  "description": "A knowledgeable guide who helps players navigate the world.",
  "voiceId": "voice_abc123",
  "voiceDescription": "A warm, calm male voice with a slight British accent.",
  "hasAvatar": true,
  "capabilityGroupIds": ["capability_group_smartmob_v1"]
}
FieldTypeDescription
idstringUnique identifier (character_ prefix)
createdAtstringISO 8601 timestamp
projectIdstringProject this character belongs to
namestringDisplay name
descriptionstring | nullPersonality and behavior description
voiceIdstring | nullID of an assigned voice
voiceDescriptionstring | nullFree-form TTS voice instruction
hasAvatarbooleanWhether an avatar has been generated
capabilityGroupIdsstring[]Attached capability group IDs

Create a character

POST /characters

Request body

FieldTypeRequiredDescription
namestringYesDisplay name
descriptionstring | nullNoPersonality description
voiceIdstringNoVoice ID to assign
voiceDescriptionstring | nullNoFree-form voice instruction for TTS
capabilityGroupIdsstring[]NoCapability groups to attach
sh
curl -X POST https://api.mindforge.ai/characters \
  -H "Authorization: Bearer $MINDFORGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Atlas",
    "description": "A knowledgeable guide who helps players navigate the world.",
    "capabilityGroupIds": ["capability_group_smartmob_v1"]
  }'

Returns a Character object.

List all characters

GET /characters
sh
curl https://api.mindforge.ai/characters \
  -H "Authorization: Bearer $MINDFORGE_API_KEY"

Returns an array of Character objects.

Retrieve a character

GET /characters/{characterId}
sh
curl https://api.mindforge.ai/characters/character_PuTlWmWuynYZu8sP \
  -H "Authorization: Bearer $MINDFORGE_API_KEY"

Update a character

PATCH /characters/{characterId}

All fields are optional. Only provided fields are updated.

Request body

FieldTypeDescription
namestringNew display name
descriptionstring | nullNew description
voiceIdstringNew voice ID
voiceDescriptionstring | nullNew voice instruction
capabilityGroupIdsstring[]Replaces all attached capability groups
sh
curl -X PATCH https://api.mindforge.ai/characters/character_PuTlWmWuynYZu8sP \
  -H "Authorization: Bearer $MINDFORGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "description": "A mysterious guide with ancient knowledge." }'

Delete a character

DELETE /characters/{characterId}
sh
curl -X DELETE https://api.mindforge.ai/characters/character_PuTlWmWuynYZu8sP \
  -H "Authorization: Bearer $MINDFORGE_API_KEY"
json
{ "id": "character_PuTlWmWuynYZu8sP", "deleted": true }

Add a capability

POST /characters/{characterId}/capabilities
sh
curl -X POST https://api.mindforge.ai/characters/character_PuTlWmWuynYZu8sP/capabilities \
  -H "Authorization: Bearer $MINDFORGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "capabilityId": "capability_5X51Einm2JqPi53D" }'

Remove a capability

DELETE /characters/{characterId}/capabilities/{capabilityId}
sh
curl -X DELETE https://api.mindforge.ai/characters/character_PuTlWmWuynYZu8sP/capabilities/capability_5X51Einm2JqPi53D \
  -H "Authorization: Bearer $MINDFORGE_API_KEY"