Creates an interview request for a contact. Upserts the contact by email if they don’t exist yet.
When a sequence_id is provided, the contact is enrolled in the sequence and Hindsight’s
scheduling agent handles outreach automatically. When only interview_type_id is provided,
the request is created and the survey link is returned without any outreach.
Documentation Index
Fetch the complete documentation index at: https://docs.usehindsight.com/llms.txt
Use this file to discover all available pages before exploring further.
Copy for AI context
sequence_id) — Hindsight enrolls the contact and Paige handles email outreach automatically. The interview type, email template, and scheduling logic are inherited from the sequence.interview_type_id) — Creates the interview request and returns a survey link. No email is sent; you control delivery.sequence_id or interview_type_id.
| Parameter | Type | Description |
|---|---|---|
contact_email | string | Email of the contact to interview. The contact is created if they don’t exist, or updated if they do. |
sequence_id | string | ID of the outreach sequence to enroll the contact in. Paige sends the interview email automatically. |
interview_type_id | string | ID of the interview type (e.g. win-loss buyer, NPS). Use this for link-only requests where you handle delivery yourself. |
| Parameter | Type | Description |
|---|---|---|
contact_name | string | Full name of the contact. Used to create or update the contact record. |
contact_context | string | object | Background context about the contact, passed to Paige when conducting the interview. Accepts a plain string or a JSON object (serialized automatically). Stored in the contact’s notes and included in every interview prompt. |
deal_id | string | Hindsight deal ID to associate the interview with. |
objective | string | Custom goal for this interview. Paige uses this as additional context (e.g. “Understand why we lost to Competitor X on pricing”). |
contact_context field is the primary way to give Paige background on who she’s interviewing. This context is stored in the contact’s notes field and used in every interview prompt for that contact.
Pass anything relevant — role, company details, the deal they were involved in, why you’re reaching out, or any other signal that helps Paige have a more informed conversation:
| Field | Type | Description |
|---|---|---|
interview_request_id | integer | ID of the created interview request. |
contact_id | string | ID of the upserted contact record. |
deal_id | string | null | Deal ID from the request, or null. |
survey_url | string | null | Direct link to the survey. Share this if you’re handling delivery yourself. |
survey_token | string | null | Raw token used in the survey URL. |
status | "created" | "sent" | sent when enrolled in a sequence; created for link-only requests. |
| Plan | Requests per Minute |
|---|---|
| Essentials | 60 |
| Growth | 300 |
| Enterprise | 1,000 |
| Header | Description |
|---|---|
X-RateLimit-Limit | Your plan’s request limit per window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
interview_type_id (no sequence_id) to get a survey link you can embed in your own email or send via your CRM. This is useful when you want full control over messaging or timing.
contact_context overwrites the existing notes. To preserve prior context, read the contact’s current notes first and merge before sending.
| Code | Description |
|---|---|
bad_request | Missing required field, or sequence_id / interview_type_id / deal_id not found in your org. |
unauthorized | Invalid or missing API key. |
rate_limit_exceeded | Too many requests. Check X-RateLimit-Reset and retry after. |
internal_error | Failed to create the contact record. |
API key from Hindsight dashboard
Email address of the contact. Required. The contact is upserted — created if new, updated if existing.
Full name of the contact. Used to create or update the contact record.
"Jane Smith"
Unstructured context about this contact — passed to Paige as background information when conducting the interview. Can be a plain string or a JSON object; objects are serialized automatically. Stored in the contact's notes field and included in every interview prompt for this contact.
{
"title": "VP of Engineering",
"use_case": "Evaluating us for CI/CD pipeline automation",
"evaluation_stage": "POC completed"
}ID of the interview type to use (e.g. win-loss buyer, NPS). Required if sequence_id is not provided.
Find interview type IDs in your Hindsight dashboard under Settings → Interview Types.
"type_abc123"
ID of an outreach sequence. When provided, the contact is enrolled in the sequence and
Hindsight's scheduling agent handles email delivery automatically. The interview type is
inherited from the sequence. Required if interview_type_id is not provided.
"seq_abc123"
Hindsight deal ID to associate this interview with. The deal must belong to your organization.
"deal_xyz789"
Custom goal for this specific interview. Paige uses this as additional context when conducting the interview (e.g. "Understand why we lost to Competitor X on pricing").
"Understand why we lost this deal to Competitor X"
Interview request created
ID of the created interview request.
4821
ID of the upserted contact record.
"contact_abc123"
Deal ID passed in the request, or null.
"deal_xyz789"
Direct link to the survey for this contact. Share this link manually if not using a sequence.
"https://app.usehindsight.com/survey?token=tok_xyz"
Raw token used in the survey URL.
"tok_xyz"
created — interview request created, no outreach sent (link-only path).
sent — contact enrolled in sequence, outreach queued.
created, sent "sent"