Skip to main content
PUT
/
v1
/
leads
/
{id}
/
stage
Mover Lead de Etapa
curl --request PUT \
  --url https://api.superlead.app/v1/leads/{id}/stage \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "stage_id": "stage_7"
}
'
const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({stage_id: 'stage_7'})
};

fetch('https://api.superlead.app/v1/leads/{id}/stage', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
import requests

url = "https://api.superlead.app/v1/leads/{id}/stage"

payload = { "stage_id": "stage_7" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.text)
{
  "lead_id": "lead_0b5f8a3e-1a2b-3c4d-5e6f-7a8b9c0d1e2f",
  "previous_stage": {
    "id": "stage_3",
    "name": "1º Contato"
  },
  "current_stage": {
    "id": "stage_7",
    "name": "Qualificado"
  },
  "changed": true,
  "moved_at": "2026-07-08T12:00:00.000Z"
}
{
"error": {
"code": "invalid_request",
"message": "The request body is invalid.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1",
"details": [
{
"path": "to",
"message": "Required"
}
]
}
}
{
"error": {
"code": "invalid_api_key",
"message": "Missing or invalid API key. Send it as 'Authorization: Bearer sk_...'.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1"
}
}
{
"error": {
"code": "stage_not_found",
"message": "No funnel stage with this id exists in your company. List valid stages with GET /v1/funnel/stages.",
"request_id": "req_01J9X7K2M3N4P5Q6R7S8T9V0W1"
}
}

Authorizations

Authorization
string
header
required

Chave de API da sua empresa (sk_...). Crie no painel Superlead em Integrações → API e envie em toda chamada como Authorization: Bearer sk_.... Veja Autenticação.

Path Parameters

id
string
required

Id do lead (lead_...), retornado por POST /v1/leads, GET /v1/leads?phone=... ou GET /v1/leads/{id}.

Body

application/json
stage_id
string
required

Id da etapa de destino (stage_N), obtido em GET /v1/funnel/stages.

Pattern: ^stage_\d+$
Example:

"stage_7"

reason
string

Motivo da transição, exibido como observação no histórico do lead no painel (até 500 caracteres).

Required string length: 1 - 500
Example:

"respondeu no site"

Response

Resultado do movimento. changed: false indica no-op (o lead já estava na etapa).

lead_id
string

Id do lead movido.

Example:

"lead_0b5f8a3e-1a2b-3c4d-5e6f-7a8b9c0d1e2f"

previous_stage
object | null

Etapa em que o lead estava. null se o lead não tinha etapa.

current_stage
object

Etapa atual após a operação.

changed
boolean

true se o lead mudou de etapa; false se já estava na etapa de destino (no-op, sem log).

moved_at
string<date-time>

Data da transição (ISO 8601, UTC).

Example:

"2026-07-08T12:00:00.000Z"