---
title: "GET /v1/presentations/{presentationId}/surveys/{surveyId}/response"
description: "Hold for the viewer's answer to a question on a slide."
canonical: https://bisque.cloud/docs/api/presentations/wait-for-answer
---

# Wait for an answer

Hold for the viewer's answer to a question on a slide.

Page: https://bisque.cloud/docs/api/presentations/wait-for-answer

`GET /v1/presentations/{presentationId}/surveys/{surveyId}/response` · API v1 · [versioning](/docs/api/versioning)

Returns the caller's own answer to one survey on one of their presentations. With `wait`, the request is held on a listener for up to that many seconds (at most 25) and answers the moment the survey is complete, or with `until=submit` the moment the viewer presses Continue (answers save as they are typed, so a complete text answer can still be half-written). On timeout it returns the answer as it stands with 200, and the caller polls again. This is the wait an agent already does for a deploy or a CI run, shaped like `gh run watch`. API-key callers only.

## Authentication

Send an API key as `Authorization: Bearer bisque_live_…`. Keys come from [bisque.cloud/setup/keys](https://bisque.cloud/setup/keys); see [Authentication](/docs/api/authentication).

## Request

| Parameter | In | Meaning |
| --- | --- | --- |
| `presentationId` | path, required |  |
| `surveyId` | path, required | The `id` in the slide's `data-survey-spec`. |
| `wait` | query | Seconds to hold the request before answering with the answer as it stands. Default 0. |
| `until` | query | `complete` (default) answers once every required question has an answer. `submit` waits for the viewer to press Continue, or play on the survey's slide. |

## Example

```bash
curl -X GET https://bisque.cloud/v1/presentations/{presentationId}/surveys/{surveyId}/response \
  -H "Authorization: Bearer $BISQUE_API_KEY"
```

## Response

**200**: `{ presentationId, surveyId, complete, submitted, answers?, submittedAt?, updatedAt? }`; `answers` maps question id to value when complete.

Errors:

- `400`: `wait` is not a number of seconds, or `until` is not `complete` or `submit`.
- `401`: Missing or invalid credential.
- `404`: Not one of your presentations, or no such survey.

## Other endpoints

| Page | Call | What it does |
| --- | --- | --- |
| [Create a presentation](/docs/api/presentations/create) | `POST /v1/presentations` | Put the slides up now and narrate them one at a time. |
| [Get a presentation](/docs/api/presentations/get) | `GET /v1/presentations/{presentationId}` | The open creation, to resume it from a new session. |
| [Add slides](/docs/api/presentations/add-slides) | `PATCH /v1/presentations/{presentationId}` | Append sections while the creation is open. |
| [Update a slide](/docs/api/presentations/update-slide) | `PATCH /v1/presentations/{presentationId}/slides/{slideKey}` | Give one slide its narration after the MP3 is uploaded. |
| [Finalize](/docs/api/presentations/finalize) | `POST /v1/presentations/{presentationId}:finalize` | Claim the version. Slides still without audio stay silent. |
| [Read as text](/docs/api/presentations/read-as-text) | `GET /api/presentations/context` | Any shared presentation as a transcript. No credential needed. |
