List questionnaires
Returns all questionnaires for the authenticated tenant. Questionnaires define the questions asked to leads during voice calls or form intake.
Authorization
ApiKeyAuth API key generated from your Leadsail dashboard Settings page
In: header
Response Body
application/json
application/json
package mainimport ( "fmt" "net/http" "io/ioutil")func main() { url := "https://api.leadsail.app/api/v1/questionnaires" req, _ := http.NewRequest("GET", url, nil) res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body))}{
"success": true,
"data": {
"questionnaires": [
{
"questionnaireId": "qst_abc123",
"name": "string",
"description": "string",
"active": true,
"questions": [
{
"key": "filing_for",
"question": "Are you filing on behalf of yourself or someone else?",
"instructions": "string",
"options": [
"Self",
"Someone else"
]
}
],
"createdAt": "string",
"updatedAt": "string"
}
],
"pagination": {
"total": 0,
"page": 0,
"limit": 0
}
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required"
}
}Create a questionnaire
Creates a new questionnaire. The questionnaireId (qst_xxx) is auto-generated. **Question key validation:** - Each question `key` must be a valid field key: dot-separated segments, each starting with a letter and containing only letters, numbers, and underscores (e.g. `questionnaire.filing_for`, `dateOfBirth`). - Each key must already exist in the field library for your tenant. Unknown keys are rejected with a 400 `UNKNOWN_FIELD_KEYS` error listing the offending keys. Create missing fields first via `POST /api/v1/field-library`, or look up existing keys via `GET /api/v1/field-library`.
Get a questionnaire
Returns a single questionnaire by ID, including its full list of questions with keys, text, instructions, and predefined options.