### Languages response example Source: https://docs.serplify.io/serp-api/reference-data Example response from GET /v1/languages. Shows the JSON structure with request_id, status, meta, and data containing a languages array. ```json { "request_id": "req_…", "status": "ok", "meta": { "api_version": "0.1.0", "time": 0.02, "cost": 0, "currency": "USD" }, "data": { "languages": [ { "code": "en", "name": "English" }, { "code": "es", "name": "Spanish" } ] } } ``` -------------------------------- ### GET ready_url Source: https://docs.serplify.io/serp-api/webhooks Serplify sends a GET request to the `ready_url` as a ping to notify you that the task is ready to fetch. The request has no body. ```APIDOC ## [GET] ready_url ### Description Serplify sends a GET request to the `ready_url` as a ping to notify you that the task is ready to fetch. The request has no body. ### Method GET ### Endpoint `ready_url` (configured at enqueue time) ### Parameters #### URL Placeholders - `$id` (string) - Optional - The task id. - `$tag` (string) - Optional - The request `tag` (empty if none). ### Response #### Success Response (2xx) - **status** (string) - The status of the delivery. Respond with a 2xx to acknowledge receipt. ### Notes - Webhooks are best-effort with retries; non-2xx responses are retried with backoff. - Webhooks never affect task billing or state; a failed webhook does not fail the task. - Treat `ready_url` as a best-effort signal and reconcile with a periodic `GET /v1/serp/tasks` sweep if you need exactly-once guarantees. ``` -------------------------------- ### Locations response example Source: https://docs.serplify.io/serp-api/reference-data Example response from GET /v1/locations?country=GB&limit=5. Shows the JSON structure with request_id, status, meta (including api_version, time, cost, currency), and data containing total and locations array. ```json { "request_id": "req_…", "status": "ok", "meta": { "api_version": "0.1.0", "time": 0.05, "cost": 0, "currency": "USD" }, "data": { "total": 950, "locations": [ { "code": 2826, "name": "United Kingdom", "country": "GB", "type": "Country", "parent_code": null }, { "code": 1006886, "name": "London,England,United Kingdom", "country": "GB", "type": "City", "parent_code": 20339 } ] } } ``` -------------------------------- ### JavaScript fetch SERP example Source: https://docs.serplify.io/getting-started/quickstart Node.js fetch example that posts a live SERP search to the Serplify API. Uses the SERPLIFY_KEY environment variable for authentication and prints the items from the response data. ```javascript const res = await fetch("https://api.serplify.io/v1/serp/search", { method: "POST", headers: { Authorization: `Bearer ${process.env.SERPLIFY_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ keyword: "best running shoes", location: { code: 2840 }, language: { code: "en" }, format: "advanced", }), }); const body = await res.json(); console.log(body.data.items); ``` -------------------------------- ### Python requests SERP example Source: https://docs.serplify.io/getting-started/quickstart Python requests example that posts a live SERP search to the Serplify API. Requires the SERPLIFY_KEY environment variable, uses raise_for_status() for error handling, and prints the items from the response data. ```python import os, requests res = requests.post( "https://api.serplify.io/v1/serp/search", headers={"Authorization": f"Bearer {os.environ['SERPLIFY_KEY']}"}, json={ "keyword": "best running shoes", "location": {"code": 2840}, "language": {"code": "en"}, "format": "advanced", }, ) res.raise_for_status() print(res.json()["data"]["items"]) ``` -------------------------------- ### GET /v1/serp/tasks Source: https://docs.serplify.io/serp-api/overview Lists your completed (ready) async tasks. ```APIDOC ## GET /v1/serp/tasks ### Description Lists your completed (ready) async tasks. ### Method GET ### Endpoint /v1/serp/tasks ### Parameters None ### Request Example None ### Response #### Success Response (200) - **request_id** (string) - Correlation id. - **status** (string) - `ok`. - **meta** (object) - Contains `api_version`, `time`, `cost`, `currency`. - **data** (object) - Endpoint-specific payload. #### Response Example { "request_id": "req_...", "status": "ok", "meta": { "api_version": "0.1.0", "time": 1.13, "cost": 0.005, "currency": "USD" }, "data": {} } ``` -------------------------------- ### GET /v1/traffic/campaigns/{id} response with keywords array Source: https://docs.serplify.io/traffic-api/seo-traffic Example JSON response from the GET /v1/traffic/campaigns/{id} endpoint, showing campaign totals and a keywords array with per-keyword quantity, delivered count, and status. The status 'not_ranking' indicates the keyword was switched off and will never deliver; you are not charged for those searches. ```json { "campaign_id": "9f1c…", "name": "Acme — running shoes cluster", "product": "clicks", "quantity": 200, "delivered": 118, "status": "running", "keywords": [ { "keyword": "best running shoes", "quantity": 67, "delivered": 67, "status": "completed" }, { "keyword": "trail running shoes", "quantity": 67, "delivered": 51, "status": "delivering" }, { "keyword": "cheap running shoes", "quantity": 66, "delivered": 0, "status": "not_ranking" } ] } ``` -------------------------------- ### Get locations for a country with GET /v1/locations/{country} Source: https://docs.serplify.io/serp-api/reference-data Returns all locations for a single ISO country code (e.g., 'us' for United States). The country code is provided as a path parameter. ```bash curl https://api.serplify.io/v1/locations/us \ -H "Authorization: Bearer live_your_key_here" ``` -------------------------------- ### Verify profiles used for delivered visits Source: https://docs.serplify.io/traffic-api/website-traffic Example response from GET /v1/traffic/campaigns/{id}/browsers showing the breakdown of delivered visits by browser profile over the last seven days. The 'browser' field identifies the presented profile, not a separate browser runtime. ```json { "since": "2026-09-15T12:00:00.000Z", "until": "2026-09-22T12:00:00.000Z", "delivered": 100, "browsers": [ { "browser": "chrome", "delivered": 70, "share": 70 }, { "browser": "safari", "delivered": 30, "share": 30 } ] } ``` -------------------------------- ### Rank history response Source: https://docs.serplify.io/serp-api/rank-tracking Example response from GET /v1/serp/track showing snapshots for the target, newest first. Each snapshot includes captured_at, rank_absolute, rank_group, and url. ```json { "request_id": "req_…", "status": "ok", "meta": { "api_version": "0.1.0", "time": 0.02, "cost": 0, "currency": "USD" }, "data": { "keyword": "best running shoes", "target": "nike.com", "location_code": 2840, "language_code": "en", "device": "desktop", "snapshots": [ { "captured_at": "2026-07-02T12:00:00.000Z", "rank_absolute": 3, "rank_group": 1, "url": "https://www.nike.com/running" }, { "captured_at": "2026-07-01T12:00:00.000Z", "rank_absolute": 5, "rank_group": 2, "url": "https://www.nike.com/running" } ] } } ``` -------------------------------- ### Serplify API response format Source: https://docs.serplify.io/getting-started/quickstart Example JSON response from the live SERP request. Shows the returned fields including request_id, status, meta (api_version, time, cost, currency), and data containing search results, location, language, and items placeholder. ```json { "request_id": "req_9f2c…", "status": "ok", "meta": { "api_version": "0.1.0", "time": 1.13, "cost": 0.005, "currency": "USD" }, "data": { "keyword": "best running shoes", "search_engine": "google", "search_engine_domain": "google.com", "device": "desktop", "location": { "code": 2840, "name": "United States" }, "language": { "code": "en", "name": "English" }, "result_url": "https://www.google.com/search?q=best+running+shoes", "fetched_at": "2026-07-02T12:00:00.000Z", "total_results_count": 1240000000, "pages_crawled": 1, "items_count": 42, "feature_types": ["organic", "paid", "people_also_ask", "related_searches"], "items": [ /* … SERP items … */ ] } } ``` -------------------------------- ### Campaign creation with browser_mix Source: https://docs.serplify.io/traffic-api/website-traffic Example JSON payload for creating a campaign with a custom browser mix. Percentages must total 100; omitted browsers receive zero. Unknown profile names and invalid percentages are rejected. ```json { "url": "https://example.com/", "quantity": 1000, "source": "direct", "device": "mixed", "mobile_percent": 40, "browser_mix": { "chrome": 60, "edge": 10, "firefox": 10, "safari": 20 } } ``` -------------------------------- ### List ready tasks with GET /v1/serp/tasks Source: https://docs.serplify.io/serp-api/tasks Lists completed tasks from the last 24 hours. Returns HTTP 200 with an array of task objects in data.tasks. ```json { "request_id": "req_…", "status": "ok", "meta": { "api_version": "0.1.0", "time": 0.03, "cost": 0, "currency": "USD" }, "data": { "tasks": [ { "task_id": "0199…", "keyword": "electric cars", "tag": null, "created_at": "2026-07-02T12:00:00.000Z", "status_url": "/v1/serp/tasks/0199…" } ] } } ``` -------------------------------- ### GET /v1/serp/track Source: https://docs.serplify.io/serp-api/rank-tracking Returns rank snapshots for a target, newest first. Query parameters filter by keyword, target, location, language, and device. ```APIDOC ## GET /v1/serp/track ### Description Returns rank snapshots for a target, newest first. Query parameters filter by keyword, target, location, language, and device. ### Method GET ### Endpoint /v1/serp/track ### Parameters #### Query Parameters - **keyword** (string) - Required - The tracked keyword. - **target** (string) - Required - The tracked domain/host. - **location_code** (integer) - Optional - Filter by location. - **language_code** (string) - Optional - Filter by language. - **device** (string) - Optional - `desktop` or `mobile`. - **limit** (integer) - Optional - Max snapshots (1–1000, default 100). ### Request Example ``` curl "https://api.serplify.io/v1/serp/track?keyword=best%20running%20shoes&target=nike.com&location_code=2840&language_code=en&device=desktop" \ -H "Authorization: Bearer live_your_key_here" ``` ### Response #### Success Response (200) - **request_id** (string) - Unique request identifier. - **status** (string) - Status of the request, e.g., "ok". - **meta** (object) - Metadata including api_version, time, cost, and currency. - **data** (object) - Contains keyword, target, location_code, language_code, device, and snapshots array. - **snapshots** (array) - List of rank snapshots, each with captured_at, rank_absolute, rank_group, and url. #### Response Example ``` { "request_id": "req_…", "status": "ok", "meta": { "api_version": "0.1.0", "time": 0.02, "cost": 0, "currency": "USD" }, "data": { "keyword": "best running shoes", "target": "nike.com", "location_code": 2840, "language_code": "en", "device": "desktop", "snapshots": [ { "captured_at": "2026-07-02T12:00:00.000Z", "rank_absolute": 3, "rank_group": 1, "url": "https://www.nike.com/running" }, { "captured_at": "2026-07-01T12:00:00.000Z", "rank_absolute": 5, "rank_group": 2, "url": "https://www.nike.com/running" } ] } } ``` ``` -------------------------------- ### List languages with GET /v1/languages Source: https://docs.serplify.io/serp-api/reference-data Lists supported languages. The response contains an array of language objects with code and name. ```bash curl https://api.serplify.io/v1/languages \ -H "Authorization: Bearer live_your_key_here" ``` -------------------------------- ### Organic item example Source: https://docs.serplify.io/serp-api/response-format Example of an organic SERP item with the common ranking triplet (type, rank_group, rank_absolute, page) plus fields specific to organic results such as domain, title, description, url, breadcrumb, highlighted, and rating. Field availability varies by feature type. ```json { "type": "organic", "rank_group": 1, "rank_absolute": 3, "page": 1, "domain": "nike.com", "title": "Nike Running Shoes", "description": "Shop the latest running shoes …", "url": "https://www.nike.com/running", "breadcrumb": "nike.com › running", "highlighted": ["running", "shoes"], "rating": { "rating_type": "AggregateRating", "value": 4.6, "votes_count": 1203, "rating_max": 5 } } ``` -------------------------------- ### GET /v3/serp/google/organic/tasks_ready Source: https://docs.serplify.io/migrating/dataforseo Retrieves a list of completed tasks that are ready for retrieval. This endpoint matches the DataForSEO tasks_ready interface. ```APIDOC ## GET /v3/serp/google/organic/tasks_ready ### Description Retrieves a list of completed tasks that are ready for retrieval. This endpoint matches the DataForSEO tasks_ready interface. ### Method GET ### Endpoint https://api.serplify.io/v3/serp/google/organic/tasks_ready ### Response #### Success Response (200) - **version** (string) - API version. - **status_code** (integer) - Status code (e.g., 20000). - **status_message** (string) - Status message. - **tasks** (array) - Array of task objects. - **id** (string) - Task ID. - **status_code** (integer) - Task status code. - **result** (array) - Array of result objects. - **keyword** (string) - The keyword. - **items** (array) - Array of SERP items. #### Response Example ```json { "version": "0.1.0", "status_code": 20000, "status_message": "Ok.", "tasks": [ { "id": "…", "status_code": 20000, "result": [ { "keyword": "best running shoes", "items": [] } ] } ] } ``` ``` -------------------------------- ### GET /v1/serp/tasks Source: https://docs.serplify.io/serp-api/tasks Lists your completed tasks from the last 24 hours. Returns an array of task summaries. ```APIDOC ## GET /v1/serp/tasks ### Description Lists your completed tasks from the last 24 hours. Returns an array of task summaries. ### Method GET ### Endpoint /v1/serp/tasks ### Parameters None ### Response #### Success Response (200) - **request_id** (string) - Unique request identifier. - **status** (string) - `"ok"`. - **meta** (object) - Metadata including `api_version`, `time`, `cost`, `currency`. - **data** (object) - Contains `tasks` array with objects having `task_id`, `keyword`, `tag`, `created_at`, and `status_url`. #### Response Example ``` { "request_id": "req_…", "status": "ok", "meta": { "api_version": "0.1.0", "time": 0.03, "cost": 0, "currency": "USD" }, "data": { "tasks": [ { "task_id": "0199…", "keyword": "electric cars", "tag": null, "created_at": "2026-07-02T12:00:00.000Z", "status_url": "/v1/serp/tasks/0199…" } ] } } ``` ``` -------------------------------- ### Fetch a task with GET /v1/serp/tasks/{id} Source: https://docs.serplify.io/serp-api/tasks Fetches a task result by ID. An optional ?format= query (standard | advanced | html) overrides the stored format on read. Returns HTTP 202 while processing, HTTP 200 when ready, HTTP 502 task_failed on failure, and HTTP 404 not_found for unknown IDs. ```bash curl https://api.serplify.io/v1/serp/tasks/0199… \ -H "Authorization: Bearer live_your_key_here" ``` -------------------------------- ### Webhook configuration block Source: https://docs.serplify.io/serp-api/webhooks Configure webhooks at enqueue time with the webhook block. ready_url is pinged via GET when the task is ready, result_url receives the full result via POST, and result_format sets the payload format (defaults to the task's format). ```json { "keyword": "electric cars", "location": { "code": 2840 }, "language": { "code": "en" }, "format": "advanced", "webhook": { "ready_url": "https://example.com/hooks/ready?id=$id&tag=$tag", "result_url": "https://example.com/hooks/result?id=$id", "result_format": "advanced" } } ``` -------------------------------- ### GET /v1/serp/tasks/{id} Source: https://docs.serplify.io/serp-api/tasks Fetches the result of a previously enqueued task. Returns HTTP 200 with the SERP result when ready, HTTP 202 while processing, HTTP 502 on failure, and HTTP 404 for unknown IDs. ```APIDOC ## GET /v1/serp/tasks/{id} ### Description Fetches the result of a previously enqueued task. Returns HTTP 200 with the SERP result when ready, HTTP 202 while processing, HTTP 502 on failure, and HTTP 404 for unknown IDs. ### Method GET ### Endpoint /v1/serp/tasks/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The task ID. #### Query Parameters - **format** (string) - Optional - Overrides the stored format on read: `standard`, `advanced`, or `html`. ### Request Example ``` curl https://api.serplify.io/v1/serp/tasks/0199… \ -H "Authorization: Bearer live_your_key_here" ``` ### Response #### Success Response (200) - **data** (object) - Contains the SERP result. #### Processing Response (202) - **request_id** (string) - Unique request identifier. - **status** (string) - `"accepted"`. - **meta** (object) - Metadata including `api_version`, `time`, `cost`, `currency`. - **data** (object) - Contains `task_id`, `status` ("processing"), and `status_url`. #### Failure Response (502) - **status** (string) - `"task_failed"`. #### Not Found Response (404) - **status** (string) - `"not_found"`. #### Response Example (Processing) ``` { "request_id": "req_…", "status": "accepted", "meta": { "api_version": "0.1.0", "time": 0.01, "cost": 0, "currency": "USD" }, "data": { "task_id": "0199…", "status": "processing", "status_url": "/v1/serp/tasks/0199…" } } ``` ``` -------------------------------- ### Create campaign request with webhook configuration Source: https://docs.serplify.io/traffic-api/overview Pass webhook_url and webhook_events when creating a campaign to receive webhook callbacks. The default webhook_events is ["completed"]. The example shows a request body with url, quantity, webhook_url, and webhook_events. ```json { "url": "https://example.com", "quantity": 1000, "webhook_url": "https://you.example.com/hooks/serplify", "webhook_events": ["delivered", "paused", "completed"] } ``` -------------------------------- ### result_url payload example Source: https://docs.serplify.io/serp-api/webhooks The POST body sent to result_url is the same native envelope returned by GET /v1/serp/tasks/{id}. It includes request_id, status, meta, and data fields. ```json { "request_id": "req_…", "status": "ok", "meta": { "api_version": "0.1.0", "time": 0, "cost": 0, "currency": "USD" }, "data": { "keyword": "electric cars", "search_engine": "google", "items": [ /* … */ ] } } ``` -------------------------------- ### Live SERP request with curl Source: https://docs.serplify.io/getting-started/quickstart Makes a live SERP request to the Serplify API using curl. Requires a valid API key (use test_… or live_… key) and sends keyword, location, language, device, and format parameters. ```bash curl -X POST https://api.serplify.io/v1/serp/search \ -H "Authorization: Bearer live_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "keyword": "best running shoes", "location": { "code": 2840 }, "language": { "code": "en" }, "device": "desktop", "format": "advanced" }' ``` -------------------------------- ### POST /v3/serp/google/organic/live/html Source: https://docs.serplify.io/migrating/dataforseo Performs a live Google Organic SERP request and returns the raw HTML. This endpoint matches the DataForSEO live/html interface. ```APIDOC ## POST /v3/serp/google/organic/live/html ### Description Performs a live Google Organic SERP request and returns the raw HTML. This endpoint matches the DataForSEO live/html interface. ### Method POST ### Endpoint https://api.serplify.io/v3/serp/google/organic/live/html ### Parameters #### Request Body - **keyword** (string) - Required - The keyword to search for. - **location_code** (integer) - Optional - The location code for the search. - **language_code** (string) - Optional - The language code for the search. - **device** (string) - Optional - The device type (e.g., "desktop"). ### Request Example ```json [ { "keyword": "best running shoes", "location_code": 2840, "language_code": "en", "device": "desktop" } ] ``` ### Response #### Success Response (200) - **version** (string) - API version. - **status_code** (integer) - Status code (e.g., 20000). - **status_message** (string) - Status message. - **tasks** (array) - Array of task objects. - **id** (string) - Task ID. - **status_code** (integer) - Task status code. - **result** (array) - Array of result objects. - **keyword** (string) - The keyword. - **items** (array) - Array of SERP items. #### Response Example ```json { "version": "0.1.0", "status_code": 20000, "status_message": "Ok.", "tasks": [ { "id": "…", "status_code": 20000, "result": [ { "keyword": "best running shoes", "items": [] } ] } ] } ``` ``` -------------------------------- ### GET /v1/locations Source: https://docs.serplify.io/serp-api/overview Lists supported locations. ```APIDOC ## GET /v1/locations ### Description Lists supported locations. ### Method GET ### Endpoint /v1/locations ### Parameters None ### Request Example None ### Response #### Success Response (200) - **request_id** (string) - Correlation id. - **status** (string) - `ok`. - **meta** (object) - Contains `api_version`, `time`, `cost`, `currency`. - **data** (object) - Endpoint-specific payload. #### Response Example { "request_id": "req_...", "status": "ok", "meta": { "api_version": "0.1.0", "time": 1.13, "cost": 0.005, "currency": "USD" }, "data": {} } ``` -------------------------------- ### POST /v1/serp/search request Source: https://docs.serplify.io/serp-api/live-search Sends a synchronous SERP request with keyword, location, language, device, format, and depth. Returns a parsed result typically in ~1 second. ```bash curl -X POST https://api.serplify.io/v1/serp/search \ -H "Authorization: Bearer live_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "keyword": "coffee shops", "location": { "name": "London,England,United Kingdom" }, "language": { "code": "en" }, "device": "mobile", "format": "advanced", "depth": 20 }' ``` -------------------------------- ### Enqueue a task with POST /v1/serp/tasks Source: https://docs.serplify.io/serp-api/tasks Enqueues a SERP task with the same body as live search. Returns HTTP 202 with a task_id and status_url. The charge is applied at enqueue; priority: "priority" makes the task jump the queue ahead of standard tasks. ```bash curl -X POST https://api.serplify.io/v1/serp/tasks \ -H "Authorization: Bearer live_your_key_here" \ -H "Content-Type: application/json" \ -d '{ "keyword": "electric cars", "location": { "code": 2840 }, "language": { "code": "en" }, "format": "advanced", "priority": "priority", "webhook": { "result_url": "https://example.com/hooks/serplify?id=$id" } }' ``` ```json { "request_id": "req_…", "status": "accepted", "meta": { "api_version": "0.1.0", "time": 0.02, "cost": 0.005, "currency": "USD" }, "data": { "task_id": "0199…", "keyword": "electric cars", "format": "advanced", "status_url": "/v1/serp/tasks/0199…" } } ``` -------------------------------- ### GET /v1/serp/track Source: https://docs.serplify.io/serp-api/overview Returns rank-over-time data for a tracked target. ```APIDOC ## GET /v1/serp/track ### Description Returns rank-over-time data for a tracked target. ### Method GET ### Endpoint /v1/serp/track ### Parameters None ### Request Example None ### Response #### Success Response (200) - **request_id** (string) - Correlation id. - **status** (string) - `ok`. - **meta** (object) - Contains `api_version`, `time`, `cost`, `currency`. - **data** (object) - Endpoint-specific payload. #### Response Example { "request_id": "req_...", "status": "ok", "meta": { "api_version": "0.1.0", "time": 1.13, "cost": 0.005, "currency": "USD" }, "data": {} } ``` -------------------------------- ### GET /v1/languages Source: https://docs.serplify.io/serp-api/reference-data Lists supported languages with their codes and names. ```APIDOC ## GET /v1/languages ### Description Lists supported languages for use in SERP requests. ### Method GET ### Endpoint https://api.serplify.io/v1/languages ### Parameters None. ### Request Example curl https://api.serplify.io/v1/languages \ -H "Authorization: Bearer live_your_key_here" ### Response #### Success Response (200) - **request_id** (string) - Request identifier. - **status** (string) - Status of the request. - **meta** (object) - Metadata including api_version, time, cost, currency. - **data.languages** (array) - List of language objects, each with code and name. #### Response Example { "request_id": "req_…", "status": "ok", "meta": { "api_version": "0.1.0", "time": 0.02, "cost": 0, "currency": "USD" }, "data": { "languages": [ { "code": "en", "name": "English" }, { "code": "es", "name": "Spanish" } ] } } ``` -------------------------------- ### Campaign creation response (HTTP 202) Source: https://docs.serplify.io/traffic-api/overview Creating a campaign returns HTTP 202 with a campaign record. The response includes request_id, status, meta, and data with campaign details such as campaign_id, name, product, quantity, delivered, failed, status, status_url, and created_at. ```json { "request_id": "req_…", "status": "accepted", "meta": { "api_version": "0.1.0", "time": 0.03, "cost": 0, "currency": "USD" }, "data": { "campaign_id": "…", "name": "Visits: https://example.com", "product": "visits", "quantity": 1000, "delivered": 0, "failed": 0, "status": "running", "status_url": "/v1/traffic/campaigns/…", "created_at": "2026-07-02T12:00:00.000Z" } } ``` -------------------------------- ### POST /v3/serp/google/organic/live/advanced Source: https://docs.serplify.io/migrating/dataforseo Performs a live Google Organic SERP request and returns results in the advanced format. This endpoint matches the DataForSEO live/advanced interface. ```APIDOC ## POST /v3/serp/google/organic/live/advanced ### Description Performs a live Google Organic SERP request and returns results in the advanced format. This endpoint matches the DataForSEO live/advanced interface. ### Method POST ### Endpoint https://api.serplify.io/v3/serp/google/organic/live/advanced ### Parameters #### Request Body - **keyword** (string) - Required - The keyword to search for. - **location_code** (integer) - Optional - The location code for the search. - **language_code** (string) - Optional - The language code for the search. - **device** (string) - Optional - The device type (e.g., "desktop"). ### Request Example ```json [ { "keyword": "best running shoes", "location_code": 2840, "language_code": "en", "device": "desktop" } ] ``` ### Response #### Success Response (200) - **version** (string) - API version. - **status_code** (integer) - Status code (e.g., 20000). - **status_message** (string) - Status message. - **tasks** (array) - Array of task objects. - **id** (string) - Task ID. - **status_code** (integer) - Task status code. - **result** (array) - Array of result objects. - **keyword** (string) - The keyword. - **items** (array) - Array of SERP items. #### Response Example ```json { "version": "0.1.0", "status_code": 20000, "status_message": "Ok.", "tasks": [ { "id": "…", "status_code": 20000, "result": [ { "keyword": "best running shoes", "items": [] } ] } ] } ``` ``` -------------------------------- ### POST /v3/serp/google/organic/live/regular Source: https://docs.serplify.io/migrating/dataforseo Performs a live Google Organic SERP request and returns results in the regular format. This endpoint matches the DataForSEO live/regular interface. ```APIDOC ## POST /v3/serp/google/organic/live/regular ### Description Performs a live Google Organic SERP request and returns results in the regular format. This endpoint matches the DataForSEO live/regular interface. ### Method POST ### Endpoint https://api.serplify.io/v3/serp/google/organic/live/regular ### Parameters #### Request Body - **keyword** (string) - Required - The keyword to search for. - **location_code** (integer) - Optional - The location code for the search. - **language_code** (string) - Optional - The language code for the search. - **device** (string) - Optional - The device type (e.g., "desktop"). ### Request Example ```json [ { "keyword": "best running shoes", "location_code": 2840, "language_code": "en", "device": "desktop" } ] ``` ### Response #### Success Response (200) - **version** (string) - API version. - **status_code** (integer) - Status code (e.g., 20000). - **status_message** (string) - Status message. - **tasks** (array) - Array of task objects. - **id** (string) - Task ID. - **status_code** (integer) - Task status code. - **result** (array) - Array of result objects. - **keyword** (string) - The keyword. - **items** (array) - Array of SERP items. #### Response Example ```json { "version": "0.1.0", "status_code": 20000, "status_message": "Ok.", "tasks": [ { "id": "…", "status_code": 20000, "result": [ { "keyword": "best running shoes", "items": [] } ] } ] } ``` ``` -------------------------------- ### GET /v1/locations/{country} Source: https://docs.serplify.io/serp-api/reference-data Returns all locations for one ISO country. ```APIDOC ## GET /v1/locations/{country} ### Description Returns all locations for the specified ISO country code. ### Method GET ### Endpoint https://api.serplify.io/v1/locations/{country} ### Parameters #### Path Parameters - **country** (string) - Required - ISO-3166 alpha-2 country code (e.g. us). ### Request Example curl https://api.serplify.io/v1/locations/us \ -H "Authorization: Bearer live_your_key_here" ### Response #### Success Response (200) - **request_id** (string) - Request identifier. - **status** (string) - Status of the request. - **meta** (object) - Metadata including api_version, time, cost, currency. - **data.total** (integer) - Total number of locations for the country. - **data.locations** (array) - List of location objects, each with code, name, country, type, parent_code. #### Response Example (Response format analogous to the list endpoint, containing locations for the specified country.) The exact response example is not provided in the source; format follows the locations list response. ``` -------------------------------- ### GET /v1/traffic/campaigns/{id} Source: https://docs.serplify.io/traffic-api/overview Retrieves the status of a traffic campaign. The status can be `delivered`, `failed`, or `status`. ```APIDOC ## GET /v1/traffic/campaigns/{id} ### Description Retrieves the status of a traffic campaign. The status can be `delivered`, `failed`, or `status`. ### Method GET ### Endpoint /v1/traffic/campaigns/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The campaign ID. ### Response #### Success Response (200) - **campaign_id** (string) - The campaign ID. - **status** (string) - The campaign status (e.g., "running", "completed", "paused"). - **product** (string) - The product type ("visits" or "clicks"). - **quantity** (integer) - The requested quantity. - **delivered** (integer) - The number of delivered results. - **failed** (integer) - The number of failed results. #### Response Example { "campaign_id": "…", "status": "running", "product": "visits", "quantity": 1000, "delivered": 42, "failed": 1 } ``` -------------------------------- ### GET /v1/locations Source: https://docs.serplify.io/serp-api/reference-data Lists supported Google locations. You can filter by country and paginate with limit and offset. ```APIDOC ## GET /v1/locations ### Description Lists supported Google locations. Use the query parameters to filter and paginate. ### Method GET ### Endpoint https://api.serplify.io/v1/locations ### Parameters #### Query Parameters - **country** (string) - Optional - Filter by ISO-3166 alpha-2 (e.g. US, GB). - **limit** (integer) - Optional - Max rows (1–5000, default 5000). - **offset** (integer) - Optional - Pagination offset. ### Request Example curl "https://api.serplify.io/v1/locations?country=GB&limit=5" \ -H "Authorization: Bearer live_your_key_here" ### Response #### Success Response (200) - **request_id** (string) - Request identifier. - **status** (string) - Status of the request. - **meta** (object) - Metadata including api_version, time, cost, currency. - **data.total** (integer) - Total number of locations matching the query. - **data.locations** (array) - List of location objects, each with code, name, country, type, parent_code. #### Response Example { "request_id": "req_…", "status": "ok", "meta": { "api_version": "0.1.0", "time": 0.05, "cost": 0, "currency": "USD" }, "data": { "total": 950, "locations": [ { "code": 2826, "name": "United Kingdom", "country": "GB", "type": "Country", "parent_code": null }, { "code": 1006886, "name": "London,England,United Kingdom", "country": "GB", "type": "City", "parent_code": 20339 } ] } } ``` -------------------------------- ### GET /v1/traffic/campaigns/{id} Source: https://docs.serplify.io/traffic-api/seo-traffic Retrieves a traffic campaign's details, including per-keyword progress and status. ```APIDOC ## GET /v1/traffic/campaigns/{id} ### Description Returns a campaign's details, including the `keywords` array with per-keyword progress and status. ### Method GET ### Endpoint /v1/traffic/campaigns/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the campaign. ### Response #### Success Response (200) - **campaign_id** (string) - The campaign's unique identifier. - **name** (string) - The campaign's name. - **product** (string) - The product type (e.g., `clicks`). - **quantity** (integer) - The total quantity of clicks ordered. - **delivered** (integer) - The number of clicks delivered so far. - **status** (string) - The campaign's overall status (e.g., `running`). - **keywords** (array) - A list of keyword objects, each containing: - **keyword** (string) - The keyword. - **quantity** (integer) - The quantity allocated to this keyword. - **delivered** (integer) - The number of clicks delivered for this keyword. - **status** (string) - The keyword's status: `delivering`, `completed`, or `not_ranking`. #### Response Example ```json { "campaign_id": "9f1c…", "name": "Acme — running shoes cluster", "product": "clicks", "quantity": 200, "delivered": 118, "status": "running", "keywords": [ { "keyword": "best running shoes", "quantity": 67, "delivered": 67, "status": "completed" }, { "keyword": "trail running shoes", "quantity": 67, "delivered": 51, "status": "delivering" }, { "keyword": "cheap running shoes", "quantity": 66, "delivered": 0, "status": "not_ranking" } ] } ``` ``` -------------------------------- ### GET /v3/serp/google/locations Source: https://docs.serplify.io/migrating/dataforseo Retrieves a list of supported Google search locations. This endpoint matches the DataForSEO locations interface. ```APIDOC ## GET /v3/serp/google/locations ### Description Retrieves a list of supported Google search locations. This endpoint matches the DataForSEO locations interface. ### Method GET ### Endpoint https://api.serplify.io/v3/serp/google/locations ### Response #### Success Response (200) - **version** (string) - API version. - **status_code** (integer) - Status code (e.g., 20000). - **status_message** (string) - Status message. - **tasks** (array) - Array of task objects. - **id** (string) - Task ID. - **status_code** (integer) - Task status code. - **result** (array) - Array of result objects. - **keyword** (string) - The keyword. - **items** (array) - Array of SERP items. #### Response Example ```json { "version": "0.1.0", "status_code": 20000, "status_message": "Ok.", "tasks": [ { "id": "…", "status_code": 20000, "result": [ { "keyword": "best running shoes", "items": [] } ] } ] } ``` ```