Skip to main content
GET
/
api
/
leads
/
search
/
{id}
Get a lead search
curl --request GET \
  --url https://app.puffle.ai/api/leads/search/{id} \
  --header 'Authorization: Bearer <token>'
{
  "search": {
    "id": "8c2b2d4e-e29b-41d4-a716-446655440000",
    "user_id": "11111111-1111-1111-1111-111111111111",
    "list_id": null,
    "title": "VPs of Sales at SaaS companies in Austin",
    "title_edited": false,
    "status": "completed",
    "filters": {
      "contact_job_title": [
        "VP of Sales"
      ],
      "company_keywords": [
        "SaaS"
      ],
      "contact_city": [
        "Austin"
      ]
    },
    "apify_run_id": "apify_run_AbCdEf123",
    "result_count": 842,
    "error_message": null,
    "created_at": "2026-04-22T10:15:00.000Z",
    "completed_at": "2026-04-22T10:18:02.000Z"
  }
}

Overview

Pure DB read of a single lead search row. This is the polling target after createLeadSearch — watch status transition through pendingrunningcompleted (or failed).
This operation shares the URL path /api/leads/search/{id} with other verbs. See Update a lead search to rename, or Delete a lead search to remove.

AI agent notes

Polling cadence after createLeadSearch:
StatusCadence
pendingevery 5 s
runningevery 5 to 10 s
completedstop polling — fold results into a list via add-to-list
failedstop polling — surface error_message to the human
Most runs finish within 2 minutes. Give up at 10 minutes, capture the correlationId, and escalate.
See also: Start a search · Add results to a list · Agent Playbook.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string<uuid>
required

Lead search UUID. Must be owned by the authenticated user.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$

Response

Lead search state.

Canonical lead search entity.