---
title: "Start a signup conversation (no account needed)"
method: POST
path: "/api/funnel/start"
tags: ["qualification"]
---

# Start a signup conversation (no account needed)

`POST /api/funnel/start`

## Request

- Base URL: `https://api.zettoai.com`
- URL: `https://api.zettoai.com/api/funnel/start`
- Auth: none required

Returns the first question and a session token. THE TOKEN IS SHOWN ONCE; every later call needs it. Sessions last 30 days. channel api always gets the questions GET /api/funnel/questions lists; web gets one open question (examples in `examples`).

## Request body

- object
  - `channel` 'web' | 'api'
  - `goal` 'customers' | 'investors' | 'talent' | 'partners' | 'suppliers' | 'investments' | 'job' | 'offer' | 'other': Optional: a goal already picked, so the first question is that goal's own.

## Response `201`

Conversation started

- object
  - `session_id` string, uuid, required
  - `token` string, required: Shown once. Pass it on every later call.
  - `message` string, required
  - `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
  - `skippable` boolean

## Other responses

- `400`: Bad channel or goal
- `429`: Too many requests from this address

---

[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)
