Skip to content
Docs

Poll Search

Early access. Tell us what you're building and we'll set you up. Contact us

Use the search_metadata.json_endpoint returned by create-search responses.

Shell
curl -sS "https://api.lempile.com/searches/{search_id}.json" \
  -H "X-API-KEY: your-api-key"

Processing Response#

Queued or running searches return 202 Accepted.

JSON
{
  "search_metadata": {
    "id": "search_id",
    "status": "Processing",
    "status_detail": "Running",
    "started_at": "2026-06-01T08:01:00Z",
    "lease_expires_at": "2026-06-01T08:03:00Z"
  }
}

Keep polling until search_metadata.status is not Processing.

Success Response#

Successful searches return 200 OK.

JSON
{
  "search_metadata": {
    "id": "search_id",
    "status": "Success",
    "processed_at": "2026-06-01T08:02:00Z"
  },
  "organic_results": []
}

Error Response#

Failed searches return 200 OK with status: "Error" and a clear error message.

JSON
{
  "error": "Google returned a block or consent challenge page.",
  "search_metadata": {
    "id": "search_id",
    "status": "Error",
    "status_detail": "google_search_failed"
  }
}

Polling Guidance#

  • Poll every 3-5 seconds for normal requests.
  • Treat Processing as normal while the queue or browser runner is working.
  • Use status_detail for dashboard/debug display only; client state machines should rely on search_metadata.status.

Was this page helpful?