You registered for a Panel Studio API key. Now what?
This guide walks you from zero to a working consumer behaviour panel in about ten minutes. By the end, you will have a panel of synthetic personas, run a stimulus against them, read their responses, and exported the data. No prior experience required. Just Python and a terminal.
Step 1: Get Your API Key
Head to kronaxis.co.uk/register. Fill in your name, email, and a brief description of what you plan to use Panel Studio for. The system generates your API key immediately. It looks like this: kx_a1b2c3d4e5f6...
Save it somewhere safe. You will need it for every API call. The free tier gives you panels of up to 10 personas, unlimited conversations, and all 17 stimulus templates.
Step 2: Install the Python SDK
pip install kronaxis
That is the entire installation. The SDK wraps every Panel Studio API endpoint into clean Python methods with type hints, automatic retries, and proper error handling.
Verify it installed correctly:
from kronaxis import KronaxisClient
print("SDK ready")
Step 3: Create Your Panel
Initialise the client with your API key:
from kronaxis import KronaxisClient
client = KronaxisClient(api_key="kx_your_key_here")
Now create a panel. The simplest approach is to describe your target audience in plain English. The panel builder interprets your description, selects census weighted demographics, and generates personas that match.
job = client.panels.create_from_description(
"10 UK adults aged 25-45, mixed income, urban",
country="GB"
)
# Wait for the build to complete (usually 30-90 seconds)
build = client.panels.wait_for_build(job.job_id)
panel_id = build.panel_id
print(f"Panel created: {panel_id}")
That is it. You now have a panel of 10 personas, each with a unique identity.
Step 4: Understand What You Just Created
Each persona in your panel is not a random name attached to a demographic label. The builder generates full synthetic humans with:
Census weighted demographics. Age, gender, income, occupation, region, education, household composition. All weighted against real census data for the country you specified, so your panel reflects the actual population distribution rather than uniform random sampling.
DYNAMICS-8 personality profiles. Eight dimensions that predict consumer behaviour: Discipline, Yielding, Novelty, Acuity, Mercuriality, Impulsivity, Candour, and Sociability. Each persona has a unique score on every dimension. These scores drive how the persona responds to your stimuli.
Life histories. Where they grew up, what they studied, how their career progressed, what shaped their views. Not just a label saying "middle class": an actual narrative that gives the persona coherent preferences and consistent reasoning.
Economic and emotional baselines. Financial situation, spending habits, stress levels, brand loyalties, media consumption. The persona does not exist in a vacuum. Their responses reflect their circumstances.
You can inspect any persona directly:
panel = client.panels.get(panel_id)
for persona in panel.personas[:3]:
print(f"{persona['name']}: age {persona['age']}, {persona['occupation']}")
Step 5: Run a Stimulus
A stimulus is whatever you want to ask your panel. A product concept. A price change. An advertising message. A policy proposal. Anything a real person could have an opinion about.
The simplest approach is a custom question:
result = client.conversations.ask(
panel_id,
"Your mobile phone provider announces a 15% price increase, "
"blaming infrastructure costs. What do you do?"
)
print(f"Turn complete: {result.turn_number}")
That submits your stimulus to every persona in the panel and waits for all responses.
For structured experiments, use one of the 17 built in templates. Templates provide consistent framing across studies and ensure you capture the right variables. The categories cover pricing (pricing test, subscription offer), advertising (ad copy, social media post, email subject line, influencer endorsement), brand (brand perception, tagline test, sustainability claim), product (concept test, packaging change, feature prioritisation), competitive intelligence (competitor switch), customer experience (store experience, service complaint), communications (crisis comms), and retention (loyalty programme).
Here is the pricing test template in action:
stimulus = client.stimulus.from_template(
"pricing_test",
current_price="£9.99/month",
new_price="£12.99/month",
justification="Rising server costs and new AI features"
)
result = client.conversations.ask(panel_id, stimulus)
Step 6: Read the Responses
Retrieve the conversation to see what each persona said:
conv = client.conversations.get(panel_id, result.turn_id)
for turn in conv.turns:
print(f"\nTurn {turn['turn_number']}: {turn['stimulus'][:60]}...")
for response in turn.get("responses", []):
name = response["persona_name"]
text = response["response"][:200]
print(f" {name}: {text}")
Every persona responds in character. A high Discipline persona will evaluate the price increase against the value they receive and mention alternatives they have researched. A high Impulsivity persona might cancel immediately out of frustration, then regret it. A high Yielding persona will check what their friends are doing before deciding.
On paid tiers, each response includes a reasoning trace: the internal chain of thought that explains why the persona reached their conclusion. This is where the real analytical value lives. You do not just know that 60% of your panel would stay. You know which personality dimensions predicted retention and which predicted churn.
Step 7: Follow Up
Panel Studio supports multiturn conversations. The persona remembers everything they said in previous turns and builds on it. This is how you move from surface reactions to genuine insight.
# Follow up on the price increase conversation
followup = client.conversations.ask(
panel_id,
"You mentioned looking at alternatives. What would the competitor "
"need to offer for you to actually switch?",
conversation_id=result.turn_id
)
Each follow up adds depth. Ask why. Challenge their reasoning. Present a counter offer. The persona maintains consistency with their personality profile and their stated positions from earlier turns, just like a real focus group participant would.
Step 8: Export Your Data
Panel Studio supports four export formats:
conv_id = result.turn_id
# JSONL for data science pipelines
client.export.jsonl(panel_id, conv_id, output_path="results.jsonl")
# Parquet for big data (Spark, DuckDB, BigQuery)
client.export.parquet(panel_id, conv_id, output_path="results.parquet")
# CSV for spreadsheets
client.export.csv(panel_id, conv_id, output_path="results.csv")
# PowerPoint for presentations
client.export.pptx(panel_id, conv_id, output_path="results.pptx")
JSONL and Parquet exports include full persona demographics, DYNAMICS-8 scores, and reasoning traces (paid tiers). PowerPoint generates a branded slide deck ready for stakeholder presentations.
Step 9: What Comes Next
You have run your first panel. Here is where to go from here.
Scale up. The free tier caps panels at 10 personas. Starter (£79/month) supports panels of up to 100. Professional (£199/month) goes to 500. Enterprise removes the cap entirely. Larger panels produce statistically significant results and reveal subgroup patterns that small panels miss.
Unlock reasoning traces. On Starter and above, every response includes the persona's internal reasoning chain. This tells you not just what they decided, but which dimensions drove the decision and what would change their mind.
Run A/B tests. Compare two versions of anything: pricing, copy, design descriptions, crisis statements. Panel Studio splits the panel and gives you a statistical comparison.
comparison = client.conversations.compare(
panel_id, conv_id,
stimulus_a="New feature: unlimited storage for £2/month extra",
stimulus_b="New feature: unlimited storage, free for annual subscribers"
)
print(f"Winner: {comparison.winner}")
Integrate. Panel Studio connects to 26 platforms: Slack, HubSpot, Salesforce, Zapier, Make, n8n, and more. Pipe results directly into your existing workflows.
Go deeper. Focus groups, segmentation discovery, longitudinal drift tracking, brand tracking, regulatory simulation. The SDK covers all of it.
Try it yourself
Register for a free API key and have your first panel running in ten minutes.
Get Your API Key