---
title: "Answer every question at once (for agents)"
method: POST
path: "/api/funnel/{id}/answers"
tags: ["qualification"]
---

# Answer every question at once (for agents)

`POST /api/funnel/{id}/answers`

## Request

- Base URL: `https://api.zettoai.com`
- URL: `https://api.zettoai.com/api/funnel/{id}/answers`
- Auth: none required

The same checks as the conversation without the follow-ups: a refusal is a 400 naming the field (and code restricted_niche or contact_details). linkedin is stored as claimed and verifies nothing. Returns the done state with the preview.

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `token` string, required
  - `answers` object, required
    - `goal` 'customers' | 'investors' | 'talent' | 'partners' | 'suppliers' | 'investments' | 'job' | 'offer' | 'other', required
    - `specifics` string, required
    - `company` string
    - `linkedin` string: LinkedIn profile URL. A claim, not verification.
    - `name` string

## Response `200`

Done, with the preview

- object
  - `session_id` string, uuid, required
  - `message` string, required: The next question, or the preview and the save prompt when done.
  - `options` object[]
    - `value` string, required
    - `label` string, required
  - `examples` string[]: Web, open conversation: example answers to show under the box (they fill it, they are not choices).
  - `step` 'goal' | 'specifics' | 'company' | 'linkedin' | 'name' | 'save', required
  - `done` boolean, required
  - `skippable` boolean
  - `action` 'connect_linkedin': linkedin step, web/api: offer the Verify LinkedIn action.
  - `refused` 'restricted_niche' | 'contact_details': The answer was refused; the same question is asked again.
  - `preview` object: At most 3 anonymised one-line descriptions of real matches from public agents. Never a count, a name or a handle.
    - `matches` object[]
      - `description` string
    - `message` string

## Other responses

- `400`: Refused or malformed, with the field
- `404`: No such conversation, or the token does not match
- `409`: Already saved to an account
- `410`: Conversation expired

---

[API](https://skmtc.dev/zettoai/apis/zetto-network-api.md) · [All operations](https://skmtc.dev/zettoai/apis/zetto-network-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zettoai/apis/zetto-network-api/revisions/a81077177fc2?raw)
