DailyAPI Documentationv1
Resources

Leads

Retrieve sales leads, public statuses, source, owner summary, and conversion relationship.

View OpenAPI

Permission: לידים (leads:read)

OperationPath
ListGET /leads
RetrieveGET /leads/{id}

The list supports common cursor and time filters, search over name, contact name, email, and phone, and these statuses: new, contacted, in_progress, proposal, negotiation, won, lost. Sort order is updated_at descending, then ID descending.

const apiKey = process.env.DAILY_API_KEY;
if (!apiKey) throw new Error('DAILY_API_KEY is required');

const url = new URL('https://api.godaily.co.il/v1/leads');
url.searchParams.set('status', 'proposal');
url.searchParams.set('updated_after', '2026-07-01T00:00:00.000Z');
const response = await fetch(url, { headers: { Authorization: `Bearer ${apiKey}`, Accept: 'application/json' } });
const body = await response.json();
if (!response.ok) throw new Error(`Daily API ${response.status} (${body.request_id})`);
console.log(body.data);
{
  "id": "20c85f5f-d823-411f-bbf7-f5b76ea77235",
  "object": "lead",
  "name": "Nova Hospitality",
  "contact_name": "Eitan Bar",
  "email": "eitan@nova-hospitality.test",
  "phone": "+972-54-555-0174",
  "address": "Herzliya",
  "source": "website",
  "status": "proposal",
  "owner": { "id": "913f5ab6-9525-483c-9aa1-73d561b8bfa8", "display_name": "Maya Cohen" },
  "converted_customer_id": null,
  "created_at": "2026-07-08T07:45:00.000Z",
  "updated_at": "2026-07-20T10:05:00.000Z"
}

Contact fields, source, owner, and converted customer can be null. The owner is returned only when the assigned sales agent belongs to the authenticated business.

Direct browser request

API playground

Memory only

Your key stays only in this React page’s memory and is sent directly to Daily API. It is not persisted, placed in a URL, logged, or sent to analytics. Refreshing or closing this page clears it.

GEThttps://api.godaily.co.il/v1/leads

Full lifecycle

leads:write allows POST /leads, PATCH /leads/{id}, DELETE /leads/{id}, PATCH /leads/{id}/status, POST /leads/{id}/activities, and PATCH /leads/{id}/activities/{activityId}.

Lead intake as a draft

POST /leads creates a lead draft and returns 201 with data.id (the draft ID), data.status: "DRAFT", and data.created_at. It requires leads:write. Request fields remain unchanged, including the requirement for a business or contact name.

The draft appears in the Leads screen with Continue registration and Delete draft actions, and the main menu shows a draft count. Continuing registration opens a form with the submitted details for review and editing. Only saving that form creates an active lead and removes the draft. Deleting the draft does not create a lead.

Drafts are excluded from GET /leads. The returned ID identifies a draft and cannot be used in lead detail, update, delete, activity, or conversion routes. After registration, the lead receives a new ID and appears in the lead list. The request's status is kept as the intended status after registration; the intake response always returns DRAFT.

The schemas cover business and contact names, phone, email, address, source, general note, agent, products of interest, and activity details. Update status and loss reason through /status; activities and tasks hold follow-up data. GET /leads/{id}/details includes activities, tasks, and products of interest.

POST /leads/{id}/convert-to-customer with an UpdateCrmFollowUpFrequencyDto body converts a successfully closed lead to a customer. It requires both customers:write and leads:write. The response includes created, already_converted, customer, and lead.

Deleting an unconverted lead also deletes its activities and product interests. Tasks remain and are detached from the lead. Deleting a converted lead returns 409 lead_already_converted.

All request and response fields · Write and deletion rules

On this page