Saltar al contenido principal
PATCH
/
context
/
characters
/
{game_id}
/
{world_id}
/
{character_id}
Actualizar detalles del personaje
curl --request PATCH \
  --url https://app.npcbuilder.com/api/context/characters/{game_id}/{world_id}/{character_id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data @- <<EOF
{
  "age": "adult",
  "description": "Un valiente guerrero con un pasado misterioso.",
  "gender": "Male",
  "model": "standard",
  "filters": {
    "active": true,
    "violence": true,
    "sexual": false,
    "drugs": false
  },
  "items": [
    {
      "type": "trade",
      "itemName": "Sword",
      "unit": "Pieza",
      "value": "100",
      "description": "Una espada afilada."
    }
  ],
  "events": [
    {
      "type": "item",
      "eventName": "Attack",
      "description": "Acto de violencia contra otra persona."
    }
  ],
  "name": "Aragorn",
  "quests": [
    {
      "description": "Recupera el artefacto perdido.",
      "objective": "Encontrar y devolver el artefacto.",
      "reward": "500 monedas de oro"
    }
  ],
  "role": "protagonist",
  "tone": "mysterious",
  "traits": [
    "brave"
  ],
  "personality_theory": "basicTraits",
  "personality_dimensions": {
    "machiavellianism": 4,
    "narcissism": 2,
    "psychopathy": 1
  },
  "speech_pattern": {
    "vocabulary_level": "sophisticated",
    "sentence_length": "terse",
    "verbal_quirks": "Siempre dice 'querido amigo'"
  }
}
EOF
import requests

url = "https://app.npcbuilder.com/api/context/characters/{game_id}/{world_id}/{character_id}"

payload = {
"age": "adult",
"description": "Un valiente guerrero con un pasado misterioso.",
"gender": "Male",
"model": "standard",
"filters": {
"active": True,
"violence": True,
"sexual": False,
"drugs": False
},
"items": [
{
"type": "trade",
"itemName": "Sword",
"unit": "Pieza",
"value": "100",
"description": "Una espada afilada."
}
],
"events": [
{
"type": "item",
"eventName": "Attack",
"description": "Acto de violencia contra otra persona."
}
],
"name": "Aragorn",
"quests": [
{
"description": "Recupera el artefacto perdido.",
"objective": "Encontrar y devolver el artefacto.",
"reward": "500 monedas de oro"
}
],
"role": "protagonist",
"tone": "mysterious",
"traits": ["brave"],
"personality_theory": "basicTraits",
"personality_dimensions": {
"machiavellianism": 4,
"narcissism": 2,
"psychopathy": 1
},
"speech_pattern": {
"vocabulary_level": "sophisticated",
"sentence_length": "terse",
"verbal_quirks": "Siempre dice 'querido amigo'"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
age: 'adult',
description: 'Un valiente guerrero con un pasado misterioso.',
gender: 'Male',
model: 'standard',
filters: {active: true, violence: true, sexual: false, drugs: false},
items: [
{
type: 'trade',
itemName: 'Sword',
unit: 'Pieza',
value: '100',
description: 'Una espada afilada.'
}
],
events: [
{
type: 'item',
eventName: 'Attack',
description: 'Acto de violencia contra otra persona.'
}
],
name: 'Aragorn',
quests: [
{
description: 'Recupera el artefacto perdido.',
objective: 'Encontrar y devolver el artefacto.',
reward: '500 monedas de oro'
}
],
role: 'protagonist',
tone: 'mysterious',
traits: ['brave'],
personality_theory: 'basicTraits',
personality_dimensions: {machiavellianism: 4, narcissism: 2, psychopathy: 1},
speech_pattern: {
vocabulary_level: 'sophisticated',
sentence_length: 'terse',
verbal_quirks: 'Siempre dice \'querido amigo\''
}
})
};

fetch('https://app.npcbuilder.com/api/context/characters/{game_id}/{world_id}/{character_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://app.npcbuilder.com/api/context/characters/{game_id}/{world_id}/{character_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'age' => 'adult',
'description' => 'Un valiente guerrero con un pasado misterioso.',
'gender' => 'Male',
'model' => 'standard',
'filters' => [
'active' => true,
'violence' => true,
'sexual' => false,
'drugs' => false
],
'items' => [
[
'type' => 'trade',
'itemName' => 'Sword',
'unit' => 'Pieza',
'value' => '100',
'description' => 'Una espada afilada.'
]
],
'events' => [
[
'type' => 'item',
'eventName' => 'Attack',
'description' => 'Acto de violencia contra otra persona.'
]
],
'name' => 'Aragorn',
'quests' => [
[
'description' => 'Recupera el artefacto perdido.',
'objective' => 'Encontrar y devolver el artefacto.',
'reward' => '500 monedas de oro'
]
],
'role' => 'protagonist',
'tone' => 'mysterious',
'traits' => [
'brave'
],
'personality_theory' => 'basicTraits',
'personality_dimensions' => [
'machiavellianism' => 4,
'narcissism' => 2,
'psychopathy' => 1
],
'speech_pattern' => [
'vocabulary_level' => 'sophisticated',
'sentence_length' => 'terse',
'verbal_quirks' => 'Siempre dice \'querido amigo\''
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://app.npcbuilder.com/api/context/characters/{game_id}/{world_id}/{character_id}"

payload := strings.NewReader("{\n \"age\": \"adult\",\n \"description\": \"Un valiente guerrero con un pasado misterioso.\",\n \"gender\": \"Male\",\n \"model\": \"standard\",\n \"filters\": {\n \"active\": true,\n \"violence\": true,\n \"sexual\": false,\n \"drugs\": false\n },\n \"items\": [\n {\n \"type\": \"trade\",\n \"itemName\": \"Sword\",\n \"unit\": \"Pieza\",\n \"value\": \"100\",\n \"description\": \"Una espada afilada.\"\n }\n ],\n \"events\": [\n {\n \"type\": \"item\",\n \"eventName\": \"Attack\",\n \"description\": \"Acto de violencia contra otra persona.\"\n }\n ],\n \"name\": \"Aragorn\",\n \"quests\": [\n {\n \"description\": \"Recupera el artefacto perdido.\",\n \"objective\": \"Encontrar y devolver el artefacto.\",\n \"reward\": \"500 monedas de oro\"\n }\n ],\n \"role\": \"protagonist\",\n \"tone\": \"mysterious\",\n \"traits\": [\n \"brave\"\n ],\n \"personality_theory\": \"basicTraits\",\n \"personality_dimensions\": {\n \"machiavellianism\": 4,\n \"narcissism\": 2,\n \"psychopathy\": 1\n },\n \"speech_pattern\": {\n \"vocabulary_level\": \"sophisticated\",\n \"sentence_length\": \"terse\",\n \"verbal_quirks\": \"Siempre dice 'querido amigo'\"\n }\n}")

req, _ := http.NewRequest("PATCH", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.patch("https://app.npcbuilder.com/api/context/characters/{game_id}/{world_id}/{character_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"age\": \"adult\",\n \"description\": \"Un valiente guerrero con un pasado misterioso.\",\n \"gender\": \"Male\",\n \"model\": \"standard\",\n \"filters\": {\n \"active\": true,\n \"violence\": true,\n \"sexual\": false,\n \"drugs\": false\n },\n \"items\": [\n {\n \"type\": \"trade\",\n \"itemName\": \"Sword\",\n \"unit\": \"Pieza\",\n \"value\": \"100\",\n \"description\": \"Una espada afilada.\"\n }\n ],\n \"events\": [\n {\n \"type\": \"item\",\n \"eventName\": \"Attack\",\n \"description\": \"Acto de violencia contra otra persona.\"\n }\n ],\n \"name\": \"Aragorn\",\n \"quests\": [\n {\n \"description\": \"Recupera el artefacto perdido.\",\n \"objective\": \"Encontrar y devolver el artefacto.\",\n \"reward\": \"500 monedas de oro\"\n }\n ],\n \"role\": \"protagonist\",\n \"tone\": \"mysterious\",\n \"traits\": [\n \"brave\"\n ],\n \"personality_theory\": \"basicTraits\",\n \"personality_dimensions\": {\n \"machiavellianism\": 4,\n \"narcissism\": 2,\n \"psychopathy\": 1\n },\n \"speech_pattern\": {\n \"vocabulary_level\": \"sophisticated\",\n \"sentence_length\": \"terse\",\n \"verbal_quirks\": \"Siempre dice 'querido amigo'\"\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://app.npcbuilder.com/api/context/characters/{game_id}/{world_id}/{character_id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"age\": \"adult\",\n \"description\": \"Un valiente guerrero con un pasado misterioso.\",\n \"gender\": \"Male\",\n \"model\": \"standard\",\n \"filters\": {\n \"active\": true,\n \"violence\": true,\n \"sexual\": false,\n \"drugs\": false\n },\n \"items\": [\n {\n \"type\": \"trade\",\n \"itemName\": \"Sword\",\n \"unit\": \"Pieza\",\n \"value\": \"100\",\n \"description\": \"Una espada afilada.\"\n }\n ],\n \"events\": [\n {\n \"type\": \"item\",\n \"eventName\": \"Attack\",\n \"description\": \"Acto de violencia contra otra persona.\"\n }\n ],\n \"name\": \"Aragorn\",\n \"quests\": [\n {\n \"description\": \"Recupera el artefacto perdido.\",\n \"objective\": \"Encontrar y devolver el artefacto.\",\n \"reward\": \"500 monedas de oro\"\n }\n ],\n \"role\": \"protagonist\",\n \"tone\": \"mysterious\",\n \"traits\": [\n \"brave\"\n ],\n \"personality_theory\": \"basicTraits\",\n \"personality_dimensions\": {\n \"machiavellianism\": 4,\n \"narcissism\": 2,\n \"psychopathy\": 1\n },\n \"speech_pattern\": {\n \"vocabulary_level\": \"sophisticated\",\n \"sentence_length\": \"terse\",\n \"verbal_quirks\": \"Siempre dice 'querido amigo'\"\n }\n}"

response = http.request(request)
puts response.read_body
{
  "message": "Personaje: character789 ha sido actualizado con el siguiente contexto.",
  "character_id": "character789",
  "character_context": {
    "age": "adult",
    "description": "Un valiente guerrero con un pasado misterioso.",
    "gender": "Male",
    "items": [
      {
        "itemName": "Sword",
        "unit": "Pieza",
        "value": "100"
      }
    ],
    "name": "Aragorn",
    "quests": [
      {
        "description": "Recupera el artefacto perdido.",
        "objective": "Encontrar y devolver el artefacto.",
        "reward": "500 monedas de oro"
      }
    ],
    "role": "protagonist",
    "tone": "mysterious",
    "traits": [
      "brave"
    ],
    "personality_theory": "basicTraits",
    "personality_dimensions": {}
  }
}
{
"message": "Ocurrió un error"
}
{
"message": "Posibles razones:\n- Personaje no encontrado\n"
}
{
"message": "Ocurrió un error"
}

Autorizaciones

Authorization
string
header
requerido

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Parámetros de ruta

game_id
string
requerido

El identificador único del juego.

Ejemplo:

"game123"

world_id
string
requerido

El identificador único del mundo.

Ejemplo:

"world456"

character_id
string
requerido

El identificador único del personaje.

Ejemplo:

"character789"

Parámetros de consulta

session_id
string

(Opcional) El ID de sesión del jugador.

Ejemplo:

"60Z5aZjIuFlyYbjbZZKe"

Cuerpo

application/json

Los campos de datos del personaje a actualizar.

age
enum<string>

La categoría de edad del personaje.

Opciones disponibles:
infant,
child,
teenager,
youngAdult,
adult,
middleAged,
elderly
Ejemplo:

"adult"

description
string

Una breve descripción del personaje.

Ejemplo:

"Un valiente guerrero con un pasado misterioso."

gender
string

El género del personaje.

Ejemplo:

"Male"

model
enum<string>

El modelo de IA usado para las interacciones del personaje. Los modelos premium solo están disponibles para algunas suscripciones.

Opciones disponibles:
standard,
premium
Ejemplo:

"standard"

filters
object

Filtros de contenido estructurados aplicados a las respuestas del personaje. Indica los valores que deseas actualizar al ajustar la configuración de moderación.

Ejemplo:
{
"active": true,
"violence": true,
"sexual": false,
"drugs": false
}
items
object[]

Lista actualizada de objetos del personaje.

Esquema para objetos de tipo "trade"

events
object[]

Lista de eventos relacionados con el personaje.

Esquema para eventos de tipo "action"

name
string

El nombre visible del personaje.

Ejemplo:

"Aragorn"

quests
object[]

Una lista de misiones asociadas al personaje.

role
enum<string>

El rol que desempeña el personaje en el juego.

Opciones disponibles:
noRole,
protagonist,
antagonist,
secondaryCharacter,
tertiaryCharacter,
mentor,
enemy,
villain,
rival,
shopkeeper,
healer,
questGiver,
innkeeper,
guard,
familyMember,
loveInterest,
scientist,
politician,
criminal,
explorer,
wizard,
ghost,
animalCompanion,
artificialIntelligence
Ejemplo:

"protagonist"

tone
enum<string>

El estilo o estado de ánimo del diálogo del personaje.

Opciones disponibles:
formal,
casual,
sarcastic,
mysterious,
emotive
Ejemplo:

"mysterious"

traits
string[]

Lista legacy/de rasgos básicos. Si se envía sin personality_theory, la API guarda el personaje como basicTraits.

personality_theory
enum<string>
predeterminado:basicTraits

Marco de personalidad utilizado por interacciones.

Opciones disponibles:
basicTraits,
bigFive,
darkTriad,
dndAlignment,
mbti,
enneagram
Ejemplo:

"basicTraits"

personality_dimensions
object

Valores de dimensiones para el personality_theory seleccionado. basicTraits usa traits y un objeto vacío.

Ejemplo:
{
"machiavellianism": 4,
"narcissism": 2,
"psychopathy": 1
}
speech_pattern
object

Controles opcionales del estilo de habla consumidos por interacciones.

Respuesta

Personaje actualizado correctamente.

message
string

Mensaje de confirmación tras actualizar el personaje.

Ejemplo:

"Personaje: character789 ha sido actualizado con el siguiente contexto."

character_id
string

UID del personaje.

Ejemplo:

"character789"

character_context
object

Datos del contexto del personaje actualizados.

Ejemplo:
{
"age": "adult",
"description": "Un valiente guerrero con un pasado misterioso.",
"gender": "Male",
"items": [
{
"itemName": "Sword",
"unit": "Pieza",
"value": "100"
}
],
"name": "Aragorn",
"quests": [
{
"description": "Recupera el artefacto perdido.",
"objective": "Encontrar y devolver el artefacto.",
"reward": "500 monedas de oro"
}
],
"role": "protagonist",
"tone": "mysterious",
"traits": ["brave"],
"personality_theory": "basicTraits",
"personality_dimensions": {}
}