---
title: "Update a lead's status"
method: PATCH
path: "/v1/ads/leads/{id}"
tags: ["Lead Gen"]
---

# Update a lead's status

`PATCH /v1/ads/leads/{id}`

## Request

- Base URL: `https://zernio.com/api`
- URL: `https://zernio.com/api/v1/ads/leads/{id}`
- Auth: HTTP bearer

Sets the status of a Meta lead (and optionally its value) so you can track it from lead to sale.

`{id}` is the Zernio lead id (`id` on `GET /v1/ads/leads`, `leadId` on `GET /v1/ads/lead-forms/{formId}/leads`) or the Meta `leadgenId` together with `accountId` in the body. Requires the Ads add-on.

## Path parameters

- `id` string, required

## Request body

- object
  - `status` 'new' | 'contacted' | 'unreachable' | 'qualified' | 'converted' | 'disqualified', required
  - `value` number: Deal value; requires currency.
  - `currency` string: ISO 4217 code.
  - `accountId` string: Required when `{id}` is a Meta leadgenId: the facebook or metaads account that received the lead.

## Response `200`

The updated lead.

- object
  - `status` string
  - `lead` AdLead
    - `id` string: Zernio lead id.
    - `leadgenId` string: Meta lead id. On LinkedIn, the leadFormResponse id.
    - `formId` string
    - `formName` string, nullable
    - `accountId` string
    - `adId` string, nullable
    - `adsetId` string, nullable
    - `campaignId` string, nullable: On LinkedIn, this is the LinkedIn Campaign id, which corresponds to platformAdSetId on GET /v1/ads (LinkedIn's Campaign Group is Zernio's campaign).
    - `isOrganic` boolean
    - `createdTime` string, nullable: ISO 8601.
    - `fields` object: Question key → answer. On LinkedIn, the key is the lowercased predefinedField, else the question name, else the numeric questionId; multiple-choice values are option labels (unlike Meta, which returns the option key).
    - `fieldData` object[]: Raw Meta field_data.
    - `status` 'new' | 'contacted' | 'unreachable' | 'qualified' | 'converted' | 'disqualified': Meta leads only. `contacted` is set when the first WhatsApp message of a lead_received workflow is delivered, `unreachable` when it fails or the phone number is not valid.
    - `statusChangedAt` string, date-time, nullable
    - `value` number, nullable
    - `currency` string, nullable
    - `contactId` string, nullable: The contact a lead_received workflow created or matched for this lead.
    - `firstContactedAt` string, date-time, nullable: When the first WhatsApp message to the lead was delivered.

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key. `code` is `missing_credentials` when no Authorization header was sent and `invalid_credentials` when the key is unknown, revoked or expired.
- `403`: Ads add-on required.
- `404`: Lead not found or not accessible.

## Changes

- **2026-10-22** `c083c0fa652b`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/ads/leads/:id/patch.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/4e74db179e73?raw)
