The examples use the US API host. For a workspace on
eu.ontora.com, replace
https://api.ontora.com with https://api.eu.ontora.com.Prerequisites
- A full access workspace API key (
read+write) — launching sends real invitations. See Authentication. - Your workspace ID (API keys are workspace-scoped; the ID is shown alongside the key in Developer → API Keys).
- A list of contacts (name + email at minimum).
How launching works
Creating a campaign is three calls: create the campaign shell, add topics as question sets, add contacts.POST /start then validates everything and sends the invitations on the campaign’s channel — in_app_chat (email with a personal interview link), slack (Slack DM), or teams (Microsoft Teams chat). Participants self-schedule.
Two scheduling knobs worth knowing:
- Scheduled send — pass
start_immediately: falsewith a futuretimeframe_startand the invitations are held until the campaign opens (date-only starts send at 08:00 in the campaign’stimezone). The detail endpoint reports the exact instant asinvitations_scheduled_for. - Soft deadline —
timeframe_endis communicated to participants as the response deadline but never blocks late responses.
End-to-end script
Knowing when it’s done
Don’t poll. Subscribe to thesynthesis.completed webhook — it fires once the synthesis pipeline finishes, and the report is queryable immediately after.
GET /v1/interviews/{id} every minute and watching the status field — but webhooks are strongly preferred.
Common follow-ups
- Export the report as Markdown.
- Run a GraphRAG query over the transcripts.