AI workflow planning
SERP API documentation and integration guide
Send a server-side task request, authenticate with your account and inspect the HTTP and per-task status. Explore the same integration pattern across SEO and marketing data families.
Collect organic results, ads and search features across supported search engines, markets and devices. Use structured JSON, HTML and
source-specific
Authentication and task requests
Production accounts use HTTP Basic authentication. Build the Authorization header on your server from the supplied login and password; keep credentials out of browser code and shared examples.
For supported collection POST routes, send an array of
task objects. Each task contains that route’s inputs; a keyword query, page URL and product identifier are not interchangeable
payloads.
// Server-side example; configure your deployment and credentials.
const url = new URL("/v3/serp/google/organic/live/advanced", process.env.DATASEO_API_ORIGIN);
const auth = Buffer.from(`${process.env.DATASEO_LOGIN}:${process.env.DATASEO_PASSWORD}`).toString("base64");
const response = await fetch(url, {
method: "POST",
headers: {Authorization: `Basic ${auth}`, "Content-Type": "application/json"},
body: JSON.stringify([{"keyword": "running shoes", "location_code": 2840, "language_code": "en", "device": "desktop"}])
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
for (const task of data.tasks ?? []) {
if (task.status_code !== 20000) throw new Error(task.status_message);
}
// Use task.result only after checking task status.
Check the HTTP status first, then the top-level response and each task status_code. A successful HTTP 200 can still contain task errors; only read task.result after validating the task.
YOUR_CONFIGURED_TOOL_SERVER
Check response status
Keyword collection requires a source and supported market settings. Interpret advertising competition as a paid-search metric, and keep monthly search volumes separate from normalized trend scores.
For a URL inspection, start with /v3/on_page/instant_pages and a url input. Browser rendering and Lighthouse use separate options or routes and may require additional setup.
For official model responses, use the supported llm_responses route with user_prompt. List configured models and preserve model settings when comparing answers.
Queued task routes return identifiers for later retrieval. Keep the identifiers and check the documented ready/get flow for the selected route instead of assuming every product has the same delivery mode.
Retain collection timestamps, input settings and source identifiers. Missing fields should remain null or absent; do not convert an unavailable metric into zero.
organic results, ads and search features across supported search engines, markets and devices. Use
structured JSON, HTML and source-specific collection options for rank tracking and competitive research.
The website’s code and responses are illustrative. The selected deployment must confirm the route schema, access, quotas, data handling and customer pricing before production collection.
The application does not currently ship a verified public MCP server or native connectors for the tools pictured here. Use a server-side HTTP integration only after confirming the required source and route.
Validate a representative response before scaling. Check nulls, item types, field units, error messages and whether the result meets the question your application needs to answer.
Keep logs free of credentials and sensitive request content. Agree retention, licensing and permitted use for the selected source before storing production observations.
"Recent papers on RAG"
Choose a supported product route, configure the deployment origin and credentials, then test one task before scheduling a larger workload. This frontend uses local illustrative data and sends no live API requests.
Collect organic
results, ads and search features across supported search engines, markets and devices. Use structured JSON, HTML and source-specific collection options for rank