GET
/
api
/
v1
/
characters
/
simulation
Get Simulation Characters
curl --request GET \
  --url https://api.jobsim.work/api/v1/characters/simulation \
  --header 'Authorization: Bearer <token>'
[
  {
    "character_id": "<string>",
    "name": "<string>",
    "role": "<string>",
    "core_persona": "<string>",
    "communication_style": "<string>",
    "_id": "<string>",
    "agent_id": "<string>",
    "channels": [
      "<string>"
    ],
    "topics": [
      "<string>"
    ],
    "personality_traits": [
      "<string>"
    ],
    "activity_level": "medium",
    "response_delay_mean": 45,
    "response_delay_std": 20,
    "chattiness_weight": 0.5,
    "relationships": {},
    "situations": {},
    "has_storyline_arc": false,
    "storyline_context": null,
    "is_player": false,
    "is_npc_agent": true,
    "is_active": true,
    "organization_id": "<string>",
    "mention_patterns": [
      "<string>"
    ],
    "anti_hallucination_keywords": [
      "<string>"
    ],
    "fallback_agent_id": "<string>",
    "work_context": "<string>",
    "communication_boundaries": [
      "<string>"
    ],
    "verbal_quirks": [
      "<string>"
    ],
    "channel_rules": {},
    "availability_overrides": {},
    "away_message": "<string>",
    "collaboration_partners": [
      "<string>"
    ],
    "eavesdrop_channels": [
      "<string>"
    ],
    "internal_channels": [
      "<string>"
    ],
    "department": "<string>",
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z"
  }
]

Authorizations

Authorization
string
header
required

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

Query Parameters

is_active
boolean | null
default:true

Response

Successful Response

character_id
string
required
name
string
required
role
string
required
core_persona
string
required
communication_style
string
required
_id
string | null
agent_id
string | null
channels
string[]
topics
string[]
personality_traits
string[]
activity_level
enum<string>
default:medium

Activity level for simulation characters

Available options:
high,
medium,
low,
reactive
response_delay_mean
number
default:45
response_delay_std
number
default:20
chattiness_weight
number
default:0.5
relationships
Relationships · object
situations
Situations · object
has_storyline_arc
boolean
default:false
storyline_context
unknown
is_player
boolean
default:false
is_npc_agent
boolean
default:true
is_active
boolean
default:true
organization_id
string | null
mention_patterns
string[]

Patterns that trigger this agent (e.g. @patty, onboarding specialist)

anti_hallucination_keywords
string[]

Keywords this agent should NEVER use (e.g. other agents' names)

fallback_agent_id
string | null

Agent ID/Type to try if this agent declines to respond

work_context
string | null

Work context e.g. 'You have 3 direct reports', 'You're in 6 meetings/week'

communication_boundaries
string[]

e.g. 'Never discuss salary in public channels', 'Escalate harassment to Marcus only'

verbal_quirks
string[]

Recurring phrases or tone markers for more realistic dialogue style consistency

channel_rules
Channel Rules · object

Per-channel behavior: {'announcements': 'post_only_official_updates', 'hr-team': 'no_salary_in_public'}

availability_overrides
Availability Overrides · object

Per-day or special keys: weekday lowercase (monday..sunday), plus optional month_end for last 3 days of month. Values may include delay_multiplier, is_available (false = away).

away_message
string | null

Optional message used when agent is unavailable or outside active hours

collaboration_partners
string[]

Character IDs this agent can DM/coordinate with (e.g. ['marcus','patty'] for HR, ['john','thomas','felix'] for product)

eavesdrop_channels
string[]

Public adjacent channel names/IDs this agent may overhear when eavesdropping policy is enabled.

internal_channels
string[]

Internal channels this agent can post to (e.g. ['hr-internal'], ['product-internal'], ['engineering-internal'])

department
string | null

Org unit label for UI grouping (must align with organization branding.departments when set).

created_at
string<date-time>
updated_at
string<date-time>