Listar negócios
v1.0.0https://api.growthaisystem.com/api/v1/opportunities- Exige
Authorization: Bearer gos_…— Chave de API (gos_…)· escoposopportunities.read
Paginação por cursor keyset; limit até 500. contactId filtra os negócios de um contato (§9.23). Datas em ISO-8601: *After é estritamente depois (>), *Before estritamente antes (<). wonAfter/wonBefore e lostAfter/lostBefore recortam pela data de fechamento (só negócios ganhos/perdidos); stageChangedAfter recorta por stageChangedAt (quando entrou no estágio atual). Negócio na Lixeira não sai — nem aqui, nem em nenhuma rota da API (o detalhe dele dá 404).
Campos derivados (desde 30/10/2026): cada negócio traz os mesmos campos do detalhe, com a mesma regra — lastActivityAt (a Ação mais recente do negócio ou de uma atividade dele), firstHumanTouchAt/lastHumanTouchAt, humanTouchCount e firstHumanTouchChannel (toque humano do contato a partir da CRIAÇÃO do negócio, mesmo actor: "user" de /interactions). Calculados em lote para a página inteira: o custo não cresce por negócio.
Parâmetros de consulta
Vão na querystring, depois do ?.
- pipelineIdstringopcional
- stageIdstringopcional
- statusstringopcional
- um de"open""won""lost"
- contactIdstringopcional
- createdAfterstringopcional
- updatedAfterstringopcional
- createdBeforestringopcional
- updatedBeforestringopcional
- wonAfterstringopcional
- wonBeforestringopcional
- lostAfterstringopcional
- lostBeforestringopcional
- stageChangedAfterstringopcional
- cursorstringopcional
- limitintegeropcional
- padrão 50
- faixa 1–500
Respostas
6 respostas documentadas — o código, o que ele significa nesta rota e a forma do corpo.
Página de negócios do workspace em ordem de criação decrescente, cada um com os campos derivados de toque humano e de atividade. data: [] é sucesso (não há negócio no recorte); nextCursor: null é o fim da lista.
Cada item — V1Opportunity
- idstring
- titlestring
- pipelineIdstring
- stageIdstring
- contactIdstring
- statusstring
- um de"open""won""lost""abandoned"
- valueCentsinteger
- currencystring
- ownerUserIdstring | null
- temperaturestring
- tagsstring[]
- lossReasonstring | null
- expectedCloseAtstring | null
- wonAtstring | null
- wonRecordedAtstring | null
- lostAtstring | null
- lostRecordedAtstring | null
- lostAtStageIdstring | null
- customFieldsobjeto livre
- chave string
- valor qualquer valor JSON
- createdAtstring
- updatedAtstring
- sourcestring | null
- sourcestring | null
- mediumstring | null
- campaignstring | null
- termstring | null
- contentstring | null
- originstring
- stageChangedAtstring
- urlstring
- firstHumanTouchAtstring | nullpode faltar
- lastHumanTouchAtstring | nullpode faltar
- humanTouchCountintegerpode faltar
Quantos toques humanos o contato deste negócio recebeu desde a CRIAÇÃO do negócio (cada mensagem, ligação, e-mail ou nota com
actor: "user"em/interactionsconta um). 0 = nenhum. Mesma fonte e mesmo recorte defirstHumanTouchAt/lastHumanTouchAt. Vem emGET /opportunitiese emGET /opportunities/{id}.- mín. 0
- firstHumanTouchChannelstring | nullpode faltar
O canal do PRIMEIRO toque humano desde a criação do negócio — o mesmo registro de
firstHumanTouchAt, no vocabulário dechannelde/interactions(whatsapp,instagram,facebook,call,email,note…). Dois toques no mesmo instante: vale o de menoridde/interactions.null= ainda não houve toque humano. - lastActivityAtstring | nullpode faltar
- nextCursorstring | null
Cursor opaco da PRÓXIMA página — passe em
?cursor=.null= acabou a lista.