User Research API: Embed AI Interviews into Any Product or Workflow
How to use Koji's User Research API to run AI-moderated interviews from your own backend. Covers REST endpoints, the embed widget, how to get completion signals without webhooks, authentication, rate limits, and headless interview patterns.
The Bottom Line
A User Research API lets you trigger AI-moderated user interviews from your own backend code instead of a SaaS dashboard. Koji exposes a headless interview API: start an interview, exchange messages, complete it, and read the analyzed transcript back. It is included on the Interviews and Enterprise plans. There are no outbound webhooks yet, so your backend polls the read endpoint or listens for the embed widget's browser events. Either way you can put conversational research anywhere a customer touchpoint exists: an in-product onboarding flow, a churn cancellation screen, a post-purchase email, a Discord bot, or an internal data pipeline.
The core primitives are four REST endpoints plus an embed that posts completion events to the parent page. With these you can run a full customer research conversation programmatically: the AI interviewer adapts to each participant, asks follow-up questions, and your backend reads quality-scored transcripts and structured answers as soon as analysis finishes.
This guide is the entry point. If you're evaluating whether a research platform fits your stack, or you've outgrown survey APIs that only POST form responses, this article shows how Koji's API differs and where to go next.
Why a User Research API Exists
Most research tools assume a researcher logs into a dashboard, sends a link, and reads the results manually. That model breaks at three common moments:
- In-product moments matter more than scheduled studies. The best feedback comes from a user mid-task, not a user three weeks later trying to remember what frustrated them. A research API lets you trigger an interview the moment a user hits a meaningful trigger (clicks "Cancel subscription", finishes onboarding, downgrades).
- Product-led growth teams want every signup interviewed. When you're onboarding hundreds of users a week, sending them all the same Typeform isn't research, it's a survey. An API lets you start an AI interview per qualified signup and feed the structured output into your CRM.
- AI-native teams want research data as a feed. You want themes, quotes, and structured answers landing in your data warehouse, Slack, or your own LLM agent, not a PDF.
A real user research API answers all three. Survey tools like SurveyMonkey or Qualtrics have APIs for forms and responses, not for running conversational interviews.
The Core API Primitives
1. Headless Interview Endpoints
The Koji REST API exposes four conversation endpoints under /api/v1:
POST /api/v1/interviews/start: Open an interview session. The study comes from the API key, so you don't pass a study ID. The body takes an optionalrespondentobject (external_id,display_name, and free-formmetadata), plusmode(textorvoice) andlocale. It returns aninterview_id, asession_token, and the first AI message.POST /api/v1/interviews/{id}/message: Send a participant message with theX-Session-Tokenheader and receive the next AI response. The AI decides whether to ask a follow-up, move to the next question, or wrap up.POST /api/v1/interviews/{id}/complete: Mark the interview complete and trigger analysis. The transcript is quality-scored and themes are extracted asynchronously.GET /api/v1/interviews/{id}: Read the transcript, the respondent (including yourexternal_id), and the analysis: quality score, structured answers, and themes.
Authentication is via Bearer tokens. CORS is permissive on these endpoints, so browser-based callers work without a proxy.

2. The Embed
If you'd rather not implement the conversation loop yourself, the study's Integrate screen gives you an iframe embed (plus React and headless options) that renders the interview UI inside your app. Drop it into a modal, a sidebar, or a dedicated page. It handles text, voice, and the structured-question widgets (buttons, sliders, radio, checkbox, drag-to-rank) automatically, and it posts events such as koji:interview_started and koji:interview_completed to the parent page.
3. Completion Signals for Near-Real-Time Pipelines
Koji has no outbound webhooks yet, so there is no URL to register and nothing signed arriving at your server. Two patterns give you the same outcome:
- Poll the read endpoint. Store each
interview_idwhen you start an interview, then have a scheduled job callGET /api/v1/interviews/{id}and act whenstatusiscompletedandanalysisis present, which is when the quality score, themes and structured answers are all populated. - Forward the embed event. If the interview runs in the embed, the respondent's browser posts
koji:interview_completedto the parent page. Forward it to your backend as a fast path, and keep the poller as the source of truth: the event only fires while the tab is open.
This is how teams build "research-aware" automations: post every interview transcript to a Slack channel, sync structured NPS answers into HubSpot, open a Linear ticket when a churn-risk theme appears, or feed insights into a Claude agent that drafts PRDs. The trigger is your own job, not a Koji callback. See Webhook Setup for working code.
4. CRM and CSV Import
To interview people you already know, import them as a CSV in the dashboard (or through the MCP connector's respondent import). Each respondent gets a personalized interview link with a unique token, so you can target named accounts, send 1:1 invites, and tie results back to a contact record in your CRM. When you need people you do not have, the same study can also be filled from Koji's built-in panel: open Panel recruit in the dashboard, describe the audience, approve the price per completed interview in credits, and those interviews land in the same study.
Authentication
Koji uses standard Bearer-token authentication:
Authorization: Bearer pk_live_<your-api-key>
Each API key belongs to one study and carries a set of permissions: start interviews, send messages, complete interviews, read interview data, and (if you enable them) schedule and read outbound calls. You can restrict a key to allowed origins for browser use, see when it was last used, and revoke it at any time.

Requests are rate-limited per key. If you go over, you get a 429 Too Many Requests response with a retry time, so back off and try again.
Plans, Pricing and Credits
The headless API, API keys and the MCP connector are included on the Interviews and Enterprise plans. On other plans the API answers with a 403 that asks for an Interviews plan or higher. Voice interviews, through the API or anywhere else, are also an Interviews and Enterprise feature. Usage is credit-based and identical to dashboard interviews, with credits at €1:
- Text interview: 1 credit
- Voice interview: 3 credits
- Report refresh: 5 credits
- Quality check: interviews that fail Koji's quality check don't consume credits
There are no per-seat or per-call API surcharges. When your plan's credits run low you can buy credit packs, and you can turn on auto-reload with a monthly cap if you want top-ups to happen on their own.
For team-wide API deployments (multiple products embedding interviews, SSO/SAML, isolated infrastructure, and a signed DPA), the Enterprise plan adds the controls procurement asks for, with custom committed credit volume and invoicing.
Compared with survey APIs that charge per response or per question, Koji is simple: a research-grade text interview costs 1 credit, and a conversation that fails the quality check is never charged.
Architecture Patterns
Here's how typical implementations look.
Pattern A: In-Product Cancel Flow
A SaaS product wants to interview every user who clicks "Cancel my subscription." The cancel button opens a modal in the product's own UI, and the backend starts a Koji interview with the user ID as respondent.external_id and plan and tenure in metadata. The AI runs a 3-minute interview asking why they're leaving, what almost stopped them, and what would bring them back. The transcript is analyzed, a poller reads it back and, if the theme "missing feature" appears, posts the quote to the product team's Slack.
Pattern B: PLG Onboarding Research at Scale
A developer-tools company wants to interview every signup that completes the tutorial. A daily job picks out qualified signups and imports them as respondents, which gives each one a personalized interview link, then sends the links by email. A second scheduled job polls the read endpoint and routes finished transcripts into the company's warehouse (BigQuery) tagged with the user's plan and traffic source. The product manager queries the table for emerging themes by cohort.
Pattern C: Research Run by an AI Agent
A founder builds an AI agent in Claude that supervises customer research. The agent calls Koji over MCP (Model Context Protocol) to list and read studies, draft new ones, update briefs, publish, import respondents, generate and publish reports, and export data. From the founder's perspective, customer research is a tool the AI uses. Koji's MCP connector has fifteen tools and covers study management, while the REST API covers running interviews and calls.
Pattern D: Embedding Research in a Mobile App
A mobile team wants in-app feedback that goes deeper than NPS. They put the embed inside a sheet view, with voice turned on. Users speak into their phone, and the AI converses, probes, and wraps up in a couple of minutes. The team sees themes ranked by frequency, quality-scored, with verbatim quotes, all without anyone scheduling a call.
How Koji's User Research API Compares
| Capability | Survey APIs (Typeform/SurveyMonkey) | Recording APIs (UserTesting/Maze) | Koji User Research API |
|---|---|---|---|
| Conversational AI interviews | No (static form) | Recording-based | Yes (text + voice) |
| Adaptive follow-up probing | No | Manual moderator only | Yes, with follow-up settings per question |
| Structured + qualitative output | Form fields only | Manual tagging | 6 structured types + free-form transcripts |
| Per-interview quality scoring | No | Manual review | Automatic 1 to 5 score |
| Completion signal on transcript analysis | Limited | Limited | Read endpoint plus embed events (no outbound webhooks yet) |
| Voice mode programmatically | No | Recording, not conversational | Yes (3 credits/interview) |
| Embed | Form embeds | Iframe recordings | Full interview embed with branding |
| Plan needed for the API | Varies | Enterprise only typically | Interviews or Enterprise, 10 free signup credits to try Koji first |
In short: survey APIs collect answers, recording APIs save videos, and Koji's API runs conversations.
Getting Started
- Create a workspace. Sign up at koji.so. You get 10 free credits to try Koji in the dashboard. API access needs the Interviews or Enterprise plan.
- Build your first study in the dashboard. It's easier to validate the brief in the UI before going headless. Add structured questions if you want chartable answers.
- Generate an API key. Open the study's Integrate screen (or API keys in workspace settings) and create a key. Copy it once: it's only displayed at creation time.
- Test
POST /api/v1/interviews/start. Use cURL with your key and an optionalrespondentobject. You'll get aninterview_id, asession_tokenand the first AI greeting. - Loop messages. Send a participant reply to
POST /api/v1/interviews/{id}/messagewith the session token and read the AI's next message. - Complete and read results. Call
POST /api/v1/interviews/{id}/completeto finalize. Analysis runs asynchronously. PollGET /api/v1/interviews/{id}for the quality score and structured answers, or forward the embed's completion event if the interview runs in the embed.
For production, run the poller on a schedule. The full API specification, including request and response schemas, is in Headless API Overview.
Frequently Asked Questions
Can I use the API on the free plan? No. The headless API, API keys and the MCP connector are included on the Interviews and Enterprise plans, and outbound webhooks are not available yet. New accounts get 10 free credits to try text interviews in the dashboard first.
How do I authenticate? Bearer tokens: Authorization: Bearer pk_live_<key>. Each key belongs to one study, has its own permissions, and can be revoked.
Is there a rate limit? Yes, per key. Going over returns 429 with a retry time. Most production workloads stay well below it.
Are voice interviews supported via the API? Yes, on the Interviews and Enterprise plans. Start the interview with mode set to voice and the response includes voice session credentials, or let the embed handle audio for you. Voice interviews cost 3 credits each.
How do I know when an interview has finished? There are no outbound webhooks yet, so there is nothing to register or verify. Poll GET /api/v1/interviews/{id} from a scheduled job and act when status is completed and analysis is present. If the interview runs in the embed, forward the browser's koji:interview_completed event to your backend as a fast path. See Webhook Setup.
Can I use Koji with no dashboard at all? Mostly. The MCP connector covers creating and configuring studies, editing briefs, publishing, importing respondents, generating reports and exporting data, and the REST API runs the interviews themselves. Some setup, such as creating API keys and panel recruitment, happens in the dashboard.
Related Resources
- Headless API Overview: full REST specification and code samples
- Starting Interviews via API: step-by-step
POST /interviews/startwalkthrough - Completing Interviews via API: finalization, analysis triggers, and result retrieval
- Embed Widget Reference: embed configuration
- Research Automation: building near-real-time research pipelines
- Webhook Setup: why there are no outbound webhooks yet, and the patterns that replace them
- API Authentication: Bearer token issuance and rotation
- Structured Questions Guide: the 6 question types returned in API responses
- MCP Integration Overview: study management exposed to AI agents
Further reading on the blog
- B2B Customer Research: The Complete Guide for Product Teams (2026) — B2B customer research is harder than B2C — you are navigating buying groups of 10+ stakeholders, gatekeepers, and enterprise procurement cyc
- Customer Research Done Right: A Complete Guide for Product Teams — Customer research is the foundation of every successful product decision. Learn the types, methods, and best practices that help product tea
- Customer Research for Product-Led Growth: The Complete Guide (2026) — Product analytics tells you what users do. It cannot tell you why they activate, churn, or expand. This guide covers the research questions,
Related Articles
Amplitude + Koji: Trigger AI Interviews from Product Analytics and Pipe Insights Back as Events
How to close the loop between Amplitude product analytics and Koji AI interviews — fire interview links to users in specific Amplitude cohorts, and pipe interview themes, sentiment, and quality scores back into Amplitude as user properties and custom events.
API Authentication
How Koji Headless API authentication works: pk_live_ API keys, permissions, session tokens, and origin allowlists.
Build vs Buy: Customer Research Software (The 2026 Decision Framework)
A 2026 decision framework for whether to build your own customer research platform or buy one. Includes true-cost worksheet, the 6 questions that decide it, and where AI-native platforms like Koji change the math.
Completing Interviews via API
Finalize interviews with POST /interviews/{id}/complete, then poll the read endpoint for the asynchronous AI analysis.
Embed Widget Reference
Embed the Koji interview widget with an iframe: URL parameters, koji:* postMessage events, React integration, and prefilled respondents.
Headless API Overview
Manage interviews programmatically with the Koji REST API — start, message, and complete interviews from your own code.
Koji MCP Integration Overview
Connect Koji to Claude, Cursor, and other AI assistants using the Model Context Protocol (MCP). Manage your entire research workflow conversationally — create studies, run interviews, analyze data, and generate reports without leaving your AI assistant.
Microsoft Teams + Koji: Post AI Interview Insights Into the Channel Where Decisions Get Made
How to pipe completed Koji AI interviews into Microsoft Teams using the Workflows webhook that replaced the retired Office 365 connector, with the exact payload fields available.
Connect Koji to n8n: Build Self-Hosted Customer Research Pipelines
Wire Koji into n8n with the REST API to build self-hosted pipelines that route every completed interview into Notion, Linear, Slack, your CRM, or any other system — without sending data through a third-party automation cloud.
Research Automation: How to Build Real-Time Research Pipelines with Webhooks
Build automated research pipelines on the Koji API today: event-triggered interviews, completion detection, and insight routing, no native webhooks required.
Customer Research in Your Data Warehouse: Modelling Interview Data for Snowflake, BigQuery, and BI
A practical schema and loading pattern for getting AI interview data into Snowflake, BigQuery, Redshift, or Postgres — and the four dashboards worth building in Looker, Tableau, Power BI, or Metabase once qualitative themes sit next to revenue and product events.
Sync Koji AI Interviews to Salesforce: Customer Insights on Every Account, Contact, and Opportunity
Push interview transcripts, AI themes, sentiment, and quality scores from Koji into Salesforce with a scheduled worker on the Koji read API and the Salesforce REST API — so account executives, customer success managers, and revenue ops teams act on customer evidence inside the CRM they already live in.
Finding What a Customer Said Across Your Interview Transcripts
Koji has no transcript search box. Here is how you get back to the moment a customer said the thing: every interview analysed as it lands, a report where every claim links to its quote, the responses grid, readable transcripts, CSV and JSON export, and the MCP connector for questions that span studies.
Starting Interviews via API
Create interview sessions programmatically with POST /interviews/start: request fields, the 201 response, CRM linking, and voice mode.
Structured Questions in AI Interviews
Mix quantitative data collection — scales, ratings, multiple choice, ranking — with AI-powered conversational follow-up in a single interview.
Webhook Setup
Koji has no native outbound webhooks yet. Three working alternatives: polling the read endpoint, embed completion events, and automation platforms.
Connect Koji to Zapier: Automate Customer Research Workflows in Minutes
Route every completed AI customer interview from Koji into 6,000+ Zapier apps — including Notion, Linear, Salesforce, Airtable, and Gmail. A step-by-step integration guide.