Skip to content
Docs

Create Search

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

Use GET /search.json for JSON clients. GET /search is also supported for SerpApi compatibility.

Fresh non-cached searches are queue-first and normally return 202 Accepted.

Request#

Shell
curl -sS "https://api.lempile.com/search.json?engine=google&q=Coffee&location=Austin%2C+Texas%2C+United+States&hl=en&gl=us" \
  -H "X-API-KEY: your-api-key"

Normal Fresh Response#

JSON
{
  "search_metadata": {
    "id": "search_id",
    "status": "Processing",
    "status_detail": "Queued",
    "json_endpoint": "https://api.lempile.com/searches/search_id.json",
    "raw_html_file": "https://api.lempile.com/searches/search_id.html",
    "pixel_position_endpoint": "https://api.lempile.com/searches/search_id.json_with_pixel_position"
  },
  "search_parameters": {
    "engine": "google",
    "q": "Coffee",
    "google_domain": "google.com",
    "device": "desktop"
  }
}

Cached Response#

If an identical successful search is still cached, Lempile may return 200 OK immediately with final organic_results.

Queue Full Response#

If the workspace already has too many pending searches, Lempile returns 429.

JSON
{
  "error": "Workspace Google search queue is full.",
  "error_code": "workspace_search_queue_full"
}

Important Parameters#

Parameter Purpose
q Google query. Supports operators such as site:, inurl:, and quoted phrases.
location Human-readable location. Do not combine with uule, lat, or lon.
gl Country localization, such as us, ca, or fr.
hl Interface language, such as en or fr.
tbs Google filter string, such as qdr:m.
device desktop, mobile, or tablet. Defaults to desktop.
no_cache Set to true to force a fresh queued browser run.

async is still accepted for compatibility, but fresh searches are queue-first by default whether or not async=true is sent.

Was this page helpful?